Exemplo n.º 1
0
        private static async Task Main(string[] args)
        {
            var customCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();

            customCulture.NumberFormat.NumberDecimalSeparator = ".";
            Thread.CurrentThread.CurrentCulture = customCulture;

            var userInitiatedExit = false;

            using (var udpClient = new UdpClient(8022))
            {
                Console.WriteLine("Welcome to mutateful!");
                Console.WriteLine("Open Ableton Live, drop mutateful-connector.amxd onto one of the tracks, and start entering formulas.");

                var queue = Channel.CreateUnbounded <byte[]>();

                await Task.WhenAny(
                    UdpHandler.ProcessUdpDataAsync(udpClient, queue.Writer, CliHandler.HandleInput),
                    UdpHandler.SendUdpDataAsync(udpClient, queue.Reader),
                    Task.Run(() =>
                {
                    Console.WriteLine("Press any key to exit...");
                    Console.ReadKey();
                    userInitiatedExit = true;
                }
                             )
                    );
            }

            if (!userInitiatedExit)
            {
                Console.WriteLine("Mutateful will exit now. Press any key...");
                Console.ReadKey();
            }
        }
Exemplo n.º 2
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());
     }
 }
Exemplo n.º 3
0
        protected internal override void run()
        {
            Account player = this.getClient().getPlayer();

            UdpHandler.getInstance().RemovePlayerInRoom(player);
            player.sendPacket((SendBaseGamePacket) new S_BATTLE_ENDBATTLE(player));
        }
        protected internal override void run()
        {
            Account player = base.getClient().getPlayer();

            UdpHandler.getInstance().RemovePlayerInRoom(player);
            player.sendPacket(new PROTOCOL_BATTLE_MISSION_ROUND_PRE_START_ACK());
        }
Exemplo n.º 5
0
        public BaseClient(int _id)
        {
            id = _id;

            tcp = new TcpHandler();
            udp = new UdpHandler();
        }
Exemplo n.º 6
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();
            }
        }
Exemplo n.º 7
0
        public void TestExceptionCaught()
        {
            var mockLogger = new Mock <ILogger <UdpHandler> >();
            var context    = new Mock <IChannelHandlerContext>();
            var handler    = new UdpHandler(mockLogger.Object);

            handler.ChannelRead(context.Object, null);
            handler.ChannelRead(context.Object, new DatagramPacket(Unpooled.Empty, new IPEndPoint(IPAddress.Any, 88)));
            handler.ExceptionCaught(context.Object, new Exception("tEST"));
        }
Exemplo n.º 8
0
        public MainWindow(String myname)
        {
            MyName = myname;
            Random ran = new Random();

            MyIcon = "icon" + ran.Next(1, 7);
            InitializeComponent();
            handler          = new UdpHandler(this);
            this.DataContext = new MainWindowViewModel(this);
        }
Exemplo n.º 9
0
        public void Execute(object parameter)
        {
            Task task = new Task(() =>
            {
                //BluetoothServerHandler bluetoothManager = new BluetoothServerHandler();
                //bluetoothManager.ServerStart();

                //TcpHandler tcpHandler = new TcpHandler();
                //tcpHandler.Start();

                UdpHandler s = new UdpHandler();
                s.Server(IpHelper.GetLocalIPAddress(), 5563);
            });

            task.Start();
        }
Exemplo n.º 10
0
 private void btnConnect_Click(object sender, EventArgs e)
 {
     try
     {
         Target = new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text));
         Console.WriteLine("Connecting {0}:{1}", txtIP.Text, int.Parse(txtPort.Text));
         net = new UdpHandler(new IPEndPoint(IPAddress.Any, 54204));
         net.Listen(true);
         net.Received += net_Received;
         init();
     }
     catch (Exception ex)
     {
         Console.WriteLine("Init: " + ex.Message + "\r\n" + ex.StackTrace);
     }
 }
