📄 protectionmagic.cpp
字号:
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CProtectionMagic::ProtectDanger()
{ // [152]困氰栏肺何磐 焊龋 : 拱府利 傍拜 单固瘤 40 ~ 50% 规绢, 历林拌凯(1, 2) 规绢
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 规绢伏 拌魂
const int nWis = m_pCaster->GetAbility(WIS) - GetRequireWidom(m_nIndex);
const int nTactics = m_pCaster->Skill[TACTICS_Orison] - GetRequireTactics(m_nIndex);
int nBasic = (nWis + nTactics)/10 + 40;
if (nBasic < 0) nBasic = 0;
if (nBasic > 50) nBasic = 50;
m_pTarget->SetPhysicalDefense(m_dwNow + wPeriod, nBasic, nBasic, nBasic);
// 历林 1, 2拌凯 付过 规绢
m_pTarget->SetCurseDefense(m_dwNow + wPeriod,
CMagicState::CURSE_1|CMagicState::CURSE_2);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
m_pTarget->dwNormalProtect = m_dwNow + wPeriod;
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CProtectionMagic::GreatShield()
{ // [158]困措茄 扁档
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 规绢伏 拌魂
const int nWis = m_pCaster->GetAbility(WIS) - GetRequireWidom(m_nIndex);
const int nTactics = m_pCaster->Skill[TACTICS_Orison] - GetRequireTactics(m_nIndex);
int nBasic = (nWis + nTactics)/10 + 40;
if (nBasic < 0) nBasic = 0;
if (nBasic > 50) nBasic = 50;
m_pTarget->SetPhysicalDefense(m_dwNow + wPeriod, nBasic, nBasic, nBasic);
// 历林 1, 2拌凯 付过 规绢
m_pTarget->SetCurseDefense(m_dwNow + wPeriod,
CMagicState::CURSE_1|CMagicState::CURSE_2);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
m_pTarget->dwNormalProtect = m_dwNow + wPeriod;
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CProtectionMagic::AuthorityLethy()
{ //< CSD-021019 : [184]饭萍狼 鼻瓷
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 拱府利 傍拜 规绢仿 拌魂
const int nWis = m_pCaster->GetAbility(WIS) - GetRequireWidom(m_nIndex);
const int nTactics = m_pCaster->Skill[TACTICS_Orison] - GetRequireTactics(m_nIndex);
int nBasic = (nWis + nTactics)/10;
if (nBasic < 0) nBasic = 0;
if (nBasic > 10) nBasic = 10;
// 拱府 傍拜 规绢仿 40 - 50% 刘啊
const int nStrike = 40 + nBasic;
m_pTarget->SetPhysicalDefense(m_dwNow + wPeriod, nStrike, nStrike, nStrike);
// 傍拜 付过 规绢仿 20 - 30% 刘啊
const int nMagic = 20 + nBasic;
m_pTarget->SetMagicalDefense(m_dwNow + wPeriod, nMagic, nMagic, nMagic, nMagic);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
m_pTarget->dwNormalProtect = m_dwNow + wPeriod;
// 拱府, 付过 傍拜 单固瘤 馆荤 惑怕烙阑 汲沥
m_pTarget->dwStrikeReflect = m_dwNow + wPeriod;
m_pTarget->dwMagicReflect = m_dwNow + wPeriod;
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
} //> CSD-021019
bool CProtectionMagic::NullityMagic()
{ // [24]付过公瓤拳 : 老沥 矫埃悼救 傍拜拌凯 付过阑 100% 规绢(单固瘤父怒 付唱 家厚)
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 傍拜拌凯 付过阑 100% 规绢(单固瘤父怒 付唱 家厚)
m_pTarget->dwMagicDamageToMana = m_dwNow + wPeriod;
// 漂荐 焊龋拌凯 付过 惑怕烙阑 汲沥
m_pTarget->dwSpecialProtect = m_dwNow + wPeriod;
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CProtectionMagic::CancelDivine()
{ // [159]馆脚仿 公瓤拳 : 历林拌凯(1, 2, 3, 4, 5) 付过阑 100% 规绢
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 历林 1, 2, 3, 4, 5拌凯 付过 规绢
m_pTarget->SetCurseDefense(m_dwNow + wPeriod,
CMagicState::CURSE_1|CMagicState::CURSE_2|CMagicState::CURSE_3|CMagicState::CURSE_4|CMagicState::CURSE_5);
// 漂荐 焊龋拌凯 付过 惑怕烙阑 汲沥
m_pTarget->dwNormalProtect = m_dwNow + wPeriod;
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CProtectionMagic::RecurrenceDivine()
{ // [160]雀蓖狼 鼻瓷 : 历林 1, 2, 3, 4拌凯 付过阑 矫傈磊俊霸 登倒覆
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 历林拌凯(1, 2, 3, 4) 付过阑 矫傈磊俊霸 登倒覆
m_pCaster->dwReturnMagic = m_dwNow + wPeriod;
// 漂荐 焊龋拌凯 付过 惑怕烙阑 汲沥
m_pCaster->dwSpecialProtect = m_dwNow + wPeriod;
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CProtectionMagic::PerfectProtect()
{ // [157]肯傈茄 搬拌 : 葛电 付过 规绢客 拱府利 傍拜(Tactic捞 40何磐绰 100%)俊 措茄
// 规绢矫傈磊绰 雀汗拌凯, 焊龋拌凯, 焊炼拌凯 付过甸篮 荤侩且 荐 绝澜
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 拱府利 规绢啦 拌魂
const int nTactics = m_pCaster->Skill[TACTICS_Orison];
int nBasic = 80 + (nTactics>>1);
if (nBasic > 100) nBasic = 100;
// 拱府利 规绢仿
m_pTarget->SetPhysicalDefense(m_dwNow + wPeriod, nBasic, nBasic, nBasic);
m_pTarget->SetMagicalDefense(m_dwNow + wPeriod, nBasic, nBasic, nBasic, nBasic);
m_pTarget->SetCurseDefense(m_dwNow + wPeriod,
CMagicState::CURSE_1|CMagicState::CURSE_2|
CMagicState::CURSE_3|CMagicState::CURSE_4|
CMagicState::CURSE_5);
// 抗寇 焊龋 拌凯 付过篮 老馆捞搁辑 漂荐 焊龋拌凯 付过 惑怕肺 汲沥
m_pTarget->dwExceptProtect = m_dwNow + wPeriod;
m_pTarget->dwNormalProtect = m_dwNow + wPeriod;
m_pTarget->dwSpecialProtect = m_dwNow + wPeriod;
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
bool CProtectionMagic::AuthorityOfAthyas() // 030415 kyo
{ // [185] 酒箕胶狼 鼻瓷 拱府规绢20, 傍拜付过规绢50, 老馆 拱府,捞悼加档 30%刘啊
// 饭萍狼 鼻瓷 + 焊龋 + 加档刘啊
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 规绢伏 拌魂
const int nWis = m_pCaster->GetAbility(WIS) - GetRequireWidom(m_nIndex);
const int nTactics = m_pCaster->Skill[TACTICS_Orison] - GetRequireTactics(m_nIndex);
int nBasic = (nWis + nTactics)/10;
if (nBasic < 0) nBasic = 0;
if (nBasic > 10) nBasic = 10;
//拱府规绢 10 - 20
const nStrike = nBasic + 10;
m_pTarget->SetPhysicalDefense(m_dwNow + wPeriod, nStrike, nStrike, nBasic);
// 历林 1, 2拌凯 付过 规绢
//m_pTarget->SetCurseDefense(m_dwNow + wPeriod, CMagicState::CURSE_1|CMagicState::CURSE_2);
// 傍拜 付过 规绢仿 40 - 50% 刘啊
const int nMagic = 40 + nBasic;
m_pTarget->SetMagicalDefense(m_dwNow + wPeriod, nMagic, nMagic, nMagic, nMagic);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
m_pTarget->dwNormalProtect = m_dwNow + wPeriod;
// 捞悼加档 20-30%刘啊
const int nSpeed = 20 + nBasic;
m_pTarget->speedUp.SetState(m_dwNow + wPeriod, nSpeed);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_T);
m_packet.u.magic.server_magic_result_t.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_t.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
SendMagicResult();
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -