protected internal override void run()
        {
            CLogger.getInstance().info("O jogador " + this.getClient().getPlayer().getPlayerName() + " escreveu " + this.chat.chat);
            Account player = this.getClient().getPlayer();
            Room    room   = player.getRoom();

            if (room != null)
            {
                for (int slot = 0; slot < 15; ++slot)
                {
                    Account playerBySlot = room.getPlayerBySlot(slot);
                    if (playerBySlot != null)
                    {
                        playerBySlot.sendPacket((SendBaseGamePacket) new S_LOBBY_CHATTING(this.chat, this.getClient().getPlayer()));
                    }
                }
            }
            else
            {
                Channel channel = ChannelInfoHolder.getChannel(this.getClient().getChannelId());
                if (channel != null)
                {
                    for (int index = 0; index < channel.getWaitPlayers().Count; ++index)
                    {
                        if (channel.getWaitPlayers()[index] != null)
                        {
                            channel.getWaitPlayers()[index].sendPacket((SendBaseGamePacket) new S_LOBBY_CHATTING(this.chat, this.getClient().getPlayer()));
                        }
                    }
                }
            }
        }
        protected internal override void run()
        {
            Account player = this.getClient().getPlayer();

            if (player == null)
            {
                return;
            }
            Room room = player.getRoom();

            room.setTimeLost(this._timeLost);
            if (this._timeLost >= 1 || player.player_id != room.getLeader().player_id)
            {
                return;
            }
            CLogger.getInstance().info("[GAME]: O TEMPO ACABOU!!!");
            room.setState(ROOM_STATE.ROOM_STATE_BATTLE_END);
            room.CalculateBattleResult(player);
            for (int id = 0; id < 16; ++id)
            {
                Account playerFromPlayerId = ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getPlayerFromPlayerId(room.getSlot(id)._playerId);
                if (playerFromPlayerId != null)
                {
                    playerFromPlayerId.sendPacket((SendBaseGamePacket) new S_BATTLE_ENDBATTLE(playerFromPlayerId));
                }
            }
        }
示例#3
0
 public void close()
 {
     this._prepareToClose = true;
     try
     {
         AccountManager.getInstance().get(this.getPlayer().name).setOnlineStatus(false);
         if (this.getPlayer() != null)
         {
             if (this.getPlayer().getRoom() != null)
             {
                 UdpHandler.getInstance().RemovePlayerInRoom(this.getPlayer());
                 ChannelInfoHolder.getChannel(this.getChannelId()).getRooms()[this.getPlayer().getRoom().getRoomId()].removePlayer(this.getPlayer());
                 this.getPlayer().setRoom((Room)null);
             }
             if (this.getChannelId() >= 0)
             {
                 ChannelInfoHolder.getChannel(this.getChannelId()).removePlayer(this.getPlayer());
             }
         }
         AccountManager.getInstance().get(this.getPlayer().name).setClient((GameClient)null);
         GameClientManager.getInstance().removeClient(this);
         if (this._client.Connected)
         {
             this._client.Close();
             this._stream = (NetworkStream)null;
         }
         CLogger.getInstance().info("Jogador desconectado.");
     }
     catch (Exception ex)
     {
         CLogger.getInstance().warning(ex.ToString());
     }
 }
        protected internal override void write()
        {
            this.writeH((short)2049);
            this.writeD(5404);
            this.writeB(IPAddress.Parse(Config.GAME_HOST).GetAddressBytes());
            this.writeH((short)this._gc.getCryptKey());
            this.writeH((short)32759);
            for (int index = 0; index < 10; ++index)
            {
                this.writeC((byte)ChannelInfoHolder.getChannel(index).getTypeChannel());
            }
            this.writeC((byte)1);
            int count1 = 2;

            this.writeD(count1 + 1);
            for (int index = 0; index < 2; ++index)
            {
                this.writeD(1); //2
                this.writeB(IPAddress.Parse(Config.GAME_HOST).GetAddressBytes());
                this.writeH((short)Config.GAME_PORT);
                this.writeC((byte)1);                                                    //TIPO DE CANAL
                this.writeH((short)ChannelInfoHolder.getChannel(index).getMaxPlayers()); //MAXIMO DE JOGADORES NO CANAL
                this.writeD(ChannelInfoHolder.getChannel(index).getAllPlayers().Count);  //QUANTIDADE DE JOGADORES NO CANAL
            }

            this.writeD(2);     //2
            this.writeB(IPAddress.Parse(Config.GAME_HOST).GetAddressBytes());
            this.writeH((short)Config.GAME_PORT);
            this.writeC((byte)1);                                                //TIPO DE CANAL
            this.writeH((short)ChannelInfoHolder.getChannel(0).getMaxPlayers()); //MAXIMO DE JOGADORES NO CANAL
            this.writeD(ChannelInfoHolder.getChannel(0).getAllPlayers().Count);  //QUANTIDADE DE JOGADORES NO CANAL
        }
        protected internal override void run()
        {
            bool flag = base.getClient() != null;

            if (flag)
            {
                bool flag2 = base.getClient().getPlayer() != null;
                if (flag2)
                {
                    Account playerFromPlayerId = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(base.getClient().getPlayer().player_id);
                    bool    flag3 = playerFromPlayerId != null && playerFromPlayerId.getRoom() != null;
                    if (flag3)
                    {
                        ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getRoomInId(playerFromPlayerId.getRoom().getRoomId()).removePlayer(playerFromPlayerId);
                    }
                    bool flag4 = base.getClient().getPlayer() != null;
                    if (flag4)
                    {
                        Account player = base.getClient().getPlayer();
                        player.setClient(base.getClient());
                        player.setOnlineStatus(true);
                        int  channelId = base.getClient().getChannelId();
                        bool flag5     = channelId > -1;
                        if (flag5)
                        {
                            ChannelInfoHolder.getChannel(channelId).addPlayer(player);
                        }
                    }
                }
                base.getClient().sendPacket(new PROTOCOL_LOBBY_ENTER_ACK());
                base.getClient().sendPacket(new PROTOCOL_AUTH_FRIEND_INFO_CHANGE_ACK(base.getClient().getPlayer()));
            }
        }
 protected internal override void run()
 {
     if (this.getClient() == null)
     {
         return;
     }
     if (this.getClient().getPlayer() != null)
     {
         Account playerFromPlayerId = ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getPlayerFromPlayerId(this.getClient().getPlayer().player_id);
         if (playerFromPlayerId != null && playerFromPlayerId.getRoom() != null)
         {
             ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getRoomInId(playerFromPlayerId.getRoom().getRoomId()).removePlayer(playerFromPlayerId);
         }
         if (this.getClient().getPlayer() != null)
         {
             Account player = this.getClient().getPlayer();
             player.setClient(this.getClient());
             player.setOnlineStatus(true);
             int channelId = this.getClient().getChannelId();
             if (channelId > -1)
             {
                 ChannelInfoHolder.getChannel(channelId).addPlayer(player);
             }
         }
     }
     this.getClient().sendPacket((SendBaseGamePacket) new S_LOBBY_ENTER());
 }
        public ChannelInfoParser()
        {
            bool flag = this._holder == null;

            if (flag)
            {
                this._holder = ChannelInfoHolder.getInstance();
            }
            string text  = "Data//ChannelTemplate.xml";
            bool   flag2 = File.Exists(text);

            if (flag2)
            {
                this.parse(text);
            }
            else
            {
                CLogger.getInstance().info("[ChannelInfoParser]: No Have File: " + text);
            }
            bool flag3 = this._holder != null;

            if (flag3)
            {
                this._holder.log();
            }
        }
 protected internal override void write()
 {
     base.writeH(2049);
     base.writeD(5404);
     base.writeB(IPAddress.Parse(Config.GAME_HOST).GetAddressBytes());
     base.writeH(29890);
     base.writeH(32759);
     for (int i = 0; i < 10; i++)
     {
         base.writeC(1);
     }
     base.writeC(1);
     base.writeD(GameServerInfoHolder.getInstance().getAllGameserverInfos().Count);
     foreach (GameServerInfo current in GameServerInfoHolder.getInstance().getAllGameserverInfos())
     {
         base.writeD(1);
         base.writeB(IPAddress.Parse(current.getIP()).GetAddressBytes());
         base.writeH((short)Config.GAME_PORT);
         base.writeC((byte)current.getTypeGameServer());
         base.writeH((short)current.getMaxPlayers());
         foreach (Channel current2 in ChannelInfoHolder.getAllChannels())
         {
             bool flag = current2.getServerName() == current.getServerName();
             if (flag)
             {
                 this.players += current2.getAllPlayers().Count;
             }
         }
         base.writeD(this.players);
     }
     base.writeC(0);
     base.writeD(0);
     base.writeD(0);
     base.writeD(0);
 }
示例#9
0
        protected internal override void run()
        {
            Account player = base.getClient().getPlayer();
            Room    room   = player.getRoom();
            bool    flag   = player != null && room != null;

            if (flag)
            {
                bool flag2 = room._aiLevel < 10;
                if (flag2)
                {
                    room._aiLevel++;
                }
                for (int i = 0; i < 16; i++)
                {
                    Account playerFromPlayerId = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(room.getSlot(i)._playerId);
                    bool    flag3 = playerFromPlayerId != null;
                    if (flag3)
                    {
                        playerFromPlayerId.sendPacket(new PROTOCOL_BATTLE_AI_COLLISION_ACK(room));
                    }
                }
                UdpHandler.getInstance().PingUdpServer();
            }
        }
示例#10
0
        protected internal override void run()
        {
            bool flag = base.getClient() != null;

            if (flag)
            {
                Account player  = base.getClient().getPlayer();
                Channel channel = ChannelInfoHolder.getChannel(base.getClient().getChannelId());
                bool    flag2   = channel.getRooms().Count == 0;
                if (flag2)
                {
                    base.getClient().sendPacket(new PROTOCOL_LOBBY_QUICKJOIN_ROOM_ACK());
                }
                else
                {
                    bool flag3 = player != null;
                    if (flag3)
                    {
                        Random random = new Random();
                        int    value  = channel.getRooms().Count - 1;
                        int    num    = random.Next(Convert.ToInt32(0), Convert.ToInt32(value));
                        CLogger.getInstance().info("[Room] id chosen: " + num);
                        Room room     = channel.getRooms()[num];
                        Room roomInId = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getRoomInId(num);
                        bool flag4    = roomInId != null;
                        if (flag4)
                        {
                            int slot = roomInId.addPlayer(player);
                            CLogger.getInstance().info("[Room] " + player.player_name + " walked into a room.");
                            player.setSlot(slot);
                            player.setRoom(roomInId);
                            for (int i = 0; i < 16; i++)
                            {
                                int  playerId = roomInId.getSlot(i)._playerId;
                                bool flag5    = playerId > 0;
                                if (flag5)
                                {
                                    Account playerFromPlayerId = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(playerId);
                                    bool    flag6 = playerFromPlayerId != null && playerFromPlayerId.player_id != base.getClient().getPlayer().player_id;
                                    if (flag6)
                                    {
                                        playerFromPlayerId.sendPacket(new PROTOCOL_ROOM_PLAYER_ENTER_ACK(player));
                                    }
                                }
                            }
                            player.sendPacket(new PROTOCOL_LOBBY_JOIN_ROOM_ACK((long)num, player));
                        }
                        else
                        {
                            player.sendPacket(new PROTOCOL_LOBBY_JOIN_ROOM_ACK((2147479548L), null));
                        }
                    }
                    else
                    {
                        player.sendPacket(new PROTOCOL_LOBBY_JOIN_ROOM_ACK((2147479548L), null));
                    }
                }
            }
        }
        protected internal override void run()
        {
            if (this.getClient() == null)
            {
                return;
            }
            Channel channel = ChannelInfoHolder.getChannel(this.getClient().getChannelId());

            this.getClient().sendPacket((SendBaseGamePacket) new S_LOBBY_QUICKJOIN(channel));
        }
