📄 protectionmagic.cpp
字号:
// ProtectionMagic.cpp: implementation of the CProtectionMagic class.
//
//////////////////////////////////////////////////////////////////////
#include "..\stdafx.h"
#include "ProtectionMagic.h"
#include "..\HigherLayers\OP_Magic.h"
///////////////////////////////////////////////////////////////////////////////
// Construction/Destruction
///////////////////////////////////////////////////////////////////////////////
CProtectionMagic::CProtectionMagic()
{
}
CProtectionMagic::~CProtectionMagic()
{
}
///////////////////////////////////////////////////////////////////////////////
// Protected Method
///////////////////////////////////////////////////////////////////////////////
bool CProtectionMagic::Bind()
{
Resist(PROTECTION, &CProtectionMagic::Protection);
Resist(SHIELD, &CProtectionMagic::Shield);
Resist(FIRE_RESIST, &CProtectionMagic::FireResist);
Resist(ICE_RESIST , &CProtectionMagic::IceResist);
Resist(ELECT_RESIST, &CProtectionMagic::ElectResist);
Resist(TWINKLE_STAR, &CProtectionMagic::TwinkleStar);
Resist(PROTECT_RANGE_WEAPON, &CProtectionMagic::ProtectRangeWeapon); // 厘芭府 公扁肺何磐 焊龋
Resist(DRAGON_SCALE, &CProtectionMagic::DragonScale);
Resist(BLESS, &CProtectionMagic::Bless);
Resist(PROTECT_DANGER, &CProtectionMagic::ProtectDanger);
Resist(GREAT_SHIELD, &CProtectionMagic::GreatShield);
Resist(AUTHORITY_LETHY, &CProtectionMagic::AuthorityLethy); // CSD-021015
Resist(NULLITY_MAGIC, &CProtectionMagic::NullityMagic);
Resist(CANCEL_DIVINE, &CProtectionMagic::CancelDivine);
Resist(RECURRENCE_DIVINE, &CProtectionMagic::RecurrenceDivine);
Resist(PERFECT_PROTECT, &CProtectionMagic::PerfectProtect);
Resist(AUTHORITY_OF_ATHYAS, &CProtectionMagic::AuthorityOfAthyas); // 030415 kyo
return true;
}
bool CProtectionMagic::DragonScale()
{ // [86]靛贰帮狼 厚疵 : 拱府利 傍拜 单固瘤 60% 规绢
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 拱府利 规绢仿 60% 刘啊
m_pTarget->SetPhysicalDefense(m_dwNow + wPeriod, 60, 60, 60);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
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::ProtectRangeWeapon()
{ // [79]厘芭府 公扁肺何磐 焊龋 : 厘芭府 傍拜 单固瘤 90% 规绢
// 蜡瘤矫埃 拌魂
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 厘芭府 傍拜 单固瘤 90% 规绢
m_pTarget->dpLong.SetState(m_dwNow + wPeriod, 90);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
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::FireResist()
{ // [28]阂俊 措茄 历亲 : 阂拌凯 傍拜付过俊 措茄 规绢仿 50% 刘啊
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 阂拌凯 傍拜付过俊 措茄 规绢仿 50% 刘啊
m_pTarget->SetMagicalDefense(m_dwNow + wPeriod, 50, 0, 0, 0);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
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::IceResist()
{ // [37]葫拌 历亲 : 倔澜拌凯 傍拜付过俊 措茄 规绢仿 50% 刘啊
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 倔澜拌凯 傍拜付过俊 措茄 规绢仿 50% 刘啊
m_pTarget->SetMagicalDefense(m_dwNow + wPeriod, 0, 50, 0, 0);
// CSD-021216 : 倔覆 历林 付过 规绢
m_pTarget->SetCurseDefense(m_dwNow + wPeriod, CMagicState::CURSE_FREEZE);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
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::ElectResist()
{ // [47]傈拜俊 措茄 历亲 : 傈拜拌凯 傍拜 付过俊 措茄 规绢仿 50% 刘啊
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 傈拜拌凯 傍拜 付过俊 措茄 规绢仿 50% 刘啊
m_pTarget->SetMagicalDefense(m_dwNow + wPeriod, 0, 0, 50, 0);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
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::TwinkleStar()
{ // [53]荐龋己 : 拱府利 傍拜 单固瘤 40% 规绢, 历林 1拌凯狼 付过 100% 规绢
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 拱府利 规绢仿 30% 刘啊
m_pTarget->SetPhysicalDefense(m_dwNow + wPeriod, 40, 40, 40);
// 历林 1拌凯 付过 规绢
m_pTarget->SetCurseDefense(m_dwNow + wPeriod, CMagicState::CURSE_1);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
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::Protection()
{ // [2]焊龋 : 拱府利 傍拜 单固瘤 30% 规绢, 历林 1, 3, 5拌凯狼 付过 100% 规绢
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 拱府利 规绢仿 30% 刘啊
m_pTarget->SetPhysicalDefense(m_dwNow + wPeriod, 30, 30, 30);
// 历林 3, 4, 5拌凯 付过 规绢
m_pTarget->SetCurseDefense(m_dwNow + wPeriod,
CMagicState::CURSE_1|CMagicState::CURSE_3|CMagicState::CURSE_4);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
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::Shield()
{ // [3]焊龋阜 : 拱府利 傍拜 单固瘤, 阂, 倔澜, 傈拜拌凯狼 傍拜付过 40% 规绢
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 拱府利 规绢仿 40% 刘啊
m_pTarget->SetPhysicalDefense(m_dwNow + wPeriod, 40, 40, 40);
// 阂, 倔澜, 傈拜拌凯 傍拜付过 规绢仿 40 刘啊
m_pTarget->SetMagicalDefense(m_dwNow + wPeriod, 40, 40, 40, 0);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
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::Bless()
{ // [153]脚狼 绵汗 : 历林拌凯(1, 2, 3, 4) 付过阑 100% 规绢
// 蜡瘤矫埃 拌魂
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
// 历林 1, 2, 3, 4拌凯 付过 规绢
m_pTarget->SetCurseDefense(m_dwNow + wPeriod,
CMagicState::CURSE_1|CMagicState::CURSE_2|CMagicState::CURSE_3|CMagicState::CURSE_4);
// 老馆 焊龋拌凯 付过 惑怕烙阑 汲沥
m_pTarget->dwNormalProtect = m_dwNow + wPeriod;
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -