Exemple #1
0
        public void addPlayerToLeaderTeam(Player player)
        {
            SLOT leaderSlot = getRoomSlotByPlayer(leader);

            if (!addPlayerToTeam(player,Array.BinarySearch(RED_TEAM,leaderSlot.getId()) >= 0 ? RED_TEAM : BLUE_TEAM))
            {
                addPlayer(player);
            }
        }
Exemple #2
0
 private bool addPlayerToTeam(Player player,int[] team)
 {
     foreach (int slotId in team)
     {
         SLOT slot = getRoomSlot(slotId);
         if (slot.getState() == SLOT_STATE.SLOT_STATE_EMPTY)
         {
             slot.setPlayer(player);
             slot.setState(SLOT_STATE.SLOT_STATE_NORMAL);
             players.Add(player.PlayerID,player);
             return(true);
         }
     }
     return(false);
 }
Exemple #3
0
        public SLOT changeTeam(Player player,int team)
        {
            SLOT slot = getRoomSlotByPlayer(player);

            foreach (int teamSlot in team == 0 ? RED_TEAM : BLUE_TEAM)
            {
                SLOT rslot = ROOM_SLOT[teamSlot];
                if (player.Equals(rslot.getPlayer()) || rslot.getState() == SLOT_STATE.SLOT_STATE_EMPTY)
                {
                    slot.setPlayer(null);
                    slot.setState(SLOT_STATE.SLOT_STATE_EMPTY);
                    rslot.setPlayer(player);
                    rslot.setState(SLOT_STATE.SLOT_STATE_NORMAL);
                    return(rslot);
                }
            }
            return(null);
        }
Exemple #4
0
        public void RoomTask(int channel,Room room)
        {
            int countPlayerPrestart = 0;

            foreach (Player player in room.getPlayers().Values)
            {
                SLOT slot = room.getRoomSlotByPlayer(player);
                if ((int)slot.getState() > 8 && (int)slot.getState() < 12)
                {
                    countPlayerPrestart++;
                }
            }
            SLOT leader = room.getRoomSlotByPlayer(room.getLeader());

            if ((int)leader.getState() < 13)
            {
                if (countPlayerPrestart == 0)
                {
                    if ((int)leader.getState() < 13)
                    {
                        foreach (Player member in room.getPlayers().Values)
                        {
                            SLOT playerSlot = room.getRoomSlotByPlayer(member);
                            if (playerSlot.getState() == SLOT_STATE.SLOT_STATE_BATTLE_READY)
                            {
                                playerSlot.setState(SLOT_STATE.SLOT_STATE_BATTLE);
                                member.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,member));
                                foreach (Player toSend in room.getPlayers().Values)
                                {
                                    if (!toSend.Equals(member))
                                    {
                                        SLOT toSendplayerSlot = room.getRoomSlotByPlayer(toSend);
                                        if ((int)toSendplayerSlot.getState() > 11)
                                        {
                                            member.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,toSend));
                                        }
                                    }
                                }
                                member.getClient().SendPacket(new opcode_3865_ACK());
                                member.getClient().SendPacket(new PROTOCOL_BATTLE_ROUND_START(room));
                            }
                        }
                    }
                }
            }
            else
            {
                foreach (Player player in room.getPlayers().Values)
                {
                    SLOT playerSlot = room.getRoomSlotByPlayer(player);
                    if ((int)playerSlot.getState() == 12)
                    {
                        player.getClient().SendPacket(new opcode_3890_ACK(room));
                        playerSlot.setState(SLOT_STATE.SLOT_STATE_BATTLE);
                        player.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,player));
                        foreach (Player player1 in room.getPlayers().Values)
                        {
                            SLOT why = room.ROOM_SLOT[player1.getSlot()];
                            if ((int)why.getState() == 13 && !player.Equals(player1))
                            {
                                player1.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,player));
                                player.getClient().SendPacket(new PROTOCOL_BATTLE_STARTBATTLE_ACK(room,player1));
                            }
                        }
                        player.getClient().SendPacket(new opcode_3865_ACK());
                        player.getClient().SendPacket(new PROTOCOL_BATTLE_ROUND_START(room));
                    }
                }
            }

            foreach (Player member in room.getPlayers().Values)
            {
                member.getClient().SendPacket(new PROTOCOL_ROOM_INFO_ACK(room));
            }

            Logger.Info("{0}",leader.getState());
        }