📄 effectenergydroptocreature.cpp
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : EffectEnergyDropToCreature.cpp// Written by : 厘全芒// Description ://////////////////////////////////////////////////////////////////////////////#include "EffectEnergyDropToCreature.h"#include "Slayer.h"#include "Vampire.h"#include "Monster.h"#include "DB.h"#include "Player.h"#include "SkillUtil.h"#include "Gpackets/GCModifyInformation.h"#include "Gpackets/GCStatusCurrentHP.h"#include "Gpackets/GCRemoveEffect.h"////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EffectEnergyDropToCreature::EffectEnergyDropToCreature(Creature* pCreature) throw(Error){ __BEGIN_TRY// m_CasterName ="";// m_PartyID = 0; setTarget(pCreature); __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectEnergyDropToCreature::affect() throw(Error){ __BEGIN_TRY //cout << "EffectEnergyDropToCreature " << "begin begin" << endl; Creature* pCreature = dynamic_cast<Creature *>(m_pTarget); affect(pCreature); //cout << "EffectEnergyDropToCreature " << "begin end" << endl; __END_CATCH }////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectEnergyDropToCreature::affect(Creature* pCreature) throw(Error){ __BEGIN_TRY //cout << "EffectEnergyDropToCreature " << "begin" << endl; Assert(pCreature != NULL); Zone* pZone = pCreature->getZone(); Assert(pZone != NULL); // 捞棋飘 荤侩磊甫 啊廉柯促. // !! 捞固 粮阑 唱艾阑 荐 乐栏骨肺 NULL 捞 瞪 荐 乐促. // by bezz. 2003.1.4 Creature* pCastCreature = pZone->getCreature( m_UserObjectID ); // EffectEnergyDropToCreature篮 AcidStorm, PoisonStorm, BloodyStorm困甫 瘤唱哎锭 嘿绰促. // 捞绰 3锅狼 楷加 单固瘤甫 林绊 荤扼柳促. Damage_t DropDamage = m_Point; if (!(pZone->getZoneLevel() & COMPLETE_SAFE_ZONE) // 公利惑怕 眉农. by sigi. 2002.9.5 && !pCreature->isFlag(Effect::EFFECT_CLASS_NO_DAMAGE) && !pCreature->isFlag(Effect::EFFECT_CLASS_COMA) ) { if (pCreature->isSlayer()) { Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature); GCModifyInformation gcMI; setDamage( pSlayer, DropDamage, pCastCreature, SKILL_ENERGY_DROP, &gcMI ); pSlayer->getPlayer()->sendPacket(&gcMI); } else if (pCreature->isVampire()) { Vampire* pVampire = dynamic_cast<Vampire*>(pCreature); GCModifyInformation gcMI; setDamage( pVampire, DropDamage, pCastCreature, SKILL_ENERGY_DROP, &gcMI ); pVampire->getPlayer()->sendPacket(&gcMI); } else if (pCreature->isOusters()) { Ousters* pOusters = dynamic_cast<Ousters*>(pCreature); GCModifyInformation gcMI; setDamage( pOusters, DropDamage, pCastCreature, SKILL_ENERGY_DROP, &gcMI ); pOusters->getPlayer()->sendPacket(&gcMI); } else if (pCreature->isMonster()) { Monster* pMonster = dynamic_cast<Monster*>(pCreature); setDamage( pMonster, DropDamage, pCastCreature, SKILL_ENERGY_DROP ); } // m_CasterName捞 pCreature甫 磷牢 版快狼 KillCount 贸府 // by sigi. 2002.9.9 // set damage甫 阂矾辑 贸府茄促. // by bezz. 2002.12.31 促矫 林籍 贸府/* if (pCreature->isDead()) { Creature* pAttacker = pZone->getCreature( m_CasterName ); if (pAttacker!=NULL && pAttacker->isPC()) { affectKillCount(pAttacker, pCreature); } }*/ } setNextTime(m_Tick); //cout << "EffectEnergyDropToCreature " << "end" << endl; __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectEnergyDropToCreature::affect(Zone* pZone , ZoneCoord_t x , ZoneCoord_t y , Object* pObject) throw(Error){ __BEGIN_TRY __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectEnergyDropToCreature::unaffect(Creature* pCreature) throw(Error){ __BEGIN_TRY __BEGIN_DEBUG pCreature->removeFlag(Effect::EFFECT_CLASS_ENERGY_DROP_TO_CREATURE); Zone* pZone = pCreature->getZone(); Assert(pZone != NULL); // 捞棋飘啊 荤扼脸促绊 舅妨霖促. GCRemoveEffect gcRemoveEffect; gcRemoveEffect.setObjectID(pCreature->getObjectID()); gcRemoveEffect.addEffectList(Effect::EFFECT_CLASS_ENERGY_DROP_TO_CREATURE); pZone->broadcastPacket(pCreature->getX(), pCreature->getY(), &gcRemoveEffect); __END_DEBUG __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectEnergyDropToCreature::unaffect() throw(Error){ __BEGIN_TRY Creature* pCreature = dynamic_cast<Creature*>(m_pTarget); unaffect(pCreature); __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void EffectEnergyDropToCreature::unaffect(Zone* pZone , ZoneCoord_t x , ZoneCoord_t y , Object* pObject) throw(Error){ __BEGIN_TRY __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////string EffectEnergyDropToCreature::toString() const throw(){ __BEGIN_TRY StringStream msg; msg << "EffectEnergyDropToCreature(" << "ObjectID:" << getObjectID() << ")"; return msg.toString(); __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -