base init
This commit is contained in:
190
src/game/constants.h
Normal file
190
src/game/constants.h
Normal file
@@ -0,0 +1,190 @@
|
||||
#ifndef __INC_METIN_II_GAME_CONSTANTS_H__
|
||||
#define __INC_METIN_II_GAME_CONSTANTS_H__
|
||||
|
||||
#include "../../common/tables.h"
|
||||
|
||||
enum EMonsterChatState
|
||||
{
|
||||
MONSTER_CHAT_WAIT,
|
||||
MONSTER_CHAT_ATTACK,
|
||||
MONSTER_CHAT_CHASE,
|
||||
MONSTER_CHAT_ATTACKED,
|
||||
};
|
||||
|
||||
typedef struct SMobRankStat
|
||||
{
|
||||
int iGoldPercent; // µ·ÀÌ ³ª¿Ã È®·ü
|
||||
} TMobRankStat;
|
||||
|
||||
typedef struct SMobStat
|
||||
{
|
||||
BYTE byLevel;
|
||||
WORD HP;
|
||||
DWORD dwExp;
|
||||
WORD wDefGrade;
|
||||
} TMobStat;
|
||||
|
||||
typedef struct SBattleTypeStat
|
||||
{
|
||||
int AttGradeBias;
|
||||
int DefGradeBias;
|
||||
int MagicAttGradeBias;
|
||||
int MagicDefGradeBias;
|
||||
} TBattleTypeStat;
|
||||
|
||||
typedef struct SJobInitialPoints
|
||||
{
|
||||
int st, ht, dx, iq;
|
||||
int max_hp, max_sp;
|
||||
int hp_per_ht, sp_per_iq;
|
||||
int hp_per_lv_begin, hp_per_lv_end;
|
||||
int sp_per_lv_begin, sp_per_lv_end;
|
||||
int max_stamina;
|
||||
int stamina_per_con;
|
||||
int stamina_per_lv_begin, stamina_per_lv_end;
|
||||
} TJobInitialPoints;
|
||||
|
||||
typedef struct __coord
|
||||
{
|
||||
int x, y;
|
||||
} Coord;
|
||||
|
||||
typedef struct SApplyInfo
|
||||
{
|
||||
BYTE bPointType; // APPLY -> POINT
|
||||
} TApplyInfo;
|
||||
|
||||
enum {
|
||||
FORTUNE_BIG_LUCK,
|
||||
FORTUNE_LUCK,
|
||||
FORTUNE_SMALL_LUCK,
|
||||
FORTUNE_NORMAL,
|
||||
FORTUNE_SMALL_BAD_LUCK,
|
||||
FORTUNE_BAD_LUCK,
|
||||
FORTUNE_BIG_BAD_LUCK,
|
||||
FORTUNE_MAX_NUM,
|
||||
};
|
||||
|
||||
const int STONE_INFO_MAX_NUM = 10;
|
||||
const int STONE_LEVEL_MAX_NUM = 4;
|
||||
|
||||
struct SStoneDropInfo
|
||||
{
|
||||
DWORD dwMobVnum;
|
||||
int iDropPct;
|
||||
int iLevelPct[STONE_LEVEL_MAX_NUM+1];
|
||||
};
|
||||
|
||||
inline bool operator < (const SStoneDropInfo& l, DWORD r)
|
||||
{
|
||||
return l.dwMobVnum < r;
|
||||
}
|
||||
|
||||
inline bool operator < (DWORD l, const SStoneDropInfo& r)
|
||||
{
|
||||
return l < r.dwMobVnum;
|
||||
}
|
||||
|
||||
inline bool operator < (const SStoneDropInfo& l, const SStoneDropInfo& r)
|
||||
{
|
||||
return l.dwMobVnum < r.dwMobVnum;
|
||||
}
|
||||
|
||||
extern const TApplyInfo aApplyInfo[MAX_APPLY_NUM];
|
||||
extern const TMobRankStat MobRankStats[MOB_RANK_MAX_NUM];
|
||||
|
||||
extern TBattleTypeStat BattleTypeStats[BATTLE_TYPE_MAX_NUM];
|
||||
|
||||
extern const DWORD party_exp_distribute_table[PLAYER_MAX_LEVEL_CONST + 1];
|
||||
|
||||
extern const DWORD exp_table_euckr[PLAYER_EXP_TABLE_MAX + 1];
|
||||
extern const DWORD exp_table_common[PLAYER_EXP_TABLE_MAX + 1];
|
||||
extern const DWORD exp_table_newcibn[PLAYER_EXP_TABLE_MAX + 1];
|
||||
|
||||
extern const DWORD* exp_table;
|
||||
|
||||
extern const DWORD guild_exp_table[GUILD_MAX_LEVEL + 1];
|
||||
extern const DWORD guild_exp_table2[GUILD_MAX_LEVEL + 1];
|
||||
|
||||
#define MAX_EXP_DELTA_OF_LEV 31
|
||||
#define PERCENT_LVDELTA(me, victim) aiPercentByDeltaLev[MINMAX(0, (victim + 15) - me, MAX_EXP_DELTA_OF_LEV - 1)]
|
||||
#define PERCENT_LVDELTA_BOSS(me, victim) aiPercentByDeltaLevForBoss[MINMAX(0, (victim + 15) - me, MAX_EXP_DELTA_OF_LEV - 1)]
|
||||
#define CALCULATE_VALUE_LVDELTA(me, victim, val) ((val * PERCENT_LVDELTA(me, victim)) / 100)
|
||||
extern const int aiPercentByDeltaLev_euckr[MAX_EXP_DELTA_OF_LEV];
|
||||
extern const int aiPercentByDeltaLevForBoss_euckr[MAX_EXP_DELTA_OF_LEV];
|
||||
extern const int * aiPercentByDeltaLev;
|
||||
extern const int * aiPercentByDeltaLevForBoss;
|
||||
|
||||
#define ARROUND_COORD_MAX_NUM 161
|
||||
extern Coord aArroundCoords[ARROUND_COORD_MAX_NUM];
|
||||
extern TJobInitialPoints JobInitialPoints[JOB_MAX_NUM];
|
||||
|
||||
extern const int aiMobEnchantApplyIdx[MOB_ENCHANTS_MAX_NUM];
|
||||
extern const int aiMobResistsApplyIdx[MOB_RESISTS_MAX_NUM];
|
||||
|
||||
extern const int aSkillAttackAffectProbByRank[MOB_RANK_MAX_NUM];
|
||||
|
||||
extern const int aiItemMagicAttributePercentHigh[ITEM_ATTRIBUTE_MAX_LEVEL]; // 1°³±îÁö
|
||||
extern const int aiItemMagicAttributePercentLow[ITEM_ATTRIBUTE_MAX_LEVEL];
|
||||
|
||||
extern const int aiItemAttributeAddPercent[ITEM_ATTRIBUTE_MAX_NUM];
|
||||
|
||||
extern const int aiWeaponSocketQty[WEAPON_NUM_TYPES];
|
||||
extern const int aiArmorSocketQty[ARMOR_NUM_TYPES];
|
||||
extern const int aiSocketPercentByQty[5][4];
|
||||
|
||||
extern const int aiExpLossPercents[PLAYER_EXP_TABLE_MAX + 1];
|
||||
|
||||
extern const int * aiSkillPowerByLevel;
|
||||
extern const int aiSkillPowerByLevel_euckr[SKILL_MAX_LEVEL + 1];
|
||||
|
||||
extern const int aiPolymorphPowerByLevel[SKILL_MAX_LEVEL + 1];
|
||||
|
||||
extern const int aiSkillBookCountForLevelUp[10];
|
||||
extern const int aiGrandMasterSkillBookCountForLevelUp[10];
|
||||
extern const int aiGrandMasterSkillBookMinCount[10];
|
||||
extern const int aiGrandMasterSkillBookMaxCount[10];
|
||||
extern const int CHN_aiPartyBonusExpPercentByMemberCount[9];
|
||||
extern const int KOR_aiPartyBonusExpPercentByMemberCount[9];
|
||||
extern const int KOR_aiUniqueItemPartyBonusExpPercentByMemberCount[9];
|
||||
|
||||
typedef std::map<DWORD, TItemAttrTable> TItemAttrMap;
|
||||
extern TItemAttrMap g_map_itemAttr;
|
||||
extern TItemAttrMap g_map_itemRare;
|
||||
|
||||
extern const int * aiChainLightningCountBySkillLevel;
|
||||
extern const int aiChainLightningCountBySkillLevel_euckr[SKILL_MAX_LEVEL + 1];
|
||||
|
||||
extern const char * c_apszEmpireNames[EMPIRE_MAX_NUM];
|
||||
extern const char * c_apszPrivNames[MAX_PRIV_NUM];
|
||||
extern const SStoneDropInfo aStoneDrop[STONE_INFO_MAX_NUM];
|
||||
|
||||
typedef struct
|
||||
{
|
||||
long lMapIndex;
|
||||
int iWarPrice;
|
||||
int iWinnerPotionRewardPctToWinner;
|
||||
int iLoserPotionRewardPctToWinner;
|
||||
int iInitialScore;
|
||||
int iEndScore;
|
||||
} TGuildWarInfo;
|
||||
|
||||
extern TGuildWarInfo KOR_aGuildWarInfo[GUILD_WAR_TYPE_MAX_NUM];
|
||||
|
||||
// ACCESSORY_REFINE
|
||||
enum
|
||||
{
|
||||
ITEM_ACCESSORY_SOCKET_MAX_NUM = 3
|
||||
};
|
||||
|
||||
extern const int aiAccessorySocketAddPct[ITEM_ACCESSORY_SOCKET_MAX_NUM];
|
||||
extern const int aiAccessorySocketEffectivePct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1];
|
||||
extern const int aiAccessorySocketDegradeTime[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1];
|
||||
extern const int aiAccessorySocketPutPct[ITEM_ACCESSORY_SOCKET_MAX_NUM + 1];
|
||||
long FN_get_apply_type(const char *apply_type_string);
|
||||
|
||||
// END_OF_ACCESSORY_REFINE
|
||||
|
||||
long FN_get_apply_type(const char *apply_type_string);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user