BOOL SendSpawnPlayer(SFPlayer* pPlayer, SFPlayer* pTarget) { SFProtobufPacket<FPSPacket::MSG_SPAWN_PLAYER> PktMsgSpawnPlayer = SFProtobufPacket<FPSPacket::MSG_SPAWN_PLAYER>(FPS::MSG_SPAWN_PLAYER); _CharacterInfo* pInfo = pTarget->GetCharacterInfo(); SpawnPlayerMsg msg; PktMsgSpawnPlayer.SetOwnerSerial(pPlayer->GetSerial()); msg.PlayerID = pTarget->GetSerial(); msg.translation = pInfo->translation; PktMsgSpawnPlayer.GetData().set_spawnplayer(&msg, sizeof(SpawnPlayerMsg)); SFEngine::GetInstance()->SendRequest(&PktMsgSpawnPlayer); return TRUE; }
BOOL SendPlayerHealth(SFPlayer* pPlayer, SFPlayer* pTarget) { SFProtobufPacket<FPSPacket::MSG_PLAYER_HEALTH> PktPlayerHealth = SFProtobufPacket<FPSPacket::MSG_PLAYER_HEALTH>(FPS::MSG_PLAYER_HEALTH); PktPlayerHealth.SetOwnerSerial(pPlayer->GetSerial()); _CharacterInfo* pInfo = pTarget->GetCharacterInfo(); PlayerHealthMsg msg; msg.PlayerID = pTarget->GetSerial(); msg.health = pInfo->health; PktPlayerHealth.GetData().set_playerhealth(&msg, sizeof(SpawnPlayerMsg)); SFEngine::GetInstance()->SendRequest(&PktPlayerHealth); return TRUE; }
BOOL SFRoomManager::SendRoomPage( SFPlayerLobby* pLobbyState, int PageIndex /*= 0*/ ) { SFPlayer* pOwner = pLobbyState->GetOwner(); int roomCnt = m_ActiveRoomMap.size(); //if(roomCnt == 0) //return TRUE; SFProtobufPacket<SFPacketStore::RoomList> roomList = SFProtobufPacket<SFPacketStore::RoomList>(CGSF::RoomList); roomList.SetOwnerSerial(pOwner->GetSerial()); if(m_ActiveRoomMap.size() <= MAX_ROOM_COUNT_PER_PAGE) { ActiveRoomMap::iterator iter = m_ActiveRoomMap.begin(); for(;iter != m_ActiveRoomMap.end(); iter++) { SFPacketStore::RoomList::RoomInfo* pRoomInfo = roomList.GetData().add_info(); SFRoom* pRoom = iter->second; pRoomInfo->set_roomindex(pRoom->GetRoomIndex()); std::string roomName = "GameRoom"; roomName += std::to_string(pRoom->GetRoomIndex()); pRoomInfo->set_roomname(roomName); pRoomInfo->set_roomchief(pRoom->GetRoomChief()->GetPlayerName()); pRoomInfo->set_usercount(pRoom->GetRoomMemberMap().size()); pRoomInfo->set_maxusercount(4); pRoomInfo->set_needpassword(0); pRoomInfo->set_gamemode(pRoom->GetGameModeInfo()->GameMode); } } SFLogicEntry::GetLogicEntry()->SendRequest(&roomList); return TRUE; }