Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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;
}