Exemplo n.º 11
0
        public DhtNetwork(OpCore core, bool lookup)
        {
            Core     = core;
            IsLookup = lookup;

            Cache = new OpCache(this); // lookup config loads cache entries

            if (IsLookup)
            {
                Core.Context.LookupConfig.Load(this);
                Lookup = Core.Context.LookupConfig;
            }

            Local          = new DhtClient();
            Local.UserID   = IsLookup ? Lookup.Ports.UserID : Utilities.KeytoID(Core.User.Settings.KeyPublic);
            Local.ClientID = (ushort)Core.RndGen.Next(1, ushort.MaxValue);

            OpID = Utilities.KeytoID(IsLookup ? LookupKey : Core.User.Settings.OpKey);

            OpCrypt = new RijndaelManaged();

            // load encryption
            if (IsLookup)
            {
                OpCrypt.Key = LookupKey;
            }
            else
            {
                OpCrypt.Key = Core.User.Settings.OpKey;
            }

            LocalAugmentedKey = GetAugmentedKey(Local.UserID);

            Protocol    = new G2Protocol();
            TcpControl  = new TcpHandler(this);
            UdpControl  = new UdpHandler(this);
            LanControl  = new LanHandler(this);
            RudpControl = new RudpHandler(this);
            LightComm   = new LightCommHandler(this);
            UPnPControl = new UPnPHandler(this);

            Routing  = new DhtRouting(this);
            Store    = new DhtStore(this);
            Searches = new DhtSearchControl(this);
        }
Exemplo n.º 12
0
        public MainWindow()
        {
            Dispatcher.UnhandledException += Dispatcher_UnhandledException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;;

            GamepadHandler = new GamepadHandler();
            GamepadHandler.ConnectionChange            += GamepadConnected_Changed;
            InputSerialDeviceHandler                    = new SerialDeviceHandler(OSRRemoteDeviceMode.In);
            InputSerialDeviceHandler.ConnectionChange  += SerialConnected_Changed;
            OutputSerialDeviceHandler                   = new SerialDeviceHandler(OSRRemoteDeviceMode.Out);
            OutputSerialDeviceHandler.ConnectionChange += SerialConnected_Changed;
            SerialPorts            = OutputSerialDeviceHandler.GetPorts();
            BLEDevices             = new ObservableCollection <DeviceModel>();
            InputTcpAddresshandler = new TcpHandler(OSRRemoteDeviceMode.In);
            InputTcpAddresshandler.ConnectionChange += NetworkConnected_Changed;
            OutputTcpAddresshandler = new TcpHandler(OSRRemoteDeviceMode.Out);
            OutputTcpAddresshandler.ConnectionChange += NetworkConnected_Changed;
            InputUdpAddresshandler = new UdpHandler(OSRRemoteDeviceMode.In);
            InputUdpAddresshandler.ConnectionChange += NetworkConnected_Changed;
            OutputUdpAddresshandler = new UdpHandler(OSRRemoteDeviceMode.Out);
            OutputUdpAddresshandler.ConnectionChange += NetworkConnected_Changed;
            //BLEDeviceHandler = new BLEDeviceHandler(OSRRemoteDeviceMode.Out);
            //BLEDeviceHandler.ConnectionChange += BLEDeviceHandler_ConnectionChanged;
            //BLEDeviceHandler.DeviceAdded += BLEDeviceAdded;
            //BLEDeviceHandler.DeviceRemoved += BLEDeviceRemoved;



            InitializeComponent();

            this.DataContext       = this;
            IPAddressLabel.Content = GetLocalIPV4Address();

            RestoreSavedSettings();

            _outputNetworkAddressTxtDebouncer        = new Debouncer();
            _outputNetworkAddressTxtDebouncer.Idled += OutputNetworkAddressTxtDebouncer_Idled;
            _inputNetworkPortTxtDebouncer            = new Debouncer();
            _inputNetworkPortTxtDebouncer.Idled     += InputNetworkPortTxtDebouncer_Idled;

            //BLERdo.Checked += OutRadio_Checked;
        }
Exemplo n.º 13
0
 public void close()
 {
     this._prepareToClose = true;
     try
     {
         AccountManager.getInstance().get(this.getPlayer().name)._status = 0;
         this.getPlayer()._status = 0;
         AccountManager.getInstance().get(this.getPlayer().name).setOnlineStatus(false);
         bool flag = this.getPlayer() != null;
         if (flag)
         {
             bool flag2 = this.getPlayer().getRoom() != null;
             if (flag2)
             {
                 UdpHandler.getInstance().RemovePlayerInRoom(this.getPlayer());
                 ChannelInfoHolder.getChannel(this.getChannelId()).getRooms()[this.getPlayer().getRoom().getRoomId()].removePlayer(this.getPlayer());
                 this.getPlayer().setRoom(null);
             }
             bool flag3 = this.getChannelId() >= 0;
             if (flag3)
             {
                 ChannelInfoHolder.getChannel(this.getChannelId()).removePlayer(this.getPlayer());
             }
         }
         AccountManager.getInstance().get(this.getPlayer().name).setClient(null);
         GameClientManager.getInstance().removeClient(this);
         bool connected = this._client.Connected;
         if (connected)
         {
             this._client.Close();
             this._stream = null;
         }
         CLogger.getInstance().info("[GameClient] Player disconnect.");
     }
     catch (Exception ex)
     {
         CLogger.getInstance().warning(ex.ToString());
     }
 }
Exemplo n.º 14
0
 private static void Main(string[] args)
 {
     Console.Title = "Project Blackout Server";
     CLogger.getInstance().form();
     Console.ForegroundColor = ConsoleColor.Green;
     CLogger.getInstance().info("-----------------------------");
     CLogger.getInstance().info("|   Servidor Project Wars   |");
     CLogger.getInstance().info("|         PVP 4X4           |");
     CLogger.getInstance().info("|         FIX 88%           |");
     CLogger.getInstance().info("|  developer by Skelleton   |");
     CLogger.getInstance().info("|      SystemPBlackout      |");
     CLogger.getInstance().info("|     Version: " + ((object)ServerVersion.version).ToString() + "     |");
     CLogger.getInstance().info("|       New Battle          |");
     CLogger.getInstance().info("|   Creation By Skelleton   |");
     CLogger.getInstance().info("-----------------------------");
     Console.ForegroundColor = ConsoleColor.White;
     Config.load();
     StartedInventoryItemsParser.getInstance();
     UdpHandler.getInstance().SendPacket((short)byte.MaxValue, new byte[4]);
     GameServerInfoParser.getInstance();
     ChannelInfoParser.getInstance();
     ClanManager.getInstance();
     AccountManager.getInstance();
     ConfigManager.getInstance();
     FriendManager.getInstance();
     RankExpInfoParser.getInstance();
     ShopInfoManager.getInstance();
     MissionManager.getInstance();
     PlayerTemplateParser.getInstance();
     LoginClientManager.getInstance();
     GameClientManager.getInstance();
     NetworkLoginFactory.getInstance();
     NetworkGameFactory.getInstance();
     CLogger.getInstance().warning("Servidor aberto");
     CLogger.getInstance().warning("Servidor aberto");
     CLogger.getInstance().warning("Servidor aberto");
     CLogger.getInstance().warning("Servidor aberto");
     Process.GetCurrentProcess().WaitForExit();
 }
Exemplo n.º 15
0
        protected internal override void run()
        {
            Account player = this.getClient().getPlayer();
            Room    room   = player.getRoom();

            if (player == null || room == null)
            {
                return;
            }
            if (room._aiLevel < 10)
            {
                ++room._aiLevel;
            }
            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 opcode_3890_ACK(room));
                }
            }
            UdpHandler.getInstance().PingUdpServer();
        }
Exemplo n.º 16
0
 protected internal override void write()
 {
     base.writeH(3345);
     base.writeB(this._slots);
     UdpHandler.getInstance().PingUdpServer();
 }
