📄 gameresourcestruct.h
字号:
#ifndef __GAMERESOURCESTRUCT_H__
#define __GAMERESOURCESTRUCT_H__
class ITEM_MIX_INFO;
class ITEM_MIX_RES;
class ITEM_MIX_MATERIAL;
class CSkillInfo;
//-----------------------------------------------------------------------
// Á÷¾÷º° ±âº» Æ÷ÀÎÆ® ¼öÄ¡¿Í ·¹º§¾÷½Ã Æ÷ÀÎÅÍ °¡ÁßÄ¡
//-----------------------------------------------------------------------
struct CharBasicStats
{
WORD wGenGol; // ±Ù°ñ
WORD wMinChub; // ¹Îø
WORD wCheRyuk; // ü·Â
WORD wSimMek; // ½É¸Æ
//»õ·Î¿î ±âȹ ¼öÁ¤À¸·Î ¾ø¾îÁü
//BYTE BonusPoint; // º¸³Ê½º Æ÷ÀÎÆ® general-15
};
class RECALLINFO
{
public:
DWORD RecallType;
DWORD RecallID;
DWORD RecallMonsterNum;
DWORD RecallRange;
};
class ATTACKPATTERNINFO
{
public:
WORD AttackPatternNum;
WORD * AttackPattern; // 0->1->2->2->1->....
};
class CAttackPatternInfo
{
public:
ATTACKPATTERNINFO * pAttackPatternInfo;
virtual ~CAttackPatternInfo()
{
delete [] pAttackPatternInfo;
}
void Init(WORD wTotalNum)
{
MaxAttackNum = wTotalNum;
pAttackPatternInfo = new ATTACKPATTERNINFO[MaxAttackNum];
memset(pAttackPatternInfo, 0, sizeof(ATTACKPATTERNINFO)*MaxAttackNum);
}
void InitPattern(WORD PNum, WORD wTotalNum)
{
pAttackPatternInfo[PNum].AttackPatternNum = wTotalNum;
pAttackPatternInfo[PNum].AttackPattern = new WORD[wTotalNum];
memset(pAttackPatternInfo[PNum].AttackPattern, 0, sizeof(WORD)*wTotalNum);
}
void SetVal(WORD PNum, WORD PIdx, WORD PVal)
{
pAttackPatternInfo[PNum].AttackPattern[PIdx] = PVal;
}
WORD MaxAttackNum;
};
class CRecallInfo
{
public:
RECALLINFO * pRecallInfo;
CRecallInfo(){ memset(this, 0, sizeof(CRecallInfo)); }
virtual ~CRecallInfo()
{
if(pRecallInfo)
delete [] pRecallInfo;
}
void Init(DWORD nRecall)
{
MaxRecallNum = nRecall;
pRecallInfo = new RECALLINFO[MaxRecallNum];
memset(pRecallInfo, 0, sizeof(RECALLINFO)*MaxRecallNum);
}
RECALLINFO * GetRecallInfo(DWORD dwIdx)
{
ASSERT(dwIdx < MaxRecallNum);
return &pRecallInfo[dwIdx];
}
void SetRecallType(DWORD dwIdx, DWORD dwType)
{
pRecallInfo[dwIdx].RecallType = dwType;
}
void SetRecallID(DWORD dwIdx, DWORD dwID)
{
pRecallInfo[dwIdx].RecallID = dwID;
}
void SetRecallMonsterNum(DWORD dwIdx, DWORD dwNum)
{
pRecallInfo[dwIdx].RecallMonsterNum = dwNum;
}
void SetRecallRange(DWORD dwIdx, DWORD dwRange)
{
pRecallInfo[dwIdx].RecallRange = dwRange;
}
protected:
DWORD MaxRecallNum;
};
//-----------------------------------------------------------------------
// ¸ó½ºÅÍ ¸®½ºÆ® Á¤º¸
//-----------------------------------------------------------------------
class BASE_MONSTER_LIST
{
public:
WORD MonsterKind; // ¹øÈ£
char Name[17]; // ¸ó½ºÅÍÀ̸§
char EngName[17]; // ¿µ¾îÀ̸§
LEVELTYPE Level; // ¸ó½ºÅÍ·¹º§
int MoveDramaNum; // À̵¿¿¬Ãâ ¹øÈ£
DWORD MotionID;
char ChxName[32]; // ¸ó½ºÅÍ CHX_Index
float Scale; // ¸ó½ºÅÍ Å©±â
DWORD Gravity; // ¸ó½ºÅÍ ºñÁß
float Weight; // ¸ó½ºÅÍ ¹«°Ô
DWORD MonsterRadius;
DWORD Life; // »ý¸í·Â
DWORD Shield; // È£½Å°±â
EXPTYPE ExpPoint; // °æÇèÄ¡
WORD Tall; // Ű
WORD AttackPhysicalMin;// °ø°Ý ÃÖ¼Ò¹°¸® °ø°Ý·Â
WORD AttackPhysicalMax;// °ø°Ý ÃÖ´ë¹°¸® °ø°Ý·Â
WORD CriticalPercent;// Å©¸®Æ¼Äà ÆÛ¼¾Æ®
WORD PhysicalDefense;// ¹°¸® ¹æ¾î·Â
ATTRIBUTEREGIST AttribResist; // ¼Ó¼ºÀúÇ×·Â
WORD WalkMove;// ¸ó½ºÅͰȱâÀ̵¿·Â
WORD RunMove;// ¸ó½ºÅͶٱâÀ̵¿·Â
WORD RunawayMove;// ¸ó½ºÅ͵µ¸ÁÀ̵¿·Â
int Damage1DramaNum;// ¸ÂÀ½ 1 ¿¬Ãâ ¹øÈ£
int Die1DramaNum;// Á×À½ 1 ¿¬Ãâ ¹øÈ£
int Die2DramaNum;// Á×À½ 2 ¿¬Ãâ ¹øÈ£
DWORD StandTime;
BYTE StandRate;
BYTE WalkRate;
BYTE RunRate;
DWORD DomainRange; // ¿µ¿ª ¹üÀ§ : ¹ÝÁö¸§
DWORD PursuitForgiveTime;
// DWORD PursuitForgiveStartTime; //not inclue in txt list
DWORD PursuitForgiveDistance;
BOOL bForeAttack; // ¼±°ø°Ý
DWORD SearchPeriodicTime; // Ž»ö ÁÖ±â
WORD TargetSelect; // Ÿ°Ù ¼±Åà : FIND_CLOSE, FIND_FIRST
DWORD SearchRange;
DWORD SearchAngle;
WORD TargetChange;
WORD AttackKind;
DWORD AttackNum;
DWORD * AttackIndex;
DWORD * AttackRate;
CSkillInfo ** SkillInfo;
WORD InitHelpType; // 0 : no request, 1~~
BOOL bHearing;
DWORD HearingDistance;
};
class SMONSTER_LIST : public BASE_MONSTER_LIST
{
public:
/*
virtual ~SMONSTER_LIST()
{
for(int i = 0 ; i < MaxAttackNum ; ++i )
delete [] AttackNumPattern[i];
delete [] AttackNumPattern;
delete [] MaxAttackIndexNum;
}
WORD MaxAttackNum;
WORD * MaxAttackIndexNum;
WORD ** AttackNumPattern;
*/
CAttackPatternInfo AttackPatternClass;
CRecallInfo RecallInfoClass;
};
class MONSTEREX_LIST : public BASE_MONSTER_LIST
{
public:
MONEYTYPE MinDropMoney; // ÃÖ¼Òµ· ¾×¼ö
MONEYTYPE MaxDropMoney; // ÃÖ´ë µ· ¾×¼ö
WORD DropRate[eDROPITEMKIND_MAX];
// ¼¹ö¿¡¼ »ç¿ë
// ÃʱâȰ¡ ÇÊ¿ä!!
WORD CurDropRate[eDROPITEMKIND_MAX];
WORD ItemListNum1; // ÇØ´ç¾ÆÀÌÅÛ1¸®½ºÆ®Ç¥¹øÈ£
WORD ItemListNum2; // ÇØ´ç¾ÆÀÌÅÛ2¸®½ºÆ®Ç¥¹øÈ£ - Ãß°¡
WORD ItemListNum3; // ÇØ´ç¾ÆÀÌÅÛ3¸®½ºÆ®Ç¥¹øÈ£ - Ãß°¡
BYTE MaxDropItemNum; // ÃÖ´ë¾ÆÀÌÅÛ °¹¼ö
float fRunawayLifeRate; // »ý¸í·Â È®·ü 0~100
WORD RunawayRate; // µµ¸Á È®·ü
WORD RunawayHelpRate; // µµ¸Á µµ¿òÈ®·ü
WORD RunawayDistance; // µµ¸Á °Å¸®
WORD Talk1; // ´ë»ç 1
WORD Talk2;
WORD Talk3;
WORD HelpRequestCondition;
WORD HelpRequestDistance;
WORD HelpRequestTargetNum;
WORD RecallCondition;
WORD RecallObjectID;
WORD RecallObjectNum;
};
//////////////////////////////////////////////////////////////////////////
// ¸ó½ºÅÍ chx ÆÄÀÏÀÇ ¸®½ºÆ®
//////////////////////////////////////////////////////////////////////////
typedef struct _CHXLIST
{
StaticString FileName;
}CHXLIST;
//-----------------------------------------------------------------------
// ¸ÊÀüȯ ÁÂÇ¥±â¾ï ±¸Á¶Ã¼
//-----------------------------------------------------------------------
typedef struct _MAPCHANGE_INFO
{
WORD Kind;
char CurMapName[MAX_NAME_LENGTH];
char ObjectName[MAX_NAME_LENGTH];
WORD CurMapNum;
WORD MoveMapNum;
VECTOR3 CurPoint;
VECTOR3 MovePoint;
WORD chx_num;
// ¹æÇâ¼³Á¤
}MAPCHANGE_INFO;
//-----------------------------------------------------------------------
// LogIn ÁÂÇ¥±â¾ï ±¸Á¶Ã¼
//-----------------------------------------------------------------------
typedef struct _LOGINPOINT_INFO
{
WORD Kind;
char MapName[MAX_NAME_LENGTH];
WORD MapNum;
BYTE MapLoginPointNum;
VECTOR3 CurPoint[10];
WORD chx_num;
// ¹æÇâ¼³Á¤
}LOGINPOINT_INFO;
//-----------------------------------------------------------------------
// NPC Á¤º¸
//-----------------------------------------------------------------------
typedef struct _NPC_LIST
{
WORD NpcKind; // Npc Á¾·ù
char Name[17]; // Npc À̸§
WORD ModelNum; // MonsterChxList¿¡¼ÀÇ ¹øÈ£
WORD JobKind; // Á÷¾÷Á¾·ùº°±¸ºÐ
}NPC_LIST;
//-----------------------------------------------------------------------
// NPC ¸®Á¨
//-----------------------------------------------------------------------
typedef struct _NPC_REGEN
{
_NPC_REGEN():dwObjectID(0),NpcKind(0)
{
Pos.x = Pos.y = Pos.z = 0;
}
DWORD dwObjectID; // ½Å±Ô Ãß°¡ taiyo
MAPTYPE MapNum; // Map¹øÈ£
WORD NpcKind; // NpcKind
char Name[17]; // Npc À̸§
WORD NpcIndex; // NpcIndex(°íÀ¯¹øÈ£·Î »ç¿ë)
VECTOR3 Pos; // ¸ó½ºÅÍ À§Ä¡
float Angle; // ¸ó½ºÅÍ °¢µµ
}NPC_REGEN;
//-----------------------------------------------------------------------
// MOD ¸®½ºÆ®
//-----------------------------------------------------------------------
typedef struct _MOD_LIST
{
_MOD_LIST()
{
MaxModFile = 0;
ModFile = NULL;
}
~_MOD_LIST()
{
if(MaxModFile == 0)
return;
SAFE_DELETE_ARRAY(ModFile);
}
DWORD MaxModFile;
StaticString* ModFile;
StaticString BaseObjectFile;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -