📄 eventtransport.cpp
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : EventTransport.cpp// Written by : Reiot// Description : //////////////////////////////////////////////////////////////////////////////#include "EventTransport.h"#include "GamePlayer.h"#include "Zone.h"#include "PlayerStatus.h"#include "ZoneGroup.h"#include "ZonePlayerManager.h"#include "PlayerStatus.h"#include "ZoneUtil.h"#include "PlayerCreature.h"#include "RelicUtil.h"#include "CreatureUtil.h"#include "StringPool.h" #include "Gpackets/GCSystemMessage.h"#include <stdio.h>//////////////////////////////////////////////////////////////////////////////// class EventTransport member methods//////////////////////////////////////////////////////////////////////////////EventTransport::EventTransport(GamePlayer* pGamePlayer) throw(): Event(pGamePlayer){// m_pTransportZone = NULL;// m_X = m_Y = 0;}EventTransport::~EventTransport() throw(){}//----------------------------------------------------------------------// affect//----------------------------------------------------------------------void EventTransport::sendMessage() throw(Error){ __BEGIN_TRY Assert(m_pGamePlayer != NULL); Creature * pCreature = m_pGamePlayer->getCreature(); Timeval currentTime; getCurrentTime(currentTime); Turn_t RemainTime = max(0, (int)(m_Deadline.tv_sec-currentTime.tv_sec));// StringStream msg;// msg << (int)RemainTime << "檬 饶俊 " << m_ZoneName << "肺 捞悼邓聪促."; char msg[50]; sprintf( msg, g_pStringPool->c_str( STRID_TRANSPORT_CREATURE ), (int)RemainTime, m_ZoneName.c_str() ); string sMsg( msg ); GCSystemMessage gcSystemMessage; gcSystemMessage.setMessage(sMsg); pCreature->getPlayer()->sendPacket( &gcSystemMessage ); //setNextTime( m_MessageTick ); __END_CATCH}void EventTransport::activate () throw (Error){ __BEGIN_TRY __BEGIN_DEBUG Assert(m_pGamePlayer != NULL); Creature * pCreature = m_pGamePlayer->getCreature(); Zone* pOldZone = pCreature->getZone(); Assert(pOldZone != NULL); PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pCreature); Assert(pPC!=NULL); bool bSendPacket = true; dropRelicToZone( pPC, bSendPacket ); dropFlagToZone( pPC, bSendPacket ); dropSweeperToZone( pPC, bSendPacket ); // Zone俊辑 力芭茄促. pOldZone->deleteCreature( pCreature, pCreature->getX(), pCreature->getY() ); // 捞悼秦具且 Zone阑 汲沥茄促. pCreature->setNewZone( getZoneByZoneID(m_ZoneID) ); pCreature->setNewXY( m_X, m_Y ); 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("eventTransport.txt", "%s", t.toString().c_str()); cerr << "EventTransport::activate() : NoSuchElementException" << endl; throw Error("粮俊 敲饭捞绢啊 粮犁窍瘤 臼嚼聪促."); } __END_DEBUG __END_CATCH}string EventTransport::toString () const throw (){ StringStream msg; msg << "EventTransport(" << ")"; return msg.toString();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -