guildinfo2.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 255 行
CPP
255 行
//////////////////////////////////////////////////////////////////////// // Filename : GuildInfo2.cpp // Written By :// Description :// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// include files//////////////////////////////////////////////////////////////////////#include "GuildInfo2.h"#include "SocketInputStream.h"#include "SocketOutputStream.h"//////////////////////////////////////////////////////////////////////// constructor//////////////////////////////////////////////////////////////////////GuildInfo2::GuildInfo2 () throw (){ __BEGIN_TRY __END_CATCH} //////////////////////////////////////////////////////////////////////// destructor//////////////////////////////////////////////////////////////////////GuildInfo2::~GuildInfo2 () throw (){ __BEGIN_TRY clearGuildMemberInfoList(); __END_CATCH}//////////////////////////////////////////////////////////////////////// clear guild member info list//////////////////////////////////////////////////////////////////////void GuildInfo2::clearGuildMemberInfoList() throw(){ __BEGIN_TRY // GuildInfoList甫 昏力茄促. while( !m_GuildMemberInfoList.empty() ) { GuildMemberInfo2* pGuildMemberInfo = m_GuildMemberInfoList.front(); m_GuildMemberInfoList.pop_front(); SAFE_DELETE( pGuildMemberInfo ); } __END_CATCH}//////////////////////////////////////////////////////////////////////// 涝仿胶飘覆(滚欺)栏肺何磐 单捞鸥甫 佬绢辑 菩哦阑 檬扁拳茄促.//////////////////////////////////////////////////////////////////////void GuildInfo2::read ( SocketInputStream & iStream ) throw ( ProtocolException , Error ){ __BEGIN_TRY BYTE szName, szMaster, szDate, szIntro; iStream.read( m_ID ); iStream.read( szName ); if ( szName == 0 ) throw InvalidProtocolException( "szGuildName == 0" ); if ( szName > 30 ) throw InvalidProtocolException( "too long szGuildName size" ); iStream.read( m_Name, szName ); iStream.read( m_Type ); iStream.read( m_Race ); iStream.read( m_State ); iStream.read( m_ServerGroupID ); iStream.read( m_ZoneID ); iStream.read( szMaster ); if ( szMaster == 0 ) throw InvalidProtocolException( "szGuildMaster == 0" ); if ( szMaster > 20 ) throw InvalidProtocolException( "too long szGuildMaster size" ); iStream.read( m_Master, szMaster ); iStream.read( szDate ); if ( szDate > 11 ) throw InvalidProtocolException( "too long szGuildExpireDate size" ); if ( szDate != 0 ) iStream.read( m_Date, szDate ); else m_Date = ""; iStream.read( szIntro ); if ( szIntro > 256 ) throw InvalidProtocolException( "too long szIntro length" ); if ( szIntro != 0 ) iStream.read( m_Intro, szIntro ); else m_Intro = ""; WORD szGuildMemberInfo; iStream.read( szGuildMemberInfo ); for ( int i = 0; i < szGuildMemberInfo; i++ ) { GuildMemberInfo2* pGuildMemberInfo = new GuildMemberInfo2(); pGuildMemberInfo->read( iStream ); m_GuildMemberInfoList.push_front( pGuildMemberInfo ); } __END_CATCH}//////////////////////////////////////////////////////////////////////// 免仿胶飘覆(滚欺)栏肺 菩哦狼 官捞呈府 捞固瘤甫 焊辰促.//////////////////////////////////////////////////////////////////////void GuildInfo2::write ( SocketOutputStream & oStream ) const throw ( ProtocolException , Error ){ __BEGIN_TRY BYTE szName = m_Name.size(); BYTE szMaster = m_Master.size(); BYTE szDate = m_Date.size(); BYTE szIntro = m_Intro.size(); if ( szName == 0 ) throw InvalidProtocolException( "szGuildName == 0" ); if ( szName > 30 ) throw InvalidProtocolException( "too long szGuildName size" ); if ( szMaster == 0 ) throw InvalidProtocolException( "szGuildMaster == 0" ); if ( szMaster > 20 ) throw InvalidProtocolException( "too long szGuildMaster size" ); if ( szDate > 11 ) throw InvalidProtocolException( "too long szGuildExpireDate size" ); if ( szIntro > 256 ) throw InvalidProtocolException( "too long szIntro length" ); // 弥利拳 累诀矫 角力 农扁甫 疙矫窍档废 茄促. oStream.write( m_ID ); oStream.write( szName ); oStream.write( m_Name ); oStream.write( m_Type ); oStream.write( m_Race ); oStream.write( m_State ); oStream.write( m_ServerGroupID ); oStream.write( m_ZoneID ); oStream.write( szMaster ); oStream.write( m_Master ); oStream.write( szDate ); if ( szDate != 0 ) oStream.write( m_Date ); oStream.write( szIntro ); if ( szIntro != 0 ) oStream.write( m_Intro ); WORD szGuildMemberInfo = m_GuildMemberInfoList.size(); oStream.write( szGuildMemberInfo ); GuildMemberInfoListConstItor2 itr = m_GuildMemberInfoList.begin(); for ( ; itr != m_GuildMemberInfoList.end(); itr++ ) { (*itr)->write( oStream ); } __END_CATCH}//--------------------------------------------------------------------// getSize//--------------------------------------------------------------------PacketSize_t GuildInfo2::getSize() throw(){ __BEGIN_TRY BYTE szName = m_Name.size(); BYTE szMaster = m_Master.size(); BYTE szDate = m_Date.size(); BYTE szIntro = m_Intro.size(); PacketSize_t PacketSize = szGuildID + szBYTE + szName + szGuildType + szGuildRace + szGuildState + szServerGroupID + szZoneID + szBYTE + szMaster + szBYTE + szDate + szBYTE + szIntro; PacketSize += szWORD; GuildMemberInfoListConstItor2 itr = m_GuildMemberInfoList.begin(); for ( ; itr != m_GuildMemberInfoList.end(); itr++ ) { PacketSize += (*itr)->getSize(); } return PacketSize; __END_CATCH} ///////////////////////////////////////////////////////////////////////// get packet's debug string////////////////////////////////////////////////////////////////////////string GuildInfo2::toString () const throw (){ __BEGIN_TRY StringStream msg; msg << "GuildInfo2( " << "GuildID:" << m_ID << "GuildName:" << m_Name << "GuildType:" << (int)m_Type << "GuildRace:" << (int)m_Race << "GuildState:" << (int)m_State << "ServerGroupID:" << (int)m_ServerGroupID << "ZoneID:" << (int)m_ZoneID << "GuildMaster:" << m_Master << "GuildDate:" << m_Date << "GuildIntro:" << m_Intro << ")"; return msg.toString(); __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?