//-------------------------------------------------------------------------------- // read from socket input stream //-------------------------------------------------------------------------------- void Resource::read (SocketInputStream & iStream ) throw(IOException , Error ) { __BEGIN_TRY //-------------------------------------------------------------------------------- // read version //-------------------------------------------------------------------------------- iStream.read(m_Version); //-------------------------------------------------------------------------------- // read filename //-------------------------------------------------------------------------------- BYTE szFilename; iStream.read(szFilename); if (szFilename == 0 ) throw InvalidProtocolException("szFilename == 0"); if (szFilename > maxFilename ) throw InvalidProtocolException("too large filename length"); iStream.read(m_Filename , szFilename); //-------------------------------------------------------------------------------- // read filesize //-------------------------------------------------------------------------------- iStream.read(m_FileSize); __END_CATCH }
////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void GCAddMonsterFromTransformation::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY BYTE name_length = 0; iStream.read(m_ObjectID); iStream.read(m_MonsterType); iStream.read(name_length); if (name_length != 0) iStream.read(m_MonsterName, name_length); iStream.read(m_MainColor); iStream.read(m_SubColor); iStream.read(m_X); iStream.read(m_Y); iStream.read(m_Dir); m_pEffectInfo = new EffectInfo(); m_pEffectInfo->read(iStream); iStream.read(m_CurrentHP); iStream.read(m_MaxHP); __END_CATCH }
void GCTimeLimitItemInfo::read(SocketInputStream& iStream) throw(ProtocolException, Error) { __BEGIN_TRY BYTE szInfo; iStream.read(szInfo); Assert(szInfo <= MAX_TIME_LIMIT_ITEM_INFO); m_TimeLimitItemInfos.clear(); for (int count = 0; count < szInfo; ++count ) { ObjectID_t objectID; DWORD time; iStream.read(objectID); iStream.read(time); if (m_TimeLimitItemInfos.find(objectID) == m_TimeLimitItemInfos.end() ) { m_TimeLimitItemInfos[objectID] = time; } } __END_CATCH }
//-------------------------------------------------------------------------------- // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. //-------------------------------------------------------------------------------- void CUBeginUpdate::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY static WORD GuildVersion = atoi(g_pConfig->getProperty("GuildVersion").c_str()); static WORD KeyVersion = atoi(g_pConfig->getProperty("KeyVersion").c_str()); static WORD InfoVersion = atoi(g_pConfig->getProperty("InfoVersion").c_str()); iStream.read(m_Version); if (m_Version >= GuildVersion ) { iStream.read(m_GuildVersion); m_Type = TWO_VERSION_KEY_FRONT; } else if (m_Version >= KeyVersion ) { m_Type = ONE_VERSION_KEY_BACK; } else m_Type = OLD_UPDATE; if (m_Version >= InfoVersion ) { iStream.read(m_InfoVersion); } __END_CATCH }
void StoreInfo::read(SocketInputStream& iStream, bool toOther) throw(ProtocolException, Error) { __BEGIN_TRY iStream.read(m_Open); if (toOther && m_Open == 0 ) return; BYTE szSign; iStream.read(szSign); if (szSign != 0 ) iStream.read(m_Sign, szSign); BYTE ItemNum; iStream.read(ItemNum); for (int i=0; i<ItemNum; ++i ) { m_Items[i].read(iStream); // StoreItemInfo info; // info.read(iStream); // m_Items.push_back(info); } __END_CATCH }
void CGSkillToInventory::read (SocketInputStream & iStream) throw(ProtocolException , Error) { __BEGIN_TRY #ifdef __USE_ENCRYPTER__ SocketEncryptInputStream* pEIStream = dynamic_cast<SocketEncryptInputStream*>(&iStream); Assert(pEIStream!=NULL); if (pEIStream->getEncryptCode()!=0) { SHUFFLE_STATEMENT_5(pEIStream->getEncryptCode(), pEIStream->readEncrypt(m_SkillType), pEIStream->readEncrypt(m_ObjectID), pEIStream->readEncrypt(m_X), pEIStream->readEncrypt(m_Y), pEIStream->readEncrypt(m_TargetX)); pEIStream->readEncrypt(m_TargetY); pEIStream->readEncrypt(m_InventoryItemObjectID); } else #endif { iStream.read(m_SkillType); iStream.read(m_ObjectID); iStream.read(m_X); iStream.read(m_Y); iStream.read(m_TargetX); iStream.read(m_TargetY); iStream.read(m_InventoryItemObjectID); } __END_CATCH }
void NicknameInfo::read(SocketInputStream& iStream) throw(ProtocolException, Error) { __BEGIN_TRY iStream.read(m_NicknameID); iStream.read(m_NicknameType); switch (m_NicknameType ) { case NICK_NONE: { break; } case NICK_BUILT_IN: case NICK_QUEST: case NICK_FORCED: { iStream.read(m_NicknameIndex); break; } case NICK_CUSTOM_FORCED: case NICK_CUSTOM: { BYTE szSTR; iStream.read(szSTR); iStream.read(m_Nickname, szSTR); break; } default: Assert(false); } __END_CATCH }
void CGDissectionCorpse::read (SocketInputStream & iStream) throw(ProtocolException , Error) { __BEGIN_TRY #ifdef __USE_ENCRYPTER__ SocketEncryptInputStream* pEIStream = dynamic_cast<SocketEncryptInputStream*>(&iStream); Assert(pEIStream!=NULL); if (pEIStream->getEncryptCode()!=0) { SHUFFLE_STATEMENT_4(pEIStream->getEncryptCode(), pEIStream->readEncrypt(m_ObjectID), pEIStream->readEncrypt(m_X), pEIStream->readEncrypt(m_Y), pEIStream->readEncrypt(m_IsPet)); } else #endif { iStream.read(m_ObjectID); iStream.read(m_X); iStream.read(m_Y); iStream.read(m_IsPet); } __END_CATCH }
////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void GCLearnSkillOK::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_SkillType); iStream.read(m_DomainType); __END_CATCH }
////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void GCDownSkillFailed::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_SkillType); iStream.read(m_Desc); __END_CATCH }
////////////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////////////// void GCRemoveStoreItem::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_OwnerObjectID); iStream.read(m_Index); __END_CATCH }
void CGMakeItem::read (SocketInputStream & iStream) throw(ProtocolException , Error) { __BEGIN_TRY iStream.read(m_ItemClass); iStream.read(m_ItemType); __END_CATCH }
void CGRequestInfo::read (SocketInputStream & iStream) throw(ProtocolException , Error) { __BEGIN_TRY iStream.read(m_Code); iStream.read(m_Value); __END_CATCH }
void CGReloadFromQuickSlot::read (SocketInputStream & iStream) throw(ProtocolException , Error) { __BEGIN_TRY iStream.read(m_ObjectID); iStream.read(m_SlotID); __END_CATCH }
void CGTryJoinGuild::read (SocketInputStream & iStream) throw(ProtocolException , Error) { __BEGIN_TRY iStream.read(m_GuildID); iStream.read(m_GuildMemberRank); __END_CATCH }
////////////////////////////////////////////////////////////////////// // Datagram 객체로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void SGModifyGuildOK::read (SocketInputStream& iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_GuildID); iStream.read(m_GuildState); __END_CATCH }
////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void GCStatusCurrentHP::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_ObjectID); iStream.read(m_CurrentHP); __END_CATCH }
//////////////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. //////////////////////////////////////////////////////////////////////////////// void GCTradeRemoveItem::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_TargetObjectID); iStream.read(m_ItemObjectID); __END_CATCH }
////////////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////////////// void GCShopListMysterious::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY BYTE i = 0; BYTE nTotal = 0; BYTE index = 0; // read NPC id & version & rack type & number of item iStream.read(m_ObjectID); iStream.read(m_Version); iStream.read(m_RackType); iStream.read(nTotal); // read each item info for (i=0; i<nTotal; i++) { iStream.read(index); iStream.read(m_pBuffer[index].itemClass); iStream.read(m_pBuffer[index].itemType); m_pBuffer[index].bExist = true; } // read market condition iStream.read(m_MarketCondBuy); iStream.read(m_MarketCondSell); __END_CATCH }
////////////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////////////// void GCOtherStoreInfo::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_ObjectID); iStream.read(m_IsRequested); m_pInfo->read(iStream, true); __END_CATCH }
////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void GCUnburrowOK::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_X); iStream.read(m_Y); iStream.read(m_Dir); __END_CATCH }
////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void GCBloodDrainOK3::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY // 최적화 작업시 실제 크기를 명시하도록 한다. iStream.read(m_ObjectID); iStream.read(m_TargetObjectID); __END_CATCH }
void CGAddItemToCodeSheet::read (SocketInputStream & iStream) throw(ProtocolException , Error) { __BEGIN_TRY iStream.read(m_ObjectID); iStream.read(m_X); iStream.read(m_Y); __END_CATCH }
void GCSkillFailed1::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_SkillType); iStream.read(m_Grade); ModifyInfo::read(iStream); __END_CATCH }
void CGShopRequestSell::read (SocketInputStream & iStream) throw(ProtocolException , Error) { __BEGIN_TRY iStream.read(m_ObjectID); iStream.read(m_ItemObjectID); iStream.read(m_OpCode); __END_CATCH }
//////////////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. //////////////////////////////////////////////////////////////////////////////// void GCTradeMoney::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_TargetObjectID); iStream.read(m_Gold); iStream.read(m_Code); __END_CATCH }
void GCShopBuyFail::read (SocketInputStream & iStream) throw(ProtocolException , Error) { __BEGIN_TRY iStream.read(m_ObjectID); iStream.read(m_Code); iStream.read(m_Amount); __END_CATCH }
////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void GCMPRecoveryStart::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY // 최적화 작업시 실제 크기를 명시하도록 한다. iStream.read(m_Delay); iStream.read(m_Period); iStream.read(m_Quantity); __END_CATCH }
////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void GCFlagWarStatus::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read(m_TimeRemain); iStream.read(m_FlagCount[0]); iStream.read(m_FlagCount[1]); iStream.read(m_FlagCount[2]); __END_CATCH }
////////////////////////////////////////////////////////////////////// // 입력스트림(버퍼)으로부터 데이타를 읽어서 패킷을 초기화한다. ////////////////////////////////////////////////////////////////////// void GCAttack::read (SocketInputStream & iStream ) throw(ProtocolException , Error ) { __BEGIN_TRY iStream.read((char*)&m_ObjectID , szObjectID); iStream.read((char*)&m_X , szCoord); iStream.read((char*)&m_Y , szCoord); iStream.read((char*)&m_Dir , szDir); __END_CATCH }