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

📄 hero.h

📁 墨香最新私服
💻 H
字号:
// Hero.h: interface for the CHero class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_HERO_H__736E5181_650C_4E06_A8F5_1EEAF4C74F89__INCLUDED_)
#define AFX_HERO_H__736E5181_650C_4E06_A8F5_1EEAF4C74F89__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Player.h"
#include "CAction.h"
#include "AbilityGroup.h"
#include "../[CC]Skill/DelayGroup.h"

class CHero : public CPlayer  
{
	CDelayGroup		m_DelayGroup;

	//{
	HERO_TOTALINFO		m_HeroTotalInfo;
	EXPTYPE				m_maxExpPoint;
	//}

	player_calc_stats m_charStats;
	player_calc_stats m_itemStats;

	CAction		m_MovingAction;
	CAction		m_NextAction;

	CAction		m_SkillStartAction;		// 公傍惯悼 惑怕啊 瘤唱搁 矫累且 竣记

	//////////////////////////////////////////////////////////////////////////
	DWORD		m_CurComboNum;

	BOOL		m_bIsAutoAttackMode;
	BOOL		m_bIsAutoAttacking;
	CActionTarget m_AutoAttackTarget;
	
	BOOL		m_bSkillCooling;
	DWORD		m_SkillCoolTimeDuration;
	DWORD		m_SkillCoolTimeStart;
	//////////////////////////////////////////////////////////////////////////

	BOOL		m_bIsKyungGongMode;
	BYTE		m_PyogukNum;

	CAbilityGroup m_AbilityGroup;

	BOOL		m_bUngiFlag;
	
	// Play Time
	stPlayTime	m_stPlayTime;


public:
	CHero();
	virtual ~CHero();
	void InitHero(HERO_TOTALINFO * pHeroTotalInfo);
	void GetHeroTotalInfo(HERO_TOTALINFO * info);
	HERO_TOTALINFO* GetHeroTotalInfo()		{	return &m_HeroTotalInfo;		}
	void Process();

	CDelayGroup*	GetDelayGroup()		{	return &m_DelayGroup;	}
	CAbilityGroup*	GetAbilityGroup()	{	return &m_AbilityGroup;	}

	player_calc_stats* GetCharStats()			{	return &m_charStats;		}
	player_calc_stats* GetItemStats()			{	return &m_itemStats;		}
	
	// InitXXX拌凯狼 窃荐 龋免 饶  牢磐其捞胶俊 钎矫且 鞘夸啊乐绰 巴甸 困秦
	void ChangeLife(int changeval);
	void ChangeShield(int changeval);
	void ApplyInterface();
	virtual void SetMaxLife(DWORD maxlife);
	virtual void SetMaxShield(DWORD maxlife);
	virtual void SetLife(DWORD life, BYTE type = 1);
	virtual void SetShield(DWORD life, BYTE type = 1);
	virtual DWORD GetNaeRyuk(){ return m_HeroTotalInfo.wNaeRyuk; }
	virtual DWORD DoGetMaxNaeRyuk();
	virtual void SetMaxNaeRyuk(DWORD val);
	virtual void SetNaeRyuk(DWORD val, BYTE type = 1);
	virtual DWORD DoGetPhyDefense()
	{ return GetCharStats()->PhysicalDefense+GetItemStats()->PhysicalDefense+GetAbilityStats()->DefenceUp; }
	virtual float DoGetAttDefense(WORD Attrib)
	{ return GetItemStats()->AttributeResist.GetElement_Val(Attrib) + GetAbilityStats()->AttRegistUp.GetElement_Val(Attrib); }	
	virtual DWORD DoGetPhyAttackPowerMin();
	virtual DWORD DoGetPhyAttackPowerMax();
	virtual float DoGetAddAttackRange(){	return GetMinChub() / 3.f;	}
	virtual DWORD DoGetCritical(){	return GetCharStats()->Critical + GetItemStats()->Critical;	}
	

	LEVELTYPE GetMaxLevel()		{	return m_HeroTotalInfo.MaxLevel;	}

	void SetGuageName(char * szName);
	
	MONEYTYPE GetMoney() { return m_HeroTotalInfo.Money; }
	void SetMoney(MONEYTYPE Money);
	EXPTYPE GetExpPoint() { return m_HeroTotalInfo.ExpPoint; }
	EXPTYPE GetMaxExpPoint() { return m_maxExpPoint; }
	void SetExpPoint(EXPTYPE dwPoint, BYTE type=1);
	void SetMaxExpPoint(EXPTYPE dwPoint);
	virtual void SetLevel(LEVELTYPE level);
	
	void SetMunpa();

	void SetGenGol(WORD val);
	void SetMinChub(WORD val);
	void SetCheRyuk(WORD val);
	void SetSimMek(WORD val);
	
	WORD GetGenGol(){ return m_HeroTotalInfo.wGenGol + GetItemStats()->GenGol; }
	WORD GetMinChub(){ return m_HeroTotalInfo.wMinChub + GetItemStats()->MinChub; }
	WORD GetCheRyuk(){ return m_HeroTotalInfo.wCheRyuk + GetItemStats()->CheRyuk; }
	WORD GetSimMek(){ return m_HeroTotalInfo.wSimMek + GetItemStats()->SimMaek; }
	
	void SetAbilityExp(DWORD val)	{	m_AbilityGroup.SetAbilityExp(val);	}
	DWORD GetAbilityExp()			{ return m_AbilityGroup.GetAbilityExp(); 	}

	int GetMugongLevel(WORD MugongIdx);
	
	void SetFame(FAMETYPE val);
	FAMETYPE GetFame()			{ return m_HeroTotalInfo.Fame;	}
	virtual void SetBadFame( FAMETYPE val );

	DWORD GetPartyIdx() { return m_HeroTotalInfo.PartyID; }
	void SetPartyIdx(DWORD PartyId) { m_HeroTotalInfo.PartyID = PartyId;	}
/*巩颇*/		
	void SetMunpaName(char* Name)	{ strcpy(m_HeroTotalInfo.MunpaName, Name);	}
	char* GetMunpaName()			{ return m_HeroTotalInfo.MunpaName;			}
	
	void SetGuildName(char* Name)	{ SafeStrCpy(m_HeroTotalInfo.MunpaName, Name, MAX_GUILD_NAME);	}
	char* GetGuildName()			{ return m_HeroTotalInfo.MunpaName;			}
	virtual void ClearGuildInfo();
	char* GetGuildEntryDate();
	void SetGuildEntryDate(char* day);
	
	BYTE GetPyogukNum()				{ return m_PyogukNum;	}
	void SetPyogukNum(BYTE num)		{ m_PyogukNum = num;	}

public:

	//////////////////////////////////////////////////////////////////////////
	// SkillManager俊辑 静绰 窃荐甸
	BOOL IsAutoAttacking()	{	return m_bIsAutoAttacking;	}
	CActionTarget* GetAutoAttackTarget()	{	return &m_AutoAttackTarget;	}

	void SetMovingAction(CAction* pAction)	{	m_MovingAction.CopyFrom(pAction);	}
	void SetNextAction(CAction* pAction)	{	m_NextAction.CopyFrom(pAction);	}
	void SetSkillStartAction(CAction* pAction)	{	m_SkillStartAction.CopyFrom(pAction);	}

	CAction* GetNextAction()	{	return &m_NextAction;	}

	DWORD GetCurComboNum()			{ return m_CurComboNum < MAX_COMBO_NUM ? m_CurComboNum : 0;	}
	void SetCurComboNum(DWORD num)	{ m_CurComboNum = num;	}

	void EnableAutoAttack(CActionTarget* pTarget)
	{	if(m_bIsAutoAttackMode && pTarget->GetTargetKind() == eActionTargetKind_Object){
		m_bIsAutoAttacking = TRUE;	m_AutoAttackTarget.CopyFrom(pTarget); }
	}
	void DisableAutoAttack()
	{	m_bIsAutoAttacking = FALSE; m_AutoAttackTarget.CopyFrom(NULL); }
	void ToggleAutoAttackMode()
	{	m_bIsAutoAttackMode = !m_bIsAutoAttackMode;	}

	void ClearTarget(CObject* pObject);

	BOOL IsSkillCooling()	{	return m_bSkillCooling;	}
	void SetSkillCoolTime(DWORD CoolTime)	{
		m_SkillCoolTimeDuration = CoolTime;
		m_SkillCoolTimeStart = gCurTime;
		m_bSkillCooling = TRUE;
	}
	//////////////////////////////////////////////////////////////////////////

	//////////////////////////////////////////////////////////////////////////
	// 版傍
	BOOL GetKyungGongMode();
	void SetKyungGongMode(BOOL bMode);
	//////////////////////////////////////////////////////////////////////////	
	
	//////////////////////////////////////////////////////////////////////////
	// ObjectStateManager俊辑 State狼 矫累苞 场俊辑 龋免秦林绰 窃荐甸
	void OnStartObjectState(BYTE State);
	void OnEndObjectState(BYTE State);
	
//KES
	virtual void StartSocietyAct( int nStartMotion, int nIngMotion = -1, int nEndMotion = -1, BOOL bHideWeapon = FALSE );
	virtual BOOL EndSocietyAct();

	//////////////////////////////////////////////////////////////////////////

	void OnHitTarget(CObject* pMainTarget);
	
	// 青悼 窃荐甸...
	void Die(CObject* pAttacker,BOOL bFatalDamage,BOOL bCritical);
	void Damage(CObject* pAttacker,BYTE DamageKind,DWORD Damage,DWORD ShieldDamage,BOOL bCritical);
	void Revive(VECTOR3* pRevivePos);
	void Heal(CObject* pHealer,BYTE HealKind,DWORD HealVal);

	friend class CAttackManager;

	WORD GetKyungGongGrade()	{	return m_HeroTotalInfo.KyungGongGrade;	}
	void SetKyungGongGrade(WORD grade);
	
	virtual void AddStatus(CStatus* pStatus);
	virtual void RemoveStatus(CStatus* pStatus);
	

	// 辑滚甫 函版窍绊 酒公繁 贸府啊 绝阑败快 荤侩且巴..
	void HeroStateNotify(BYTE State);
	
	BYTE GetNaeRyukPercent();

	// PlayTime
	void SetPlayTime(int time)	{	m_stPlayTime.value = time;	}
	int GetPlayTime()			{	m_stPlayTime.value;	}
/*	void GetPlayTime(int& Year, int& Day, int& Hour, int& Minute, int& Second)
	{
		m_stPlayTime.GetTime(Year, Day, Hour, Minute, Second);
	}*/
};

#endif // !defined(AFX_HERO_H__736E5181_650C_4E06_A8F5_1EEAF4C74F89__INCLUDED_)

⌨️ 快捷键说明

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