📄 hero.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 + -