📄 cursingmagic.cpp
字号:
bool CCursingMagic::Slow()
{ // [10]加档历窍 : 惑措规狼 捞悼加档(MovP)甫 1/2肺 皑家
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
if (IsReturn(m_pTarget))
{
m_pCaster->speedDown.SetState(m_dwNow + wPeriod, 50);
m_pCaster->ApplyCurse(2, CON_SLOW, m_dwNow + wPeriod);
// 搬苞蔼阑 措惑磊俊霸 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_idCaster;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pCaster->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
m_pTarget->speedDown.SetState(m_dwNow + wPeriod, 50);
m_pTarget->ApplyCurse(2, CON_SLOW, m_dwNow + wPeriod);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// NK俊 拌魂
::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
// 搬苞蔼阑 措惑磊俊霸 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.wDuration= wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
bool CCursingMagic::SpiderWeb()
{ // [19]芭固临 : 惑措规狼 捞悼加档(MovP) 1/3 临捞绊, 傍拜 己傍伏 皑家
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
if (IsReturn(m_pTarget))
{
m_pCaster->speedDown.SetState(m_dwNow + wPeriod, 30);
m_pCaster->ApplyCurse(2, CON_SLOW, m_dwNow + wPeriod);
// 搬苞蔼阑 措惑磊俊霸 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_idCaster;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pCaster->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
m_pTarget->speedDown.SetState(m_dwNow + wPeriod, 30);
m_pTarget->ApplyCurse(2, CON_SLOW, m_dwNow + wPeriod);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// NK俊 拌魂
::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
// 搬苞蔼阑 措惑磊俊霸 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.wDuration= wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
bool CCursingMagic::AreaSlow()
{ // [115]瘤开 加档历窍
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
m_pTarget->speedDown.SetState(m_dwNow + wPeriod, 30);
m_pTarget->ApplyCurse(2, CON_SLOW, m_dwNow + wPeriod);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// NK俊 拌魂
::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
// 搬苞蔼阑 措惑磊俊霸 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.wDuration= wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
bool CCursingMagic::FeatherOfCurse()
{ // [93]付厚狼 标判
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
if (IsReturn(m_pTarget))
{
m_pCaster->speedDown.SetState(m_dwNow + wPeriod, 50);
m_pCaster->ApplyCurse(2, CON_SLOW, m_dwNow + wPeriod);
// 搬苞蔼阑 措惑磊俊霸 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_idCaster;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pCaster->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
m_pTarget->speedDown.SetState(m_dwNow + wPeriod, 50);
m_pTarget->ApplyCurse(2, CON_SLOW, m_dwNow + wPeriod);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// NK俊 拌魂
::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
// 搬苞蔼阑 措惑磊俊霸 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.wDuration= wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
bool CCursingMagic::Intoxication()
{ // [12]吝刀 : 付过狼 扁夯 单固瘤蔼父怒 HP 皑家 饶 老沥樊狼 HP啊 辑辑洒 皑家
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
const int nBase = 100 + m_pTarget->HpMax*0.05 + (m_pCaster->Skill[TACTICS_Magery]>>2);
const int nPoison = __min(nBase, 2000);
if (IsReturn(m_pTarget))
{
m_pCaster->SetPoisonedPoint(nPoison);
m_pCaster->ApplyCurse(3, CON_POISON, m_dwNow + wPeriod);
// 搬苞蔼阑 措惑磊俊霸 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_idCaster;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pCaster->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
m_pTarget->SetPoisonedPoint(nPoison);
m_pTarget->ApplyCurse(3, CON_POISON, m_dwNow + wPeriod);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// NK俊 拌魂
::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
// 搬苞蔼阑 措惑磊俊霸 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.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
bool CCursingMagic::ToxicCloud()
{ // [15]刀备抚 : 老沥瘤开 郴俊 吝刀捞 惯积
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
const int nBase = 100 + m_pTarget->HpMax*0.04 + (m_pCaster->Skill[TACTICS_Magery]>>1);
const int nPoison = __min(nBase, 2000);
// 扁夯 付过 单固瘤
if (IsReturn(m_pTarget))
{
m_pCaster->SetPoisonedPoint(nPoison);
m_pCaster->ApplyCurse(3, CON_POISON, m_dwNow + wPeriod);
// 搬苞蔼阑 措惑磊俊霸 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_idCaster;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pCaster->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
m_pTarget->SetPoisonedPoint(nPoison);
m_pTarget->ApplyCurse(3, CON_POISON, m_dwNow + wPeriod);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// NK俊 拌魂
::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
// 搬苞蔼阑 措惑磊俊霸 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.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
bool CCursingMagic::VampirePoison()
{ //< CSD-TW-030627 : [90]轨颇捞绢狼 刀
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
const int nPoison = m_pTarget->HpMax*0.1;
m_pTarget->SetPoisonedPoint(nPoison);
m_pTarget->ApplyCurse(3, CON_POISON, m_dwNow + wPeriod);
// 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷瘤 臼篮 版快
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// NK俊 拌魂
::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
// 搬苞蔼阑 措惑磊俊霸 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.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
} //> CSD-TW-030627
bool CCursingMagic::CurseOfHell()
{ //< CSD-TW-030627 : [94]秋狼 历林
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
const int nPoison = m_pTarget->HpMax*0.1;
m_pTarget->SetPoisonedPoint(nPoison);
m_pTarget->ApplyCurse(3, CON_POISON, m_dwNow + wPeriod);
// 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷瘤 臼篮 版快
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// NK俊 拌魂
::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
// 搬苞蔼阑 措惑磊俊霸 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.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
} //> CSD-TW-030627
bool CCursingMagic::AreaPoison()
{ // [113]瘤开 吝刀
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
const int nPoison = m_pTarget->HpMax*0.05;
m_pTarget->SetPoisonedPoint(nPoison);
m_pTarget->ApplyCurse(3, CON_POISON, m_dwNow + wPeriod);
// 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷瘤 臼篮 版快
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// NK俊 拌魂
::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
// 搬苞蔼阑 措惑磊俊霸 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.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
bool CCursingMagic::LostSight()
{ // [82] 矫仿惑角 : 矫具甫 2鸥老肺 良塞
const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
if (IsReturn(m_pTarget))
{
m_pCaster->ApplyCurse(4, CON_DARKNESS, m_dwNow + wPeriod);
// 矫具惑角 惑怕甫 努扼捞攫飘肺 傈价
::SendMagicCommand(m_pCaster, SET_LOSTSIGHT, 0, wPeriod);
// 搬苞蔼阑 措惑磊俊霸 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_idCaster;
m_packet.u.magic.server_magic_result_t.wDuration = wPeriod;
m_packet.u.magic.server_magic_result_t.nState = m_pCaster->GetState();
m_packet.u.magic.server_magic_result_t.nResult = HIT_AND_NOTDEAD;
SendMagicResult();
return true;
}
m_pTarget->ApplyCurse(4, CON_DARKNESS, m_dwNow + wPeriod);
if (m_pTarget->IsNpc())
{ // NPC 棺 阁胶磐狼 矫具惑角 瓤苞 楷免窃荐 龋免
::NPCLostSight(m_pTarget, m_dwNow + wPeriod);
}
else
{ // 矫具惑角 惑怕甫 努扼捞攫飘肺 傈价
::SendMagicCommand(m_pTarget, SET_LOSTSIGHT, 0, wPeriod);
}
// 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷瘤 臼篮 版快
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -