📄 effectpoisonmesh.cpp
字号:
#include "EffectPoisonMesh.h"#include "Creature.h"#include "PlayerCreature.h"#include "Player.h"#include "SkillUtil.h"#include "Zone.h"#include "Gpackets/GCModifyInformation.h"#include "Gpackets/GCRemoveEffect.h"EffectPoisonMesh::EffectPoisonMesh(Creature* pCreature) throw(Error){ __BEGIN_TRY m_pTarget = pCreature; m_pZone = pCreature->getZone(); __END_CATCH}void EffectPoisonMesh::affect() throw(Error){ __BEGIN_TRY if ( m_pTarget != NULL && m_pTarget->getObjectClass() == Object::OBJECT_CLASS_CREATURE ) { affect( dynamic_cast<Creature*>(m_pTarget) ); } setNextTime(10); __END_CATCH}void EffectPoisonMesh::affect(Creature* pCreature) throw(Error){ __BEGIN_TRY if ( pCreature == NULL ) return; Creature* pCastCreature = m_pZone->getCreature( getCasterID() ); if ( !pCreature->isFlag(Effect::EFFECT_CLASS_NO_DAMAGE) && !(m_pZone->getZoneLevel() & COMPLETE_SAFE_ZONE) ) { if ( pCreature->isPC() ) { PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pCreature); GCModifyInformation gcMI; ::setDamage( pPC, getDamage(), pCastCreature, SKILL_POISON_MESH, &gcMI ); pPC->getPlayer()->sendPacket( &gcMI ); } else if ( pCreature->isMonster() ) { ::setDamage( pCreature, getDamage(), pCastCreature, SKILL_POISON_MESH ); } } __END_CATCH}void EffectPoisonMesh::unaffect() throw(Error){ __BEGIN_TRY if ( m_pTarget != NULL && m_pTarget->getObjectClass() == Object::OBJECT_CLASS_CREATURE ) { unaffect( dynamic_cast<Creature*>(m_pTarget) ); } __END_CATCH}void EffectPoisonMesh::unaffect( Creature* pCreature ) throw (Error){ __BEGIN_TRY 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); __END_CATCH}string EffectPoisonMesh::toString() const throw(){ __BEGIN_TRY return "EffectPoisonMesh"; __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -