📄 eventresurrect.cpp
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : EventResurrect.cpp// Written by : Reiot// Description : //////////////////////////////////////////////////////////////////////////////#include "EventResurrect.h"#include "GamePlayer.h"#include "Zone.h"#include "ZoneGroup.h"#include "ZoneGroupManager.h"#include "ZoneInfo.h"#include "ZoneInfoManager.h"#include "IncomingPlayerManager.h"#include "ZonePlayerManager.h"#include "Slayer.h"#include "PCSlayerInfo2.h"#include "Vampire.h"#include "PCVampireInfo2.h"#include "Ousters.h"#include "TimeManager.h"#include "PlayerStatus.h"#include "PacketUtil.h"#include "Gpackets/GCUpdateInfo.h"//////////////////////////////////////////////////////////////////////////////// class EventResurrect member methods//////////////////////////////////////////////////////////////////////////////EventResurrect::EventResurrect(GamePlayer* pGamePlayer) throw(): Event(pGamePlayer){// m_pResurrectZone = NULL;// m_X = m_Y = 0;}EventResurrect::~EventResurrect() throw(){}void EventResurrect::activate () throw (Error){ __BEGIN_TRY __BEGIN_DEBUG Assert(m_pGamePlayer != NULL); Creature * pDeadPC = m_pGamePlayer->getCreature(); Assert(pDeadPC != NULL); // 窍捞靛茄 惑怕俊辑 磷菌促搁, 窍捞靛甫 钱绢霖促. pDeadPC->removeFlag(Effect::EFFECT_CLASS_HIDE); // 公宏葛靛甫 官层霖促. if (pDeadPC->isVampire() && pDeadPC->isFlag(Effect::EFFECT_CLASS_TRANSFORM_TO_BAT)) { pDeadPC->setMoveMode(Creature::MOVE_MODE_FLYING); } else { pDeadPC->setMoveMode(Creature::MOVE_MODE_WALKING); } // HP甫 盲况霖促. if (pDeadPC->isSlayer()) { Slayer* pSlayer = dynamic_cast<Slayer*>(pDeadPC); pSlayer->setHP(pSlayer->getHP(ATTR_MAX), ATTR_CURRENT); } else if (pDeadPC->isVampire()) { Vampire* pVampire = dynamic_cast<Vampire*>(pDeadPC); pVampire->setHP(pVampire->getHP(ATTR_MAX), ATTR_CURRENT); } else if (pDeadPC->isOusters()) { Ousters* pOusters = dynamic_cast<Ousters*>(pDeadPC); pOusters->setHP(pOusters->getHP(ATTR_MAX), ATTR_CURRENT); } // 货 zone阑 汲沥窍瘤 臼绰促. by sigi. 2002.5.11 Zone* pOldZone = pDeadPC->getZone(); Assert(pOldZone != NULL); try { // 粮弊缝狼 ZPM俊辑 敲饭捞绢甫 昏力茄促. pOldZone->getZoneGroup()->getZonePlayerManager()->deletePlayer(m_pGamePlayer->getSocket()->getSOCKET()); // 咯扁辑 汲沥秦拎具瘤父 Save 捞亥飘啊 IPM俊辑 悼累窍瘤 臼绰促. m_pGamePlayer->setPlayerStatus(GPS_WAITING_FOR_CG_READY); // IPM栏肺 敲饭捞绢甫 颗变促. //g_pIncomingPlayerManager->pushPlayer(m_pGamePlayer); pOldZone->getZoneGroup()->getZonePlayerManager()->pushOutPlayer(m_pGamePlayer); } catch (NoSuchElementException& t) { filelog("eventRessurect.txt", "%s-%s", t.toString().c_str(), pDeadPC->getName().c_str()); cerr << "EventResurrect::activate() : NoSuchElementException" << endl; //throw Error("粮俊 敲饭捞绢啊 粮犁窍瘤 臼嚼聪促."); // 绢痘霸 绝绢脸摆瘤.. -_-; // 公矫窍绊.. 弊成 柳青茄促. // by sigi. 2002.11.25 } // 磷菌阑 寸矫 killCreature俊辑 粮阑 悸泼 窍扁 锭巩俊 弊成 且寸 罐栏搁 等促. // 捞芭绰 ZonePlayerManager狼 heartbeat俊辑 贸府茄促. // 林籍贸府 by sigi. 2002.5.14 //pDeadPC->registerObject(); /* // GCUpdateInfo 菩哦阑 父甸绢敌促. GCUpdateInfo gcUpdateInfo; makeGCUpdateInfo(&gcUpdateInfo, pDeadPC); m_pGamePlayer->sendPacket(&gcUpdateInfo); */ __END_DEBUG __END_CATCH}string EventResurrect::toString () const throw (){ StringStream msg; msg << "EventResurrect(" << ")"; return msg.toString();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -