//发送一个消息给WorldServer套接字 long CMessage::SendToGS(long lSocketID) { assert(m_pGSServer); *((long*)Base()) = GetSize()+HEAD_SIZE; CBaseMessage *pMsg = CBaseMessage::AllocMsg(); vector<CDataBlock*>& MsgData = GetMsgData(); pMsg->SetMsgData(MsgData); MsgData.clear(); m_pGSServer->ASend(lSocketID,pMsg); return true; }
long CMessage::Send(bool bFront) { assert(m_pClientServer); *((long*)Base()) = GetSize()+HEAD_SIZE; //分配一个消息 CBaseMessage *pMsg = CBaseMessage::AllocMsg(); vector<CDataBlock*>& MsgData = GetMsgData(); pMsg->SetMsgData(MsgData); MsgData.clear(); m_pClientServer->ASend(m_lLogingSocket,pMsg); return 0; }
void CMessage:: SendToSocket(int socket, bool clone) { assert(s_server); *((long*)Base()) = GetSize() + HEAD_SIZE; CBaseMessage* msg = CBaseMessage::AllocMsg(); if (!clone) { vector<CDataBlock*>& msgData = GetMsgData(); msg->SetMsgData(msgData); msgData.clear(); } else { Clone(msg); } s_server->ASend(socket, msg); }
void CMessage::SendToAllGS() { assert(s_server); if( s_GSs.empty() ) return; *((long*)Base()) = GetSize() + HEAD_SIZE; CBaseMessage* msg = AllocMsg(); msg->SetRefCount(long(s_GSs.size())); vector<CDataBlock*>& msgData = GetMsgData(); msg->SetMsgData(msgData); msgData.clear(); ClientItr itr = s_GSs.begin(); for (; itr != s_GSs.end(); ++itr) { s_server->ASend(itr->first, msg); } }
// [服务器] 发送给所有客户端 long CMessage::SendAll() { *((long*)Base()) = GetSize()+HEAD_SIZE; if( m_SocketGSID.size() == 0 ) return true; CBaseMessage *pMsg = AllocMsg(); pMsg->SetRefCount(m_SocketGSID.size()); vector<CDataBlock*>& MsgData = GetMsgData(); pMsg->SetMsgData(MsgData); MsgData.clear(); itLL it = m_SocketGSID.begin(); for(;it != m_SocketGSID.end();it++) { m_pClientServer->ASend((*it).first,pMsg); } return true; }
long CMessage::SendToSocket(long lSocketID, bool bClone) { *((long*)Base()) = GetSize() + HEAD_SIZE; // 分配一个消息 CBaseMessage *pMsg = CBaseMessage::AllocMsg(); if(!bClone) { vector<CDataBlock*>& MsgData = GetMsgData(); pMsg->SetMsgData(MsgData); MsgData.clear(); } else { Clone(pMsg); } m_pClientServer->ASend(lSocketID, pMsg); return true; }
bool SpectatorAddonMsg::SendPacket(uint32 receiver) { std::string addonData = GetMsgData(); if (addonData == "") return false; Player* rPlayer = ObjectAccessor::FindPlayer(receiver); if (!rPlayer) return false; WorldPacket data(SMSG_MESSAGECHAT, 200); data << uint8(CHAT_MSG_WHISPER); data << uint32(LANG_ADDON); data << uint64(0); data << uint32(LANG_ADDON); //language 2.1.0 ? data << uint64(0); data << uint32(addonData.length() + 1); data << addonData; data << uint8(CHAT_TAG_NONE); rPlayer->GetSession()->SendPacket(&data); return true; }