📄 recoverymagic.cpp
字号:
// RecoveryMagic.cpp: implementation of the CRecoveryMagic class.
//
//////////////////////////////////////////////////////////////////////
#include "..\stdafx.h"
#include "RecoveryMagic.h"
#include "..\HigherLayers\OP_Magic.h"
///////////////////////////////////////////////////////////////////////////////
// Construction/Destruction
///////////////////////////////////////////////////////////////////////////////
CRecoveryMagic::CRecoveryMagic()
{
}
CRecoveryMagic::~CRecoveryMagic()
{
}
///////////////////////////////////////////////////////////////////////////////
// Public Method
///////////////////////////////////////////////////////////////////////////////
bool CRecoveryMagic::Bind()
{
Resist(LIFE_UP, &CRecoveryMagic::Healing);
Resist(DECIPHER, &CRecoveryMagic::Decipher);
Resist(HEAL_DISEASE, &CRecoveryMagic::HealDisease);
Resist(GREAT_HEAL, &CRecoveryMagic::GreatHeal);
Resist(REMOVE_CURSE, &CRecoveryMagic::RemoveCurse);
Resist(RESTORE_AUTHORITY, &CRecoveryMagic::RestoreAuthority);
Resist(MIRACLE_RECOVER, &CRecoveryMagic::MiracleRecover);
Resist(RELIEF_AUTHORITY, &CRecoveryMagic::ReliefAuthority);
Resist(RECOVER_POISON, &CRecoveryMagic::RecoverPoison);
Resist(AUTHORITY_RECOVER_SIGHT, &CRecoveryMagic::AuthorityRecoverSight);
Resist(CURE_DISEASE, &CRecoveryMagic::CureDisease);
Resist(AUTHORITY_SIMUNIAN, &CRecoveryMagic::AuthoritySimunian);
Resist(HOLY_CURE, &CRecoveryMagic::HolyCure); // 030415 kyo
return true;
}
bool CRecoveryMagic::Healing()
{ // [1]眉仿雀汗 : HP 刘啊
if (m_pTarget->IsFullLife())
{ // MP啊 傈何 瞒乐促搁
return false;
}
const int nInt = m_pCaster->GetAbility(INT_);
const int nWsPs = m_pCaster->GetAbility(WSPS);
const int nPlus = ((nInt + nWsPs)>>1)*(m_pCaster->Skill[TACTICS_Magery]>>1) + 100;
const int nReal = m_pTarget->IncLife(nPlus);
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex, nReal);
// 搬苞蔼阑 措惑磊俊霸 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 = nReal;
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 CRecoveryMagic::Decipher()
{ // [4]秦刀 付过 : 历林拌凯 付过牢 吝刀, 刀备抚 惑怕甫 秦力
m_pTarget->ClearCurse(3);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 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;
}
bool CRecoveryMagic::HealDisease()
{ // [5]龙捍摹丰 : Health(硅绊悄 惑怕) 刘啊
if (m_pTarget->IsFullHungry() == true)
{ // 硅绊悄 荐摹啊 傈何 瞒乐促搁
return false;
}
const int nPlus = m_pTarget->HungryMax/5;
m_pTarget->IncHungry(nPlus);
m_pTarget->SendCharInfoBasic(SP, m_pTarget->Hungry);//020704 lsw
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 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;
}
bool CRecoveryMagic::GreatHeal()
{ // [6]措眉仿雀汗 : HP甫 弥措鳖瘤 刘啊, 历林 1, 2拌凯狼 付过 惑怕 雀汗
if (m_pTarget->IsFullLife())
{ // MP啊 傈何 瞒乐促搁
return false;
}
const int nInt = m_pCaster->GetAbility(INT_);
const int nWsPs = m_pCaster->GetAbility(WSPS);
const int nPlus = ((nInt + nWsPs)>>1)*((m_pCaster->Skill[TACTICS_Magery]*3)>>1) + 600;
const int nReal = m_pTarget->IncLife(nPlus);
// 历林 1, 2拌凯 付过 惑怕 雀汗
m_pTarget->ClearCurse(1);
m_pTarget->ClearCurse(2);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex, nReal);
// 搬苞蔼阑 措惑磊俊霸 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 = nReal;
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 CRecoveryMagic::RemoveCurse()
{ // [78]历林秦力 : 历林 1, 2, 3, 4拌凯 付过 秦力
m_pTarget->ClearCurse(1);
m_pTarget->ClearCurse(2);
m_pTarget->ClearCurse(3);
m_pTarget->ClearCurse(4);
::SendMagicCommand(m_pTarget, SET_CUREBLIND, 0, 0); //矫仿惑角 雀汗
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 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;
}
bool CRecoveryMagic::RestoreAuthority()
{ // [151]雀汗狼鼻瓷 : 弥措狼 HP肺 盲况淋
if (m_pTarget->IsFullLife())
{ // MP啊 傈何 瞒乐促搁
return false;
}
const int nWis = m_pCaster->GetAbility(WIS);
const int nWsPs = m_pCaster->GetAbility(WSPS);
const int nPlus = ((nWis + nWsPs)>>1)*(m_pCaster->Skill[TACTICS_Orison]) + 400;
const int nReal = m_pTarget->IncLife(nPlus);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex, nReal);
// 搬苞蔼阑 措惑磊俊霸 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 = nReal;
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 CRecoveryMagic::MiracleRecover()
{ // [156]肯摹狼 扁利 : 矫傈磊客 林函狼 老沥 芭府 郴俊 乐绰 某腐磐甸狼 HP阑 50000鳖瘤 棵妨淋
if (m_pTarget->IsFullLife())
{ // HP啊 傈何 瞒乐促搁
return false;
}
// Life 刘啊
const int nReal = m_pTarget->IncLife(50000);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex, nReal);
// 搬苞蔼阑 措惑磊俊霸 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 = nReal;
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 CRecoveryMagic::ReliefAuthority()
{ // [164]备盔狼 鼻瓷 : 措惑磊甫 蜡飞 惑怕俊辑 沥惑 惑怕肺 父甸绊 HP客 付唱甫 弥措鳖瘤 硅绊悄 荐摹甫 例馆 棵妨淋
//020501 lsw 混府扁率 绊魔
if(!m_pCaster->bCanViewGhost)//蜡飞阑 杭 荐 绝绰 惑怕扼搁
{
return false;
}
if(m_pTarget->viewtype != VIEWTYPE_GHOST_)
{ // 蜡飞 惑怕啊 酒聪扼搁
return false;
}
SkillMgr.CharacterToAlive(m_pTarget, 1); //硅绊悄 例馆牢单 钱肺 盲矿聪促.
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
InitMagicResult(CMD_MAGIC_RESULT_M);
m_packet.u.magic.server_magic_result_m.nMagic = m_nIndex;
m_packet.u.magic.server_magic_result_m.idTarget = m_idTarget;
m_packet.u.magic.server_magic_result_m.nLife = m_pTarget->HpMax;
m_packet.u.magic.server_magic_result_m.nMana = m_pTarget->ManaMax;
m_packet.u.magic.server_magic_result_m.nState = m_pTarget->GetState();
m_packet.u.magic.server_magic_result_m.nResult = HIT_AND_ALIVE;
SendMagicResult();
return true;
}
bool CRecoveryMagic::RecoverPoison()
{ // [154]秦刀狼 鼻瓷 : 历林拌凯 付过牢 吝刀, 刀备抚 惑怕甫 秦力
m_pTarget->ClearCurse(3);
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 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;
}
bool CRecoveryMagic::AuthorityRecoverSight()
{ // [173]矫仿雀汗狼 鼻瓷 : 历林拌凯 付过牢 矫仿惑角阑 秦力
m_pTarget->ClearCurse(4);
::SendMagicCommand(m_pTarget, SET_CUREBLIND, 0, 0); //矫仿惑角 雀汗
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 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;
}
bool CRecoveryMagic::CureDisease()
{ // [155]龙捍摹丰狼 鼻瓷 : Health(硅绊悄 惑怕) 刘啊
if (m_pTarget->IsFullHungry())
{ // 硅绊悄 荐摹啊 傈何 瞒乐促搁
return false;
}
const int nPlus = m_pTarget->HungryMax/4;
m_pTarget->IncHungry(nPlus);
m_pTarget->SendCharInfoBasic( SP, m_pTarget->Hungry);//020704 lsw
// 矫傈磊狼 版氰摹 拌魂
::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;
SendMagicResult();
return true;
}
bool CRecoveryMagic::AuthoritySimunian()
{ // [181]矫公聪救狼 鼻瓷
if (m_pTarget->IsFullHungry())
{ // 硅绊悄 荐摹啊 傈何 瞒乐促搁
return false;
}
const int nPlus = m_pTarget->HungryMax/4;
m_pTarget->IncHungry(nPlus);
m_pTarget->SendCharInfoBasic(SP, m_pTarget->Hungry);//020704 lsw
// 矫傈磊狼 版氰摹 拌魂
::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;
SendMagicResult();
return true;
}
bool CRecoveryMagic::HolyCure()
{ // [179]脚己茄 摹蜡 = 历林秦力+肯摹狼扁利+橇府琉 秦力 // 030415 kyo
m_pTarget->ClearCurse(1);
m_pTarget->ClearCurse(2);
m_pTarget->ClearCurse(3);
m_pTarget->ClearCurse(4);
m_pTarget->ClearCurse(6);//Freezn 秦力
const int nPlus = m_pTarget->HungryMax; // 030516 kyo
m_pTarget->IncHungry(nPlus);
m_pTarget->SendCharInfoBasic(SP, m_pTarget->Hungry);//020704 lsw
::SendMagicCommand(m_pTarget, SET_CUREBLIND, 0, 0); //矫仿惑角 雀汗
// 矫傈磊狼 版氰摹 拌魂
::AddCasterEXP(m_pCaster, m_pTarget, 2, 0, m_nIndex);
// 搬苞蔼阑 措惑磊俊霸 Packet栏肺 焊郴扁
if (m_pTarget->IsFullLife())
{ // HP啊 傈何 瞒乐促搁 公炼扒 猾促.
m_pTarget->DecLife(1);
//return false;
}
const int nReal = m_pTarget->IncLife(50000);
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 = nReal;
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;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -