Пример #1
0
        // All functions
        public int API_guiCreateRectangle(int playerId, int posX, int posY, int sizeX, int sizeY, byte r, byte g, byte b, byte a)
        {
            NetConnection netConnection = Server.Find(playerId);
            //Server.SendGUICreateRectanglePacket(netConnection, playerId, new Point(posX, posY), new Size(sizeX, sizeY), Color.FromArgb(a, r, g, b));

            NetworkUI networkUI = new NetworkUI();
            networkUI.Type = (byte)GUIPacket.Rectangle;
            networkUI.PlayerId = playerId;
            networkUI.PosX = posX;
            networkUI.PosY = posY;
            networkUI.SizeX = sizeX;
            networkUI.SizeY = sizeY;
            networkUI.R = r;
            networkUI.G = g;
            networkUI.B = b;
            networkUI.A = a;

            int id = Server.RegisterNetworkUI(networkUI);

            return id;
        }
Пример #2
0
        private void ReadGUIPacket(NetIncomingMessage netIncomingMessage)
        {
            GUIPacket receivedGUIPacket = (GUIPacket)netIncomingMessage.ReadByte();
            int id = netIncomingMessage.ReadInt32();
            int playerId = netIncomingMessage.ReadInt32();
            int posX = netIncomingMessage.ReadInt32();
            int posY = netIncomingMessage.ReadInt32();
            int sizeX = netIncomingMessage.ReadInt32();
            int sizeY = netIncomingMessage.ReadInt32();
            byte r = netIncomingMessage.ReadByte();
            byte g = netIncomingMessage.ReadByte();
            byte b = netIncomingMessage.ReadByte();
            byte a = netIncomingMessage.ReadByte();

            // Check to see if this UI is already in our list
            NetworkUI networkUi = null;
            foreach (NetworkUI ui in UIs) {
                if (ui.ID == id)
                    networkUi = ui;
            }

            if(receivedGUIPacket != GUIPacket.RemoveGUIElement) {
                // It doesn't exist, so create one!
                if (networkUi == null) {
                    networkUi = new NetworkUI();
                    UIs.Add(networkUi);

                    Main.ChatBox.Add("Created new NUI");
                }

                if (receivedGUIPacket == GUIPacket.Rectangle) {
                    networkUi.ID = id;
                    networkUi.Type = (byte)receivedGUIPacket;
                    networkUi.PlayerId = playerId;
                    networkUi.PosX = posX;
                    networkUi.PosY = posY;
                    networkUi.SizeX = sizeX;
                    networkUi.SizeY = sizeY;
                    networkUi.R = r;
                    networkUi.B = b;
                    networkUi.G = g;
                    networkUi.A = a;
                    networkUi.UIElement = new UIRectangle(new Point(networkUi.PosX, networkUi.PosY), new Size(networkUi.SizeX, networkUi.SizeY), Color.FromArgb(networkUi.A, networkUi.R, networkUi.G, networkUi.B));
                }
            }
            // Remove GUI
            else {
                if(networkUi != null) {
                    UIs.Remove(networkUi);
                }
                else {
                    Main.ChatBox.Add("(internal) ERROR: NUI ID is NULL");
                }
            }
        }