⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gameresourcestruct.h

📁 墨香最新私服
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -