From 50eecb85c0940e6b5fb364f7c316e8f56f308b08 Mon Sep 17 00:00:00 2001 From: SDPlugins Date: Sun, 11 Jun 2017 20:39:07 +0100 Subject: [PATCH] Added events for trails --- Trails.cs | 82 ++++++++++++++++++++++++++++++++++++++++- TrailsConfiguration.cs | 23 ++++++++---- bin/Release/Trails.dll | Bin 14336 -> 17920 bytes bin/Release/Trails.pdb | Bin 30208 -> 32256 bytes obj/Release/Trails.dll | Bin 14336 -> 17920 bytes obj/Release/Trails.pdb | Bin 30208 -> 32256 bytes 6 files changed, 96 insertions(+), 9 deletions(-) diff --git a/Trails.cs b/Trails.cs index 9792aa3..4897b35 100644 --- a/Trails.cs +++ b/Trails.cs @@ -78,8 +78,86 @@ private void playedDisconnected (UnturnedPlayer player) private void PlayerMoved (UnturnedPlayer player, UnityEngine.Vector3 position) { - if (trails.ContainsKey (player.CSteamID)) - EffectManager.sendEffect (trails [player.CSteamID], 80, position); + if (!trails.ContainsKey (player.CSteamID)) + return; + var trail = Configuration.Instance.customTrails.Where (t => t.id == trails [player.CSteamID]).FirstOrDefault (); + + string [] showOn = trail.type.Split (','); + + foreach (var show in showOn) + { + switch (show.Split ('.') [0].ToLower ()) + { + case "always": + break; + case "grounded": + if (!player.Player.movement.isGrounded) + return; + break; + case "notgrounded": + if (player.Player.movement.isGrounded) + return; + break; + case "jump": + if (!player.Player.movement.jump) + return; + break; + case "bleeding": + if (!player.Bleeding) + return; + break; + case "brokenbones": + if (!player.Broken) + return; + break; + case "zombiefollowing": + if (!player.Player.life.isAggressor) + return; + break; + case "equipedgun": + if (player.Player.equipment.asset == null) + return; + ushort [] guns = show.Split ('.').Select (g => ushort.Parse (g)).ToArray (); + if (!guns.Contains (player.Player.equipment.asset.id)) + return; + break; + case "inwater": + if (!player.Player.stance.isSubmerged) + return; + break; + case "running": + if (!player.Player.stance.sprint) + return; + break; + case "walking": + if (player.Player.stance.sprint || player.Player.stance.crouch || player.Player.stance.prone) + return; + break; + case "prone": + if (!player.Player.stance.prone) + return; + break; + case "crouch": + if (!player.Player.stance.crouch) + return; + break; + case "talking": + if (!player.Player.voice.isTalking) + return; + break; + case "invehicle": + if (!player.IsInVehicle) + return; + ushort [] vehicles = show.Split ('.').Select (v => ushort.Parse (v)).ToArray (); + if (!vehicles.Contains (player.CurrentVehicle.id)) + return; + break; + default: + break; + } + } + + EffectManager.sendEffect (trails [player.CSteamID], 80, position); } protected override void Unload () diff --git a/TrailsConfiguration.cs b/TrailsConfiguration.cs index 53483fe..8430023 100644 --- a/TrailsConfiguration.cs +++ b/TrailsConfiguration.cs @@ -41,43 +41,50 @@ public void LoadDefaults () { name = "electric", id = 61, - permission = "trail.electric" + permission = "trail.electric", + type = "ALWAYS" }, new customTrail () { name = "fire", id = 139, - permission = "trail.fire" + permission = "trail.fire", + type = "GROUNDED" }, new customTrail () { name = "water", id = 129, - permission = "trail.water" + permission = "trail.water", + type = "NOTGROUNDED" }, new customTrail () { name = "red", id = 124, - permission = "trail.red" + permission = "trail.red", + type = "INWATER,VEHICLE.140.106" }, new customTrail () { name = "orange", id = 130, - permission= "trail.orange" + permission= "trail.orange", + type = "INWATER" }, new customTrail () { name = "purple", id = 132, - permission = "trail.purple" + permission = "trail.purple", + type = "INVEHICLE.106.104" }, new customTrail () { name = "green", id = 134, - permission = "trail.green" + permission = "trail.green", + type = "INVEHICLE.54.52" } }; } @@ -91,6 +98,8 @@ public class customTrail public ushort id; [XmlElement ("Permission")] public string permission; + [XmlElement ("Type")] + public string type; public customTrail () { } } diff --git a/bin/Release/Trails.dll b/bin/Release/Trails.dll index 7762002442683a64dbb7879fb9d5a109911f7ac0..dabeee092ff687d89a4893319f9b8e3f55faca48 100644 GIT binary patch delta 7552 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 delta 4428 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 diff --git a/obj/Release/Trails.dll b/obj/Release/Trails.dll index 7762002442683a64dbb7879fb9d5a109911f7ac0..dabeee092ff687d89a4893319f9b8e3f55faca48 100644 GIT binary patch delta 7552 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 delta 4428 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