示例#12
0
 protected internal override void write()
 {
     this.writeH((short)2572);
     this.writeD(10);
     this.writeD(300);
     for (int channelId = 0; channelId < 10; ++channelId)
     {
         this.writeD(ChannelInfoHolder.getChannel(channelId).getAllPlayers().Count);
     }
 }
        protected internal override void run()
        {
            Account p = this.getClient().getPlayer();

            if (p != null)
            {
                Channel ch = ChannelInfoHolder.getChannel(this.getClient().getChannelId());
                p.sendPacket((SendBaseGamePacket) new S_ROOM_LOBBY_USER_LIST(ch));
            }
        }
示例#14
0
        protected internal override void run()
        {
            if (this.getClient() == null)
            {
                return;
            }
            Channel channel = ChannelInfoHolder.getChannel(this.getClient().getChannelId());

            channel.RemoveEmptyRooms();
            this.getClient().sendPacket((SendBaseGamePacket) new S_UPDATE_ROOMLIST());
        }
        protected internal override void run()
        {
            bool flag = base.getClient() != null;

            if (flag)
            {
                Channel channel = ChannelInfoHolder.getChannel(base.getClient().getChannelId());
                channel.RemoveEmptyRooms();
                base.getClient().sendPacket(new PROTOCOL_LOBBY_GET_ROOMLIST_ACK(channel));
            }
        }
示例#16
0
        protected internal override void run()
        {
            Account player = base.getClient().getPlayer();
            bool    flag   = player != null;

            if (flag)
            {
                Channel channel = ChannelInfoHolder.getChannel(base.getClient().getChannelId());
                player.sendPacket(new PROTOCOL_ROOM_GET_LOBBY_USER_LIST_ACK(channel));
            }
        }
示例#17
0
        public List <Account> getAllPlayers()
        {
            List <Account> list = new List <Account>();
            bool           flag = this.getPlayer().getPlayerId() > 0;

            if (flag)
            {
                Account playerFromPlayerId = ChannelInfoHolder.getChannel(this.id).getPlayerFromPlayerId(this.getPlayer().getPlayerId());
                list.Add(playerFromPlayerId);
            }
            return(list);
        }
        protected internal override void run()
        {
            Account player = base.getClient().getPlayer();
            bool    flag   = base.getClient() != null;

            if (flag)
            {
                player.getRoom().setState(ROOM_STATE.ROOM_STATE_PRE_BATTLE);
                player.getRoom().changeSlotState(base.getClient().getPlayer().getSlot(), SLOT_STATE.SLOT_STATE_PRESTART, true);
                player.sendPacket(new PROTOCOL_ROOM_CHANGE_ROOMINFO_ACK(player.getRoom()));
                bool flag2 = player.getRoom().server_type == 1 && player.getRoom().server_type == 2 && player.getRoom().server_type == 3;
                if (flag2)
                {
                    Account[] array = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getRoomInId(player.getRoom().getRoomId()).getAllPlayers().ToArray();
                    for (int i = 0; i < array.Length; i++)
                    {
                        Account account = array[i];
                        bool    flag3   = account.getRoom().getSlot(account.getSlot()).state == SLOT_STATE.SLOT_STATE_PRESTART;
                        if (flag3)
                        {
                            player.sendPacket(new PROTOCOL_BATTLE_PRESTARTBATTLE_ACK(account));
                        }
                    }
                    bool flag4 = player.player_id != player.getRoom().getLeader().player_id;
                    if (flag4)
                    {
                        player.getRoom().getLeader().sendPacket(new PROTOCOL_BATTLE_PRESTARTBATTLE_ACK(player));
                    }
                }
                else
                {
                    bool flag5 = player.player_id == player.getRoom().getLeader().player_id;
                    if (flag5)
                    {
                        player.sendPacket(new PROTOCOL_BATTLE_PRESTARTBATTLE_ACK(player));
                        Account[] array2 = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getRoomInId(player.getRoom().getRoomId()).getAllPlayers().ToArray();
                        for (int j = 0; j < array2.Length; j++)
                        {
                            Account account2 = array2[j];
                            bool    flag6    = account2.player_id != player.player_id && account2.getRoom().getSlot(account2.getSlot()).state == SLOT_STATE.SLOT_STATE_PRESTART;
                            if (flag6)
                            {
                                player.sendPacket(new PROTOCOL_BATTLE_PRESTARTBATTLE_ACK(account2));
                            }
                        }
                    }
                    else
                    {
                        player.sendPacket(new PROTOCOL_BATTLE_PRESTARTBATTLE_ACK(player));
                    }
                }
            }
        }
示例#19
0
 public Account getLeader()
 {
     if (this.getAllPlayers().Count <= 0)
     {
         return((Account)null);
     }
     if (this._leader == -1)
     {
         this.setNewLeader(-1);
     }
     return(ChannelInfoHolder.getChannel(this._channelId).getPlayerFromPlayerId(this.getSlot(this._leader)._playerId));
 }
示例#20
0
        protected internal override void write()
        {
            base.writeH(2572);
            List <Channel> allChannels = ChannelInfoHolder.getAllChannels();

            base.writeD(allChannels.Count);
            base.writeD(300);
            foreach (Channel current in allChannels)
            {
                base.writeD(current.getAllPlayers().Count);
            }
        }
示例#21
0
        protected internal override void run()
        {
            GameClient     client         = base.getClient();
            PlayerTemplate playerTemplate = PlayerTemplateHolder.getPlayerTemplate(Config.PlayerTemplateId);
            bool           flag           = !AccountManager.getInstance().isPlayerNameExist(this.name);

            if (flag)
            {
                AccountManager.getInstance().get(base.getClient().getPlayer().name).setRank(playerTemplate._rank);
                AccountManager.getInstance().get(base.getClient().getPlayer().name).setExp(playerTemplate._exp);
                AccountManager.getInstance().get(base.getClient().getPlayer().name).setGP(playerTemplate._gp);
                AccountManager.getInstance().get(base.getClient().getPlayer().name).setPlayerName(this.name);
                PlayerInventory playerInventory = new PlayerInventory(base.getClient().getPlayer().getPlayerId());
                Account         account         = AccountManager.getInstance().get(base.getClient().getPlayer().name);
                int             num             = AccountManager.getInstance().CreatePlayer(client.getPlayer().name, account);
                bool            flag2           = num >= 0;
                if (flag2)
                {
                    for (int i = 0; i < playerTemplate._startInventory.Count; i++)
                    {
                        ItemsModel item = new ItemsModel
                        {
                            id   = playerTemplate._startInventory[i].id,
                            slot = playerTemplate._startInventory[i].slot
                        };
                        playerInventory.getItemsAll().Add(item);
                    }
                    account.setInventory(playerInventory);
                    base.getClient().setAccount(account.player_id);
                    base.getClient().sendPacket(new PROTOCOL_LOBBY_CREATE_NICK_NAME_ACK(0L));
                    ChannelInfoHolder.getChannel(base.getClient().getChannelId()).addPlayer(account);
                }
                else
                {
                    bool flag3 = num == -1;
                    if (flag3)
                    {
                        base.getClient().sendPacket(new PROTOCOL_LOBBY_CREATE_NICK_NAME_ACK(2147483373L));
                    }
                    else
                    {
                        base.getClient().sendPacket(new PROTOCOL_LOBBY_CREATE_NICK_NAME_ACK(2147483373L));
                    }
                }
            }
            else
            {
                base.getClient().sendPacket(new PROTOCOL_LOBBY_CREATE_NICK_NAME_ACK(2147483373L));
            }
            CLogger.getInstance().debug("[Create Player] Player Name: " + this.name);
        }
        protected internal override void run()
        {
            bool flag = base.getClient() != null;

            if (flag)
            {
                Room roomInId = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getRoomInId(this.roomId);
                bool flag2    = roomInId != null && roomInId.getLeader() != null;
                if (flag2)
                {
                    base.getClient().sendPacket(new PROTOCOL_LOBBY_GET_ROOMINFOADD_ACK(roomInId));
                }
            }
        }
示例#23
0
 public static void Load()
 {
     GameClientManager.getInstance();
     ChannelInfoParser.getInstance();
     PlayerTemplateParser.getInstance();
     GameServerInfoParser.getInstance();
     StartedInventoryItemsParser.getInstance();
     RankExpInfoParser.getInstance();
     StartedInventoryItemsHolder.getInstance();
     TutorialParser.Load();
     ChannelInfoHolder.getInstance();
     PlayerTemplateHolder.getInstance();
     RankExpInfoHolder.getInstance();
 }
        protected internal override void run()
        {
            if (this.getClient() == null)
            {
                return;
            }
            Room roomInId = ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getRoomInId(this.roomId);

            if (roomInId == null || roomInId.getLeader() == null)
            {
                return;
            }
            this.getClient().sendPacket((SendBaseGamePacket) new S_LOBBY_GET_ROOMINFO(roomInId));
        }
        protected internal override void run()
        {
            Account player = base.getClient().getPlayer();
            bool    flag   = player != null;

            if (flag)
            {
                Room roomInId = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getRoomInId(this.roomID);
                bool flag2    = roomInId != null;
                if (flag2)
                {
                    bool flag3 = roomInId.password.Length > 0 && this.password != roomInId.password && player.getRank() != 53;
                    if (flag3)
                    {
                        CLogger.getInstance().info("[Room] " + player.player_name + " wrong password to enter the room.");
                        player.sendPacket(new PROTOCOL_LOBBY_PASSWORD_ERROR_ACK());
                    }
                    else
                    {
                        int slot = roomInId.addPlayer(player);
                        CLogger.getInstance().info("[Room] " + player.player_name + " walked into a room.");
                        player.setSlot(slot);
                        player.setRoom(roomInId);
                        for (int i = 0; i < 16; i++)
                        {
                            int  playerId = roomInId.getSlot(i)._playerId;
                            bool flag4    = playerId > 0;
                            if (flag4)
                            {
                                Account playerFromPlayerId = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(playerId);
                                bool    flag5 = playerFromPlayerId != null && playerFromPlayerId.player_id != base.getClient().getPlayer().player_id;
                                if (flag5)
                                {
                                    playerFromPlayerId.sendPacket(new PROTOCOL_ROOM_PLAYER_ENTER_ACK(player));
                                }
                            }
                        }
                        player.sendPacket(new PROTOCOL_LOBBY_JOIN_ROOM_ACK((long)this.roomID, player));
                    }
                }
                else
                {
                    player.sendPacket(new PROTOCOL_LOBBY_JOIN_ROOM_ACK((2147479548L), null));
                }
            }
            else
            {
                player.sendPacket(new PROTOCOL_LOBBY_JOIN_ROOM_ACK((2147479548L), null));
            }
        }
示例#26
0
        public List <Account> getAllPlayers()
        {
            List <Account> list = new List <Account>();

            for (int index = 0; index < this._slots.Length; ++index)
            {
                if (this._slots[index]._playerId > 0)
                {
                    Account playerFromPlayerId = ChannelInfoHolder.getChannel(this._channelId).getPlayerFromPlayerId(this._slots[index]._playerId);
                    list.Add(playerFromPlayerId);
                }
            }
            return(list);
        }
示例#27
0
        protected internal override void run()
        {
            Account player  = base.getClient().getPlayer();
            Channel channel = ChannelInfoHolder.getChannel(base.getClient().getChannelId());

            for (int i = 0; i < channel.getWaitPlayers().Count; i++)
            {
                bool flag = channel.getWaitPlayers()[i] != null;
                if (flag)
                {
                    channel.getWaitPlayers()[i].sendPacket(new SM_INVITE_FROM_ROOM_MESSAGE(player.getPlayerName(), player.getRoom().getRoomId()));
                }
            }
            base.getClient().getPlayer().sendPacket(new SM_INVITE_ROOM_RETURN());
        }
示例#28
0
        public List <Account> getAllPlayers()
        {
            List <Account> list = new List <Account>();

            for (int i = 0; i < this._slots.Length; i++)
            {
                bool flag = this._slots[i]._playerId > 0;
                if (flag)
                {
                    Account playerFromPlayerId = ChannelInfoHolder.getChannel(this._channelId).getPlayerFromPlayerId(this._slots[i]._playerId);
                    list.Add(playerFromPlayerId);
                }
            }
            return(list);
        }
示例#29
0
        public List <Account> getPlayerInRoom(GameClient client)
        {
            List <Account> list = new List <Account>();

            for (int id = 0; id < 15; ++id)
            {
                int playerId = this.getSlot(id)._playerId;
                if (playerId > 0)
                {
                    Account playerFromPlayerId = ChannelInfoHolder.getChannel(client.getChannelId()).getPlayerFromPlayerId(playerId);
                    list.Add(playerFromPlayerId);
                }
            }
            return(list);
        }
        protected internal override void run()
        {
            Account player = this.getClient().getPlayer();

            Thread.Sleep(2000);
            if (this.getClient() == null)
            {
                return;
            }
            player.getRoom().setState(ROOM_STATE.ROOM_STATE_PRE_BATTLE);
            player.getRoom().changeSlotState(this.getClient().getPlayer().getSlot(), SLOT_STATE.SLOT_STATE_PRESTART, true);
            player.sendPacket((SendBaseGamePacket) new S_BATTLE_ROOMINFO(player.getRoom()));
            if (player.getRoom().server_type == 1)
            {
                foreach (Account p in ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getRoomInId(player.getRoom().getRoomId()).getAllPlayers().ToArray())
                {
                    if (p.getRoom().getSlot(p.getSlot()).state == SLOT_STATE.SLOT_STATE_PRESTART)
                    {
                        CLogger.getInstance().info("Send: PROTOCOL_BATTLE_PRESTARTBATTLE_ACK info_player=" + p.getPlayerName() + " send player " + player.player_name);
                        player.sendPacket((SendBaseGamePacket) new S_BATTLE_PRESTARTBATTLE(p));
                    }
                }
                if (player.player_id == player.getRoom().getLeader().player_id)
                {
                    return;
                }
                CLogger.getInstance().info("Send: PROTOCOL_BATTLE_PRESTARTBATTLE_ACK info_player=" + player.getPlayerName() + " send player " + player.getRoom().getLeader().player_name);
                player.getRoom().getLeader().sendPacket((SendBaseGamePacket) new S_BATTLE_PRESTARTBATTLE(player));
            }
            else if (player.player_id == player.getRoom().getLeader().player_id)
            {
                CLogger.getInstance().info("Send: PROTOCOL_BATTLE_PRESTARTBATTLE_ACK info_player=" + player.getPlayerName() + " send player " + player.player_name);
                player.sendPacket((SendBaseGamePacket) new S_BATTLE_PRESTARTBATTLE(player));
                foreach (Account p in ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getRoomInId(player.getRoom().getRoomId()).getAllPlayers().ToArray())
                {
                    if (p.player_id != player.player_id && p.getRoom().getSlot(p.getSlot()).state == SLOT_STATE.SLOT_STATE_PRESTART)
                    {
                        CLogger.getInstance().info("Send: PROTOCOL_BATTLE_PRESTARTBATTLE_ACK info_player=" + p.getPlayerName() + " send player " + player.player_name);
                        player.sendPacket((SendBaseGamePacket) new S_BATTLE_PRESTARTBATTLE(p));
                    }
                }
            }
            else
            {
                CLogger.getInstance().info("Send: PROTOCOL_BATTLE_PRESTARTBATTLE_ACK info_player=" + player.getRoom().getLeader().player_name + " send player " + player.player_name);
                player.sendPacket((SendBaseGamePacket) new S_BATTLE_PRESTARTBATTLE(player));
            }
        }