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

📄 characterdata.h

📁 Soul的源代码,类似于劲舞团之类的游戏
💻 H
📖 第 1 页 / 共 2 页
字号:
	BYTE	byType;		// 1: 胶懦 鸥涝 2: 酒捞袍 鸥涝
	short	stMacro;	// 胶懦狼 绊蜡锅龋 / 酒捞袍狼 绊蜡 锅龋
} MACORO_STRT;

typedef struct {
	int		_iCharIndex;
	int		_iAccountID;
	BFSTRT_SHAPE_INFO		_iShape;
	BFSTRT_CLASSSHAPE_INFO	_iClassShape;
	BYTE	_byUnion;				// 辆练 1: 郡府纳 2:孤农鄂
	BYTE	_byJob;
	BYTE	_bySex;					// 己喊.
	char	_charName[MAX_CHARACTERNAME+1];
} CHARINFO;

typedef	struct {
	CHARINFO	_CharInfo;
	DBITEM_STRT _EquipItem[MAX_EQUIPCOUNT];

}CHAR_EQUIP_INFO;

/*----------------------------------------------------------------------------------------------------------------
某腐磐狼 历厘登绰 葛电 沥焊甸.
----------------------------------------------------------------------------------------------------------------*/
typedef struct _tagCharacter_Info{
	CHARINFO m_CharInfo;

	/*
	浚府纳
	1瞒 : 1(贾府靛), 2(器胶), 3(纳绢), 4(胶困橇飘) 
	2瞒 : 1(力畴荤捞歹), 2(窍歹), 3(胶棋飘凡), 4(风季飘), 5(绢矫胶畔胶), 6(叼磐繁胶), 7(洒教), 8(喉肺况)
	3瞒 : 
	孤农鄂
	1瞒 : 1(鞠令), 2(胶乔复明)
	2瞒 : 1(农矾浆 鞠令), 2(叼奇胶 鞠令), 3(酱泼 鞠令), 4(柠农聪胶 鞠令), 5(颇捞绢 胶乔复明) 6(况磐 胶乔复明),
	7(绢胶 胶乔复明), 8(扩靛 胶乔复明)
	3瞒 :
	*/
	BYTE	byClass;			// 努贰胶 沥焊 绢恫 努饭胶甫 急琶 窍看绰啊.

	int		iMoney;			// 家蜡茄 捣
	int		iStoreMoney;	// 芒绊俊 焊包吝牢 捣

	// 馒侩 沥焊, 啪(赣府) 海胶飘(个) 捡(绢柄) *2 芭甸(窍眉) 宏饭捞浇复(bracelet迫骂) *2 捞绢傅(蓖吧捞) *2  公扁(/规菩) * 2
	DBITEM_STRT		strEquipItem[MAX_EQUIPCOUNT];	// 11俺 297byte
	DBITEM_STRT		strInvenItem[MAX_INVENCOUNT];	// 78俺 
	DBITEM_STRT		strStoreItem[MAX_STORECOUNT];	// 156俺

	// skill  包访, 老馆胶懦(弥措15俺),沥飞胶懦(弥措6俺) 饭骇捞 促弗 胶懦篮 促弗 胶懦锅龋甫 啊咙.
	SKILL_STRT		sSkillInfo[MAX_SKILLCOUNT];	

	// state 包访
	BYTE	byStr;		// 塞
	BYTE	byVit;		// 眉仿
	BYTE	byInt;		// 付仿(瘤瓷)
	BYTE	byMan;		// 扁仿
	BYTE	byDex;		// 颊犁林(刮酶)
//	short	shSpareST;	// 饭骇 1诀寸 3究 盒硅 罐绰 焊呈胶 State Bonus 摹 (荤扼脸促 拌魂栏肺 窍扁肺 沁促.)

	// Hp, Mp
	short	stHp;		// 泅犁 眉仿 (SHRT_MAX 32767) -1 捞搁 磷篮 惑怕
	short	stMp;		// 泅犁 付唱

	// 捞惑惑怕 包访 (捞惑惑怕 弥措 6俺 弥措 矫埃 30檬)
	// 历林(胶抛捞磐胶 窍遏/捞悼加档 历窍), 胶畔(捞悼,胶懦,傍拜阂瓷),
	// 刀(辑辑洒 眉仿捞 皑家), 鞠孺(拳搁 鞠傈), 魔宫(胶懦荤侩阂啊), 傈捧阂瓷(纳腐磐 荤噶, 捞版快绰 bHp甫 曼炼)
	BYTE	byStrangeState[MAX_STRANGECOUNT];	// 10俺 (10BYTE)
	// 硅凯 0: 历林狼 巢篮矫埃(檬) 1:胶畔狼 巢篮矫埃, 2:刀狼 巢篮 矫埃 3:鞠孺狼 巢篮 矫埃
	// 4:魔宫狼 巢篮 矫埃 , 救狼 蔼捞 0牢版快绰 捞惑惑怕狼 秦寸惑炔捞 酒囱巴捞哥, MAX绰 30檬烙.
	// 5:逞绢柳 惑怕 6:捞悼加档历窍 7:傍拜加档历窍 8:规绢仿历窍 9:傍拜仿历窍 

	// 滚橇 包访 (滚橇 弥措 10俺 蜡瘤矫埃 弥措 600檬) binary
	BUFF_STRT	strBuff[MAX_BUFFCOUNT];		// 10俺 (4 * 10 = 40)

	// 饭骇 棺 skill point , class point, sprite point
	BYTE	byLevel;		// MAX 150, 扁夯 1 饭骇
//	BYTE	bySkillPoint;	// Skill Point MAX 149, 1饭骇诀寸 1盒硅 (荤府咙 拌魂栏肺 窍扁肺 窃)
	int		iSpritePoint;	// Sprite Point MAX 999999, 沥飞胶懦诀/赣府,迫,朝俺,促府 诀/公扁力访
	int		iFame;			// 疙己档 MAX 99999	

	// 困摹 沥焊
	float	xpos,ypos,zpos;	// x,p,z 谅钎		MoveLock
	BYTE	byZoneNumber;	// Zone 锅龋

	// 概农肺 虐 包访 ( MAX 5 * 4 ) 老馆 胶懦捞唱, 沥飞胶懦, 咀记胶懦(凛扁,背券,傍拜,惑痢....) 殿阑 瘤沥.
	MACORO_STRT	strMacro[MAX_MACROSCOUNT];		// 3Byte * 40俺 ( 120 BYTE)
	int		iGuild;		
	BYTE	byWarpPos;	// 何劝且粮
	int		iExp;		// 泅犁 版氰摹
}CHARACTER_INFO;
#pragma pack(pop)

