📄 effectdarkbluepoison.cpp
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : EffectDarkBluePoison.cpp// Written by : elca// Description : //////////////////////////////////////////////////////////////////////////////#include "EffectDarkBluePoison.h"#include "Slayer.h"#include "Vampire.h"#include "Monster.h"#include "Player.h"#include "SkillHandler.h"#include "Gpackets/GCModifyInformation.h"#include "Gpackets/GCRemoveEffect.h"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectDarkBluePoison::EffectDarkBluePoison(Creature* pCreature) throw(Error){ __BEGIN_TRY m_Level = 0; setTarget(pCreature); __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectDarkBluePoison::affect() throw(Error){ __BEGIN_TRY //cout << "EffectDarkBluePoison " << "affect BEGIN" << endl; Creature* pCreature = dynamic_cast<Creature *>(m_pTarget); affect(pCreature); //cout << "EffectDarkBluePoison " << "affect END" << endl; __END_CATCH }////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectDarkBluePoison::affect(Creature* pCreature) throw(Error){ __BEGIN_TRY //cout << "EffectDarkBluePoison " << "affect BEGIN" << endl; Assert(pCreature != NULL); if ( !pCreature->isFlag(Effect::EFFECT_CLASS_NO_DAMAGE) ) { // 浇饭捞绢老 版快俊父 刀 单固瘤啊 粮犁茄促. if (pCreature->isSlayer()) { Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature); Assert(pSlayer != NULL); //int PoisonDamage = computeMagicDamage(pSlayer, m_Damage, SKILL_DARKBLUE_POISON); MP_t CurrentMP = pSlayer->getMP(ATTR_CURRENT); MP_t RemainMP = max(0,(int)CurrentMP - m_Damage); pSlayer->setMP(RemainMP, ATTR_CURRENT); GCModifyInformation gcMI; gcMI.addShortData(MODIFY_CURRENT_MP, RemainMP); Player* pPlayer = pCreature->getPlayer(); Assert(pPlayer != NULL); pPlayer->sendPacket(&gcMI); } else if (pCreature->isOusters()) { Ousters* pOusters = dynamic_cast<Ousters*>(pCreature); Assert(pOusters != NULL); //int PoisonDamage = computeMagicDamage(pOusters, m_Damage, SKILL_DARKBLUE_POISON); // 酒快胶磐令绰 1/2父 别牢促. MP_t CurrentMP = pOusters->getMP(ATTR_CURRENT); MP_t RemainMP = max(0,(int)CurrentMP - (m_Damage/2)); pOusters->setMP(RemainMP, ATTR_CURRENT); GCModifyInformation gcMI; gcMI.addShortData(MODIFY_CURRENT_MP, RemainMP); Player* pPlayer = pCreature->getPlayer(); Assert(pPlayer != NULL); pPlayer->sendPacket(&gcMI); } } setNextTime(m_Tick); //cout << "EffectDarkBluePoison " << "affect END" << endl; __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectDarkBluePoison::affect(Zone* pZone , ZoneCoord_t x , ZoneCoord_t y , Object* pObject) throw(Error){ __BEGIN_TRY __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectDarkBluePoison::unaffect(Creature* pCreature) throw(Error){ __BEGIN_TRY __BEGIN_DEBUG //cout << "EffectDarkBluePoison " << "unaffect BEGIN" << endl; Assert(pCreature != NULL); // 农府媚俊霸辑 敲贰弊甫 力芭茄促. pCreature->removeFlag(Effect::EFFECT_CLASS_DARKBLUE_POISON); Zone* pZone = pCreature->getZone(); Assert(pZone != NULL); if (pCreature->isPC()) { GCRemoveEffect gcRemoveEffect; gcRemoveEffect.setObjectID(pCreature->getObjectID()); gcRemoveEffect.addEffectList(Effect::EFFECT_CLASS_DARKBLUE_POISON); //pZone->broadcastPacket(pCreature->getX(), pCreature->getY(), &gcRemoveEffect); Player* pPlayer = pCreature->getPlayer(); Assert(pPlayer != NULL); pPlayer->sendPacket(&gcRemoveEffect); } //cout << "EffectDarkBluePoison " << "unaffect END" << endl; __END_DEBUG __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectDarkBluePoison::unaffect() throw(Error){ __BEGIN_TRY //cout << "EffectDarkBluePoison " << "unaffect BEGIN" << endl; Creature* pCreature = dynamic_cast<Creature*>(m_pTarget); unaffect(pCreature); //cout << "EffectDarkBluePoison " << "unaffect END" << endl; __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectDarkBluePoison::unaffect(Zone* pZone , ZoneCoord_t x , ZoneCoord_t y , Object* pObject) throw(Error){ __BEGIN_TRY __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////string EffectDarkBluePoison::toString() const throw(){ __BEGIN_TRY StringStream msg; msg << "EffectDarkBluePoison(" << "ObjectID:" << getObjectID() << ")"; return msg.toString(); __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -