📄 magicstate.h
字号:
// MagicState.h: interface for the CMagicState class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_MAGICSTATE_H__1253A149_5DFB_439E_9CEE_DA046405F173__INCLUDED_)
#define AFX_MAGICSTATE_H__1253A149_5DFB_439E_9CEE_DA046405F173__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
///////////////////////////////////////////////////////////////////////////////
// 付过 惑怕 扁瓷阑 困茄 努贰胶
class CCharState
{
public:
CCharState() { Clear(); }
public:
void Clear()
{ // 函荐 檬扁拳
m_dwTime = 0, m_nRatio = 0;
}
BYTE GetRatio() const { return m_nRatio; }
void SetState(DWORD dwTime, BYTE nRatio)
{ // 惑怕 犁汲沥
m_dwTime = dwTime, m_nRatio = nRatio;
}
int Convert(int nValue) const
{ // 涝仿蔼阑 厚啦肺 券魂
return nValue*m_nRatio/100;
}
bool IsMax() const
{
return (m_dwTime > 0 && m_nRatio == 100) ? true:false;
}
bool IsContinue() const
{ // 惑怕 瘤加 咯何 八荤
return (m_dwTime > 0) ? true:false;
}
bool IsContinue(DWORD dwTime) const
{ // 惑怕 瘤加 咯何 八荤
return (m_dwTime > dwTime) ? true:false;
}
bool IsBound() const
{ // 裹困(0 ~ 100%) 八荤
return (m_nRatio >= 0 && m_nRatio <= 100) ? true:false;
}
private:
DWORD m_dwTime; // 瘤加矫埃
BYTE m_nRatio; // 厚啦(0 ~ 100%)
};
//
///////////////////////////////////////////////////////////////////////////////
#define NAT_SPEED_UP 0
#define NAT_STATUS_UP 1
#define NAT_LIFE_UP 2
#define NAT_NORMAL 3
#define DELAY 4
///////////////////////////////////////////////////////////////////////////////
// 付过阑 瘤加且 荐 乐绰 矫埃樊
struct MAGIC_DURATION
{ //< CSD-TW-030606
CCharState apShort; // 窜芭府 拱府利 傍拜仿
CCharState apMiddle; // 吝芭府 拱府利 傍拜仿
CCharState apLong; // 厘芭府 拱府利 傍拜仿
CCharState dpShort; // 窜芭府 拱府利 规绢仿
CCharState dpMiddle; // 吝芭府 拱府利 规绢仿
CCharState dpLong; // 厘芭府 拱府利 规绢仿
CCharState dpFire; // 阂拌凯 傍拜付过 规绢仿
CCharState dpIce; // 倔澜拌凯 傍拜付过 规绢仿
CCharState dpElect; // 傈拜拌凯 傍拜付过 规绢仿
CCharState dpHoly; // 脚仿拌凯 傍拜付过 规绢仿
CCharState dpCurse1; // 历林 1拌凯 付过 规绢仿
CCharState dpCurse2; // 历林 2拌凯 付过 规绢仿
CCharState dpCurse3; // 历林 3拌凯 付过 规绢仿
CCharState dpCurse4; // 历林 4拌凯 付过 规绢仿
CCharState dpCurse5; // 历林 5拌凯 付过 规绢仿
CCharState dpFreeze; // CSD-021216 : 倔覆 历林 付过 规绢仿
CCharState amplify; // 傍拜 付过 单固瘤
CCharState speedUp; // 捞悼加档 刘啊
CCharState speedDown; // 捞悼加档 皑家
CCharState avoid; // 雀乔啦
CCharState agility; // 刮酶己
DWORD dwCurse1; // 历林 1拌凯 付过 惑怕
DWORD dwCurse2; // 历林 2拌凯 付过 惑怕
DWORD dwCurse3; // 历林 3拌凯 付过 惑怕
DWORD dwCurse4; // 历林 4拌凯 付过 惑怕
DWORD dwFreeze; // CSD-021024 : 倔覆 历林 付过 惑怕
DWORD dwNormalProtect; // 老馆 焊龋拌凯 付过 惑怕
DWORD dwSpecialProtect; // 漂荐 焊龋拌凯 付过 惑怕
DWORD dwExceptProtect; // 抗寇 焊龋拌凯(葛电 付过捞 角菩) 付过 惑怕
DWORD dwAttackDelay; // 傍拜 加档 皑家(某腐磐啊 傍拜 且荐 乐绰 咯何)
DWORD dwDontMove; // 捞悼捞 登瘤 臼澜
DWORD dwDontAttack; // 老馆利牢 傍拜捞 登瘤 臼澜
DWORD dwDontCasting; // 付过 某胶泼捞 登瘤 臼澜
DWORD dwDontMiss; // 葛电 拱府利 傍拜苞 付过捞 己傍
DWORD dwBlocking; // 寇何客 瞒窜登绰 惑怕
DWORD dwLight; // 林困俊 蝴阑 灌洒绰 惑怕
DWORD dwMagicDamageToMana; // 惑措狼 傍拜 付过阑 付唱甫 家葛窍咯 阜酒晨
DWORD dwReturnMagic; // 付过狼 瓤苞甫 矫傈磊俊霸 登倒覆
DWORD dwTransparency; // 某腐磐啊 捧疙窍霸 凳
DWORD dwLifeUp; // 老沥 矫埃悼救 Life啊 棵扼皑
DWORD dwStrikeReflect; // CSD-021015 : 拱府傍拜 单固瘤 馆荤
DWORD dwMagicReflect; // CSD-021015 : 付过傍拜 单固瘤 馆荤
DWORD dwNature[NAT_NORMAL]; // 己龙 函拳 惑怕
DWORD dwCombatState; // 傈捧胶懦 加己 惑怕
DWORD dwUpDivineMana; // 付唱甫 棵赴促. // 030415 kyo
DWORD dwCombatRecovery; //cp甫 棵府绊 hp甫 临牢促. // 030415 kyo
}; //> CSD-TW-030606
//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// 付过 惑怕俊 措茄 努贰胶
class CMagicState : public MAGIC_DURATION
{
public:
enum
{ //< CSD-021216
CURSE_NONE = 0x00, // 000000
CURSE_1 = 0x01, // 000001
CURSE_2 = 0x02, // 000010
CURSE_3 = 0x04, // 000100
CURSE_4 = 0x08, // 001000
CURSE_5 = 0x10, // 010000
CURSE_FREEZE = 0x20 // 100000
}; //> CSD-021216
public:
CMagicState();
public:
void Clear();
void Recovery(DWORD dwNow);
bool CheckAttack(BYTE nAttack, DWORD dwNow);
bool CheckStart(BYTE nMagic, DWORD dwNow);
bool CheckDoing(BYTE nMagic, DWORD dwNow);
bool CheckEnd(BYTE nMagic, DWORD dwNow);
bool CheckDelay(BYTE nMagic, DWORD dwNow);
bool CheckCombat(BYTE nCombat, DWORD dwNow);
void InitCurse();
void ClearCurse(BYTE nType);
void ApplyCurse(BYTE nType, BYTE nState, DWORD dwTime = 0);
int GetAvailRange(BYTE nMagic) const;
int GetCastReady(BYTE nMagic) const;
int GetCastContinue(BYTE nMagic) const;
int GetDualStep(BYTE nMagic) const; // 030415 kyo
void ClearTransMap();
void GetTransMap(int& rPort, int& rX, int& rY) const;
void SetTransMap(int nPort, int nX, int nY);
void ClearCombat(BYTE nSelect = 0);
void SetActiveCombat(BYTE nCombat, int nCount);
void SetPassiveCombat(BYTE nCombat, DWORD dwPeriod);
void SetRecoveryCombat(BYTE nCombat, DWORD dwPeriod); // 030415 kyo
void SetPhysicalAttack(DWORD dwTime, BYTE nShort, BYTE nMiddle, BYTE nLong);
void SetPhysicalDefense(DWORD dwTime, BYTE nShort, BYTE nMiddle, BYTE nLong);
void SetMagicalDefense(DWORD dwTime, BYTE nFire, BYTE nIce, BYTE nElect, BYTE nHoly);
void SetCurseDefense(DWORD dwTime, BYTE nSet);
void ClearNpcRun();
void ClearNpcStatusUp();
void ClearNpcRecovery();
void SetNpcRun(DWORD dwTime, int nSpeed);
void SetNpcStatusUp(DWORD dwTime, int nAttack, int nDefense, int nSpeed);
void SetNpcRecovery(DWORD dwTime, int nLife);
void CorrectShortDamage(int& rDamage, int nPlus = 0, int nMinus = 0) const;
void CorrectMiddleDamage(int& rDamage, int nPlus = 0, int nMinus = 0) const;
void CorrectLongDamage(int& rDamage, int nPlus = 0, int nMinus = 0) const;
void CorrectFireDamage(int& rDamage, int nPlus = 0, int nMinus = 0) const;
void CorrectIceDamage(int& rDamage, int nPlus = 0, int nMinus = 0) const;
void CorrectElectDamage(int& rDamage, int nPlus = 0, int nMinus = 0) const;
void CorrectHolyDamage(int& rDamage, int nPlus = 0, int nMinus = 0) const;
void CorrectMovePlus(int& rMove, int nPlus) const;
void CorrectMoveMinus(int& rMove, int nMinus) const;
public:
BYTE GetMagic() const { return m_nMagic; }
BYTE GetActiveCombat() const { return m_nActive; }
BYTE GetPassiveCombat() const { return m_nPassive; }
BYTE GetCombatCount() const { return m_nCount; }
BYTE GetRecoveryCombat() const { return m_nRecovery; }// 030415 kyo
DWORD GetRecoveryCombatTime() const { return dwCombatRecovery;}// 030415 kyo
int GetRecoveryCombatDecHPRate(int nLevel); // 030514 kyo 5:5%,7:10%,10:15%
int IncCombatCount() { return ++m_nCount; }
int DecCombatCount() { return --m_nCount; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -