Ejemplo n.º 1
0
    public static void ReceiveData(byte[] data)
    {
        memoryStream.Write(data, 0, data.Length);
        memoryStream.Position = 0;

        while (reader.BaseStream.Length - reader.BaseStream.Position >= 1)
        {
            try
            {
                byte packetId = reader.ReadByte();
                if (packets.ContainsKey(packetId))
                {
                    try
                    {
                        packets[packetId](reader);
                    }
                    catch (Exception ex)
                    {
                        Debug.Log(ex.ToString());
                    }
                }
                else
                {
                    Debug.Log("No packet with id: " + packetId);
                }
            }
            catch (Exception ex)
            {
                Debug.Log("Couldn't read message: " + ex);
                break;
            }
        }

        PacketsSender.Clear(memoryStream);
    }
 private static void RegisterEvents(WorldObject c)
 {
     Stats.RegisterChange(c.id, ObjectStats.HP, (val) =>
     {
         foreach (var item in c.GetObservedUsers())
         {
             PacketsSender.SendStat(item, c.id, ObjectStats.HP, ObjectType.INT, val);
         }
     });
 }
Ejemplo n.º 3
0
        public Client(int playerId, UdpClient udpClient, PacketsReceiver packetsReceiver, PacketsSender packetsSender, PlayersManager playersManager, MetaMonoBehaviours metaMonoBehaviours)
        {
            this.playerId = playerId;

            tcpConnection = null;
            udpIpEndPoint = null;

            this.metaMonoBehaviours = metaMonoBehaviours;
            this.udpClient = udpClient;
            this.packetsReceiver = packetsReceiver;
            this.packetsSender = packetsSender;
            this.playersManager = playersManager;
        }
Ejemplo n.º 4
0
        public TcpConnection(int playerId, TcpClient tcpClient, PacketsReceiver packetsReceiver, PacketsSender packetsSender, PlayersManager playersManager, MetaMonoBehaviours metaMonoBehaviours) : base(metaMonoBehaviours)
        {
            this.playerId = playerId;
            receivePacket = new Packet();
            receiveBuffer = new byte[DataBufferSize];

            this.packetsReceiver    = packetsReceiver;
            this.packetsSender      = packetsSender;
            this.playersManager     = playersManager;
            this.metaMonoBehaviours = metaMonoBehaviours;

            this.tcpClient = tcpClient;
            this.tcpClient.ReceiveBufferSize = DataBufferSize;
            this.tcpClient.SendBufferSize    = DataBufferSize;
        }
Ejemplo n.º 5
0
    public void OnDrop(PointerEventData eventData)
    {
        RectTransform window = transform as RectTransform;

        if (!RectTransformUtility.RectangleContainsScreenPoint(window, Input.mousePosition))
        {
            Debug.Log("Drop item");
            ButtonInventory dragButton = eventData.pointerDrag.GetComponentInParent <ButtonInventory>();
            PacketsSender.ItemAction(RecordType.BACKPACK, PacketsSender.ActionType.DELETE, (ushort)dragButton.Slot, 0);
        }
        else
        {
            ButtonInventory dragButton  = eventData.pointerDrag.GetComponentInParent <ButtonInventory>();
            ButtonInventory enterButton = eventData.pointerEnter.GetComponentInParent <ButtonInventory>();
            if (dragButton != null && enterButton != null)
            {
                Debug.Log(dragButton.Slot + " enters: " + enterButton.Slot);
                PacketsSender.ItemAction(RecordType.BACKPACK, PacketsSender.ActionType.MOVE, (ushort)dragButton.Slot, (ushort)enterButton.Slot);
            }
        }
    }
Ejemplo n.º 6
0
    public static void ReceiveData(User user, byte[] data)
    {
        MemoryStream memoryStream = user.memoryStream;
        BinaryReader reader       = user.reader;

        memoryStream.Write(data, 0, data.Length);
        memoryStream.Position = 0;
        while (reader.BaseStream.Length - reader.BaseStream.Position >= 1)
        {
            try
            {
                byte packetId = reader.ReadByte();
                if (packets.ContainsKey(packetId))
                {
                    try
                    {
                        packets[packetId](user, reader);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
                }
                else
                {
                    Console.WriteLine("No packet with id: " + packetId);
                }
            }
            catch
            {
                Console.WriteLine("Couldnt read message.");
                break;
            }
        }

        PacketsSender.Clear(memoryStream);
    }
Ejemplo n.º 7
0
    private static void Test(User user, BinaryReader reader)
    {
        ushort posX = reader.ReadUInt16();
        ushort posY = reader.ReadUInt16();

        Console.WriteLine("Move user to: " + posX + "/" + posY);
        PacketsSender.MoveData data = new PacketsSender.MoveData()
        {
            id   = user.Character.id,
            posX = posX,
            posY = posY
        };

        foreach (var observedUser in user.Character.GetObservedUsers())
        {
            PacketsSender.MoveUser(observedUser, data);
        }

        PacketsSender.MoveUser(user, data);

        user.Character.DestinationTimeChange = Time.time;
        user.Character.Pos         = new Vector2UInt16(posX, posY);
        user.Character.Destination = new Vector2UInt16(posX, posY);
    }
Ejemplo n.º 8
0
 public virtual void Click()
 {
     PacketsSender.ItemAction(RecordType.BACKPACK, PacketsSender.ActionType.USE, (ushort)Slot, 0);
 }
Ejemplo n.º 9
0
 private void AddStatClick(ObjectStats stat)
 {
     PacketsSender.AddStat(stat);
 }
Ejemplo n.º 10
0
 public override void Click()
 {
     PacketsSender.BuyVendorItem(FindObjectOfType <VendorWindow>().shopCharacterId, (ushort)Slot);
 }
Ejemplo n.º 11
0
 public virtual void Interact()
 {
     PacketsSender.InteractWithCharacter(Id);
 }