// char 沥焊
class CCharacterData{
public:
	CCharacterData()
	{
		memset(m_CharData.m_CharInfo._charName,0,MAX_CHARACTERNAME+1);
	}

	char* SetKey(char *ckey)
	{
		strcpy(m_CharData.m_CharInfo._charName,ckey);
		key = m_CharData.m_CharInfo._charName;
		return key;
	}

	void IsNullKey()
	{
		s = INVALID_SOCKET;
		m_CharData.m_CharInfo._iCharIndex = 0;

		bInitGameComplete = FALSE;
		iRoomNodeIndex_Group = 0;
		iRoomUserNodeIndex_Group = 0;

		iRoomNodeIndex_Local = 0;
		iRoomUserNodeIndex_Local = 0;
		key = NULL;
	}

	char* GetKey()
	{
		return key;
	}

	// 惑怕蔼 函拳 窃荐.
	void SetActionStats()
	{

	}

	// 单固瘤甫 涝篮 父怒 猾促.
	int SetHPDamage(int iDamage)
	{
		//assert(iDamage >= 0);
		m_CharData.stHp = m_CharData.stHp - iDamage;
		//OutPut_Message("单固瘤甫 涝菌促. 泅犁 Hp[%d]", m_CharData.stHp );
		return m_CharData.stHp;
	}

	// 某腐磐 HP甫 疵赴促.
	int SetHPPlus(int iPlusHP)
	{
		m_CharData.stHp = m_CharData.stHp + iPlusHP;
		return m_CharData.stHp;
	}

	int iCalculMaxHP_MP(CCharacterData *pCharData,int iJobClass,int iInitHP,int iInitMP)
	{
		int iLevPerPlusHP = 0;
		int iLevPerPlusMP = 0;
		int iVitPerPlusHP = 0;
		int iManPerPlusMP = 0;

		switch(iJobClass) {
		case JOB_SOLID:
		case JOB_XENOCIDER:
		case JOB_HARDER:
			iLevPerPlusHP = 12;
			iLevPerPlusMP = 8;
			iVitPerPlusHP = 9;
			iManPerPlusMP = 5;
			break;
		case JOB_FORCE:
		case JOB_SPECTRAL:
		case JOB_LUCENT:
			iLevPerPlusHP = 8;
			iLevPerPlusMP = 12;
			iVitPerPlusHP = 5;
			iManPerPlusMP = 9;
			break;
		case JOB_CARE:
		case JOB_ASSISTANCE:
		case JOB_DETERRENCE:
			iLevPerPlusHP = 10;
			iLevPerPlusMP = 10;
			iVitPerPlusHP = 7;
			iManPerPlusMP = 8;
			break;
		case JOB_SWIFT:
		case JOB_HISSING:
		case JOB_BLOWER:
			iLevPerPlusHP = 11;
			iLevPerPlusMP = 8;
			iVitPerPlusHP = 8;
			iManPerPlusMP = 7;
			break;
		case JOB_ARMS:
		case JOB_CRUSH_ARMS:
		case JOB_DEFENSE_ARMS:
		case JOB_SHOOTING_ARMS:
		case JOB_QUICNESS_ARMS:
			iLevPerPlusHP = 12;
			iLevPerPlusMP = 8;
			iVitPerPlusHP = 9;
			iManPerPlusMP = 5;
			break;
		case JOB_SPIRITS:
		case JOB_FIRE_SPIRITS:
		case JOB_WATER_SPIRITS:
		case JOB_EARTH_SPIRITS:
		case JOB_WIND_SPIRITS:
			iLevPerPlusHP = 10;
			iLevPerPlusMP = 10;
			iVitPerPlusHP = 7;
			iManPerPlusMP = 8;
			break;
		default:
			//OutPut_Message2("甸绢棵荐 绝促.!!");
			return FALSE;
		}

		iMax_HP = (m_CharData.byLevel - 1) * iLevPerPlusHP + (m_CharData.byVit * iVitPerPlusHP) + iInitHP;
		iMax_Mana = (m_CharData.byLevel - 1) * iLevPerPlusMP + (m_CharData.byMan * iManPerPlusMP) + iInitMP;
		return TRUE;
	}

	// HP客 付唱啊 盲况廉具 茄促搁. TRUE甫 府畔茄促. read only funtion // 坷流 茄胶饭靛俊辑父 捣促. 遏 鞘夸 绝澜.
	BOOL bCheckAutoHeal(DWORD dwCurrentTime)
	{
		
		if((m_CharData.stHp < iMax_HP || m_CharData.stMp < iMax_Mana ) && eActionStatus != TYPE_ACTION_DEAD)
		{}
		else
			return FALSE;

		// 酒流 鳃傅 矫埃捞 救登菌促.
		if(dwHealPointTickTime > dwCurrentTime)
			return FALSE;

		// 促澜 鳃傅 墨款磐甫 历厘 茄促.
		dwHealPointTickTime = dwCurrentTime + USER_HEAL_TICK_COUNT;
		return TRUE;
	}

	int OnDieCharacter(void)
	{// 甸绢坷扁傈俊 公宏遏苞 官叼遏捞 促 吧妨乐绢具 茄促.
		m_CharData.stHp = 0;

		if( eActionStatus == TYPE_ACTION_DEAD )
		{
			// 捞固 磷篮逞捞促.
			return FALSE;
		}
		else
		{
			// 磷篮 惑怕肺 官槽促.
			eActionStatus = TYPE_ACTION_DEAD;
		}
		return TRUE;
	}

	// Exp客 Money 甫 歹窃. // 饭骇诀矫 荐摹 炼沥..
	int	SetExpAndMoney( int iMoney, int iExp, int iSp, int iNeedExp )
	{// 0: 老馆 1:饭骇诀窃.
		// 捣
		if( m_CharData.iMoney + iMoney < MAX_PC_HAVEMONEY ) m_CharData.iMoney += iMoney;
		else m_CharData.iMoney = MAX_PC_HAVEMONEY;

		// Sp
		if( m_CharData.iSpritePoint + iSp < MAX_PC_SPRITEPOINT ) m_CharData.iSpritePoint += iSp;
		else m_CharData.iSpritePoint = MAX_PC_SPRITEPOINT;
		// 版氰摹
		if( -1 == iNeedExp || m_CharData.byLevel >= MAX_PC_ABLELEVEL ) return 0;	// 版氰摹甫 荐沥且 荐绝澜
		
		if( m_CharData.iExp + iExp >= iNeedExp )
		{// Level Up 贸府
			m_CharData.iExp = m_CharData.iExp + iExp - iNeedExp;
			m_CharData.byLevel += 1;
			// 扁鸥 饭骇诀俊 蝶弗 焊惑 贸府 (胶懦捞唱 state 刘啊)
			shSpareST += 3;	// 烙矫蔼
			if( bySkillPoint < 150 ) bySkillPoint++;
			
			// 乔烹苞 付唱烹篮 观俊辑 犁汲沥 沁嚼聪促. 
			
			return 1;
		}
		else m_CharData.iExp += iExp;
		return 0;
	}

	BYTE GetLevel(void)
	{
		return m_CharData.byLevel;
	}

protected:
	char *key;
public:
	// unique 加己
	char cAccName[MAX_ACCOUNTNAME + 1];
	CHARACTER_INFO	m_CharData;
	
	// 鉴惯仿, 青款, 扁樊 <- 馒侩 酒捞袍苞 秦寸 Class俊辑狼 扁夯蔼甸肺 拌魂捞 凳.
	// 拱府 傍拜仿/付过 傍拜仿, 拱府 规绢仿/ 付过规绢仿, 农府萍拿 犬伏, 喉钒伏, 傍拜加档 <- 馒侩 酒捞袍苞 秦寸 
	// Class俊辑狼 扁夯蔼甸肺 拌魂捞 凳.
	// 捞悼加档绰 流诀俊 辆加利烙.
	// 捞档幅 荤侩 啊瓷 咯何

	// 眠啊 胶泡摹.
	BYTE	byPlusStr;		// 塞
	BYTE	byPlusVit;		// 眉仿
	BYTE	byPlusInt;		// 付仿(瘤瓷)
	BYTE	byPlusMan;		// 扁仿
	BYTE	byPlusDex;		// 颊犁林(刮酶)
	// 眉仿苞 付唱狼 弥绊摹蔼.
	int iMax_HP;
	int iMax_Mana;
	DWORD dwHealPointTickTime;	// hp客 付唱狼 平 墨款飘促.瞒具瞪 矫埃阑 钎矫. lock捞 救吧副 函荐捞促. 坷流! 平 胶饭靛俊辑父 敬促. 窜老.


	// 静瘤 臼篮 胶懦 器牢飘客 胶湃 器牢飘 
	BYTE bySkillPoint;
	short shSpareST;

	// 郴何利 函荐..
	int			iTileIndex;
	short		sNodeIndex;		// 甘 肺靛 牢郸胶 历厘.
	short		sCharMemIndex;
	float		fCharacterDir;		// 某腐磐狼 规氢  MoveLock

	// 惑怕 捞惑蔼.
	ACTIONTYPE	eActionStatus;			//	MoveLock
	DWORD		dwDownStunTime;			// 逞绢柳 胶畔 矫埃. 吧赴矫埃.

	byte	byHeadAurora;
	byte	byBodyAurora;
	byte	byLegAurora;

	//某腐磐 肺弊牢矫客 厘厚 背眉俊蝶扼 官差绢具 茄促.
	// 关俊 荐摹甸篮 某腐磐狼 流诀苞 厘厚俊蝶扼 荐摹啊 概败柳促.
	int		iPyWeaponPower;	// 公扁 厘厚矫 拌魂登绢 甸绢啊绰蔼捞促. 公扁狼 傍拜仿. 可记鳖瘤 促 拌魂等 某腐磐狼 弥辆 单固瘤捞促.
	short	sPyPlusWeaponPower;	// 公扁狼 单固瘤狼 罚待蔼
	int		iMgWeaponPower;	// 公扁 厘厚矫 拌魂登绢 甸绢啊绰蔼捞促. 公扁狼 付过 傍拜仿. 可记鳖瘤 促 拌魂等 某腐磐狼 弥辆 单固瘤捞促.
	short	sMgPlusWeaponPower;	// 公扁狼 付过 单固瘤狼 罚待蔼

	// 某腐磐狼 流诀苞 酒捞袍 可记俊 蝶扼 蔼捞 函拳茄促.
	BYTE	byAgility;		// 刮酶(鉴惯仿)
	BYTE	byLucky;		// 青款
	BYTE	byCapacity;		// 扁樊摹. 

	BYTE	byCriticalRate;	// 农府萍拿 犬伏...

	short	sPyDefense;		// 规绢档备俊 狼茄 拱府 规绢仿蔼.
	short	sMgDefense;		// 规绢档备俊 狼茄 付过 规绢仿蔼.
	short	sWeaponMasteryStrike;	// 公扁 付胶磐府 疙吝伏俊 狼茄 蔼. 泅犁 甸绊 乐绰 厘厚俊 蝶扼 函茄促.

	short	sWeaponMastery;			// 公扁 付胶磐府(归盒啦肺 利侩). 泅犁 甸绊 乐绰 公扁俊 蝶扼 函茄促. 绝促搁 扁夯蔼 0橇肺促.
	short	sEdgeMastery;				// 咖瘤 付胶磐府.
	short	sWristMastery;				// 府胶飘 付胶磐府.
	short	sMassiveMastery;			// 概矫宏 付胶磐府.
	short	sExtendMastery;				// 劳胶刨靛 付胶磐府.

	short	sItemStrike;			// 酒捞袍俊 狼茄 疙吝伏. 酒捞袍狼 胶其既可记俊狼秦 蔼捞 甸绢柯促.
	short	sItemAvoid;				// 酒捞袍俊 狼茄 雀乔伏. 酒捞袍狼 胶其既可记俊狼秦 蔼捞 甸绢柯促.

	//int		iPlusOtionDamage;	// 眠啊 可记 单固瘤. // 厘厚俊 嘿篮 可记俊 蝶扼 单固瘤甫 敲矾胶 矫挪促.
	short	sPyShieldDefence;		// 规菩 规绢仿. 促弗 规绢仿苞 崔府 捞巴父 蝶肺 盒府 秦初绰促. 规菩绰 规菩 规绢 啊悼矫俊父 眠啊 规绢仿捞 等促.
	short	sMgShieldDefence;	// 付过 规菩 规绢仿.
	SOCKET	s;				// 辑滚狼 磊脚狼 家南.

	BOOL	bInitGameComplete;	// 荤侩磊 霸烙敲饭捞 檬扁拳 肯丰 敲饭弊
	BYTE	byMapIndex;			// 甘 牢郸胶...

	// 盲泼 包访 函荐甸.
	int iRoomNodeIndex_Group;
	int iRoomUserNodeIndex_Group;
	
	int iRoomNodeIndex_Local;
	int iRoomUserNodeIndex_Local;
};
#endif
//class CCharacterData
//{
////	某腐磐狼 历厘捞 鞘夸茄 单捞鸥.
//public:
//	char m_cAccountID[18];		// 16磊
//	char m_cCharName[18];		// 16磊
//
//	short m_sLevel;				// 0-255
//	short m_sStr;				// 0-255
//	short m_sVit;				// 0-255
//	short m_sInt;				// 0-255
//	short m_sMana;				// 0-255
//	short m_sDex;				// 0-255
//
////	拌魂俊 狼秦 唱坷绰 单捞鸥甸.
//public:
//
//};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -