Ejemplo n.º 1
0
 private static void OnPlayerChat(OakwoodPlayer player, string message)
 {
     if (player.IsValid())
     {
         Oakwood.SendChatMessage($"[CHAT] {player.Name}: {message}");
         Oakwood.ConLog($"[CHAT] {player.Name}: {message}");
     }
 }
Ejemplo n.º 2
0
 internal static void start(object[] args)
 {
     OakMisc.Log($"^F[^5INFO^F] SharpWood {Oakwood.GetVersion()} ^Asuccessfully ^Fstarted on this server!^R");
     Console.WriteLine($"[INFO] Registered {OakwoodCommandSystem.GetCommandCount()} commands, {OakwoodCommandSystem.GetEventCount()} events");
     if (OnStart != null)
     {
         OnStart();
     }
 }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            try
            {
                File.OpenText(Environment.CurrentDirectory + "\\spawn.txt");
            }
            catch
            {
                Console.WriteLine("File doesn't exist");
                Console.WriteLine("^F[^1ERROR^F]: ^CSpawn position is not set!^R");
                return;
            }

            try
            {
                string[] buf = File.ReadAllText(Environment.CurrentDirectory + "\\spawn.txt").Split(';');
                spawnPosition = new OakVec3(float.Parse(buf[0]), float.Parse(buf[1]), float.Parse(buf[2]));
            }
            catch
            {
                Console.WriteLine("Something f****d up");
                Console.WriteLine("^F[^1ERROR^F]: ^CSpawn position is not set!^R");
                return;
            }

            var iStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

            if (!GetConsoleMode(iStdOut, out uint outConsoleMode))
            {
                Console.WriteLine("Failed to get output console mode");
                SysCon.ReadKey();
                return;
            }

            outConsoleMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING | DISABLE_NEWLINE_AUTO_RETURN;
            if (!SetConsoleMode(iStdOut, outConsoleMode))
            {
                Console.WriteLine($"Failed to set output console mode, error code: {GetLastError()}");
                SysCon.ReadKey();
                return;
            }

            OakwoodEvents.OnLog              += OnLog;
            OakwoodEvents.OnPlayerConnect    += OnPlayerConnect;
            OakwoodEvents.OnPlayerDisconnect += OnPlayerDisconnect;
            OakwoodEvents.OnPlayerDeath      += OnPlayerDeath;
            OakwoodEvents.OnPlayerChat       += OnPlayerChat;
            OakwoodEvents.OnPlayerKeyDown    += OnPlayerKeyDown;

            Console.WriteLine($"^9Oakwood ^Fposition tool^R");
            Console.WriteLine($"^FMade by ^ESevenisko^R");
            SysCon.WriteLine();

            Thread clThread = new Thread(() => Oakwood.CreateClient("ipc://oakwood-inbound", "ipc://oakwood-outbound"));

            clThread.Start();
        }
