示例#1
0
        public static bool Orb_Command_Flight_Smoke_Method(Server.NetObject NetObj, CommandReader Command)
        {
            if (Command._CmdArguments.Count() < 3)
            {
                NetObj.ClientObject.SendMessage("&eFormat incorrect: Use instead: \"/Smoke Red Green Blue\"!");
                return(false);
            }

            byte Alpha = 0;
            byte Red   = 255;
            byte Green = 255;
            byte Blue  = 255;

            try
            {
                Red   = Byte.Parse(Command._CmdArguments[0]);
                Green = Byte.Parse(Command._CmdArguments[1]);
                Blue  = Byte.Parse(Command._CmdArguments[2]);
            }
            catch
            {
                NetObj.ClientObject.SendMessage("&eFormat incorrect: Be sure you are using values between 0 and 255!");
                return(false);
            }
            if (NetObj.Vehicle.ID == 0)
            {
                NetObj.ClientObject.SendMessage("&eYou need to be flying in order to change your smoke color!");
                return(false);
            }
            Network.Packets.Type07_SmokeCol SmokePacket = new Network.Packets.Type07_SmokeCol();
            SmokePacket.ID    = NetObj.Vehicle.ID;
            SmokePacket.Alpha = Alpha;
            SmokePacket.Red   = Red;
            SmokePacket.Green = Green;
            SmokePacket.Blue  = Blue;
            NetObj.Smoke      = "";
            NetObj.HostObject.Send(SmokePacket.Serialise());
            NetObj.ClientObject.Send(SmokePacket.Serialise());
            return(true);
        }
示例#2
0
        public static bool Orb_Command_Flight_Smoke_Rainbow_Method(Server.NetObject NetObj, CommandReader Command)
        {
            byte Alpha = 0;
            byte Red   = 255;
            byte Green = 0;
            byte Blue  = 0;

            if (NetObj.Vehicle.ID == 0)
            {
                NetObj.ClientObject.SendMessage("&eYou need to be flying in order to change your smoke color!");
                return(false);
            }
            NetObj.Smoke = ""; //This will help us cancel other rainbows!
            Thread.Sleep(10);
            NetObj.Smoke = "RAINBOW";
            int Hue = 0;

            while (NetObj.Vehicle.ID != 0 && NetObj.Smoke == "RAINBOW")
            {
                if (Hue >= 360)
                {
                    Hue = 0;
                }
                Network.Packets.Type07_SmokeCol SmokePacket = new Network.Packets.Type07_SmokeCol();
                SmokePacket.ID    = NetObj.Vehicle.ID;
                SmokePacket.Alpha = Alpha;
                SmokePacket.Red   = 0;
                SmokePacket.Green = 0;
                SmokePacket.Blue  = 0;
                if (Hue < 60)
                {
                    Red   = 255;
                    Green = (byte)(Math.Ceiling(((Hue) / 60d) * 255));
                }
                else if (Hue < 120)
                {
                    Red   = (byte)(Math.Ceiling(((Hue - 60) / 60d) * -255) + 255);
                    Green = 255;
                }
                else if (Hue < 180)
                {
                    Green = 255;
                    Blue  = (byte)(Math.Ceiling(((Hue - 120) / 60d) * 255));
                }
                else if (Hue < 240)
                {
                    Green = (byte)(Math.Ceiling(((Hue - 180) / 60d) * -255) + 255);
                    Blue  = 255;
                }
                else if (Hue < 300)
                {
                    Blue = 255;
                    Red  = (byte)(Math.Ceiling(((Hue - 240) / 60d) * 255));
                }
                else if (Hue < 360)
                {
                    Blue = (byte)(Math.Ceiling(((Hue - 300) / 60d) * -255) + 255);
                    Red  = 255;
                }
                SmokePacket.Red   = Red;
                SmokePacket.Green = Green;
                SmokePacket.Blue  = Blue;
                Hue += 1;
                Thread.Sleep(10);
                if (NetObj.Smoke == "RAINBOW")
                {
                    NetObj.HostObject.Send(SmokePacket.Serialise());
                    NetObj.ClientObject.Send(SmokePacket.Serialise());
                }
            }
            return(true);
        }
示例#3
0
 public void Process_Type07_SmokeCol(Network.Packet Packet)
 {
     Network.Packets.Type07_SmokeCol ThisPacket = new Network.Packets.Type07_SmokeCol(Packet);
     Parent.HostObject.Send(ThisPacket.Serialise());
 }