using System.Reflection; using System.Text; using MSCO; using UnityEngine; [assembly: AssemblyTitle("Hello Mod")] [assembly: AssemblyProduct("Hello Mod")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] namespace HelloMod { /// /// Beispiel-Mod: zeigt im Spiel oben links einen Hinweis. Mit H winkst du - alle anderen Spieler, die die Mod auch /// haben, sehen "<Name> waves!". /// public class HelloMod : MscoMod { public override string ID { get { return "hellomod"; } } public override string Name { get { return "Hello Mod"; } } public override string Version { get { return "1.0.0"; } } public override string Author { get { return "MBM"; } } bool inGame; string lastWave = ""; float waveUntil; public override void OnLoad() { Log("loaded"); } public override void OnMenuLoad() { inGame = false; } public override void OnGameLoad() { inGame = true; } public override void Update() { if (!inGame || !IsInSession || !Input.GetKeyDown(KeyCode.H)) return; Send(Encoding.UTF8.GetBytes("wave")); Show("You wave!"); } public override void OnMessage(int fromPlayerId, byte[] data) { if (Encoding.UTF8.GetString(data) != "wave") return; string name; Show((Players.TryGetValue(fromPlayerId, out name) ? name : "Someone") + " waves!"); } public override void OnPlayerJoined(int playerId, string name) { Show(name + " joined - press H to wave"); } void Show(string text) { lastWave = text; waveUntil = Time.realtimeSinceStartup + 4f; } public override void OnGUI() { if (!inGame) return; GUI.Label(new Rect(20, 60, 400, 24), "Hello Mod: press H to wave"); if (Time.realtimeSinceStartup < waveUntil) GUI.Label(new Rect(20, 84, 400, 24), lastWave); } } }