private static void OnPlayerChat(OakwoodPlayer player, string message) { if (player.IsValid()) { Oakwood.SendChatMessage($"[CHAT] {player.Name}: {message}"); Oakwood.ConLog($"[CHAT] {player.Name}: {message}"); } }
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(); } }
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(); }
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); }
/// <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); }
/// <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); }
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); }
/// <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); }
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); }
/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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); }
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); } } }
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); }
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); } }
static void OnGMStart() { Console.WriteLine("Gamemode has successfully started."); Oakwood.ConLog("Testing gamemode has been started."); }
private static void OnPlayerChat(OakwoodPlayer player, string text) { Oakwood.SendChatMessage($"[CHAT] {player.Name}: {text}"); }
static void OnGMStop() { Oakwood.ConLog("Gamemode has been stopped."); Console.WriteLine("Gamemode has been stopped."); }
internal static float GetKillbox() { float killbox = float.Parse(Oakwood.CallFunction("oak_killbox_get", null)[1].ToString()); return(killbox); }