Ejemplo n.º 4
0
        internal static bool Clear(OakwoodPlayer player)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_chat_clear", new object[] { player.ID })[0].ToString());

            if (ret == 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Starts a countdown
        /// </summary>
        /// <param name="countdown">Countdown length in seconds</param>
        /// <param name="duration">Countdown duration</param>
        /// <param name="color">Countdown color</param>
        /// <returns>True if the function is successful</returns>
        public bool Countdown(int countdown, int duration, OakColor color)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_hud_countdown", new object[] { player.ID, countdown, duration, color.ConvertToInt32() })[1].ToString());

            if (ret == -1)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Starts a countdown
        /// </summary>
        /// <param name="text">Announce text</param>
        /// <param name="duration">Announce duration</param>
        /// <returns>True if the function is successful</returns>
        public bool Announce(string text, float duration)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_hud_announce", new object[] { player.ID, text + "\0", text.Length + 1, duration })[1].ToString());

            if (ret == -1)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 7
0
        internal static bool SetKillbox(float height)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_killbox_set", new object[] { height })[1].ToString());

            if (ret == 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Prints a message in Mafia Message Box
        /// </summary>
        /// <param name="text">Message text</param>
        /// <param name="color">Text color</param>
        /// <returns>True if the function is successful</returns>
        public bool Message(string text, OakColor color)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_hud_message", new object[] { player.ID, text + "\0", text.Length + 1, color.ConvertToInt32() })[1].ToString());

            if (ret == -1)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 9
0
        internal static bool SendAll(string message)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_chat_broadcast", new object[] { message + "\0", message.Length + 1 })[0].ToString());

            if (ret == 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Un-Targets a player's camera
        /// </summary>
        /// <returns>True if the function is successful</returns>
        public bool Untarget()
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_camera_target_unset", new object[] { player.ID })[1].ToString());

            if (ret == 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 11
0
        internal static bool Send(OakwoodPlayer player, string message)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_chat_send", new object[] { player.ID, message + "\0", message.Length + 1 })[0].ToString());

            if (ret == 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Targets player's camera to vehicle
        /// </summary>
        /// <param name="spectatedVehicle">Vehicle to target</param>
        /// <returns>True if the function is successful</returns>
        public bool TargetVehicle(OakwoodVehicle spectatedVehicle)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_camera_target_vehicle", new object[] { player.ID, spectatedVehicle.ID })[1].ToString());

            if (ret == 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Targets player's camera to another player
        /// </summary>
        /// <param name="spectatedPlayer">Player to target</param>
        /// <returns>True if the function is successful</returns>
        public bool TargetPlayer(OakwoodPlayer spectatedPlayer)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_camera_target_player", new object[] { player.ID, spectatedPlayer.ID })[1].ToString());

            if (ret == 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Sets camera position
        /// </summary>
        /// <param name="position">Camera position</param>
        /// <param name="direction">Camera direction</param>
        /// <returns>True if the function is successful</returns>
        public bool Set(OakVec3 position, OakVec3 direction)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_camera_set", new object[] { player.ID, new float[] { position.x, position.y, position.z }, new float[] { direction.x, direction.y, direction.z } })[1].ToString());

            if (ret == 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Fades a screen into color
        /// </summary>
        /// <param name="type">Fade type</param>
        /// <param name="duration">Fade duration</param>
        /// <param name="color">Fade color</param>
        /// <returns>True if the function is successful</returns>
        public bool Fade(OakwoodFade type, int duration, OakColor color)
        {
            int ret = int.Parse(Oakwood.CallFunction("oak_hud_fadeout", new object[] { player.ID, (int)type, duration, color.ConvertToInt32() })[1].ToString());

            if (ret == -1)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 16
0
        internal static bool Log(string message)
        {
            string msg = message + "\n\0";
            int    ret = int.Parse(Oakwood.CallFunction("oak_logn", new object[] { msg, message.Length + 2 })[1].ToString());

            if (ret == 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 17
0
        internal static void OnChat(object[] args)
        {
            int    playerID = int.Parse(args[0].ToString());
            string msg      = (string)args[1];

            OakwoodPlayer player = null;

            foreach (OakwoodPlayer pl in Oakwood.Players)
            {
                if (pl.ID == playerID)
                {
                    player = pl;
                    break;
                }
            }

            if (msg.StartsWith("/"))
            {
                string[] t       = msg.Split(' ');
                string   cmd     = t[0];
                string[] cmdargs = t.Skip(1).ToArray();

                if (cmd.Substring(1) == "shwood")
                {
                    player.HUD.Message($"SharpWood {Oakwood.GetVersion()} made by Sevenisko & NanobotZ.", OakColor.White);
                }
                else if (cmd.Substring(1) == "help")
                {
                    player.SendMessage($"Command help:");
                    for (int i = 0; i < OakwoodCommandSystem.cmdDescriptions.Count; i++)
                    {
                        string[] welp = OakwoodCommandSystem.cmdDescriptions[i].Split(new string[] { " - " }, StringSplitOptions.None);
                        player.SendMessage($"> {welp[0]}");
                        player.SendMessage($" {{888888}}-> {{cccccc}}{welp[1]}");
                    }
                }
                else if (!OakwoodCommandSystem.ExecuteCommand(player, cmd.Substring(1), cmdargs))
                {
                    OakwoodCommandSystem.CallEvent("unknownCommand", new object[] { player, cmd.Substring(1) });
                }
            }
            else
            {
                if (OnPlayerChat != null)
                {
                    OnPlayerChat(player, msg);
                }
            }
        }
Ejemplo n.º 18
0
        static void Main(string[] args)
        {
            OakwoodEvents.OnStart            += OnGMStart;
            OakwoodEvents.OnStop             += OnGMStop;
            OakwoodEvents.OnPlayerConnect    += OnPlayerConnect;
            OakwoodEvents.OnPlayerDisconnect += OnPlayerDisconnect;
            OakwoodEvents.OnPlayerDeath      += OnPlayerDeath;
            OakwoodEvents.OnPlayerChat       += OnPlayerChat;
            OakwoodEvents.OnPlayerKeyDown    += OnPlayerKey;
            OakwoodEvents.OnLog += OnConsoleLog;

            Thread oakwoodThread = new Thread(() => Oakwood.CreateClient("ipc://oakwood-inbound", "ipc://oakwood-outbound"));

            oakwoodThread.Start();

            OakwoodCommandSystem.RegisterEvent("unknownCommand", PlUnknownCmd);
        }
Ejemplo n.º 19
0
        internal static void OnConsole(object[] args)
        {
            string msg = (string)args[0];

            switch (msg)
            {
            case "shwood":
            {
                OakMisc.Log($"This server is using SharpWood {Oakwood.GetVersion()} made by Sevenisko & NanobotZ.");
            }
            break;

            case "shwood-throwfatal":
            {
                Oakwood.ThrowFatal("User-called");
            }
            break;
            }

            if (OnConsoleText != null)
            {
                OnConsoleText(msg);
            }
        }
Ejemplo n.º 20
0
 static void OnGMStart()
 {
     Console.WriteLine("Gamemode has successfully started.");
     Oakwood.ConLog("Testing gamemode has been started.");
 }
Ejemplo n.º 21
0
 private static void OnPlayerChat(OakwoodPlayer player, string text)
 {
     Oakwood.SendChatMessage($"[CHAT] {player.Name}: {text}");
 }
Ejemplo n.º 22
0
 static void OnGMStop()
 {
     Oakwood.ConLog("Gamemode has been stopped.");
     Console.WriteLine("Gamemode has been stopped.");
 }
Ejemplo n.º 23
0
        internal static float GetKillbox()
        {
            float killbox = float.Parse(Oakwood.CallFunction("oak_killbox_get", null)[1].ToString());

            return(killbox);
        }