CursingMagic.cpp
上传用户:sdhhxjz
上传日期:2017-09-16
资源大小:1728k
文件大小:33k
- // CursingMagic.cpp: implementation of the CCursingMagic class.
- //
- //////////////////////////////////////////////////////////////////////
- #include "..stdafx.h"
- #include "CursingMagic.h"
- #include "..HigherLayersOp_Magic.h"
- #include "..HigherLayersOp_Battle.h"
- #include "..HigherLayersOp_chr_status.h"
- #include "..HigherLayersNationSys.h"
- ///////////////////////////////////////////////////////////////////////////////
- // Construction/Destruction
- ///////////////////////////////////////////////////////////////////////////////
- CCursingMagic::CCursingMagic()
- {
- }
- CCursingMagic::~CCursingMagic()
- {
- }
- ///////////////////////////////////////////////////////////////////////////////
- // Public Method
- ///////////////////////////////////////////////////////////////////////////////
- bool CCursingMagic::Bind()
- {
- Resist(CONFUSION, &CCursingMagic::Confusion);
- Resist(ABSOLUTE_PARALYSIS, &CCursingMagic::AbsoluteParalysis);
- Resist(STONELY, &CCursingMagic::Stonely);
- Resist(CURSE, &CCursingMagic::Curse);
- Resist(AREA_PARALYSIS, &CCursingMagic::AreaParalysis);
- Resist(AREA_CONFUSION, &CCursingMagic::AreaConfusion);
- Resist(SLOW, &CCursingMagic::Slow);
- Resist(SPIDER_WEB, &CCursingMagic::SpiderWeb);
- Resist(AREA_SLOW, &CCursingMagic::AreaSlow);
- Resist(FEATHER_OF_CURSE, &CCursingMagic::FeatherOfCurse);
- Resist(INTOXICATION, &CCursingMagic::Intoxication);
- Resist(TOXIC_CLOUD, &CCursingMagic::ToxicCloud);
- Resist(VAMPIRE_POISON, &CCursingMagic::VampirePoison);
- Resist(CURSE_OF_HELL, &CCursingMagic::CurseOfHell);
- Resist(AREA_POISON, &CCursingMagic::AreaPoison);
- Resist(LOST_SIGHT, &CCursingMagic::LostSight);
- Resist(AUTHORITY_LOST_SIGHT, &CCursingMagic::AuthorityLostSight);
- Resist(DISEASE_INDUCE, &CCursingMagic::DiseaseInduce);
- Resist(VAMPIRE_TOUCH, &CCursingMagic::VampireTouch);
- Resist(LIFE_DRAIN, &CCursingMagic::LifeDrain);
- Resist(GAZER, &CCursingMagic::Gazer); // 030509 kyo
- return true;
- }
- bool CCursingMagic::Elapse(CHARLIST* pTarget)
- {
- const int nState = pTarget->GetState();
-
- switch (nState)
- {
- case CON_NORMAL:
- case CON_DEATH:
- {
- break;
- }
- default:
- { // 阿 历林惑怕 八荤
- CheckStun(pTarget);
- CheckSlow(pTarget);
- CheckPoison(pTarget);
- CheckBlind(pTarget);
- CheckFreeze(pTarget);
- // 惑怕函版
- if (nState != pTarget->GetState())
- {
- ::SendCharacterCondition(pTarget, 0);
- }
- // 10檬俊 茄锅究 HP皑家
- if (pTarget->GetPoisonedCount() >= 10)
- {
- const int nPoison = pTarget->GetPoisonedPoint();
- const int nLife = pTarget->DecLife(nPoison, 10);
-
- if (nLife != 0)
- {
- ::SendCharacterCondition(pTarget, -nLife);
- }
-
- pTarget->SetPoisonedCount(0);
- }
-
- break;
- }
- }
-
- return true;
- }
- bool CCursingMagic::Confusion()
- { // [11]去鄂 : 惑措规捞 付快胶 努腐茄 镑苞 促弗 镑栏肺 捞悼, 付过 荤侩 阂啊
- const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
-
- if (IsReturn(m_pTarget))
- { // 矫傈磊啊 雀蓖狼 鼻瓷 付过 惑怕扼搁
- m_pCaster->dwDontCasting = m_dwNow + wPeriod;
- // 措惑磊狼 惑怕 汲沥
- m_pCaster->ApplyCurse(1, CON_DAZE, 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->dwDontCasting = m_dwNow + wPeriod;
- // 措惑磊狼 惑怕 汲沥
- m_pTarget->ApplyCurse(1, CON_DAZE, 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::AbsoluteParalysis()
- { // [14]例措付厚 : 付过 荤侩 阂啊, 拱府利 傍拜 阂啊, 困摹 捞悼 阂啊
- const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
-
- if (IsReturn(m_pTarget))
- {
- m_pCaster->dwDontCasting = m_dwNow + wPeriod;
- m_pCaster->dwDontAttack = m_dwNow + wPeriod;
- m_pCaster->dwDontMove = m_dwNow + wPeriod;
- m_pCaster->ApplyCurse(1, CON_STONE, 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->dwDontCasting = m_dwNow + wPeriod;
- m_pTarget->dwDontAttack = m_dwNow + wPeriod;
- m_pTarget->dwDontMove = m_dwNow + wPeriod;
- m_pTarget->ApplyCurse(1, CON_STONE, 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::Stonely()
- { // [13]籍拳 : 个捞 被绢辑 框流老 荐 绝绰 惑怕(拱府利 傍拜捞唱 付过 荤侩捞 阂啊,历林秦力甫 力寇茄 葛电 付过狼 利侩捞 救凳, 绢栋茄 单固瘤档 罐瘤 给窃)
- const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
-
- if (IsReturn(m_pTarget))
- {
- m_pCaster->dwDontCasting = m_dwNow + wPeriod;
- m_pCaster->dwDontAttack = m_dwNow + wPeriod;
- m_pCaster->dwDontMove = m_dwNow + wPeriod;
- m_pCaster->dwBlocking = m_dwNow + wPeriod;
- m_pCaster->ApplyCurse(1, CON_STONE, 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->dwDontCasting = m_dwNow + wPeriod;
- m_pTarget->dwDontAttack = m_dwNow + wPeriod;
- m_pTarget->dwDontMove = m_dwNow + wPeriod;
- m_pTarget->dwBlocking = m_dwNow + wPeriod;
- m_pTarget->ApplyCurse(1, CON_STONE, 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::Curse()
- { // [172]脚狼 历林 : 付过 荤侩 阂啊
- const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
-
- if (IsReturn(m_pTarget))
- {
- m_pCaster->dwDontCasting = m_dwNow + wPeriod;
- m_pCaster->ApplyCurse(1, CON_CURSE, 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->dwDontCasting = m_dwNow + wPeriod;
- m_pTarget->ApplyCurse(1, CON_CURSE, 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::AreaParalysis()
- { // [112]瘤开 付厚
- const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
- m_pTarget->dwDontCasting = m_dwNow + wPeriod;
- m_pTarget->dwDontAttack = m_dwNow + wPeriod;
- m_pTarget->dwDontMove = m_dwNow + wPeriod;
- m_pTarget->ApplyCurse(1, CON_STONE, 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::AreaConfusion()
- { // [114]瘤开 去鄂
- const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
- m_pTarget->dwDontCasting = m_dwNow + wPeriod;
- // 措惑磊狼 惑怕 汲沥
- m_pTarget->ApplyCurse(1, CON_DAZE, 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::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);
- }
- // 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷瘤 臼篮 版快
- ::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::AuthorityLostSight()
- { // [177] 矫仿惑角狼 鼻瓷 : 矫具甫 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);
- }
- // 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷瘤 臼篮 版快
- ::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::DiseaseInduce()
- { //< CSD-031007 : [16]龙捍蜡惯 : Health(硅绊悄 沥档) 皑家
- if (m_pTarget->IsNpc())
- {
- return true;
- }
- if (IsReturn(m_pTarget))
- {
- // 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
- InitMagicResult(CMD_MAGIC_RESULT);
- m_packet.u.magic.server_magic_result.nMagic = m_nIndex;
- m_packet.u.magic.server_magic_result.idTarget = m_idCaster;
- m_packet.u.magic.server_magic_result.nState = m_pCaster->GetState();
- m_packet.u.magic.server_magic_result.nResult = HIT_AND_NOTDEAD;
- SendMagicResult();
- return true;
- }
-
- if (m_pTarget->DecHungry(m_pTarget->HungryMax/2) > 0)
- {
- m_pTarget->SendCharInfoBasic(SP, m_pTarget->Hungry);
- // 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷瘤 臼篮 版快
- ::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
- }
- // NK俊 拌魂
- ::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
- // 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
- InitMagicResult(CMD_MAGIC_RESULT);
- m_packet.u.magic.server_magic_result.nMagic = m_nIndex;
- m_packet.u.magic.server_magic_result.idTarget = m_idTarget;
- m_packet.u.magic.server_magic_result.nState = m_pTarget->GetState();
- m_packet.u.magic.server_magic_result.nResult = HIT_AND_NOTDEAD;
- SendMagicResult();
- return true;
- } //> CSD-031007
- bool CCursingMagic::VampireTouch()
- { // [17]轨颇捞绢狼 颊辨 : 措惑磊狼 HP甫 哗狙酒 矫傈磊狼 HP俊 歹窃(措惑磊啊 磷瘤绰 臼澜)
- const int nDiff = m_pCaster->GetLevel() - m_pTarget->GetLevel(); // CSD-030806
- // HP甫 哗狙阑 % 拌魂
- int nPercent = (35 + nDiff) + m_pCaster->Skill[TACTICS_Magery]/4;
- if (nPercent > 80) nPercent = 80;
- if (nPercent < 10) nPercent = 10;
-
- if (IsReturn(m_pTarget))
- {
- const int nTemp = m_pTarget->GetPureLife()*nPercent/100; // Hp甫 哗疽绰 樊
- const int nMinus = m_pCaster->DecLife(nTemp, 1); // 角力 HP甫 哗疽绰 樊
- const int nPlus = m_pTarget->IncLife(nMinus); // 角力 HP甫 歹窍绰 樊
- ::SendCharacterCondition(m_pTarget, nPlus);
- // 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
- InitMagicResult(CMD_MAGIC_RESULT_H);
- m_packet.u.magic.server_magic_result_h.nMagic = m_nIndex;
- m_packet.u.magic.server_magic_result_h.idTarget = m_idCaster;
- m_packet.u.magic.server_magic_result_h.nLife = -nMinus;
- m_packet.u.magic.server_magic_result_h.nState = m_pCaster->GetState();
- m_packet.u.magic.server_magic_result_h.nResult = HIT_AND_NOTDEAD;
- SendMagicResult();
- return true;
- }
-
- const int nTemp = m_pCaster->GetPureLife()*nPercent/100; // Hp甫 哗疽绰 樊
- const int nMinus = m_pTarget->DecLife(nTemp, 1); // 角力 HP甫 哗疽绰 樊
- const int nPlus = m_pCaster->IncLife(nMinus); // 角力 HP甫 歹窍绰 樊
- ::SendCharacterCondition(m_pCaster, nPlus);
- // 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷瘤 臼篮 版快
- ::AddCasterEXP(m_pCaster, m_pTarget, 2, 1, abs(nMinus));
- // NK俊 拌魂
- ::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
- // 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
- InitMagicResult(CMD_MAGIC_RESULT_H);
- m_packet.u.magic.server_magic_result_h.nMagic = m_nIndex;
- m_packet.u.magic.server_magic_result_h.idTarget = m_idTarget;
- m_packet.u.magic.server_magic_result_h.nLife = -nMinus;
- m_packet.u.magic.server_magic_result_h.nState = m_pTarget->GetState();
- m_packet.u.magic.server_magic_result_h.nResult = HIT_AND_NOTDEAD;
- SendMagicResult();
- return true;
- }
- bool CCursingMagic::LifeDrain()
- { // [190]积疙仿 呕秒 : 措惑磊狼 HP甫 哗狙酒 矫傈磊狼 HP俊 歹窃(饭骇俊 蝶弗 眉仿摹 软荐樊 瞒殿 利侩
- const int nDiff = m_pCaster->GetLevel() - m_pTarget->GetLevel(); // CSD-030806
- // HP甫 哗狙阑 % 拌魂
- int nPercent = (50 + nDiff) + m_pCaster->Skill[TACTICS_Orison]/3;
- if (nPercent > 90) nPercent = 90;
- if (nPercent < 10) nPercent = 10;
-
- if (IsReturn(m_pTarget))
- {
- const int nTemp = m_pTarget->GetPureLife()*nPercent/100; // Hp甫 哗疽绰 樊
- const int nMinus = m_pCaster->DecLife(nTemp, 1); // 角力 HP甫 哗疽绰 樊
- const int nPlus = m_pTarget->IncLife(nMinus); // 角力 HP甫 歹窍绰 樊
- ::SendCharacterCondition(m_pTarget, nPlus);
- // 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
- InitMagicResult(CMD_MAGIC_RESULT_H);
- m_packet.u.magic.server_magic_result_h.nMagic = m_nIndex;
- m_packet.u.magic.server_magic_result_h.idTarget = m_idCaster;
- m_packet.u.magic.server_magic_result_h.nLife = -nMinus;
- m_packet.u.magic.server_magic_result_h.nState = m_pCaster->GetState();
- m_packet.u.magic.server_magic_result_h.nResult = HIT_AND_NOTDEAD;
- SendMagicResult();
- return true;
- }
-
- const int nTemp = m_pCaster->GetPureLife()*nPercent/100; // Hp甫 哗疽绰 樊
- const int nMinus = m_pTarget->DecLife(nTemp, 1); // 角力 HP甫 哗疽绰 樊
- const int nPlus = m_pCaster->IncLife(nMinus); // 角力 HP甫 歹窍绰 樊
- ::SendCharacterCondition(m_pCaster, nPlus);
- // 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷瘤 臼篮 版快
- ::AddCasterEXP(m_pCaster, m_pTarget, 2, 1, abs(nMinus));
- // NK俊 拌魂
- ::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
- // 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
- InitMagicResult(CMD_MAGIC_RESULT_H);
- m_packet.u.magic.server_magic_result_h.nMagic = m_nIndex;
- m_packet.u.magic.server_magic_result_h.idTarget = m_idTarget;
- m_packet.u.magic.server_magic_result_h.nLife = -nMinus;
- m_packet.u.magic.server_magic_result_h.nState = m_pTarget->GetState();
- m_packet.u.magic.server_magic_result_h.nResult = HIT_AND_NOTDEAD;
- SendMagicResult();
- return true;
- }
- bool CCursingMagic::Gazer()
- { // [109]30%狼 犬伏肺 脚狼 历林(付过荤侩阂啊)甫 角青茄促
- if( rand()%2 == 0 ) // 030514 kyo 50%犬伏
- {
- return false;
- }
- const WORD wPeriod = CalcPeriod(); // 蜡瘤矫埃 拌魂
- m_pTarget->dwDontCasting = m_dwNow + wPeriod;
- m_pTarget->ApplyCurse(1, CON_CURSE, m_dwNow + wPeriod);
- 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;
- }
- ///////////////////////////////////////////////////////////////////////////////
- // Protected Method
- ///////////////////////////////////////////////////////////////////////////////
- bool CCursingMagic::CheckDeath(int nDamage)
- { //< CSD-TW-030627
- if (IsReturn(m_pCaster)) return false;
- // Life 皑家
- const int nLife = m_pTarget->DecLife(nDamage);
- if (nLife > 0)
- {
- ::SendCharacterCondition(m_pTarget, -nLife);
- }
-
- if (m_pTarget->IsDead())
- {
- if (m_pCaster->IsPlayer() && m_pTarget->IsPlayer())
- {
- ::KillWho(m_pTarget, m_pCaster);
- }
- if (m_pTarget->IsNpc())
- {
- m_pTarget->m_xSummon.Remove(KillMonster);
- }
-
- ::killCharacter(m_pCaster, m_pTarget);
- // 矫傈磊狼 版氰摹 拌魂 : 傍拜付过栏肺 埃林秦辑 磷篮 版快
- ::AddCasterEXP(m_pCaster, m_pTarget, 1, 1, abs(nDamage));
- // NK俊 拌魂
- ::CheckNK(m_idCaster, m_idTarget, NK_TYPE_NO_KILL_);
- // 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
- InitMagicResult(CMD_MAGIC_RESULT);
- m_packet.u.magic.server_magic_result.nMagic = m_nIndex;
- m_packet.u.magic.server_magic_result.idTarget = m_idTarget;
- m_packet.u.magic.server_magic_result.nState = CON_DEATH;
- m_packet.u.magic.server_magic_result.nResult = HIT_AND_DEAD;
- SendMagicResult();
- return true;
- }
-
- return false;
- } //> CSD-TW-030627
- void CCursingMagic::CheckStun(CHARLIST* pTarget)
- {
- if (pTarget->IsCurse(1, g_curr_time))
- {
- pTarget->ClearCurse(1);
- }
- }
- void CCursingMagic::CheckSlow(CHARLIST* pTarget)
- {
- if (pTarget->IsCurse(2, g_curr_time))
- {
- pTarget->ClearCurse(2);
- }
- }
- void CCursingMagic::CheckPoison(CHARLIST* pTarget)
- {
- if (pTarget->IsCurse(3, g_curr_time))
- {
- pTarget->ClearCurse(3);
- }
- }
- void CCursingMagic::CheckBlind(CHARLIST* pTarget)
- {
- if (pTarget->IsCurse(4, g_curr_time))
- {
- pTarget->ClearCurse(4);
- }
- }
- void CCursingMagic::CheckFreeze(CHARLIST* pTarget)
- {
- if (pTarget->IsCurse(6, g_curr_time))
- {
- pTarget->ClearCurse(6);
- }
- }
- ///////////////////////////////////////////////////////////////////////////////
- // Private Method
- ///////////////////////////////////////////////////////////////////////////////
- bool CCursingMagic::IsReturn(CHARLIST* pTarget) const
- {
- return (pTarget->IsPlayer() && pTarget->IsReturn()) ? true:false;
- }