Пример #1
0
        public void AcknowledgeRegister(int index)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)SAckRegister);
            buffer.AddInteger(index);
            SendData(index, buffer.ToArray());
            buffer.Dispose();
        }
Пример #2
0
        public void EquipItem(string id, int destSlot)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CEquipItem);
            buffer.AddString(id);
            buffer.AddInteger(destSlot);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #3
0
        public void SendCombat(string targetId, int weapon)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CCombat);
            buffer.AddString(targetId);
            buffer.AddInteger(weapon);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #4
0
        public void ProcessLoot(int action, string lootId, int lootIndex = -1)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CLootTransaction);
            buffer.AddInteger(action);
            buffer.AddString(lootId);
            buffer.AddInteger(lootIndex);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #5
0
        public void BuyOrSell(int mode, string id, int qty)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CItemSale);
            buffer.AddInteger(mode);
            buffer.AddString(id);
            buffer.AddInteger(qty);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #6
0
        public void RelayChat(int index, string str)
        {
            var buffer    = new PacketBuffer();
            var player    = _userService.ActiveUsers.Find(p => p.Id == Types.PlayerIds[index]);
            var newString = player.Name + ": " + str;

            buffer.AddInteger((int)SMessage);
            buffer.AddInteger((int)Chat);
            buffer.AddString(newString);
            BroadcastData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #7
0
        public void SendInventory(int index, bool newLoot = false)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)SInventory);
            var player = _userService.ActiveUsers.Find(p => p.Id == Types.PlayerIds[index]);

            buffer.AddArray(player.Inventory.ToArray());
            buffer.AddInteger(player.Credits);
            SendData(index, buffer.ToArray());
            buffer.Dispose();
        }
Пример #8
0
        public void SendXP(int index)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)SLevelUp);

            var player = _userService.ActiveUsers.Find(p => p.Id == Types.PlayerIds[index]);

            buffer.AddInteger(player.Level);
            buffer.AddInteger(player.Exp);
            SendData(index, buffer.ToArray());
            buffer.Dispose();
        }
Пример #9
0
        public void PrepareStaticBroadcast()
        {
            Globals.FullData = false;
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)SFullData);
            buffer.AddInteger(_userService.ActiveUsers.Count);
            _userService.ActiveUsers.ForEach(player =>
            {
                var ndx = Array.IndexOf(Types.PlayerIds, player.Id);
                buffer.AddInteger(ndx);
                buffer.AddString(player.Name ?? "");
            });
            BroadcastData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #10
0
 public void SendNebulae(int index = -1)
 {
     if (index == -1)
     {
         for (var i = 0; i < Constants.MAX_PLAYERS; i++)
         {
             if (ServerTCP.Clients[i].Socket != null && ServerTCP.tempPlayer[i].inGame &&
                 ServerTCP.tempPlayer[i].receiving)
             {
                 var buffer = new PacketBuffer();
                 buffer.AddInteger((int)SNebulae);
                 buffer.AddArray(Globals.Nebulae.ToArray());
                 SendData(i, buffer.ToArray());
                 buffer.Dispose();
             }
         }
     }
     else
     {
         var buffer = new PacketBuffer();
         buffer.AddInteger((int)SNebulae);
         buffer.AddArray(Globals.Nebulae.ToArray());
         SendData(index, buffer.ToArray());
         buffer.Dispose();
     }
 }
Пример #11
0
        public void SendGalaxy(int index)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)SGalaxy);
            buffer.AddArray(Globals.Galaxy.ToArray());
            SendData(index, buffer.ToArray());
            buffer.Dispose();
        }
Пример #12
0
        public void SendData(byte[] data)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger(data.Length);
            buffer.AddBytes(data);
            myStream.Write(buffer.ToArray(), 0, buffer.ToArray().Length);
            buffer.Dispose();
        }
Пример #13
0
        public void SendItems(int index)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)SItems);
            buffer.AddArray(Globals.Items.ToArray());
            SendData(index, buffer.ToArray());
            buffer.Dispose();
        }
Пример #14
0
        public void SendChat(string message)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CChat);
            buffer.AddString(message);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #15
0
        public void SendMessage(int index, string message, MessageColors color)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)SMessage);
            buffer.AddInteger((int)color);
            buffer.AddString(message);
            // Use index -1 to broadcast from server to all players
            if (index != -1)
            {
                SendData(index, buffer.ToArray());
            }
            else
            {
                BroadcastData(buffer.ToArray());
            }

            buffer.Dispose();
        }
Пример #16
0
        public void StackItems(string from, string to)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CItemStack);
            buffer.AddString(from);
            buffer.AddString(to);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #17
0
        public void TransactItem(string inventoryId, string recipientId)
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CItemTransaction);
            buffer.AddString(inventoryId);
            buffer.AddString(recipientId);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #18
0
        public void SendLogin()
        {
            PacketBuffer _buffer = new PacketBuffer();

            _buffer.AddInteger((int)ClientPackets.CSendMessages);
            _buffer.AddString("Nahilblblbl");
            _buffer.AddString("231456");

            SendData(_buffer.ToArray());
            _buffer.Dispose();
        }
Пример #19
0
        public void XFerPlayer()
        {
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CPlayerData);
            buffer.AddFloat(Types.Player[GameLogic.PlayerIndex].X);
            buffer.AddFloat(Types.Player[GameLogic.PlayerIndex].Y);
            buffer.AddFloat(Types.Player[GameLogic.PlayerIndex].Rotation);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #20
0
        public void SendRegister()
        {
            InterfaceGUI.AddChats("Registering new user...", Color.DarkOliveGreen);
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CRegister);
            buffer.AddString(Globals.registerUsername);
            buffer.AddString(Globals.registerPassword);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #21
0
        public void SendLogin()
        {
            InterfaceGUI.AddChats("Logging in...", Color.DarkOliveGreen);
            var buffer = new PacketBuffer();

            buffer.AddInteger((int)CLogin);
            buffer.AddString(Globals.loginUsername);
            buffer.AddString(Globals.loginPassword);
            SendData(buffer.ToArray());
            buffer.Dispose();
        }
Пример #22
0
        public void SendData(int index, byte[] data)
        {
            var buffer     = new PacketBuffer();
            var compressed = Compress(data);

            buffer.AddInteger(compressed.Length);
            buffer.AddBytes(compressed);
            try
            {
                ServerTCP.Clients[index].Stream.Write(buffer.ToArray(), 0, buffer.ToArray().Length);
            }
            catch
            {
                // Console.WriteLine(@"Unable to send packet- client disconnected");
            }

            buffer.Dispose();
        }
Пример #23
0
        public void PreparePulseBroadcast()
        {
            var mobRange = 2000;

            _combatService.CycleArrays();
            for (var i = 1; i < Constants.MAX_PLAYERS; i++)
            {
                if (ServerTCP.Clients[i].Socket != null && ServerTCP.tempPlayer[i].inGame && ServerTCP.tempPlayer[i].receiving)
                {
                    var buffer = new PacketBuffer();
                    buffer.AddInteger((int)SPulse);
                    buffer.AddInteger(_userService.ActiveUsers.Count);
                    buffer.AddBytes(BitConverter.GetBytes(DateTime.UtcNow.ToBinary()));
                    _userService.ActiveUsers.ForEach(p =>
                    {
                        var ndx = Array.IndexOf(Types.PlayerIds, p.Id);
                        buffer.AddInteger(ndx);
                        buffer.AddString(p.Id);
                        buffer.AddFloat(p.X);
                        buffer.AddFloat(p.Y);
                        buffer.AddFloat(p.Rotation);
                        buffer.AddInteger(p.Health);
                        buffer.AddInteger(p.MaxHealth);
                        buffer.AddInteger(p.Shield);
                        buffer.AddInteger(p.MaxShield);
                        buffer.AddBytes(BitConverter.GetBytes(ServerTCP.tempPlayer[ndx].inGame));
                    });
                    var player = _userService.ActiveUsers.Find(p => p.Id == Types.PlayerIds[i]);
                    var minX   = (int)player.X - mobRange;
                    var minY   = (int)player.Y - mobRange;
                    var maxX   = (int)player.X + mobRange;
                    var maxY   = (int)player.Y + mobRange;
                    buffer.AddArray(_mobService.GetMobs(minX, maxX, minY, maxY).ToArray());
                    buffer.AddArray(_combatService.GetCombats((int)player.X, (int)player.Y).ToArray());
                    buffer.AddArray(Globals.Inventory.Where(m => m.X >= minX && m.X <= maxX && m.Y >= minY && m.Y <= maxY).ToArray());
                    buffer.AddArray(Globals.Loot.Where(L => L.X >= minX && L.X <= maxX && L.Y >= minY && L.Y <= maxY && L.Owner == player.Id).ToArray());
                    SendData(i, buffer.ToArray());
                    buffer.Dispose();
                }
            }
        }
Пример #24
0
        public void XFerLoad(int index, int suppress = 0)
        {
            var buffer = new PacketBuffer();
            var player = _userService.ActiveUsers.Find(p => p.Id == Types.PlayerIds[index]);

            buffer.AddInteger((int)SPlayerData);
            buffer.AddInteger(index);
            buffer.AddInteger(suppress);
            buffer.AddString(player.Id);
            buffer.AddString(player.Name);
            buffer.AddFloat(player.X);
            buffer.AddFloat(player.Y);
            buffer.AddFloat(player.Rotation);
            buffer.AddInteger(player.Health);
            buffer.AddInteger(player.MaxHealth);
            buffer.AddInteger(player.Shield);
            buffer.AddInteger(player.MaxShield);
            buffer.AddString(player.Rank);
            buffer.AddInteger(player.Credits);
            buffer.AddInteger(player.Exp);
            buffer.AddInteger(player.Level);
            buffer.AddInteger(player.Weap1Charge);
            buffer.AddInteger(player.Weap2Charge);
            buffer.AddInteger(player.Weap3Charge);
            buffer.AddInteger(player.Weap4Charge);
            buffer.AddInteger(player.Weap5Charge);
            buffer.AddArray(player.Inventory.ToArray());
            SendData(index, buffer.ToArray());
            buffer.Dispose();
        }
Пример #25
0
        public void UpdatePlayer(int index)
        {
            var buffer = new PacketBuffer();
            var player = _userService.ActiveUsers.Find(p => p.Id == Types.PlayerIds[index]);

            buffer.AddInteger((int)SPlayerUpdate);
            buffer.AddInteger(player.Health);
            buffer.AddInteger(player.MaxHealth);
            buffer.AddInteger(player.Shield);
            buffer.AddInteger(player.MaxShield);
            buffer.AddInteger(player.Exp);
            buffer.AddInteger(player.Level);
            buffer.AddInteger(player.Weap1Charge);
            buffer.AddInteger(player.Weap2Charge);
            buffer.AddInteger(player.Weap3Charge);
            buffer.AddInteger(player.Weap4Charge);
            buffer.AddInteger(player.Weap5Charge);
            SendData(index, buffer.ToArray());
            buffer.Dispose();
        }