Advertisement
Guest User

Untitled

a guest
Jan 12th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.46 KB | None | 0 0
  1. #ifndef __INC_METIN_II_GAME_CONSTANTS_H__
  2. #define __INC_METIN_II_GAME_CONSTANTS_H__
  3.  
  4. #include "../../common/tables.h"
  5.  
  6. enum EMonsterChatState
  7. {
  8. MONSTER_CHAT_WAIT,
  9. MONSTER_CHAT_ATTACK,
  10. MONSTER_CHAT_CHASE,
  11. MONSTER_CHAT_ATTACKED,
  12. };
  13.  
  14. typedef struct SMobRankStat
  15. {
  16. int iGoldPercent; // µ·ÀÌ ³ª¿Ã È®·ü
  17. } TMobRankStat;
  18.  
  19. typedef struct SMobStat
  20. {
  21. BYTE byLevel;
  22. WORD HP;
  23. DWORD dwExp;
  24. WORD wDefGrade;
  25. } TMobStat;
  26.  
  27. typedef struct SBattleTypeStat
  28. {
  29. int AttGradeBias;
  30. int DefGradeBias;
  31. int MagicAttGradeBias;
  32. int MagicDefGradeBias;
  33. } TBattleTypeStat;
  34.  
  35. typedef struct SJobInitialPoints
  36. {
  37. int st, ht, dx, iq;
  38. int max_hp, max_sp;
  39. int hp_per_ht, sp_per_iq;
  40. int hp_per_lv_begin, hp_per_lv_end;
  41. int sp_per_lv_begin, sp_per_lv_end;
  42. int max_stamina;
  43. int stamina_per_con;
  44. int stamina_per_lv_begin, stamina_per_lv_end;
  45. } TJobInitialPoints;
  46.  
  47. typedef struct __coord
  48. {
  49. int x, y;
  50. } Coord;
  51.  
  52. typedef struct SApplyInfo
  53. {
  54. BYTE bPointType; // APPLY -> POINT
  55. } TApplyInfo;
  56.  
  57. enum {
  58. FORTUNE_BIG_LUCK,
  59. FORTUNE_LUCK,
  60. FORTUNE_SMALL_LUCK,
  61. FORTUNE_NORMAL,
  62. FORTUNE_SMALL_BAD_LUCK,
  63. FORTUNE_BAD_LUCK,
  64. FORTUNE_BIG_BAD_LUCK,
  65. FORTUNE_MAX_NUM,
  66. };
  67.  
  68. const int STONE_INFO_MAX_NUM = 10;
  69. const int STONE_LEVEL_MAX_NUM = 4;
  70.  
  71. struct SStoneDropInfo
  72. {
  73. DWORD dwMobVnum;
  74. int iDropPct;
  75. int iLevelPct[STONE_LEVEL_MAX_NUM+1];
  76. };
  77.  
  78. inline bool operator < (const SStoneDropInfo& l, DWORD r)
  79. {
  80. return l.dwMobVnum < r;
  81. }
  82.  
  83. inline bool operator < (DWORD l, const SStoneDropInfo& r)
  84. {
  85. return l < r.dwMobVnum;
  86. }
  87.  
  88. inline bool operator < (const SStoneDropInfo& l, const SStoneDropInfo& r)
  89. {
  90. return l.dwMobVnum < r.dwMobVnum;
  91. }
  92.  
  93. extern const TApplyInfo aApplyInfo[MAX_APPLY_NUM];
  94. extern const TMobRankStat MobRankStats[MOB_RANK_MAX_NUM];
  95.  
  96. extern TBattleTypeStat BattleTypeStats[BATTLE_TYPE_MAX_NUM];
  97.  
  98. extern const DWORD party_exp_distribute_table
  99.  
  100. extern const DWORD exp_table_newcibn[PLAYER_EXP_TABLE_MAX + 1];
  101. #ifdef ENABLE_SUPPORT_SYSTEM
  102. extern const DWORD exp_support_table[121];
  103. #endif
  104.  
  105. extern const DWORD exp_table_common[PLAYER_MAX_LEVEL_CONST + 1];
  106.  
  107. extern const DWORD* exp_table;
  108.  
  109. extern const DWORD guild_exp_table[GUILD_MAX_LEVEL + 1];
  110. extern const DWORD guild_exp_table2[GUILD_MAX_LEVEL + 1];
  111.  
  112. #define MAX_EXP_DELTA_OF_LEV 31
  113. #define PERCENT_LVDELTA(me, victim) aiPercentByDeltaLev[MINMAX(0, (victim + 15) - me, MAX_EXP_DELTA_OF_LEV - 1)]
  114. #define PERCENT_LVDELTA_BOSS(me, victim) aiPercentByDeltaLevForBoss[MINMAX(0, (victim + 15) - me, MAX_EXP_DELTA_OF_LEV - 1)]
  115. #define CALCULATE_VALUE_LVDELTA(me, victim, val) ((val * PERCENT_LVDELTA(me, victim)) / 100)
  116. extern const int aiPercentByDeltaLev_euckr[MAX_EXP_DELTA_OF_LEV];
  117. extern const int aiPercentByDeltaLevForBoss_euckr[MAX_EXP_DELTA_OF_LEV];
  118. extern const int * aiPercentByDeltaLev;
  119. extern const int * aiPercentByDeltaLevForBoss;
  120.  
  121. #define ARROUND_COORD_MAX_NUM 161
  122. extern Coord aArroundCoords[ARROUND_COORD_MAX_NUM];
  123. extern TJobInitialPoints JobInitialPoints[JOB_MAX_NUM];
  124.  
  125. extern const int aiMobEnchantApplyIdx[MOB_ENCHANTS_MAX_NUM];
  126. extern const int aiMobResistsApplyIdx[MOB_RESISTS_MAX_NUM];
  127.  
  128. extern const int aSkillAttackAffectProbByRank[MOB_RANK_MAX_NUM];
  129.  
  130. extern const int aiItemMagicAttributePercentHigh[ITEM_ATTRIBUTE_MAX_LEVEL]; // 1°³±îÁö
  131. extern const int aiItemMagicAttributePercentLow[ITEM_ATTRIBUTE_MAX_LEVEL];
  132.  
  133. extern const int aiItemAttributeAddPercent[ITEM_ATTRIBUTE_MAX_NUM];
  134.  
  135. extern const int aiWeaponSocketQty[WEAPON_NUM_TYPES];
  136. extern const int aiArmorSocketQty[ARMOR_NUM_TYPES];
  137. extern const int aiSocketPercentByQty[5][4];
  138.  
  139. extern const int aiExpLossPercents[PLAYER_EXP_TABLE_MAX + 1];
  140.  
  141. extern const int * aiSkillPowerByLevel;
  142. extern const int aiSkillPowerByLevel_euckr[SKILL_MAX_LEVEL + 1];
  143.  
  144. extern const int aiPolymorphPowerByLevel[SKILL_MAX_LEVEL + 1];
  145.  
  146. extern const int aiSkillBookCountForLevelUp[10];
  147. extern const int aiGrandMasterSkillBookCountForLevelUp[10];
  148. extern const int aiGrandMasterSkillBookMinCount[10];
  149. extern const int aiGrandMasterSkillBookMaxCount[10];
  150. extern const int CHN_aiPartyBonusExpPercentByMemberCount[9];
  151. extern const int KOR_aiPartyBonusExpPercentByMemberCount[9];
  152. extern const int KOR_aiUniqueItemPartyBonusExpPercentByMemberCount[9];
  153.  
  154. typedef std::map<DWORD, TItemAttrTable> TItemAttrMap;
  155. extern TItemAttrMap g_map_itemAttr;
  156. extern TItemAttrMap g_map_itemRare;
  157.  
  158. extern const int * aiChainLightningCountBySkillLevel;
  159. extern const int aiChainLightningCountBySkillLevel_euckr[SKILL_MAX_LEVEL + 1];
  160.  
  161. extern const char * c_apszEmpireNames[EMPIRE_MAX_NUM];
  162. extern const char * c_apszPrivNames[MAX_PRIV_NUM];
  163. extern const SStoneDropInfo aStoneDrop[STONE_INFO_MAX_NUM];
  164.  
  165. typedef struct
  166. {
  167. long lMapIndex;
  168. int iWarPrice;
  169. int iWinnerPotionRewardPctToWinner;
  170. int iLoserPotionRewardPctToWinner;
  171. int iInitialScore;
  172. int iEndScore;
  173. } TGuildWarInfo;
  174.  
  175. extern TGuildWarInfo KOR_aGuildWarInfo[GUILD_WAR_TYPE_MAX_NUM];
  176.  
  177. // ACCESSORY_REFINE
  178. enum
  179. {
  180. ITEM_ACCESSORY_SOCKET_MAX_NUM = 3
  181. };
  182.  
  183. extern const int aiAccessorySocketAddPct[ITEM_ACCESSORY_SOCKET_MAX_NUM];
  184. extern const int aiAccessorySocketEffectivePct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1];
  185. extern const int aiAccessorySocketDegradeTime[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1];
  186. extern const int aiAccessorySocketPutPct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1];
  187. long FN_get_apply_type(const char *apply_type_string);
  188.  
  189. // END_OF_ACCESSORY_REFINE
  190.  
  191. long FN_get_apply_type(const char *apply_type_string);
  192. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement