effectexpansion.cpp
来自「dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 」· C++ 代码 · 共 130 行
CPP
130 行
//////////////////////////////////////////////////////////////////////////////// Filename : EffectExpansion.cpp// Written by : elca// Description ://////////////////////////////////////////////////////////////////////////////#include "EffectExpansion.h"#include "Slayer.h"#include "Vampire.h"#include "Monster.h"#include "Player.h"#include "PacketUtil.h"#include "Gpackets/GCModifyInformation.h"#include "Gpackets/GCOtherModifyInfo.h"#include "Gpackets/GCRemoveEffect.h"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectExpansion::EffectExpansion(Creature* pCreature) throw(Error){ __BEGIN_TRY setTarget(pCreature); __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectExpansion::affect(Creature* pCreature) throw(Error){ __BEGIN_TRY Assert(pCreature != NULL); Assert(pCreature->isSlayer()); Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature); SLAYER_RECORD prev; pSlayer->getSlayerRecord(prev); pSlayer->initAllStat(); pSlayer->sendRealWearingInfo(); pSlayer->sendModifyInfo(prev); __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectExpansion::unaffect() throw(Error){ __BEGIN_TRY //cout << "EffectExpansion " << "unaffect BEGIN" << endl; Creature* pCreature = dynamic_cast<Creature *>(m_pTarget); unaffect(pCreature); //cout << "EffectExpansion " << "unaffect END" << endl; __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectExpansion::unaffect(Creature* pCreature) throw(Error){ __BEGIN_TRY __BEGIN_DEBUG //cout << "EffectExpansion " << "unaffect BEGIN" << endl; Assert(pCreature != NULL); Assert(pCreature->isSlayer() == true); Zone* pZone = pCreature->getZone(); Assert(pZone != NULL); pCreature->removeFlag(Effect::EFFECT_CLASS_EXPANSION); Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature); SLAYER_RECORD prev; pSlayer->getSlayerRecord(prev); pSlayer->initAllStat(); pSlayer->sendRealWearingInfo(); pSlayer->sendModifyInfo(prev); // 捞棋飘啊 荤扼脸促绊 舅妨霖促. GCRemoveEffect gcRemoveEffect; gcRemoveEffect.setObjectID(pSlayer->getObjectID()); gcRemoveEffect.addEffectList(Effect::EFFECT_CLASS_EXPANSION); pZone->broadcastPacket(pSlayer->getX(), pSlayer->getY(), &gcRemoveEffect); // 泅犁 巢酒乐绰 眉仿捞 弥措 眉仿焊促 农促搁, 临咯具 茄促. if (pSlayer->getHP(ATTR_CURRENT) > pSlayer->getHP(ATTR_MAX)) { pSlayer->setHP(pSlayer->getHP(ATTR_MAX), ATTR_CURRENT); } GCOtherModifyInfo gcOtherModifyInfo; makeGCOtherModifyInfo(&gcOtherModifyInfo, pSlayer, &prev); pZone->broadcastPacket(pSlayer->getX(), pSlayer->getY(), &gcOtherModifyInfo, pSlayer); //cout << "EffectExpansion " << "unaffect END" << endl; __END_DEBUG __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////string EffectExpansion::toString() const throw(){ __BEGIN_TRY StringStream msg; msg << "EffectExpansion(" << "ObjectID:" << getObjectID() << ")"; return msg.toString(); __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?