Exemplo n.º 17
0
 public static void Load()
 {
     NetworkGame.getInstance();
     UdpHandler.getInstance().SendPacket(255, new byte[4]);
 }
        protected internal override void run()
        {
            CLogger.getInstance().info(string.Concat(new string[]
            {
                "[Chat Normal] ",
                base.getClient().getPlayer().getPlayerName(),
                " send message: [",
                this.chat.chat,
                "]"
            }));
            Account player = base.getClient().getPlayer();
            Room    room   = player.getRoom();
            bool    flag   = room != null;

            if (flag)
            {
                try
                {
                    bool flag2 = this.chat.chat.StartsWith("cmd ");
                    if (flag2)
                    {
                        string text  = this.chat.chat.Substring(4);
                        bool   flag3 = text.StartsWith("map ");
                        if (flag3)
                        {
                            int map = int.Parse(text.Substring(4));
                            this.chat.playername = "ServerCMD";
                            this.chat.chat       = "Changed map to " + map.ToString();
                            room.CMDChangeMap(map, player);
                        }
                        else
                        {
                            bool flag4 = text.StartsWith("player go");
                            if (flag4)
                            {
                                room.changeSlotState(player.getSlot(), SLOT_STATE.SLOT_STATE_LOAD, true);
                                bool flag5 = base.getClient().getPlayer().getRoom().getLeader().player_id == base.getClient().getPlayer().player_id;
                                if (flag5)
                                {
                                    UdpHandler.getInstance().CreateBattleUdpRoom(base.getClient().getPlayer().getRoom(), 2);
                                }
                                this.chat.playername = "ServerCMD";
                                this.chat.chat       = "Player go!!!";
                                room.setState(ROOM_STATE.ROOM_STATE_LOADING);
                                player.sendPacket(new PROTOCOL_BATTLE_READYBATTLE_ACK(player, room));
                                CLogger.getInstance().info("[Game::Chat]: Player enter command 'player go' player=" + base.getClient().getPlayer().player_name);
                            }
                        }
                    }
                    for (int i = 0; i < 15; i++)
                    {
                        Account playerBySlot = room.getPlayerBySlot(i);
                        bool    flag6        = playerBySlot != null;
                        if (flag6)
                        {
                            playerBySlot.sendPacket(new PROTOCOL_ROOM_CHATTING_ACK(this.chat, player));
                        }
                    }
                }
                catch (Exception ex)
                {
                    CLogger.getInstance().warning(ex.ToString());
                }
            }
            else
            {
                Channel channel = ChannelInfoHolder.getChannel(base.getClient().getChannelId());
                bool    flag7   = channel != null;
                if (flag7)
                {
                    for (int j = 0; j < channel.getWaitPlayers().Count; j++)
                    {
                        bool flag8 = channel.getWaitPlayers()[j] != null;
                        if (flag8)
                        {
                            channel.getWaitPlayers()[j].sendPacket(new PROTOCOL_LOBBY_CHATTING_ACK(this.chat, player));
                        }
                    }
                }
            }
        }
Exemplo n.º 19
0
        protected internal override void run()
        {
            if (this.getClient() == null)
            {
                return;
            }
            Channel channel             = ChannelInfoHolder.getChannel(this.getClient().getChannelId());
            Room    room                = this.getClient().getPlayer().getRoom();
            Account player              = this.getClient().getPlayer();
            Account playerFromPlayerId1 = channel.getPlayerFromPlayerId(this.getClient().getPlayer().getRoom().getLeader().player_id);

            if (room.getLeader().player_id == this.getClient().getPlayer().player_id)
            {
                player.getRoom().changeSlotState(this.getClient().getPlayer().getSlot(), SLOT_STATE.SLOT_STATE_LOAD, true);
                for (int index = 0; index < 16; ++index)
                {
                    int playerId = room.getSlot(index)._playerId;
                    if (playerId > 0)
                    {
                        Account playerFromPlayerId2 = ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getPlayerFromPlayerId(playerId);
                        if (playerFromPlayerId2 != null)
                        {
                            if (channel.getRoomInId(room.getRoomId()).getSlotState(index) == SLOT_STATE.SLOT_STATE_READY)
                            {
                                channel.getRoomInId(room.getRoomId()).changeSlotState(index, SLOT_STATE.SLOT_STATE_LOAD, true);
                            }
                            room.setState(ROOM_STATE.ROOM_STATE_LOADING);
                            playerFromPlayerId2.CheckCorrectInventory();
                            playerFromPlayerId2.sendPacket((SendBaseGamePacket) new S_BATTLE_READYBATTLE(playerFromPlayerId2));
                        }
                    }
                }
                if (this.getClient().getPlayer().getRoom().getLeader().player_id != this.getClient().getPlayer().player_id || this.getClient().getPlayer().getRoom().server_type <= 1)
                {
                    return;
                }
                if (this.getClient().getPlayer().customAddress == null)
                {
                    UdpHandler.getInstance().CreateBattleUdpRoom(this.getClient().getPlayer().getRoom(), this.getClient().getPlayer().getRoom().server_type);
                }
                else
                {
                    UdpHandler.getInstance().CreateBattleUdpRoom(this.getClient().getPlayer().getRoom(), this.getClient().getPlayer().getRoom().server_type);
                }
            }
            else if (room.getSlotState(playerFromPlayerId1.getSlot()) == SLOT_STATE.SLOT_STATE_PRESTART || room.getSlotState(playerFromPlayerId1.getSlot()) == SLOT_STATE.SLOT_STATE_RENDEZVOUS || (room.getSlotState(playerFromPlayerId1.getSlot()) == SLOT_STATE.SLOT_STATE_LOAD || room.getSlotState(playerFromPlayerId1.getSlot()) == SLOT_STATE.SLOT_STATE_BATTLE_READY) || room.getSlotState(playerFromPlayerId1.getSlot()) == SLOT_STATE.SLOT_STATE_BATTLE)
            {
                ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getPlayerFromPlayerId(room.getSlot(player.getSlot())._playerId).getRoom().changeSlotState(this.getClient().getPlayer().getSlot(), SLOT_STATE.SLOT_STATE_LOAD, true);
                player.sendPacket((SendBaseGamePacket) new S_BATTLE_READYBATTLE(player));
                UdpHandler.getInstance().AddPlayerInUdpRoom(player, room.getLeader());
            }
            else
            {
                int playerId = room.getSlot(player.getSlot())._playerId;
                int slot     = this.getClient().getPlayer().getSlot();
                if (ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getPlayerFromPlayerId(playerId).getRoom().getSlotState(slot) == SLOT_STATE.SLOT_STATE_NORMAL)
                {
                    ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getPlayerFromPlayerId(playerId).getRoom().changeSlotState(slot, SLOT_STATE.SLOT_STATE_READY, true);
                }
                else if (ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getPlayerFromPlayerId(playerId).getRoom().getSlotState(slot) == SLOT_STATE.SLOT_STATE_READY)
                {
                    ChannelInfoHolder.getChannel(this.getClient().getChannelId()).getPlayerFromPlayerId(playerId).getRoom().changeSlotState(slot, SLOT_STATE.SLOT_STATE_NORMAL, true);
                }
                player.sendPacket((SendBaseGamePacket) new S_BATTLE_READYBATTLE(player));
            }
        }
        protected internal override void run()
        {
            Channel channel            = ChannelInfoHolder.getChannel(base.getClient().getChannelId());
            Room    room               = base.getClient().getPlayer().getRoom();
            Account player             = base.getClient().getPlayer();
            Account playerFromPlayerId = channel.getPlayerFromPlayerId(base.getClient().getPlayer().getRoom().getLeader().player_id);
            bool    flag               = room.getLeader().player_id == base.getClient().getPlayer().player_id;

            if (flag)
            {
                bool flag2 = room.isBattleInt() == 0;
                if (flag2)
                {
                    room.setFigth(1);
                    room.setTimeLost(room.getTimeByMask() * 60);
                }
                player.getRoom().changeSlotState(base.getClient().getPlayer().getSlot(), SLOT_STATE.SLOT_STATE_LOAD, true);
                for (int i = 0; i < 16; i++)
                {
                    int  playerId = room.getSlot(i)._playerId;
                    bool flag3    = playerId > 0;
                    if (flag3)
                    {
                        Account playerFromPlayerId2 = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(playerId);
                        bool    flag4 = playerFromPlayerId2 != null;
                        if (flag4)
                        {
                            bool flag5 = channel.getRoomInId(room.getRoomId()).getSlotState(i) == SLOT_STATE.SLOT_STATE_READY;
                            if (flag5)
                            {
                                channel.getRoomInId(room.getRoomId()).changeSlotState(i, SLOT_STATE.SLOT_STATE_LOAD, true);
                            }
                            room.setState(ROOM_STATE.ROOM_STATE_LOADING);
                            playerFromPlayerId2.CheckCorrectInventory();
                            playerFromPlayerId2.sendPacket(new PROTOCOL_BATTLE_READYBATTLE_ACK(playerFromPlayerId2, room));
                        }
                    }
                }
                bool flag6 = base.getClient().getPlayer().getRoom().getLeader().player_id == base.getClient().getPlayer().player_id&& base.getClient().getPlayer().getRoom().server_type > 1;
                if (flag6)
                {
                    bool flag7 = base.getClient().getPlayer().customAddress == null;
                    if (flag7)
                    {
                        UdpHandler.getInstance().CreateBattleUdpRoom(base.getClient().getPlayer().getRoom(), base.getClient().getPlayer().getRoom().server_type);
                    }
                    else
                    {
                        UdpHandler.getInstance().CreateBattleUdpRoom(base.getClient().getPlayer().getRoom(), base.getClient().getPlayer().getRoom().server_type);
                    }
                }
            }
            else
            {
                bool flag8 = room.getSlotState(playerFromPlayerId.getSlot()) == SLOT_STATE.SLOT_STATE_PRESTART || room.getSlotState(playerFromPlayerId.getSlot()) == SLOT_STATE.SLOT_STATE_RENDEZVOUS || room.getSlotState(playerFromPlayerId.getSlot()) == SLOT_STATE.SLOT_STATE_LOAD || room.getSlotState(playerFromPlayerId.getSlot()) == SLOT_STATE.SLOT_STATE_BATTLE_READY || room.getSlotState(playerFromPlayerId.getSlot()) == SLOT_STATE.SLOT_STATE_BATTLE;
                if (flag8)
                {
                    ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(room.getSlot(player.getSlot())._playerId).getRoom().changeSlotState(base.getClient().getPlayer().getSlot(), SLOT_STATE.SLOT_STATE_LOAD, true);
                    player.sendPacket(new PROTOCOL_BATTLE_READYBATTLE_ACK(player, room));
                    UdpHandler.getInstance().AddPlayerInUdpRoom(player, room.getLeader());
                }
                else
                {
                    int  playerId = room.getSlot(player.getSlot())._playerId;
                    int  slot     = base.getClient().getPlayer().getSlot();
                    bool flag9    = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(playerId).getRoom().getSlotState(slot) == SLOT_STATE.SLOT_STATE_NORMAL;
                    if (flag9)
                    {
                        ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(playerId).getRoom().changeSlotState(slot, SLOT_STATE.SLOT_STATE_READY, true);
                    }
                    else
                    {
                        bool flag10 = ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(playerId).getRoom().getSlotState(slot) == SLOT_STATE.SLOT_STATE_READY;
                        if (flag10)
                        {
                            ChannelInfoHolder.getChannel(base.getClient().getChannelId()).getPlayerFromPlayerId(playerId).getRoom().changeSlotState(slot, SLOT_STATE.SLOT_STATE_NORMAL, true);
                        }
                    }
                }
            }
            foreach (Account current in base.getClient().getPlayer().getRoom().getReadyPlayerList())
            {
                current.getClient().sendPacket(new PROTOCOL_ROOM_GET_SLOTINFO_ACK(room));
            }
            player.getRoom().updateInfo();
        }
Exemplo n.º 21
0
        protected internal override void run()
        {
            Account player = base.getClient().getPlayer();
            Room    room   = player.getRoom();

            CLogger.getInstance().info("[Battle] " + player.getPlayerName() + " It came out during the match.");
            player._statistic.setEscapes(player._statistic.getEscapes_s() + 1);
            AccountManager.getInstance().updateEscapes(player);
            UdpHandler.getInstance().RemovePlayerInRoom(player);
            bool flag = player.getSlot() == player.getRoom().getLeader().getSlot() && player.getRoom().getReadyPlayerList().Count == 1;

            if (flag)
            {
                for (int i = 0; i < 16; i++)
                {
                    bool flag2 = room._slots[i].state == SLOT_STATE.SLOT_STATE_BATTLE || room._slots[i].state == SLOT_STATE.SLOT_STATE_PRESTART;
                    if (flag2)
                    {
                        room.changeSlotState(i, SLOT_STATE.SLOT_STATE_NORMAL, true);
                    }
                    room._slots[i].allDeaths       = 0;
                    room._slots[i].allKills        = 0;
                    room._slots[i].killMessage     = 0;
                    room._slots[i].killsOnLife     = 0;
                    room._slots[i].lastKillState   = 0;
                    room._slots[i].repeatLastState = false;
                    room._slots[i].botScore        = 0;
                    room._slots[i].headshotsInPlay = 0;
                }
                room._redKills   = 0;
                room._redDeaths  = 0;
                room._blueKills  = 0;
                room._blueDeaths = 0;
                room._timeRoom   = room.getTimeByMask() * 60;
                room.setState(ROOM_STATE.ROOM_STATE_READY);
                player.sendPacket(new PROTOCOL_BATTLE_ENDBATTLE_ACK(player));
            }
            else
            {
                bool flag3 = player.getSlot() == player.getRoom().getLeader().getSlot() && player.getRoom().getAllPlayers().Count > 1 && player.getRoom().special == 6;
                if (flag3)
                {
                    foreach (Account current in player.getRoom().getAllPlayers())
                    {
                        bool flag4 = current != null && player.getRoom().getSlotState(current.getSlot()) == SLOT_STATE.SLOT_STATE_BATTLE;
                        if (flag4)
                        {
                            bool flag5 = player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_BATTLE || player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_PRESTART;
                            if (flag5)
                            {
                                player.getRoom().changeSlotState(player.getSlot(), SLOT_STATE.SLOT_STATE_NORMAL, true);
                            }
                            player.getRoom().getSlot(player.getSlot()).allDeaths       = 0;
                            player.getRoom().getSlot(player.getSlot()).allKills        = 0;
                            player.getRoom().getSlot(player.getSlot()).killMessage     = 0;
                            player.getRoom().getSlot(player.getSlot()).killsOnLife     = 0;
                            player.getRoom().getSlot(player.getSlot()).lastKillState   = 0;
                            player.getRoom().getSlot(player.getSlot()).repeatLastState = false;
                            player.getRoom().getSlot(player.getSlot()).botScore        = 0;
                            player.sendPacket(new PROTOCOL_BATTLE_ENDBATTLE_ACK(player));
                            current.sendPacket(new PROTOCOL_BATTLE_GIVEUPBATTLE_ACK(player.getSlot()));
                            bool flag6 = player.getPlayerId() != current.getPlayerId();
                            if (flag6)
                            {
                                current.sendPacket(new PROTOCOL_BATTLE_HOLE_CHECK_ACK(player.getRoom()));
                            }
                        }
                    }
                }
                else
                {
                    bool flag7 = player.getSlot() == player.getRoom().getLeader().getSlot() && player.getRoom().getAllPlayers().Count == 2 && player.getRoom().special != 6;
                    if (flag7)
                    {
                        foreach (Account current2 in player.getRoom().getAllPlayers())
                        {
                            bool flag8 = player.getSlot() != current2.getSlot() && player.getRoom().getSlotState(current2.getSlot()) == SLOT_STATE.SLOT_STATE_BATTLE;
                            if (flag8)
                            {
                                CLogger.getInstance().info("[Battle] End of the match to give up eancia.");
                                bool flag9 = player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_BATTLE || player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_PRESTART;
                                if (flag9)
                                {
                                    player.getRoom().changeSlotState(player.getSlot(), SLOT_STATE.SLOT_STATE_NORMAL, true);
                                }
                                player.getRoom().getSlot(player.getSlot()).allDeaths       = 0;
                                player.getRoom().getSlot(player.getSlot()).allKills        = 0;
                                player.getRoom().getSlot(player.getSlot()).killMessage     = 0;
                                player.getRoom().getSlot(player.getSlot()).killsOnLife     = 0;
                                player.getRoom().getSlot(player.getSlot()).lastKillState   = 0;
                                player.getRoom().getSlot(player.getSlot()).repeatLastState = false;
                                player.getRoom().getSlot(player.getSlot()).botScore        = 0;
                                room._redKills   = 0;
                                room._redDeaths  = 0;
                                room._blueKills  = 0;
                                room._blueDeaths = 0;
                                room._timeRoom   = room.getTimeByMask() * 60;
                                room.setState(ROOM_STATE.ROOM_STATE_READY);
                                current2.sendPacket(new PROTOCOL_BATTLE_GIVEUPBATTLE_ACK(player.getSlot()));
                                current2.sendPacket(new PROTOCOL_BATTLE_HOLE_CHECK_ACK(player.getRoom()));
                                player.getRoom().setState(ROOM_STATE.ROOM_STATE_BATTLE_END);
                                current2.getRoom().CalculateBattleResult(current2);
                                current2.sendPacket(new PROTOCOL_BATTLE_ENDBATTLE_ACK(current2));
                            }
                        }
                    }
                    else
                    {
                        bool flag10 = player.getSlot() != player.getRoom().getLeader().getSlot() && player.getRoom().getAllPlayers().Count == 2 && player.getRoom().special != 6;
                        if (flag10)
                        {
                            foreach (Account current3 in player.getRoom().getAllPlayers())
                            {
                                bool flag11 = player.getSlot() != current3.getSlot() && player.getRoom().getSlotState(current3.getSlot()) == SLOT_STATE.SLOT_STATE_BATTLE;
                                if (flag11)
                                {
                                    CLogger.getInstance().info("[Battle] End of the match to give up eancia.");
                                    bool flag12 = player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_BATTLE || player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_PRESTART;
                                    if (flag12)
                                    {
                                        player.getRoom().changeSlotState(player.getSlot(), SLOT_STATE.SLOT_STATE_NORMAL, true);
                                    }
                                    player.getRoom().getSlot(player.getSlot()).allDeaths       = 0;
                                    player.getRoom().getSlot(player.getSlot()).allKills        = 0;
                                    player.getRoom().getSlot(player.getSlot()).killMessage     = 0;
                                    player.getRoom().getSlot(player.getSlot()).killsOnLife     = 0;
                                    player.getRoom().getSlot(player.getSlot()).lastKillState   = 0;
                                    player.getRoom().getSlot(player.getSlot()).repeatLastState = false;
                                    player.getRoom().getSlot(player.getSlot()).botScore        = 0;
                                    room._redKills   = 0;
                                    room._redDeaths  = 0;
                                    room._blueKills  = 0;
                                    room._blueDeaths = 0;
                                    room._timeRoom   = room.getTimeByMask() * 60;
                                    room.setState(ROOM_STATE.ROOM_STATE_READY);
                                    current3.sendPacket(new PROTOCOL_BATTLE_GIVEUPBATTLE_ACK(player.getSlot()));
                                    current3.sendPacket(new PROTOCOL_BATTLE_HOLE_CHECK_ACK(player.getRoom()));
                                    player.getRoom().setState(ROOM_STATE.ROOM_STATE_BATTLE_END);
                                    current3.getRoom().CalculateBattleResult(current3);
                                    current3.sendPacket(new PROTOCOL_BATTLE_ENDBATTLE_ACK(current3));
                                }
                            }
                        }
                        else
                        {
                            bool flag13 = player.getSlot() != player.getRoom().getLeader().getSlot() && player.getRoom().getAllPlayers().Count > 2;
                            if (flag13)
                            {
                                bool flag14 = player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_BATTLE || player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_PRESTART;
                                if (flag14)
                                {
                                    player.getRoom().changeSlotState(player.getSlot(), SLOT_STATE.SLOT_STATE_NORMAL, true);
                                }
                                player.getRoom().getSlot(player.getSlot()).allDeaths       = 0;
                                player.getRoom().getSlot(player.getSlot()).allKills        = 0;
                                player.getRoom().getSlot(player.getSlot()).killMessage     = 0;
                                player.getRoom().getSlot(player.getSlot()).killsOnLife     = 0;
                                player.getRoom().getSlot(player.getSlot()).lastKillState   = 0;
                                player.getRoom().getSlot(player.getSlot()).repeatLastState = false;
                                player.getRoom().getSlot(player.getSlot()).botScore        = 0;
                                foreach (Account current4 in player.getRoom().getAllPlayers())
                                {
                                    current4.sendPacket(new PROTOCOL_BATTLE_GIVEUPBATTLE_ACK(player.getSlot()));
                                }
                                player.sendPacket(new PROTOCOL_BATTLE_ENDBATTLE_ACK(player));
                            }
                            else
                            {
                                bool flag15 = player.getSlot() != player.getRoom().getLeader().getSlot() && player.getRoom().getAllPlayers().Count > 1 && player.getRoom().special == 6;
                                if (flag15)
                                {
                                    foreach (Account current5 in player.getRoom().getAllPlayers())
                                    {
                                        bool flag16 = current5 != null && player.getRoom().getSlotState(current5.getSlot()) == SLOT_STATE.SLOT_STATE_BATTLE;
                                        if (flag16)
                                        {
                                            bool flag17 = player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_BATTLE || player.getRoom().getSlot(player.getSlot()).state == SLOT_STATE.SLOT_STATE_PRESTART;
                                            if (flag17)
                                            {
                                                player.getRoom().changeSlotState(player.getSlot(), SLOT_STATE.SLOT_STATE_NORMAL, true);
                                            }
                                            player.getRoom().getSlot(player.getSlot()).allDeaths       = 0;
                                            player.getRoom().getSlot(player.getSlot()).allKills        = 0;
                                            player.getRoom().getSlot(player.getSlot()).killMessage     = 0;
                                            player.getRoom().getSlot(player.getSlot()).killsOnLife     = 0;
                                            player.getRoom().getSlot(player.getSlot()).lastKillState   = 0;
                                            player.getRoom().getSlot(player.getSlot()).repeatLastState = false;
                                            player.getRoom().getSlot(player.getSlot()).botScore        = 0;
                                            player.sendPacket(new PROTOCOL_BATTLE_ENDBATTLE_ACK(player));
                                            current5.sendPacket(new PROTOCOL_BATTLE_GIVEUPBATTLE_ACK(player.getSlot()));
                                        }
                                    }
                                }
                                else
                                {
                                    CLogger.getInstance().info("[Batte] Failure to remove the player.");
                                }
                            }
                        }
                    }
                }
            }
        }