📄 effecthasrelic.cpp
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : EffectHasRelic.cpp// Written by : elca// Description : //////////////////////////////////////////////////////////////////////////////#include "EffectHasRelic.h"#include "Creature.h"#include "Slayer.h"#include "Relic.h"#include "Vampire.h"#include "Monster.h"#include "MonsterCorpse.h"#include "Player.h"#include "WarSystem.h"#include "ZoneInfoManager.h"#include "ZoneGroupManager.h"#include "Gpackets/GCModifyInformation.h"#include "Gpackets/GCStatusCurrentHP.h"#include "Gpackets/GCAddEffect.h"#include "Gpackets/GCRemoveEffect.h"#include "Gpackets/GCSystemMessage.h"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectHasRelic::EffectHasRelic(Creature* pCreature) throw(Error){ __BEGIN_TRY setTarget(pCreature); __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectHasRelic::EffectHasRelic(Item* pItem) throw(Error){ __BEGIN_TRY setTarget(pItem); __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectHasRelic::affect() throw(Error){ __BEGIN_TRY Assert(m_pTarget!=NULL); switch ( m_pTarget->getObjectClass() ) { case OBJECT_CLASS_CREATURE : { Creature* pCreature = dynamic_cast<Creature*>(m_pTarget); affect( pCreature ); } break; case OBJECT_CLASS_ITEM : { Item* pItem = dynamic_cast<Item*>(m_pTarget); affect( pItem ); } break; default : return; } __END_CATCH}void EffectHasRelic::unaffect() throw(Error){ __BEGIN_TRY switch (m_pTarget->getObjectClass()) { case OBJECT_CLASS_CREATURE : { Creature* pCreature = dynamic_cast<Creature *>(m_pTarget); unaffect(pCreature); } break; case OBJECT_CLASS_ITEM : { Item* pItem = dynamic_cast<Item *>(m_pTarget); unaffect(pItem); } break; default : throw Error("Wrong Object Class"); } __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectHasRelic::unaffect(Creature* pCreature) throw(Error){ __BEGIN_TRY __BEGIN_DEBUG //cout << "EffectHasCastleSymbol" << "unaffect BEGIN" << endl; Assert(pCreature != NULL); // 瓷仿摹甫 沥惑利栏肺 登倒府扁 困秦辑绰 敲贰弊甫 掺绊, // initAllStat阑 阂矾具 茄促. pCreature->removeFlag( getEffectClass() ); Zone* pZone = pCreature->getZone(); Assert(pZone != NULL); GCRemoveEffect gcRemoveEffect; gcRemoveEffect.setObjectID( pCreature->getObjectID() ); gcRemoveEffect.addEffectList( getSendEffectClass() ); pZone->broadcastPacket(pCreature->getX(), pCreature->getY(), &gcRemoveEffect); //cout << "EffectHasCastleSymbol" << "unaffect END" << endl; __END_DEBUG __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectHasRelic::unaffect(Item* pItem) throw(Error){ __BEGIN_TRY __BEGIN_DEBUG //cout << "EffectCastleSymbol" << "unaffect BEGIN" << endl; Assert(pItem != NULL); Assert(pItem->getItemClass()==Item::ITEM_CLASS_CORPSE); Assert(pItem->getItemType()==MONSTER_CORPSE); MonsterCorpse* pCorpse = dynamic_cast<MonsterCorpse*>(pItem); pCorpse->removeFlag( getEffectClass() ); Zone* pZone = pCorpse->getZone(); Assert(pZone != NULL); GCRemoveEffect gcRemoveEffect; gcRemoveEffect.setObjectID( pItem->getObjectID() ); gcRemoveEffect.addEffectList( getSendEffectClass() ); pZone->broadcastPacket( pCorpse->getX(), pCorpse->getY(), &gcRemoveEffect ); //cout << "EffectCastleSymbol" << "unaffect END" << endl; __END_DEBUG __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -