📄 magicstate.cpp
字号:
int CMagicState::GetAvailRange(BYTE nMagic) const
{
return Magic_Ref[nMagic].avail_Range;
}
int CMagicState::GetCastReady(BYTE nMagic) const
{
return Magic_Ref[nMagic].cast_Time*70;
}
int CMagicState::GetCastContinue(BYTE nMagic) const
{
return Magic_Ref[nMagic].cast_Continue/6;
}
int CMagicState::GetDualStep(BYTE nMagic) const // 030415 kyo
{
return Magic_Ref[nMagic].nDualStep;
}
void CMagicState::ClearTransMap()
{ // 扁撅等 捞悼 厘家 沥焊 檬扁拳
m_nTransPort = m_nTransX = m_nTransY = 0;
}
void CMagicState::GetTransMap(int& rPort, int& rX, int& rY) const
{ // 扁撅等 捞悼 厘家 沥焊 备窍扁
rPort = m_nTransPort;
rX = m_nTransX;
rY = m_nTransY;
}
void CMagicState::SetTransMap(int nPort, int nX, int nY)
{ // 扁撅等 捞悼 厘家 沥焊 汲沥
m_nTransPort = nPort;
m_nTransX = nX;
m_nTransY = nY;
}
void CMagicState::ClearCombat(BYTE nSelect)
{ //< CSD-TW-030623
switch (Magic_Ref[nSelect].Spell_Type)
{
case ACTIVE_COMBAT:
{
InitActiveCombat();
ClearActiveState();
break;
}
case PASSIVE_COMBAT:
{
InitPassiveCombat();
ClearPassiveState();
break;
}
case RECOVERY_COMBAT:
{
InitRecoveryCombat();
ClearRecoveryState();
break;
}
}
} //> CSD-TW-030623
void CMagicState::SetActiveCombat(BYTE nCombat, int nCount)
{
m_nActive = nCombat;
m_nCount = nCount;
}
void CMagicState::SetPassiveCombat(BYTE nCombat, DWORD dwPeriod)
{
m_nPassive = nCombat;
dwCombatState = dwPeriod;
}
void CMagicState::SetRecoveryCombat(BYTE nCombat, DWORD dwPeriod) // 030415 kyo
{
m_nRecovery = nCombat;
dwCombatRecovery = dwPeriod;
}
void CMagicState::SetPhysicalAttack(DWORD dwTime, BYTE nShort, BYTE nMiddle, BYTE nLong)
{ // 拱府利 傍拜仿 刘啊 汲沥
if (nShort > 0) apShort.SetState(dwTime, nShort); // 窜芭府 拱府利 傍拜仿
if (nMiddle > 0) apMiddle.SetState(dwTime, nMiddle); // 吝芭府 拱府利 傍拜仿
if (nLong > 0) apLong.SetState(dwTime, nLong); // 厘芭府 拱府利 傍拜仿
}
void CMagicState::SetPhysicalDefense(DWORD dwTime, BYTE nShort, BYTE nMiddle, BYTE nLong)
{ // 拱府利 规绢仿 刘啊 汲沥
if (nShort > 0) dpShort.SetState(dwTime, nShort); // 窜芭府 拱府利 规绢仿
if (nMiddle > 0) dpMiddle.SetState(dwTime, nMiddle); // 吝芭府 拱府利 规绢仿
if (nLong > 0) dpLong.SetState(dwTime, nLong); // 厘芭府 拱府利 规绢仿
}
void CMagicState::SetMagicalDefense(DWORD dwTime, BYTE nFire, BYTE nIce, BYTE nElect, BYTE nHoly)
{ // 傍拜拌凯 付过俊 措茄 规绢仿 刘啊 汲沥
if (nFire > 0) dpFire.SetState(dwTime, nFire); // 阂拌凯 傍拜付过 规绢仿
if (nIce > 0) dpIce.SetState(dwTime, nIce); // 倔澜拌凯 傍拜付过 规绢仿
if (nElect > 0) dpElect.SetState(dwTime, nElect); // 傈拜拌凯 傍拜付过 规绢仿
if (nHoly > 0) dpHoly.SetState(dwTime, nHoly); // 圈府拌凯 傍拜付过 规绢仿
}
void CMagicState::SetCurseDefense(DWORD dwTime, BYTE nSet)
{ // 历林拌凯 付过俊 措茄 规绢 汲沥
if (nSet&CURSE_1) dpCurse1.SetState(dwTime, 100);
if (nSet&CURSE_2) dpCurse2.SetState(dwTime, 100);
if (nSet&CURSE_3) dpCurse3.SetState(dwTime, 100);
if (nSet&CURSE_4) dpCurse4.SetState(dwTime, 100);
if (nSet&CURSE_5) dpCurse5.SetState(dwTime, 100);
if (nSet&CURSE_FREEZE) dpFreeze.SetState(dwTime, 100); // CSD-021216
}
void CMagicState::ClearNpcRun()
{ //
m_nNature = NAT_NORMAL;
dwNature[NAT_SPEED_UP] = 0;
speedUp.Clear();
}
void CMagicState::ClearNpcStatusUp()
{ //
m_nNature = NAT_NORMAL;
dwNature[NAT_STATUS_UP] = 0;
apShort.Clear(); // 拱府利 傍拜 檬扁拳
apMiddle.Clear();
apLong.Clear();
dpShort.Clear(); // 拱府利 规绢仿 檬扁拳
dpMiddle.Clear();
dpLong.Clear();
amplify.Clear(); // 付过刘气 檬扁拳
dpFire.Clear(); // 付过 规绢仿 檬扁拳
dpIce.Clear();
dpElect.Clear();
dpHoly.Clear();
speedUp.Clear(); // 加档刘啊 檬扁拳
}
void CMagicState::ClearNpcRecovery()
{ //
m_nNature = NAT_NORMAL;
dwNature[NAT_LIFE_UP] = 0;
dwLifeUp = 0;
m_nLifeUp = 0;
}
void CMagicState::SetNpcRun(DWORD dwTime, int nSpeed)
{ //
m_nNature = NAT_SPEED_UP;
dwNature[NAT_SPEED_UP] = dwTime;
speedUp.SetState(dwTime, nSpeed);
}
void CMagicState::SetNpcStatusUp(DWORD dwTime, int nAttack, int nDefense, int nSpeed)
{ //
m_nNature = NAT_STATUS_UP;
dwNature[NAT_STATUS_UP] = dwTime;
// 拱府利 规绢 棺 傍拜
SetPhysicalAttack(dwTime, nAttack, nAttack, nAttack);
SetPhysicalDefense(dwTime, nDefense, nDefense, nDefense);
// 付过 规绢 棺 傍拜
amplify.SetState(dwTime, nAttack);
SetMagicalDefense(dwTime, nDefense, nDefense, nDefense, nDefense);
// 加档 刘啊
speedUp.SetState(dwTime, nSpeed);
}
void CMagicState::SetNpcRecovery(DWORD dwTime, int nLife)
{ //
m_nNature = NAT_LIFE_UP;
dwNature[NAT_LIFE_UP] = dwTime;
dwLifeUp = dwTime;
m_nLifeUp = nLife;
}
void CMagicState::CorrectShortDamage(int& rDamage, int nPlus, int nMinus) const
{ // 窜芭府 公扁俊 措茄 规绢仿 焊沥
int nRatio = dpShort.GetRatio();
if (nPlus > 0)
{
nRatio += nPlus;
}
if (nMinus > 0)
{
nRatio -= nMinus;
}
rDamage -= rDamage*nRatio/100;
}
void CMagicState::CorrectMiddleDamage(int& rDamage, int nPlus, int nMinus) const
{ // 吝芭府 公扁俊 措茄 规绢仿 焊沥
int nRatio = dpMiddle.GetRatio();
if (nPlus > 0)
{
nRatio += nPlus;
}
if (nMinus > 0)
{
nRatio -= nMinus;
}
rDamage -= rDamage*nRatio/100;
}
void CMagicState::CorrectLongDamage(int& rDamage, int nPlus, int nMinus) const
{ // 厘芭府 公扁俊 措茄 规绢仿 焊沥
int nRatio = dpLong.GetRatio();
if (nPlus > 0)
{
nRatio += nPlus;
}
if (nMinus > 0)
{
nRatio -= nMinus;
}
rDamage -= rDamage*nRatio/100;
}
void CMagicState::CorrectFireDamage(int& rDamage, int nPlus, int nMinus) const
{ // 阂拌凯 付过俊 措茄 规绢仿 焊沥
int nRatio = dpFire.GetRatio();
if (nPlus > 0)
{
nRatio += nPlus;
}
if (nMinus > 0)
{
nRatio -= nMinus;
}
rDamage -= rDamage*nRatio/100;
}
void CMagicState::CorrectIceDamage(int& rDamage, int nPlus, int nMinus) const
{ // 倔澜拌凯 付过俊 措茄 规绢仿 焊沥
int nRatio = dpIce.GetRatio();
if (nPlus > 0)
{
nRatio += nPlus;
}
if (nMinus > 0)
{
nRatio -= nMinus;
}
rDamage -= rDamage*nRatio/100;
}
void CMagicState::CorrectElectDamage(int& rDamage, int nPlus, int nMinus) const
{ // 傈拜拌凯 付过俊 措茄 规绢仿 焊沥
int nRatio = dpElect.GetRatio();
if (nPlus > 0)
{
nRatio += nPlus;
}
if (nMinus > 0)
{
nRatio -= nMinus;
}
rDamage -= rDamage*nRatio/100;
}
void CMagicState::CorrectHolyDamage(int& rDamage, int nPlus, int nMinus) const
{ // 脚仿拌凯 付过俊 措茄 规绢仿 焊沥
int nRatio = dpHoly.GetRatio();
if (nPlus > 0)
{
nRatio += nPlus;
}
if (nMinus > 0)
{
nRatio -= nMinus;
}
rDamage -= rDamage*nRatio/100;
}
void CMagicState::CorrectMovePlus(int& rMove, int nPlus) const
{ //< CSD-020710
const int nCorrent = rMove;
if (speedUp.GetRatio() > nPlus)
{
rMove += speedUp.Convert(nCorrent);
}
else
{
rMove += (nCorrent*nPlus/100);
}
} //> CSD-020710
void CMagicState::CorrectMoveMinus(int& rMove, int nMinus) const
{ //< CSD-021024
const int nCorrent = rMove;
if (speedDown.GetRatio() > nMinus)
{ // 倔覆 惑怕牢 版快扼搁
rMove -= speedDown.Convert(nCorrent);
}
else
{
rMove -= (nCorrent*nMinus/100);
}
} //> CSD-021024
int CMagicState::GetRecoveryCombatDecHPRate(int nLevel)
{// 030514 kyo // cp雀汗 傈捧胶懦俊 措茄 HP冻绢瘤绰 %
if( nLevel <= 0 )
{
return 0;
}
else if( nLevel == 1 )
{
return 5;
}
else if( nLevel == 2 )
{
return 10;
}
else
return 15;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -