Advertisement
Guest User

Untitled

a guest
Aug 19th, 2016
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 36.93 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include "char.h"
  3. TJobInitialPoints JobInitialPoints[JOB_MAX_NUM] =
  4. /*
  5.    {
  6.    int st, ht, dx, iq;
  7.    int max_hp, max_sp;
  8.    int hp_per_ht, sp_per_iq;
  9.    int hp_per_lv_begin, hp_per_lv_end;
  10.    int sp_per_lv_begin, sp_per_lv_end;
  11.    int max_stamina;
  12.    int stamina_per_con;
  13.    int stamina_per_lv_begin, stamina_per_lv_end;
  14.    }
  15.  */
  16. {
  17.     // str con dex int 초기HP 초기SP  CON/HP INT/SP  HP랜덤/lv   MP랜덤/lv  초기stam  stam/con stam/lv
  18.     {   6,  4,  3,  3,  600,   200,     40,    20,    36, 44,     18, 22,     800,      5,      1, 3  }, // JOB_WARRIOR  16
  19.     {   4,  3,  6,  3,  650,   200,     40,    20,    36, 44,     18, 22,     800,      5,      1, 3  }, // JOB_ASSASSIN 16
  20.     {   5,  3,  3,  5,  650,   200,     40,    20,    36, 44,     18, 22,     800,      5,      1, 3  }, // JOB_SURA     16
  21.     {   3,  4,  3,  6,  700,   200,     40,    20,    36, 44,     18, 22,     800,      5,      1, 3  }  // JOB_SHAMANa  16
  22. };
  23.  
  24. const TMobRankStat MobRankStats[MOB_RANK_MAX_NUM] =
  25. /*
  26.    {
  27.    int         iGoldPercent;
  28.    }
  29.  */
  30. {
  31.     {  20,  }, // MOB_RANK_PAWN,
  32.     {  20,  }, // MOB_RANK_S_PAWN,
  33.     {  25,  }, // MOB_RANK_KNIGHT,
  34.     {  30,  }, // MOB_RANK_S_KNIGHT,
  35.     {  50,  }, // MOB_RANK_BOSS,
  36.     { 100,  }  // MOB_RANK_KING,
  37. };
  38.  
  39. TBattleTypeStat BattleTypeStats[BATTLE_TYPE_MAX_NUM] =
  40. /*
  41.    {
  42.    int         AttGradeBias;
  43.    int         DefGradeBias;
  44.    int         MagicAttGradeBias;
  45.    int         MagicDefGradeBias;
  46.    }
  47.  */
  48. {
  49.     {     0,      0,      0,    -10 }, // BATTLE_TYPE_MELEE,
  50.     {    10,    -20,    -10,    -15 }, // BATTLE_TYPE_RANGE,
  51.     {    -5,     -5,     10,     10 }, // BATTLE_TYPE_MAGIC,  
  52.     {     0,      0,      0,      0 }, // BATTLE_TYPE_SPECIAL,
  53.     {    10,    -10,      0,    -15 }, // BATTLE_TYPE_POWER,  
  54.     {   -10,     10,    -10,      0 }, // BATTLE_TYPE_TANKER,
  55.     {    20,    -20,      0,    -10 }, // BATTLE_TYPE_SUPER_POWER,
  56.     {   -20,     20,    -10,      0 }, // BATTLE_TYPE_SUPER_TANKER,
  57. };
  58.  
  59. const DWORD * exp_table = NULL;
  60.  
  61. const DWORD exp_table_euckr[PLAYER_EXP_TABLE_MAX + 1] =
  62. {
  63.     0,          // 0
  64.  
  65.     100,
  66.     150,
  67.     260,
  68.     380,
  69.     600,
  70.     1300,
  71.     3300,
  72.     5700,
  73.     8700,
  74.     12800,      // 10
  75.     18000,
  76.     25000,
  77.     36000,
  78.     52000,
  79.     73000,
  80.     100000,
  81.     125000,
  82.     160000,
  83.     220000,
  84.     280000,     // 20
  85.     370000,
  86.     540000,
  87.     670000,
  88.     880000,
  89.     1000000,
  90.     1237000,
  91.     1418000,
  92.     1624000,
  93.     1857000,
  94.     2122000,    // 30
  95.     2421000,
  96.     2761000,
  97.     3145000,
  98.     3580000,
  99.     4073000,
  100.     4632000,
  101.     5194000,
  102.     5717000,
  103.     6264000,
  104.     6837000,    // 40
  105.     7600000,
  106.     8274000,
  107.     8990000,
  108.     9753000,
  109.     10560000,
  110.     11410000,
  111.     12320000,
  112.     13270000,
  113.     14280000,
  114.     15340000,   // 50
  115.     16870000,
  116.     18960000,
  117.     19980000,
  118.     21420000,
  119.     22930000,
  120.     24530000,
  121.     26200000,
  122.     27960000,
  123.     29800000,
  124.     32780000,   // 60
  125.     36060000,
  126.     39670000,
  127.     43640000,
  128.     48000000,
  129.     52800000,
  130.     58080000,
  131.     63890000,
  132.     70280000,
  133.     77310000,
  134.     85040000,   // 70
  135.     93540000,
  136.     102900000,
  137.     113200000,
  138.     124500000,
  139.     137000000,
  140.     150700000,
  141.     165700000,
  142.     236990000,
  143.     260650000,
  144.     286780000// 80
  145.     315380000,
  146.     346970000,
  147.     381680000,
  148.     419770000,
  149.     461760000,
  150.     508040000,
  151.     558740000,
  152.     614640000,
  153.     676130000,
  154.     743730000// 90
  155.     1041222000,
  156.     1145344200,
  157.     1259878620,
  158.     1385866482,
  159.     1524453130,
  160.     1676898443,
  161.     1844588288,
  162.     2029047116,
  163.     2100000000, //  99      99레벨일 때 필요경험치 (100레벨이 되기 위한)
  164.     2100000000, //  100
  165.     2100000000,
  166.     2100000000,
  167.     2100000000,
  168.     2100000000,
  169.     2100000000, //  105
  170.     2100000000,
  171.     2100000000,
  172.     2100000000,
  173.     2100000000,
  174.     2100000000, //  110
  175.     2100000000,    
  176.     2100000000,    
  177.     2100000000,    
  178.     2100000000,    
  179.     2100000000, //  115
  180.     2100000000,    
  181.     2100000000,    
  182.     2100000000,    
  183.     2100000000,    
  184.     2100000000, //  120
  185.     2100000000,    
  186.     2100000000,    
  187.     2100000000,    
  188.     2100000000,    
  189.     2100000000, //  125
  190.     2100000000,    
  191.     2100000000,    
  192.     2100000000,    
  193.     2100000000,    
  194.     2100000000, //  130
  195.     2100000000,    
  196.     2100000000,    
  197.     2100000000,    
  198.     2100000000,    
  199.     2100000000, //  135
  200.     2100000000,    
  201.     2100000000,    
  202.     2100000000,    
  203.     2100000000,    
  204.     2100000000, //  140
  205.     2100000000,    
  206.     2100000000,    
  207.     2100000000,    
  208.     2100000000,    
  209.     2100000000, //  145
  210.     2100000000,    
  211.     2100000000,    
  212.     2100000000,    
  213.     2100000000,    
  214.     2100000000, //  150
  215.     2100000000,    
  216.     2100000000,    
  217.     2100000000,    
  218.     2100000000,    
  219.     2100000000, //  155
  220.     2100000000,    
  221.     2100000000,    
  222.     2100000000,    
  223.     2100000000,    
  224.     2100000000, //  160
  225.     2100000000,    
  226.     2100000000,    
  227.     2100000000,    
  228.     2100000000, //  165
  229.     2100000000,    
  230.     2100000000,    
  231.     2100000000,    
  232.     2100000000, //  170
  233.     2100000000,    
  234.     2100000000,    
  235.     2100000000,    
  236.     2100000000, //  175
  237.     2100000000,    
  238.     2100000000,    
  239.     2100000000,    
  240.     2100000000, //  180
  241.     2100000000,    
  242.     2100000000,    
  243.     2100000000,    
  244.     2100000000, //  185
  245.     2100000000,    
  246.     2100000000,    
  247.     2100000000,    
  248.     2100000000, //  190
  249.     2100000000,    
  250.     2100000000,    
  251.     2100000000,    
  252.     2100000000, //  195
  253.     2100000000,    
  254.     2100000000,    
  255.     2100000000,    
  256.     2100000000, //  200
  257.     2100000000,    
  258.     2100000000,    
  259.     2100000000,    
  260.     2100000000, //  205
  261.     2100000000,    
  262.     2100000000,    
  263.     2100000000,    
  264.     2100000000, //  210
  265.     2100000000,    
  266.     2100000000,    
  267.     2100000000,    
  268.     2100000000, //  215
  269.     2100000000,    
  270.     2100000000,    
  271.     2100000000,    
  272.     2100000000, //  220
  273.     2100000000,    
  274.     2100000000,    
  275.     2100000000,    
  276.     2100000000, //  225
  277.     2100000000,    
  278.     2100000000,    
  279.     2100000000,    
  280.     2100000000, //  230
  281.     2100000000,    
  282.     2100000000,    
  283.     2100000000,    
  284.     2100000000, //  235
  285.     2100000000,    
  286.     2100000000,    
  287.     2100000000,    
  288.     2100000000, //  240
  289.     2100000000,    
  290.     2100000000,    
  291.     2100000000,    
  292.     2100000000, //  245
  293.     2100000000,    
  294.     2100000000,    
  295.     2100000000,    
  296.     2100000000, //  250
  297. };
  298.  
  299. const DWORD exp_table_common[PLAYER_EXP_TABLE_MAX + 1] =
  300. {
  301.     0//  0
  302.     300,       
  303.     800,       
  304.     1500,      
  305.     2500,      
  306.     4300,      
  307.     7200,      
  308.     11000,     
  309.     17000,     
  310.     24000,     
  311.     33000//  10
  312.     43000,     
  313.     58000,     
  314.     76000,     
  315.     100000,    
  316.     130000,    
  317.     169000,    
  318.     219000,    
  319.     283000,    
  320.     365000,    
  321.     472000, //  20
  322.     610000,    
  323.     705000,    
  324.     813000,    
  325.     937000,    
  326.     1077000,       
  327.     1237000,       
  328.     1418000,       
  329.     1624000,       
  330.     1857000,       
  331.     2122000,    //  30
  332.     2421000,       
  333.     2761000,       
  334.     3145000,       
  335.     3580000,       
  336.     4073000,       
  337.     4632000,       
  338.     5194000,       
  339.     5717000,       
  340.     6264000,       
  341.     6837000,    //  40
  342.     7600000,       
  343.     8274000,       
  344.     8990000,       
  345.     9753000,       
  346.     10560000,      
  347.     11410000,      
  348.     12320000,      
  349.     13270000,      
  350.     14280000,      
  351.     15340000,   //  50
  352.     16870000,      
  353.     18960000,      
  354.     19980000,      
  355.     21420000,      
  356.     22930000,      
  357.     24530000,      
  358.     26200000,      
  359.     27960000,      
  360.     29800000,      
  361.     32780000,   //  60
  362.     36060000,      
  363.     39670000,      
  364.     43640000,      
  365.     48000000,      
  366.     52800000,      
  367.     58080000,      
  368.     63890000,      
  369.     70280000,      
  370.     77310000,      
  371.     85040000,   //  70
  372.     93540000,      
  373.     102900000,     
  374.     113200000,     
  375.     124500000,     
  376.     137000000,     
  377.     150700000,     
  378.     165700000,     
  379.     236990000,     
  380.     260650000,     
  381.     286780000//  80
  382.     315380000,     
  383.     346970000,     
  384.     381680000,     
  385.     419770000,     
  386.     461760000,     
  387.     508040000,     
  388.     558740000,     
  389.     614640000,     
  390.     676130000,     
  391.     743730000//  90
  392.     1041222000,    
  393.     1145344200,    
  394.     1259878620,    
  395.     1385866482,    
  396.     1524453130,    
  397.     1676898443,    
  398.     1844588288,    
  399.     2029047116,    
  400.     2050000000, //  99레벨 일 때 필요경험치 (100레벨이 되기 위한)
  401.     2150000000u,    //  100
  402.     2210000000u,       
  403.     2250000000u,       
  404.     2280000000u,       
  405.     2310000000u,       
  406.     2330000000u,    //  105
  407.     2350000000u,       
  408.     2370000000u,       
  409.     2390000000u,       
  410.     2400000000u,       
  411.     2410000000u,    //  110
  412.     2420000000u,       
  413.     2430000000u,       
  414.     2440000000u,       
  415.     2450000000u,       
  416.     2460000000u,    //  115
  417.     2470000000u,       
  418.     2480000000u,       
  419.     2490000000u,       
  420.     2490000000u,       
  421.     2500000000u,    //  120
  422.     2100000000,    
  423.     2100000000,    
  424.     2100000000,    
  425.     2100000000,    
  426.     2100000000, //  125
  427.     2100000000,    
  428.     2100000000,    
  429.     2100000000,    
  430.     2100000000,    
  431.     2100000000, //  130
  432.     2100000000,    
  433.     2100000000,    
  434.     2100000000,    
  435.     2100000000,    
  436.     2100000000, //  135
  437.     2100000000,    
  438.     2100000000,    
  439.     2100000000,    
  440.     2100000000,    
  441.     2100000000, //  140
  442.     2100000000,    
  443.     2100000000,    
  444.     2100000000,    
  445.     2100000000,    
  446.     2100000000, //  145
  447.     2100000000,    
  448.     2100000000,    
  449.     2100000000,    
  450.     2100000000,    
  451.     2100000000, //  150
  452.     2100000000,    
  453.     2100000000,    
  454.     2100000000,    
  455.     2100000000,    
  456.     2100000000, //  155
  457.     2100000000,    
  458.     2100000000,    
  459.     2100000000,    
  460.     2100000000,    
  461.     2100000000, //  160
  462.     2100000000,    
  463.     2100000000,    
  464.     2100000000,    
  465.     2100000000, //  165
  466.     2100000000,    
  467.     2100000000,    
  468.     2100000000,    
  469.     2100000000, //  170
  470.     2100000000,    
  471.     2100000000,    
  472.     2100000000,    
  473.     2100000000, //  175
  474.     2100000000,    
  475.     2100000000,    
  476.     2100000000,    
  477.     2100000000, //  180
  478.     2100000000,    
  479.     2100000000,    
  480.     2100000000,    
  481.     2100000000, //  185
  482.     2100000000,    
  483.     2100000000,    
  484.     2100000000,    
  485.     2100000000, //  190
  486.     2100000000,    
  487.     2100000000,    
  488.     2100000000,    
  489.     2100000000, //  195
  490.     2100000000,    
  491.     2100000000,    
  492.     2100000000,    
  493.     2100000000, //  200
  494.     2100000000,    
  495.     2100000000,    
  496.     2100000000,    
  497.     2100000000, //  205
  498.     2100000000,    
  499.     2100000000,    
  500.     2100000000,    
  501.     2100000000, //  210
  502.     2100000000,    
  503.     2100000000,    
  504.     2100000000,    
  505.     2100000000, //  215
  506.     2100000000,    
  507.     2100000000,    
  508.     2100000000,    
  509.     2100000000, //  220
  510.     2100000000,    
  511.     2100000000,    
  512.     2100000000,    
  513.     2100000000, //  225
  514.     2100000000,    
  515.     2100000000,    
  516.     2100000000,    
  517.     2100000000, //  230
  518.     2100000000,    
  519.     2100000000,    
  520.     2100000000,    
  521.     2100000000, //  235
  522.     2100000000,    
  523.     2100000000,    
  524.     2100000000,    
  525.     2100000000, //  240
  526.     2100000000,    
  527.     2100000000,    
  528.     2100000000,    
  529.     2100000000, //  245
  530.     2100000000,    
  531.     2100000000,    
  532.     2100000000,    
  533.     2100000000, //  250
  534. };
  535.  
  536. const DWORD exp_table_newcibn[PLAYER_EXP_TABLE_MAX + 1 ] =
  537. {
  538.     300,    // 0
  539.     800,    // 1
  540.     1500,
  541.     2500,
  542.     4300,
  543.     7200,
  544.     11400,
  545.     17000,
  546.     24000,
  547.     33000,
  548.     46000// 10
  549.     62000,
  550.     83000,
  551.     111000,
  552.     149000,
  553.     200000,
  554.     268000,
  555.     360000,
  556.     482000,
  557.     647000,
  558.     868000, // 20
  559.     996000,
  560.     1143000,
  561.     1312000,
  562.     1506000,
  563.     1729000,
  564.     1984000,
  565.     2277000,
  566.     2614000,
  567.     3000000,
  568.     3443000,    // 30
  569.     3952000,
  570.     4536000,
  571.     5206000,
  572.     5975000,
  573.     6858000,
  574.     7730000,
  575.     8504000,
  576.     9307000,
  577.     10140000,
  578.     11330000,   // 40
  579.     12320000,
  580.     13370000,
  581.     14490000,
  582.     15670000,
  583.     16920000,
  584.     18240000,
  585.     19630000,
  586.     21090000,
  587.     22630000,
  588.     24670000,   // 50
  589.     26890000,
  590.     29310000,
  591.     31950000,
  592.     34820000,
  593.     37960000,
  594.     41370000,
  595.     45100000,
  596.     49160000,
  597.     53580000,
  598.     58400000,   // 60
  599.     63660000,
  600.     69390000,
  601.     75630000,
  602.     82440000,
  603.     89860000,
  604.     97950000,
  605.     106760000,
  606.     136370000,
  607.     151800000,
  608.     168300000// 70
  609.     250000000,
  610.     340000000,
  611.     450000000,
  612.     570000000,
  613.     690000000,
  614.     810000000,
  615.     912600000,
  616.     1004000000,
  617.     1094000000,
  618.     1182000000, // 80
  619.     1269000000,
  620.     1354000000,
  621.     1438000000,
  622.     1521000000,
  623.     1603000000,
  624.     1684000000,
  625.     1764000000,
  626.     1844000000,
  627.     1922000000,
  628.     2000000000, // 90
  629.     2000000000,
  630.     2000000000,
  631.     2000000000,
  632.     2000000000,
  633.     2000000000,
  634.     2000000000,
  635.     2000000000,
  636.     2000000000,
  637.     2000000000, //  99      99레벨일 때 필요경험치 (100레벨이 되기 위한).. 현재 CIBN이 어떻게 운영하고 있는 지 모르니 신규 테이블을 쓰지 않고 기존값 계속 연장 유지
  638.     2000000000, //  100
  639.     2000000000,    
  640.     2000000000,    
  641.     2000000000,    
  642.     2000000000,    
  643.     2000000000, //  105
  644.     2000000000,    
  645.     2000000000,    
  646.     2000000000,    
  647.     2000000000,    
  648.     2000000000, //  110
  649.     2000000000,    
  650.     2000000000,    
  651.     2000000000,    
  652.     2000000000,    
  653.     2000000000, //  115
  654.     2000000000,    
  655.     2000000000,    
  656.     2000000000,    
  657.     2000000000,    
  658.     2000000000, //  120
  659.     2100000000,    
  660.     2100000000,    
  661.     2100000000,    
  662.     2100000000,    
  663.     2100000000, //  125
  664.     2100000000,    
  665.     2100000000,    
  666.     2100000000,    
  667.     2100000000,    
  668.     2100000000, //  130
  669.     2100000000,    
  670.     2100000000,    
  671.     2100000000,    
  672.     2100000000,    
  673.     2100000000, //  135
  674.     2100000000,    
  675.     2100000000,    
  676.     2100000000,    
  677.     2100000000,    
  678.     2100000000, //  140
  679.     2100000000,    
  680.     2100000000,    
  681.     2100000000,    
  682.     2100000000,    
  683.     2100000000, //  145
  684.     2100000000,    
  685.     2100000000,    
  686.     2100000000,    
  687.     2100000000,    
  688.     2100000000, //  150
  689.     2100000000,    
  690.     2100000000,    
  691.     2100000000,    
  692.     2100000000,    
  693.     2100000000, //  155
  694.     2100000000,    
  695.     2100000000,    
  696.     2100000000,    
  697.     2100000000,    
  698.     2100000000, //  160
  699.     2100000000,    
  700.     2100000000,    
  701.     2100000000,    
  702.     2100000000, //  165
  703.     2100000000,    
  704.     2100000000,    
  705.     2100000000,    
  706.     2100000000, //  170
  707.     2100000000,    
  708.     2100000000,    
  709.     2100000000,    
  710.     2100000000, //  175
  711.     2100000000,    
  712.     2100000000,    
  713.     2100000000,    
  714.     2100000000, //  180
  715.     2100000000,    
  716.     2100000000,    
  717.     2100000000,    
  718.     2100000000, //  185
  719.     2100000000,    
  720.     2100000000,    
  721.     2100000000,    
  722.     2100000000, //  190
  723.     2100000000,    
  724.     2100000000,    
  725.     2100000000,    
  726.     2100000000, //  195
  727.     2100000000,    
  728.     2100000000,    
  729.     2100000000,    
  730.     2100000000, //  200
  731.     2100000000,    
  732.     2100000000,    
  733.     2100000000,    
  734.     2100000000, //  205
  735.     2100000000,    
  736.     2100000000,    
  737.     2100000000,    
  738.     2100000000, //  210
  739.     2100000000,    
  740.     2100000000,    
  741.     2100000000,    
  742.     2100000000, //  215
  743.     2100000000,    
  744.     2100000000,    
  745.     2100000000,    
  746.     2100000000, //  220
  747.     2100000000,    
  748.     2100000000,    
  749.     2100000000,    
  750.     2100000000, //  225
  751.     2100000000,    
  752.     2100000000,    
  753.     2100000000,    
  754.     2100000000, //  230
  755.     2100000000,    
  756.     2100000000,    
  757.     2100000000,    
  758.     2100000000, //  235
  759.     2100000000,    
  760.     2100000000,    
  761.     2100000000,    
  762.     2100000000, //  240
  763.     2100000000,    
  764.     2100000000,    
  765.     2100000000,    
  766.     2100000000, //  245
  767.     2100000000,    
  768.     2100000000,    
  769.     2100000000,    
  770.     2100000000, //  250
  771. };
  772.  
  773. const int * aiPercentByDeltaLev = NULL;
  774. const int * aiPercentByDeltaLevForBoss = NULL;
  775.  
  776. // 적과 나와의 레벨차이에 의한 계산에 사용되는 테이블
  777. // MIN(MAX_EXP_DELTA_OF_LEV - 1, (적렙 + 15) - 내렙))
  778. const int aiPercentByDeltaLevForBoss_euckr[MAX_EXP_DELTA_OF_LEV] =
  779. {
  780.     1,      // -15  0
  781.     3,          // -14  1
  782.     5,          // -13  2
  783.     7,          // -12  3
  784.     15,         // -11  4
  785.     30,         // -10  5
  786.     60,         // -9   6
  787.     90,         // -8   7
  788.     91,         // -7   8
  789.     92,         // -6   9
  790.     93,         // -5   10
  791.     94,         // -4   11
  792.     95,         // -3   12
  793.     97,         // -2   13
  794.     99,         // -1   14
  795.     100,        // 0    15
  796.     105,        // 1    16
  797.     110,        // 2    17
  798.     115,        // 3    18
  799.     120,        // 4    19
  800.     125,        // 5    20
  801.     130,        // 6    21
  802.     135,        // 7    22
  803.     140,        // 8    23
  804.     145,        // 9    24
  805.     150,        // 10   25
  806.     155,        // 11   26
  807.     160,        // 12   27
  808.     165,        // 13   28
  809.     170,        // 14   29
  810.     180         // 15   30
  811. };
  812.  
  813.  
  814.  
  815. const int aiPercentByDeltaLev_euckr[MAX_EXP_DELTA_OF_LEV] =
  816. {
  817.     1,  //  -15 0
  818.     5,  //  -14 1
  819.     10, //  -13 2
  820.     20, //  -12 3
  821.     30, //  -11 4
  822.     50, //  -10 5
  823.     70, //  -9  6
  824.     80, //  -8  7
  825.     85, //  -7  8
  826.     90, //  -6  9
  827.     92, //  -5  10
  828.     94, //  -4  11
  829.     96, //  -3  12
  830.     98, //  -2  13
  831.     100,    //  -1  14
  832.     100,    //  0   15
  833.     105,    //  1   16
  834.     110,    //  2   17
  835.     115,    //  3   18
  836.     120,    //  4   19
  837.     125,    //  5   20
  838.     130,    //  6   21
  839.     135,    //  7   22
  840.     140,    //  8   23
  841.     145,    //  9   24
  842.     150,    //  10  25
  843.     155,    //  11  26
  844.     160,    //  12  27
  845.     165,    //  13  28
  846.     170,    //  14  29
  847.     180,    //  15  30
  848. };
  849.  
  850. const DWORD party_exp_distribute_table[PLAYER_MAX_LEVEL_CONST + 1] =
  851. {
  852.     0,
  853.     10,     10,     10,     10,     15,     15,     20,     25,     30,     40,     // 1 - 10
  854.     50,     60,     80,     100,    120,    140,    160,    184,    210,    240,    // 11 - 20
  855.     270,    300,    330,    360,    390,    420,    450,    480,    510,    550,    // 21 - 30
  856.     600,    640,    700,    760,    820,    880,    940,    1000,   1100,   1180,   // 31 - 40
  857.     1260,   1320,   1380,   1440,   1500,   1560,   1620,   1680,   1740,   1800,   // 41 - 50
  858.     1860,   1920,   2000,   2100,   2200,   2300,   2450,   2600,   2750,   2900,   // 51 - 60
  859.     3050,   3200,   3350,   3500,   3650,   3800,   3950,   4100,   4250,   4400,   // 61 - 70
  860.     4600,   4800,   5000,   5200,   5400,   5600,   5800,   6000,   6200,   6400,   // 71 - 80
  861.     6600,   6900,   7100,   7300,   7600,   7800,   8000,   8300,   8500,   8800,   // 81 - 90
  862.     9000,   9000,   9000,   9000,   9000,   9000,   9000,   9000,   9000,   9000,   // 91 - 100
  863.     10000100001000010000100001000010000100001000010000// 101 - 110
  864.     12000120001200012000120001200012000120001200012000// 111 - 120
  865. };
  866.  
  867. Coord aArroundCoords[ARROUND_COORD_MAX_NUM] =
  868. {
  869.     {        0,       0     },
  870.     {        0,      50     },
  871.     {       35,     35      },
  872.     {       50,     -0      },
  873.     {       35,     -35     },
  874.     {       0,      -50     },
  875.     {       -35,    -35     },
  876.     {       -50,    0       },
  877.     {       -35,    35      },
  878.     {       0,      100     },
  879.     {       71,     71      },
  880.     {       100,    -0      },
  881.     {       71,     -71     },
  882.     {       0,      -100    },
  883.     {       -71,    -71     },
  884.     {       -100,   0       },
  885.     {       -71,    71      },
  886.     {       0,      150     },
  887.     {       106,    106     },
  888.     {       150,    -0      },
  889.     {       106,    -106    },
  890.     {       0,      -150    },
  891.     {       -106,   -106    },
  892.     {       -150,   0       },
  893.     {       -106,   106     },
  894.     {       0,      200     },
  895.     {       141,    141     },
  896.     {       200,    -0      },
  897.     {       141,    -141    },
  898.     {       0,      -200    },
  899.     {       -141,   -141    },
  900.     {       -200,   0       },
  901.     {       -141,   141     },
  902.     {       0,      250     },
  903.     {       177,    177     },
  904.     {       250,    -0      },
  905.     {       177,    -177    },
  906.     {       0,      -250    },
  907.     {       -177,   -177    },
  908.     {       -250,   0       },
  909.     {       -177,   177     },
  910.     {       0,      300     },
  911.     {       212,    212     },
  912.     {       300,    -0      },
  913.     {       212,    -212    },
  914.     {       0,      -300    },
  915.     {       -212,   -212    },
  916.     {       -300,   0       },
  917.     {       -212,   212     },
  918.     {       0,      350     },
  919.     {       247,    247     },
  920.     {       350,    -0      },
  921.     {       247,    -247    },
  922.     {       0,      -350    },
  923.     {       -247,   -247    },
  924.     {       -350,   0       },
  925.     {       -247,   247     },
  926.     {       0,      400     },
  927.     {       283,    283     },
  928.     {       400,    -0      },
  929.     {       283,    -283    },
  930.     {       0,      -400    },
  931.     {       -283,   -283    },
  932.     {       -400,   0       },
  933.     {       -283,   283     },
  934.     {       0,      450     },
  935.     {       318,    318     },
  936.     {       450,    -0      },
  937.     {       318,    -318    },
  938.     {       0,      -450    },
  939.     {       -318,   -318    },
  940.     {       -450,   0       },
  941.     {       -318,   318     },
  942.     {       0,      500     },
  943.     {       354,    354     },
  944.     {       500,    -0      },
  945.     {       354,    -354    },
  946.     {       0,      -500    },
  947.     {       -354,   -354    },
  948.     {       -500,   0       },
  949.     {       -354,   354     },
  950.     {       0,      550     },
  951.     {       389,    389     },
  952.     {       550,    -0      },
  953.     {       389,    -389    },
  954.     {       0,      -550    },
  955.     {       -389,   -389    },
  956.     {       -550,   0       },
  957.     {       -389,   389     },
  958.     {       0,      600     },
  959.     {       424,    424     },
  960.     {       600,    -0      },
  961.     {       424,    -424    },
  962.     {       0,      -600    },
  963.     {       -424,   -424    },
  964.     {       -600,   0       },
  965.     {       -424,   424     },
  966.     {       0,      650     },
  967.     {       460,    460     },
  968.     {       650,    -0      },
  969.     {       460,    -460    },
  970.     {       0,      -650    },
  971.     {       -460,   -460    },
  972.     {       -650,   0       },
  973.     {       -460,   460     },
  974.     {       0,      700     },
  975.     {       495,    495     },
  976.     {       700,    -0      },
  977.     {       495,    -495    },
  978.     {       0,      -700    },
  979.     {       -495,   -495    },
  980.     {       -700,   0       },
  981.     {       -495,   495     },
  982.     {       0,      750     },
  983.     {       530,    530     },
  984.     {       750,    -0      },
  985.     {       530,    -530    },
  986.     {       0,      -750    },
  987.     {       -530,   -530    },
  988.     {       -750,   0       },
  989.     {       -530,   530     },
  990.     {       0,      800     },
  991.     {       566,    566     },
  992.     {       800,    -0      },
  993.     {       566,    -566    },
  994.     {       0,      -800    },
  995.     {       -566,   -566    },
  996.     {       -800,   0       },
  997.     {       -566,   566     },
  998.     {       0,      850     },
  999.     {       601,    601     },
  1000.     {       850,    -0      },
  1001.     {       601,    -601    },
  1002.     {       0,      -850    },
  1003.     {       -601,   -601    },
  1004.     {       -850,   0       },
  1005.     {       -601,   601     },
  1006.     {       0,      900     },
  1007.     {       636,    636     },
  1008.     {       900,    -0      },
  1009.     {       636,    -636    },
  1010.     {       0,      -900    },
  1011.     {       -636,   -636    },
  1012.     {       -900,   0       },
  1013.     {       -636,   636     },
  1014.     {       0,      950     },
  1015.     {       672,    672     },
  1016.     {       950,    -0      },
  1017.     {       672,    -672    },
  1018.     {       0,      -950    },
  1019.     {       -672,   -672    },
  1020.     {       -950,   0       },
  1021.     {       -672,   672     },
  1022.     {       0,      1000    },
  1023.     {       707,    707     },
  1024.     {       1000,   -0      },
  1025.     {       707,    -707    },
  1026.     {       0,      -1000   },
  1027.     {       -707,   -707    },
  1028.     {       -1000,  0       },
  1029.     {       -707,   707     },
  1030. };
  1031.  
  1032. const DWORD guild_exp_table[GUILD_MAX_LEVEL+1] =
  1033. {
  1034.     0,
  1035.     15000UL,
  1036.     45000UL,
  1037.     90000UL,
  1038.     160000UL,
  1039.     235000UL,
  1040.     325000UL,
  1041.     430000UL,
  1042.     550000UL,
  1043.     685000UL,
  1044.     835000UL,
  1045.     1000000UL,
  1046.     1500000UL,
  1047.     2100000UL,
  1048.     2800000UL,
  1049.     3600000UL,
  1050.     4500000UL,
  1051.     6500000UL,
  1052.     8000000UL,
  1053.     10000000UL,
  1054.     42000000UL
  1055. };
  1056.  
  1057. // INTERNATIONAL_VERSION 길드경험치
  1058. const DWORD guild_exp_table2[GUILD_MAX_LEVEL+1] =
  1059. {
  1060.     0
  1061.     6000UL,
  1062.     18000UL,
  1063.     36000UL,
  1064.     64000UL,
  1065.     94000UL,
  1066.     130000UL,
  1067.     172000UL,
  1068.     220000UL,
  1069.     274000UL,
  1070.     334000UL,
  1071.     400000UL,
  1072.     600000UL,
  1073.     840000UL,
  1074.     1120000UL,
  1075.     1440000UL,
  1076.     1800000UL,
  1077.     2600000UL,
  1078.     3200000UL,
  1079.     4000000UL,
  1080.     16800000UL
  1081. };
  1082. // END_OF_INTERNATIONAL_VERSION 길드경험치
  1083.  
  1084. const int aiMobEnchantApplyIdx[MOB_ENCHANTS_MAX_NUM] =
  1085. {
  1086.     APPLY_CURSE_PCT,
  1087.     APPLY_SLOW_PCT,
  1088.     APPLY_POISON_PCT,
  1089.     APPLY_STUN_PCT,
  1090.     APPLY_CRITICAL_PCT,
  1091.     APPLY_PENETRATE_PCT,
  1092. };
  1093.  
  1094. const int aiMobResistsApplyIdx[MOB_RESISTS_MAX_NUM] =
  1095. {
  1096.     APPLY_RESIST_SWORD,
  1097.     APPLY_RESIST_TWOHAND,
  1098.     APPLY_RESIST_DAGGER,
  1099.     APPLY_RESIST_BELL,
  1100.     APPLY_RESIST_FAN,
  1101.     APPLY_RESIST_BOW,
  1102.     APPLY_RESIST_FIRE,
  1103.     APPLY_RESIST_ELEC,
  1104.     APPLY_RESIST_MAGIC,
  1105.     APPLY_RESIST_WIND,
  1106.     APPLY_POISON_REDUCE,
  1107. };
  1108.  
  1109. const int aiSocketPercentByQty[5][4] =
  1110. {
  1111.     {  0,  0,  0,  0 },
  1112.     {  3,  0,  0,  0 },
  1113.     { 10,  1,  0,  0 },
  1114.     { 15, 10,  1,  0 },
  1115.     { 20, 15, 10,  1 }
  1116. };
  1117.  
  1118. const int aiWeaponSocketQty[WEAPON_NUM_TYPES] =
  1119. {
  1120.     3, // WEAPON_SWORD,
  1121.     3, // WEAPON_DAGGER,
  1122.     3, // WEAPON_BOW,
  1123.     3, // WEAPON_TWO_HANDED,
  1124.     3, // WEAPON_BELL,
  1125.     3, // WEAPON_FAN,
  1126.     0, // WEAPON_ARROW,
  1127.     0, // WEAPON_MOUNT_SPEAR
  1128. };
  1129.  
  1130. const int aiArmorSocketQty[ARMOR_NUM_TYPES] =
  1131. {
  1132.     3, // ARMOR_BODY,
  1133.     1, // ARMOR_HEAD,
  1134.     1, // ARMOR_SHIELD,
  1135.     0, // ARMOR_WRIST,
  1136.     0, // ARMOR_FOOTS,
  1137.     0  // ARMOR_ACCESSORY
  1138. };
  1139.  
  1140. TItemAttrMap g_map_itemAttr;
  1141. TItemAttrMap g_map_itemRare;
  1142.  
  1143. const TApplyInfo aApplyInfo[MAX_APPLY_NUM] =
  1144. /*
  1145. {
  1146.    DWORD dwPointType;
  1147. }
  1148.  */
  1149. {
  1150.     // Point Type
  1151.     { POINT_NONE,           },   // APPLY_NONE,     0
  1152.     { POINT_MAX_HP,             },   // APPLY_MAX_HP,       1
  1153.     { POINT_MAX_SP,             },   // APPLY_MAX_SP,       2
  1154.     { POINT_HT,                 },   // APPLY_CON,      3
  1155.     { POINT_IQ,                 },   // APPLY_INT,      4
  1156.     { POINT_ST,                 },   // APPLY_STR,      5
  1157.     { POINT_DX,                 },   // APPLY_DEX,      6
  1158.     { POINT_ATT_SPEED,              },   // APPLY_ATT_SPEED,    7
  1159.     { POINT_MOV_SPEED,              },   // APPLY_MOV_SPEED,    8
  1160.     { POINT_CASTING_SPEED,          },   // APPLY_CAST_SPEED,   9
  1161.     { POINT_HP_REGEN,           },   // APPLY_HP_REGEN,     10
  1162.     { POINT_SP_REGEN,           },   // APPLY_SP_REGEN,     11
  1163.     { POINT_POISON_PCT,             },   // APPLY_POISON_PCT,   12
  1164.     { POINT_STUN_PCT,               },   // APPLY_STUN_PCT,     13
  1165.     { POINT_SLOW_PCT,               },   // APPLY_SLOW_PCT,     14
  1166.     { POINT_CRITICAL_PCT,       },   // APPLY_CRITICAL_PCT, 15
  1167.     { POINT_PENETRATE_PCT,          },   // APPLY_PENETRATE_PCT,    16
  1168.     { POINT_ATTBONUS_HUMAN,         },   // APPLY_ATTBONUS_HUMAN,   17
  1169.     { POINT_ATTBONUS_ANIMAL,            },   // APPLY_ATTBONUS_ANIMAL,  18
  1170.     { POINT_ATTBONUS_ORC,       },   // APPLY_ATTBONUS_ORC, 19
  1171.     { POINT_ATTBONUS_MILGYO,            },   // APPLY_ATTBONUS_MILGYO,  20
  1172.     { POINT_ATTBONUS_UNDEAD,            },   // APPLY_ATTBONUS_UNDEAD,  21
  1173.     { POINT_ATTBONUS_DEVIL,         },   // APPLY_ATTBONUS_DEVIL,   22
  1174.     { POINT_STEAL_HP,               },   // APPLY_STEAL_HP,     23
  1175.     { POINT_STEAL_SP,               },   // APPLY_STEAL_SP,     24
  1176.     { POINT_MANA_BURN_PCT,          },   // APPLY_MANA_BURN_PCT,    25
  1177.     { POINT_DAMAGE_SP_RECOVER,          },   // APPLY_DAMAGE_SP_RECOVER,26
  1178.     { POINT_BLOCK,              },   // APPLY_BLOCK,        27
  1179.     { POINT_DODGE,              },   // APPLY_DODGE,        28
  1180.     { POINT_RESIST_SWORD,       },   // APPLY_RESIST_SWORD, 29
  1181.     { POINT_RESIST_TWOHAND,         },   // APPLY_RESIST_TWOHAND,   30
  1182.     { POINT_RESIST_DAGGER,          },   // APPLY_RESIST_DAGGER,    31
  1183.     { POINT_RESIST_BELL,        },   // APPLY_RESIST_BELL,  32
  1184.     { POINT_RESIST_FAN,             },   // APPLY_RESIST_FAN,   33
  1185.     { POINT_RESIST_BOW,             },   // APPLY_RESIST_BOW,   34
  1186.     { POINT_RESIST_FIRE,        },   // APPLY_RESIST_FIRE,  35
  1187.     { POINT_RESIST_ELEC,        },   // APPLY_RESIST_ELEC,  36
  1188.     { POINT_RESIST_MAGIC,       },   // APPLY_RESIST_MAGIC, 37
  1189.     { POINT_RESIST_WIND,        },   // APPLY_RESIST_WIND,  38
  1190.     { POINT_REFLECT_MELEE,          },   // APPLY_REFLECT_MELEE,    39
  1191.     { POINT_REFLECT_CURSE,          },   // APPLY_REFLECT_CURSE,    40
  1192.     { POINT_POISON_REDUCE,          },   // APPLY_POISON_REDUCE,    41
  1193.     { POINT_KILL_SP_RECOVER,            },   // APPLY_KILL_SP_RECOVER,  42
  1194.     { POINT_EXP_DOUBLE_BONUS,           },   // APPLY_EXP_DOUBLE_BONUS, 43
  1195.     { POINT_GOLD_DOUBLE_BONUS,          },   // APPLY_GOLD_DOUBLE_BONUS,44
  1196.     { POINT_ITEM_DROP_BONUS,            },   // APPLY_ITEM_DROP_BONUS,  45
  1197.     { POINT_POTION_BONUS,       },   // APPLY_POTION_BONUS, 46
  1198.     { POINT_KILL_HP_RECOVERY,           },   // APPLY_KILL_HP_RECOVER,  47
  1199.     { POINT_IMMUNE_STUN,        },   // APPLY_IMMUNE_STUN,  48
  1200.     { POINT_IMMUNE_SLOW,        },   // APPLY_IMMUNE_SLOW,  49
  1201.     { POINT_IMMUNE_FALL,        },   // APPLY_IMMUNE_FALL,  50
  1202.     { POINT_NONE,           },   // APPLY_SKILL,        51
  1203.     { POINT_BOW_DISTANCE,       },   // APPLY_BOW_DISTANCE, 52
  1204.     { POINT_ATT_GRADE_BONUS,            },   // APPLY_ATT_GRADE,    53
  1205.     { POINT_DEF_GRADE_BONUS,            },   // APPLY_DEF_GRADE,    54
  1206.     { POINT_MAGIC_ATT_GRADE_BONUS,      },   // APPLY_MAGIC_ATT_GRADE,  55
  1207.     { POINT_MAGIC_DEF_GRADE_BONUS,      },   // APPLY_MAGIC_DEF_GRADE,  56
  1208.     { POINT_CURSE_PCT,          },   // APPLY_CURSE_PCT,    57
  1209.     { POINT_MAX_STAMINA         },   // APPLY_MAX_STAMINA   58
  1210.     { POINT_ATTBONUS_WARRIOR        },   // APPLY_ATTBONUS_WARRIOR  59
  1211.     { POINT_ATTBONUS_ASSASSIN       },   // APPLY_ATTBONUS_ASSASSIN 60
  1212.     { POINT_ATTBONUS_SURA       },   // APPLY_ATTBONUS_SURA     61
  1213.     { POINT_ATTBONUS_SHAMAN     },   // APPLY_ATTBONUS_SHAMAN   62
  1214.     { POINT_ATTBONUS_MONSTER        },   // APPLY_ATTBONUS_MONSTER  63
  1215.     { POINT_ATT_BONUS       },   // 64 // APPLY_MALL_ATTBONUS
  1216.     { POINT_MALL_DEFBONUS       },   // 65
  1217.     { POINT_MALL_EXPBONUS       },   // 66 APPLY_MALL_EXPBONUS
  1218.     { POINT_MALL_ITEMBONUS      },   // 67
  1219.     { POINT_MALL_GOLDBONUS      },   // 68
  1220.     { POINT_MAX_HP_PCT          },      // 69
  1221.     { POINT_MAX_SP_PCT          },      // 70
  1222.     { POINT_SKILL_DAMAGE_BONUS      }// 71
  1223.     { POINT_NORMAL_HIT_DAMAGE_BONUS }// 72
  1224.  
  1225.     // DEFEND_BONUS_ATTRIBUTES
  1226.     { POINT_SKILL_DEFEND_BONUS      }// 73
  1227.     { POINT_NORMAL_HIT_DEFEND_BONUS }// 74
  1228.     // END_OF_DEFEND_BONUS_ATTRIBUTES
  1229.  
  1230.     // PC_BANG_ITEM_ADD
  1231.     { POINT_PC_BANG_EXP_BONUS   },      // 75
  1232.     { POINT_PC_BANG_DROP_BONUS  },      // 76
  1233.     // END_PC_BANG_ITEM_ADD
  1234.  
  1235.     { POINT_NONE,       },              // 77 사용시 HP 소모 APPLY_EXTRACT_HP_PCT
  1236.  
  1237.     { POINT_RESIST_WARRIOR,     },      // 78 무사에게 저항 APPLY_RESIST_WARRIOR
  1238.     { POINT_RESIST_ASSASSIN,    },      // 79 자객에게 저항 APPLY_RESIST_ASSASSIN
  1239.     { POINT_RESIST_SURA,        },      // 80 수라에게 저항 APPLY_RESIST_SURA
  1240.     { POINT_RESIST_SHAMAN,      },      // 81 무당에게 저항 APPLY_RESIST_SHAMAN
  1241.     { POINT_ENERGY              },      // 82 기력
  1242.     { POINT_DEF_GRADE           },      // 83 방어력. DEF_GRADE_BONUS는 클라에서 두배로 보여지는 의도된 버그(...)가 있다.
  1243.     { POINT_COSTUME_ATTR_BONUS  },      // 84 코스튬에 붙은 속성에 대해서만 보너스를 주는 기력
  1244.     { POINT_MAGIC_ATT_BONUS_PER },          // 85 마법 공격력 +x%
  1245.     { POINT_MELEE_MAGIC_ATT_BONUS_PER       },          // 86 APPLY_MELEE_MAGIC_ATTBONUS_PER
  1246.     { POINT_RESIST_ICE,         },   // APPLY_RESIST_ICE,   87
  1247.     { POINT_RESIST_EARTH,       },   // APPLY_RESIST_EARTH, 88
  1248.     { POINT_RESIST_DARK,        },   // APPLY_RESIST_DARK,  89
  1249.     { POINT_RESIST_CRITICAL,        },   // APPLY_ANTI_CRITICAL_PCT,    90
  1250.     { POINT_RESIST_PENETRATE,       },   // APPLY_ANTI_PENETRATE_PCT,   91
  1251. };
  1252.  
  1253. const int aiItemMagicAttributePercentHigh[ITEM_ATTRIBUTE_MAX_LEVEL] =
  1254. {
  1255.     //25, 25, 40, 8, 2,
  1256.     30, 40, 20, 8, 2
  1257. };
  1258.  
  1259. const int aiItemMagicAttributePercentLow[ITEM_ATTRIBUTE_MAX_LEVEL] =
  1260. {
  1261.     //45, 25, 20, 10, 0,
  1262.     50, 40, 10, 0, 0
  1263. };
  1264.  
  1265. // ADD_ITEM_ATTRIBUTE
  1266. const int aiItemAttributeAddPercent[ITEM_ATTRIBUTE_MAX_NUM] =
  1267. {
  1268.     100, 80, 60, 50, 30, 0, 0,
  1269. };
  1270. // END_OF_ADD_ITEM_ATTRIBUTE
  1271.  
  1272. const int aiExpLossPercents[PLAYER_EXP_TABLE_MAX + 1] =
  1273. {
  1274.     0,
  1275.     5, 5, 5, 5, 5, 5, 5, 5, 5, 4, // 1 - 10
  1276.     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, // 11 - 20
  1277.     4, 4, 4, 4, 4, 4, 4, 3, 3, 3, // 21 - 30
  1278.     3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 31 - 40
  1279.     3, 3, 3, 3, 2, 2, 2, 2, 2, 2, // 41 - 50
  1280.     2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 51 - 60
  1281.     2, 2, 1, 1, 1, 1, 1, 1, 1, 1, // 61 - 70
  1282.     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 71 - 80
  1283.     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 81 - 90
  1284.     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 91 - 100
  1285.     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 101 - 110
  1286.     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 111 - 120
  1287. };
  1288.  
  1289. const int aiSkillBookCountForLevelUp[10] =
  1290. {
  1291.     3, 3, 3, 3, 3, 4, 4, 5, 5, 6
  1292. };
  1293.  
  1294. // ADD_GRANDMASTER_SKILL
  1295. const int aiGrandMasterSkillBookCountForLevelUp[10] =
  1296. {
  1297.     3, 3, 5, 5, 7, 7, 10, 10, 10, 20,
  1298. };
  1299.  
  1300. const int aiGrandMasterSkillBookMinCount[10] =
  1301. {
  1302. //  1, 1, 3, 5, 10, 15, 20, 30, 40, 50,
  1303. //  3, 3, 5, 5, 10, 10, 15, 15, 20, 30
  1304.     1, 1, 1, 2,  2,  3,  3,  4,  5,  6
  1305. };
  1306.  
  1307. const int aiGrandMasterSkillBookMaxCount[10] =
  1308. {
  1309. //  6, 15, 30, 45, 60, 80, 100, 120, 160, 200,
  1310. //  6, 10, 15, 20, 30, 40, 50, 60, 70, 80
  1311.     5,  7,  9, 11, 13, 15, 20, 25, 30, 35
  1312. };
  1313. // END_OF_ADD_GRANDMASTER_SKILL
  1314.  
  1315. const int CHN_aiPartyBonusExpPercentByMemberCount[9] =
  1316. {
  1317.     0, 0, 12, 18, 26, 40, 53, 70, 100
  1318. };
  1319.  
  1320.  
  1321. // UPGRADE_PARTY_BONUS
  1322. const int KOR_aiPartyBonusExpPercentByMemberCount[9] =
  1323. {
  1324.     0,
  1325.     0,
  1326.     30, // 66% * 2 - 100  
  1327.     60, // 53% * 3 - 100
  1328.     75, // 44% * 4 - 100
  1329.     90, // 38% * 5 - 100
  1330.     105, // 34% * 6 - 100
  1331.     110, // 30% * 7 - 100
  1332.     140, // 30% * 8 - 100
  1333. };
  1334.  
  1335. const int KOR_aiUniqueItemPartyBonusExpPercentByMemberCount[9] =
  1336. {
  1337.     0,
  1338.     0,
  1339.     15*2,
  1340.     14*3,
  1341.     13*4,
  1342.     12*5,
  1343.     11*6,
  1344.     10*7,
  1345.     10*8,
  1346. };
  1347. // END_OF_UPGRADE_PARTY_BONUS
  1348.  
  1349. const int * aiChainLightningCountBySkillLevel = NULL;
  1350.  
  1351. const int aiChainLightningCountBySkillLevel_euckr[SKILL_MAX_LEVEL+1] =
  1352. {
  1353.     0// 0
  1354.     2// 1
  1355.     2// 2
  1356.     2// 3
  1357.     2// 4
  1358.     2// 5
  1359.     2// 6
  1360.     2// 7
  1361.     2// 8
  1362.     3// 9
  1363.     3// 10
  1364.     3// 11
  1365.     3// 12
  1366.     3// 13
  1367.     3// 14
  1368.     3// 15
  1369.     3// 16
  1370.     3// 17
  1371.     3// 18
  1372.     4// 19
  1373.     4// 20
  1374.     4// 21
  1375.     4// 22
  1376.     4// 23
  1377.     5// 24
  1378.     5// 25
  1379.     5// 26
  1380.     5// 27
  1381.     5// 28
  1382.     5// 29
  1383.     5// 30
  1384.     5// 31
  1385.     5// 32
  1386.     5// 33
  1387.     5// 34
  1388.     5// 35
  1389.     5// 36
  1390.     5// 37
  1391.     5// 38
  1392.     5// 39
  1393.     5// 40
  1394. };
  1395.  
  1396. const SStoneDropInfo aStoneDrop[STONE_INFO_MAX_NUM] =
  1397. {
  1398.     //  mob     pct {+0 +1  +2  +3  +4}
  1399.     {800560, {30,    30, 30, 91}  },
  1400.     {800660, {28,    29, 31, 11, 1}  },
  1401.     {800760, {24,    29, 32, 13, 2}  },
  1402.     {800860, {22,    28, 33, 15, 2}  },
  1403.     {800960, {21,    27, 33, 17, 2}  },
  1404.     {801060, {18,    26, 34, 20, 2}  },
  1405.     {801160, {14,    26, 35, 22, 3}  },
  1406.     {801260, {10,    26, 37, 24, 3}  },
  1407.     {801360, {2, 26, 40, 29, 3}  },
  1408.     {801460, {0, 26, 41, 30, 3}  },
  1409. };
  1410.  
  1411. const char * c_apszEmpireNames[EMPIRE_MAX_NUM] =
  1412. {
  1413.     "전제국",
  1414.     "신수국",
  1415.     "천조국",
  1416.     "진노국"
  1417. };
  1418.  
  1419. const char * c_apszPrivNames[MAX_PRIV_NUM] =
  1420. {
  1421.     "",
  1422.     "아이템이 나올 확률",
  1423.     "돈이 나올 확률",
  1424.     "돈 대박이 나올 확률",
  1425.     "경험치 배율",
  1426. };
  1427.  
  1428. const int aiPolymorphPowerByLevel[SKILL_MAX_LEVEL + 1] =
  1429. {
  1430.     10,   // 1
  1431.     11,   // 2
  1432.     11,   // 3
  1433.     12,   // 4
  1434.     13,   // 5
  1435.     13,   // 6
  1436.     14,   // 7
  1437.     15,   // 8
  1438.     16,   // 9
  1439.     17,   // 10
  1440.     18,   // 11
  1441.     19,   // 12
  1442.     20,   // 13
  1443.     22,   // 14
  1444.     23,   // 15
  1445.     24,   // 16
  1446.     26,   // 17
  1447.     27,   // 18
  1448.     29,   // 19
  1449.     31,   // 20
  1450.     33,   // 21
  1451.     35,   // 22
  1452.     37,   // 23
  1453.     39,   // 24
  1454.     41,   // 25
  1455.     44,   // 26
  1456.     46,   // 27
  1457.     49,   // 28
  1458.     52,   // 29
  1459.     55,   // 30
  1460.     59,   // 31
  1461.     62,   // 32
  1462.     66,   // 33
  1463.     70,   // 34
  1464.     74,   // 35
  1465.     79,   // 36
  1466.     84,   // 37
  1467.     89,   // 38
  1468.     94,   // 39
  1469.     100,  // 40
  1470. };
  1471.  
  1472. TGuildWarInfo KOR_aGuildWarInfo[GUILD_WAR_TYPE_MAX_NUM] =
  1473. /*
  1474.    {
  1475.    long lMapIndex;
  1476.    int iWarPrice;
  1477.    int iWinnerPotionRewardPctToWinner;
  1478.    int iLoserPotionRewardPctToWinner;
  1479.    int iInitialScore;
  1480.    int iEndScore;
  1481.    };
  1482.  */
  1483. {
  1484.     { 0,        0,      0,      0,      0,      0       },
  1485.     { 110,      0,      100,    50,     0,      100     },
  1486.     { 111,      0,      100,    50,     0,      10      },
  1487. };
  1488.  
  1489. //
  1490. // 악세서리 소켓용 수치들
  1491. //
  1492.  
  1493. // 다이아몬드로 소켓을 추가할 때 확률
  1494. const int aiAccessorySocketAddPct[ITEM_ACCESSORY_SOCKET_MAX_NUM] =
  1495. {
  1496.     50, 50, 50
  1497. };
  1498.  
  1499. // 악세서리 수치 값의 몇%만큼의 성능을 추가하는지
  1500. const int aiAccessorySocketEffectivePct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] =
  1501. {
  1502.     0, 10, 20, 40
  1503. };
  1504.  
  1505. // 소켓 지속시간 24, 12, 6
  1506. const int aiAccessorySocketDegradeTime[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] =
  1507. {
  1508.     0, 3600 * 24, 3600 * 12, 3600 * 6
  1509. };
  1510.  
  1511. // 소켓 장착 성공률
  1512. const int aiAccessorySocketPutPct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1] =
  1513. {
  1514.     90, 80, 70, 0
  1515. };
  1516. // END_OF_ACCESSORY_REFINE
  1517.  
  1518. #include "../../common/length.h"
  1519. // from import_item_proto.c
  1520. typedef struct SValueName
  1521. {
  1522.     const char *    c_pszName;
  1523.     long        lValue;
  1524. } TValueName;
  1525.  
  1526. TValueName c_aApplyTypeNames[] =
  1527. {
  1528.     { "STR",        APPLY_STR       },
  1529.     { "DEX",        APPLY_DEX       },
  1530.     { "CON",        APPLY_CON       },
  1531.     { "INT",        APPLY_INT       },
  1532.     { "MAX_HP",     APPLY_MAX_HP        },
  1533.     { "MAX_SP",     APPLY_MAX_SP        },
  1534.     { "MAX_STAMINA",    APPLY_MAX_STAMINA   },
  1535.     { "POISON_REDUCE",  APPLY_POISON_REDUCE },
  1536.     { "EXP_DOUBLE_BONUS", APPLY_EXP_DOUBLE_BONUS },
  1537.     { "GOLD_DOUBLE_BONUS", APPLY_GOLD_DOUBLE_BONUS },
  1538.     { "ITEM_DROP_BONUS", APPLY_ITEM_DROP_BONUS  },
  1539.     { "HP_REGEN",   APPLY_HP_REGEN      },
  1540.     { "SP_REGEN",   APPLY_SP_REGEN      },
  1541.     { "ATTACK_SPEED",   APPLY_ATT_SPEED     },
  1542.     { "MOVE_SPEED", APPLY_MOV_SPEED     },
  1543.     { "CAST_SPEED", APPLY_CAST_SPEED    },
  1544.     { "ATT_BONUS",  APPLY_ATT_GRADE_BONUS   },
  1545.     { "DEF_BONUS",  APPLY_DEF_GRADE_BONUS   },
  1546.     { "MAGIC_ATT_GRADE",APPLY_MAGIC_ATT_GRADE   },
  1547.     { "MAGIC_DEF_GRADE",APPLY_MAGIC_DEF_GRADE   },
  1548.     { "SKILL",      APPLY_SKILL     },
  1549.     { "ATTBONUS_ANIMAL",APPLY_ATTBONUS_ANIMAL   },
  1550.     { "ATTBONUS_UNDEAD",APPLY_ATTBONUS_UNDEAD   },
  1551.     { "ATTBONUS_DEVIL", APPLY_ATTBONUS_DEVIL    },
  1552.     { "ATTBONUS_HUMAN", APPLY_ATTBONUS_HUMAN    },
  1553.     { "ADD_BOW_DISTANCE",APPLY_BOW_DISTANCE },
  1554.     { "DODGE",      APPLY_DODGE     },
  1555.     { "BLOCK",      APPLY_BLOCK     },
  1556.     { "RESIST_SWORD",   APPLY_RESIST_SWORD  },
  1557.     { "RESIST_TWOHAND", APPLY_RESIST_TWOHAND    },
  1558.     { "RESIST_DAGGER",  APPLY_RESIST_DAGGER    },
  1559.     { "RESIST_BELL",    APPLY_RESIST_BELL   },
  1560.     { "RESIST_FAN", APPLY_RESIST_FAN    },
  1561.     { "RESIST_BOW", APPLY_RESIST_BOW    },
  1562.     { "RESIST_FIRE",    APPLY_RESIST_FIRE   },
  1563.     { "RESIST_ELEC",    APPLY_RESIST_ELEC   },
  1564.     { "RESIST_MAGIC",   APPLY_RESIST_MAGIC  },
  1565.     { "RESIST_WIND",    APPLY_RESIST_WIND   },
  1566.     { "REFLECT_MELEE",  APPLY_REFLECT_MELEE },
  1567.     { "REFLECT_CURSE",  APPLY_REFLECT_CURSE },
  1568.     { "RESIST_ICE",     APPLY_RESIST_ICE    },
  1569.     { "RESIST_EARTH",   APPLY_RESIST_EARTH  },
  1570.     { "RESIST_DARK",    APPLY_RESIST_DARK   },
  1571.     { "RESIST_CRITICAL",    APPLY_ANTI_CRITICAL_PCT },
  1572.     { "RESIST_PENETRATE",   APPLY_ANTI_PENETRATE_PCT    },
  1573.     { "POISON",     APPLY_POISON_PCT    },
  1574.     { "SLOW",       APPLY_SLOW_PCT      },
  1575.     { "STUN",       APPLY_STUN_PCT      },
  1576.     { "STEAL_HP",   APPLY_STEAL_HP      },
  1577.     { "STEAL_SP",   APPLY_STEAL_SP      },
  1578.     { "MANA_BURN_PCT",  APPLY_MANA_BURN_PCT },
  1579.     { "CRITICAL",   APPLY_CRITICAL_PCT  },
  1580.     { "PENETRATE",  APPLY_PENETRATE_PCT },
  1581.     { "KILL_SP_RECOVER",APPLY_KILL_SP_RECOVER   },
  1582.     { "KILL_HP_RECOVER",APPLY_KILL_HP_RECOVER   },
  1583.     { "PENETRATE_PCT",  APPLY_PENETRATE_PCT },
  1584.     { "CRITICAL_PCT",   APPLY_CRITICAL_PCT  },
  1585.     { "POISON_PCT", APPLY_POISON_PCT    },
  1586.     { "STUN_PCT",   APPLY_STUN_PCT      },
  1587.     { "ATT_BONUS_TO_WARRIOR",   APPLY_ATTBONUS_WARRIOR  },
  1588.     { "ATT_BONUS_TO_ASSASSIN",  APPLY_ATTBONUS_ASSASSIN },
  1589.     { "ATT_BONUS_TO_SURA",  APPLY_ATTBONUS_SURA     },
  1590.     { "ATT_BONUS_TO_SHAMAN",    APPLY_ATTBONUS_SHAMAN   },
  1591.     { "ATT_BONUS_TO_MONSTER",   APPLY_ATTBONUS_MONSTER  },
  1592.     { "ATT_BONUS_TO_MOB",   APPLY_ATTBONUS_MONSTER  },
  1593.     { "MALL_ATTBONUS",  APPLY_MALL_ATTBONUS },
  1594.     { "MALL_EXPBONUS",  APPLY_MALL_EXPBONUS },
  1595.     { "MALL_DEFBONUS",  APPLY_MALL_DEFBONUS },  
  1596.     { "MALL_ITEMBONUS", APPLY_MALL_ITEMBONUS    },
  1597.     { "MALL_GOLDBONUS", APPLY_MALL_GOLDBONUS    },
  1598.     { "MAX_HP_PCT", APPLY_MAX_HP_PCT    },
  1599.     { "MAX_SP_PCT", APPLY_MAX_SP_PCT    },
  1600.     { "SKILL_DAMAGE_BONUS", APPLY_SKILL_DAMAGE_BONUS    },
  1601.     { "NORMAL_HIT_DAMAGE_BONUS",APPLY_NORMAL_HIT_DAMAGE_BONUS   },
  1602.     { "SKILL_DEFEND_BONUS", APPLY_SKILL_DEFEND_BONUS    },
  1603.     { "NORMAL_HIT_DEFEND_BONUS",APPLY_NORMAL_HIT_DEFEND_BONUS   },
  1604.     { "PCBANG_EXP_BONUS", APPLY_PC_BANG_EXP_BONUS   },
  1605.     { "PCBANG_DROP_BONUS", APPLY_PC_BANG_DROP_BONUS },
  1606.  
  1607.     { "RESIST_WARRIOR", APPLY_RESIST_WARRIOR},
  1608.     { "RESIST_ASSASSIN",    APPLY_RESIST_ASSASSIN},
  1609.     { "RESIST_SURA",        APPLY_RESIST_SURA},
  1610.     { "RESIST_SHAMAN",  APPLY_RESIST_SHAMAN},
  1611.     // by mhh game/affect.h 정의되어있음. INFINITE_AFFECT_DURATION = 0x1FFFFFFF
  1612.     { "INFINITE_AFFECT_DURATION", 0x1FFFFFFF    },
  1613.     { "ENERGY", APPLY_ENERGY },     //  기력
  1614.     { "COSTUME_ATTR_BONUS", APPLY_COSTUME_ATTR_BONUS },     //  기력
  1615.     { "MAGIC_ATTBONUS_PER", APPLY_MAGIC_ATTBONUS_PER    },
  1616.     { "MELEE_MAGIC_ATTBONUS_PER",   APPLY_MELEE_MAGIC_ATTBONUS_PER  },
  1617.    
  1618.     { NULL,     0           }
  1619. };
  1620. // from import_item_proto.c
  1621.  
  1622. long FN_get_apply_type(const char *apply_type_string)
  1623. {
  1624.     TValueName  *value_name;
  1625.     for (value_name = c_aApplyTypeNames; value_name->c_pszName; ++value_name)
  1626.     {
  1627.         if (0==strcasecmp(value_name->c_pszName, apply_type_string))
  1628.             return value_name->lValue;
  1629.     }
  1630.     return 0;
  1631. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement