public static void EventDisablePvP(NetUser netUser, string Command) { Class40 class2 = new Class40 { netUser_0 = netUser, string_0 = Command }; EventTimer timer = Timer.Find(new Predicate <EventTimer>(class2.method_0)); if (timer != null) { timer.Dispose(); if (class2.netUser_0 != null) { Users.SetFlags(class2.netUser_0.userID, UserFlags.nopvp, true); int num = Core.CommandNoPVPDuration + Core.CommandNoPVPCountdown; if (num > 0) { Users.CountdownAdd(class2.netUser_0.userID, new Countdown(class2.string_0, (double)num)); } TimeSpan span = TimeSpan.FromSeconds((double)Core.CommandNoPVPDuration); Broadcast.Notice(class2.netUser_0, "☢", Config.GetMessage("Command.PvP.Disabled", class2.netUser_0, null).Replace("%TIME%", string.Format("{0}:{1:D2}", span.Minutes, span.Seconds)), 5f); Broadcast.NoticeAll("☢", Config.GetMessage("Command.PvP.NoticeDisabled", class2.netUser_0, null), class2.netUser_0, 5f); } } }
public static void PlayerWarp(NetUser netUser, UserData user, WorldZone moveZone) { Zones.Class57 @class = new Zones.Class57(); @class.netUser_0 = netUser; @class.worldZone_0 = moveZone; EventTimer eventTimer = Events.Timer.Find(new Predicate <EventTimer>(@class.method_0)); if (eventTimer != null) { eventTimer.Dispose(); } if (@class.netUser_0 != null) { int index = UnityEngine.Random.Range(0, @class.worldZone_0.WarpZone.Spawns.Count); Helper.TeleportTo(@class.netUser_0, @class.worldZone_0.WarpZone.Spawns[index]); Broadcast.Notice(@class.netUser_0, "☢", Config.GetMessageTeleport("Player.WarpZone.Teleported", @class.netUser_0, @class.worldZone_0, null), 2f); } }
public static void PlayerWarp(NetUser netUser, UserData user, WorldZone moveZone) { Class57 class2 = new Class57 { netUser_0 = netUser, worldZone_0 = moveZone }; EventTimer timer = Events.Timer.Find(new Predicate <EventTimer>(class2.method_0)); if (timer != null) { timer.Dispose(); } if (class2.netUser_0 != null) { int num = UnityEngine.Random.Range(0, class2.worldZone_0.WarpZone.Spawns.Count); Helper.TeleportTo(class2.netUser_0, class2.worldZone_0.WarpZone.Spawns[num]); Broadcast.Notice(class2.netUser_0, "☢", Config.GetMessageTeleport("Player.WarpZone.Teleported", class2.netUser_0, class2.worldZone_0, null), 2f); } }
public static void OnPlayerMove(NetUser netUser, ref Vector3 newpos, ref TruthDetector.ActionTaken taken) { Predicate <EventTimer> match = null; ElapsedEventHandler handler = null; Class56 class2 = new Class56 { netUser_0 = netUser }; if (((class2.netUser_0 != null) && (class2.netUser_0.playerClient != null)) && (class2.netUser_0.playerClient.controllable != null)) { Vector3 position = class2.netUser_0.playerClient.controllable.character.transform.position; if ((position != newpos) && ((position.x != newpos.x) || (position.z != newpos.z))) { class2.userData_0 = Users.GetBySteamID(class2.netUser_0.userID); if (class2.userData_0 != null) { if (!class2.userData_0.HasFlag(UserFlags.onevent)) { class2.userData_0.Position = newpos; } class2.worldZone_0 = Get(newpos); if (class2.userData_0.Zone != class2.worldZone_0) { EventTimer timer = null; if (class2.userData_0.Zone != null) { if (match == null) { match = new Predicate <EventTimer>(class2.method_0); } timer = Events.Timer.Find(match); } if (timer != null) { Broadcast.Notice(class2.netUser_0, "☢", Config.GetMessageTeleport("Player.WarpZone.Interrupt", class2.netUser_0, class2.userData_0.Zone, null), 2f); timer.Dispose(); } if (class2.userData_0.Zone != null) { if ((class2.userData_0.Zone.NoLeave && !class2.netUser_0.admin) && ((class2.worldZone_0 == null) || !class2.userData_0.Zone.Internal.Contains(class2.worldZone_0))) { newpos = position; taken = TruthDetector.ActionTaken.Moved; return; } if (!string.IsNullOrEmpty(class2.userData_0.Zone.Notice_OnLeave)) { Broadcast.Notice(class2.netUser_0, "☢", class2.userData_0.Zone.Notice_OnLeave, 5f); } foreach (string str in class2.userData_0.Zone.Message_OnLeave) { Broadcast.Message(class2.netUser_0, str, null, 0f); } } if (class2.worldZone_0 != null) { if ((class2.worldZone_0.NoEnter && !class2.netUser_0.admin) && ((class2.userData_0.Zone == null) || !class2.worldZone_0.Internal.Contains(class2.userData_0.Zone))) { newpos = position; taken = TruthDetector.ActionTaken.Moved; return; } if (!string.IsNullOrEmpty(class2.worldZone_0.Notice_OnEnter)) { Broadcast.Notice(class2.netUser_0, "☢", class2.worldZone_0.Notice_OnEnter, 5f); } foreach (string str2 in class2.worldZone_0.Message_OnEnter) { Broadcast.Message(class2.netUser_0, str2, null, 0f); } } class2.userData_0.Zone = class2.worldZone_0; if (((class2.worldZone_0 != null) && (class2.worldZone_0.WarpZone != null)) && (class2.worldZone_0.WarpZone.Spawns.Count > 0)) { if (class2.worldZone_0.WarpTime > 0L) { timer = new EventTimer { Interval = class2.worldZone_0.WarpTime * 0x3e8L, AutoReset = false }; if (handler == null) { handler = new ElapsedEventHandler(class2.method_1); } timer.Elapsed += handler; timer.Sender = class2.netUser_0; timer.Command = class2.worldZone_0.Defname; timer.Start(); Broadcast.Notice(class2.netUser_0, "☢", Config.GetMessageTeleport("Player.WarpZone.Start", class2.netUser_0, class2.worldZone_0, null), 2f); } else { PlayerWarp(class2.netUser_0, class2.userData_0, class2.worldZone_0); } } } } } } }
public static void OnPlayerMove(NetUser netUser, ref Vector3 newpos, ref TruthDetector.ActionTaken taken) { Predicate <EventTimer> predicate = null; ElapsedEventHandler elapsedEventHandler = null; Zones.Class56 @class = new Zones.Class56(); @class.netUser_0 = netUser; if (@class.netUser_0 != null && !(@class.netUser_0.playerClient == null) && !(@class.netUser_0.playerClient.controllable == null)) { Vector3 position = @class.netUser_0.playerClient.controllable.character.transform.position; if (!(position == newpos)) { if (position.x != newpos.x || position.z != newpos.z) { @class.userData_0 = Users.GetBySteamID(@class.netUser_0.userID); if (@class.userData_0 != null) { if ([email protected]_0.HasFlag(UserFlags.onevent)) { @class.userData_0.Position = newpos; } @class.worldZone_0 = Zones.Get(newpos); if (@class.userData_0.Zone != @class.worldZone_0) { EventTimer eventTimer = null; if (@class.userData_0.Zone != null) { List <EventTimer> timer = Events.Timer; if (predicate == null) { predicate = new Predicate <EventTimer>(@class.method_0); } eventTimer = timer.Find(predicate); } if (eventTimer != null) { Broadcast.Notice(@class.netUser_0, "☢", Config.GetMessageTeleport("Player.WarpZone.Interrupt", @class.netUser_0, @class.userData_0.Zone, null), 2f); eventTimer.Dispose(); } if (@class.userData_0.Zone != null) { if (@class.userData_0.Zone.NoLeave && [email protected]_0.admin && (@class.worldZone_0 == null || [email protected]_0.Zone.Internal.Contains(@class.worldZone_0))) { newpos = position; taken = (TruthDetector.ActionTaken) 2; return; } if (!string.IsNullOrEmpty(@class.userData_0.Zone.Notice_OnLeave)) { Broadcast.Notice(@class.netUser_0, "☢", @class.userData_0.Zone.Notice_OnLeave, 5f); } string[] message_OnLeave = @class.userData_0.Zone.Message_OnLeave; for (int i = 0; i < message_OnLeave.Length; i++) { string text = message_OnLeave[i]; Broadcast.Message(@class.netUser_0, text, null, 0f); } } if (@class.worldZone_0 != null) { if (@class.worldZone_0.NoEnter && [email protected]_0.admin && (@class.userData_0.Zone == null || [email protected]_0.Internal.Contains(@class.userData_0.Zone))) { newpos = position; taken = (TruthDetector.ActionTaken) 2; return; } if (!string.IsNullOrEmpty(@class.worldZone_0.Notice_OnEnter)) { Broadcast.Notice(@class.netUser_0, "☢", @class.worldZone_0.Notice_OnEnter, 5f); } string[] message_OnEnter = @class.worldZone_0.Message_OnEnter; for (int j = 0; j < message_OnEnter.Length; j++) { string text2 = message_OnEnter[j]; Broadcast.Message(@class.netUser_0, text2, null, 0f); } } @class.userData_0.Zone = @class.worldZone_0; if (@class.worldZone_0 != null && @class.worldZone_0.WarpZone != null && @class.worldZone_0.WarpZone.Spawns.Count > 0) { if (@class.worldZone_0.WarpTime > 0L) { eventTimer = new EventTimer { Interval = (double)(@class.worldZone_0.WarpTime * 1000L), AutoReset = false }; Timer timer2 = eventTimer; if (elapsedEventHandler == null) { elapsedEventHandler = new ElapsedEventHandler(@class.method_1); } timer2.Elapsed += elapsedEventHandler; eventTimer.Sender = @class.netUser_0; eventTimer.Command = @class.worldZone_0.Defname; eventTimer.Start(); Broadcast.Notice(@class.netUser_0, "☢", Config.GetMessageTeleport("Player.WarpZone.Start", @class.netUser_0, @class.worldZone_0, null), 2f); } else { Zones.PlayerWarp(@class.netUser_0, @class.userData_0, @class.worldZone_0); } } } } } } } }
private static bool smethod_1(TruthDetector truthDetector_0, Vector3 vector3_0, Vector3 vector3_1, double double_0) { Predicate <EventTimer> match = null; Predicate <EventTimer> predicate2 = null; Predicate <EventTimer> predicate3 = null; Class48 class2 = new Class48 { truthDetector_0 = truthDetector_0 }; if (double_0 > 0.0) { Vector2 vector = new Vector2(vector3_1.x - vector3_0.x, vector3_1.z - vector3_0.z); double magnitude = vector.magnitude; double num2 = magnitude / double_0; if (num2 == 0.0) { return(false); } if (match == null) { match = new Predicate <EventTimer>(class2.method_0); } EventTimer timer = Events.Timer.Find(match); if (timer != null) { timer.Dispose(); Broadcast.Notice(class2.truthDetector_0.netUser.networkPlayer, "☢", Config.GetMessageCommand("Command.Home.Interrupt", "", class2.truthDetector_0.netUser), 5f); } if (predicate2 == null) { predicate2 = new Predicate <EventTimer>(class2.method_1); } EventTimer timer2 = Events.Timer.Find(predicate2); if (timer2 != null) { timer2.Dispose(); Broadcast.Notice(class2.truthDetector_0.netUser.networkPlayer, "☢", Config.GetMessageCommand("Command.Clan.Warp.Interrupt", "", class2.truthDetector_0.netUser), 5f); } if (predicate3 == null) { predicate3 = new Predicate <EventTimer>(class2.method_2); } EventTimer timer3 = Events.Timer.Find(predicate3); if (timer3 != null) { if (timer3.Sender != null) { Broadcast.Notice(timer3.Sender, "☢", Config.GetMessageCommand("Command.Teleport.Interrupt", "", timer3.Sender), 5f); } if (timer3.Target != null) { Broadcast.Notice(timer3.Target, "☢", Config.GetMessageCommand("Command.Teleport.Interrupt", "", timer3.Target), 5f); } timer3.Dispose(); } if (num2 > MaxMovementSpeed) { if ((server.log > 1) && Users.HasFlag(class2.truthDetector_0.netUser.userID, UserFlags.admin)) { Broadcast.Message(class2.truthDetector_0.netUser, "[COLOR#D02F2F]MovementSpeed: " + num2.ToString("0.0") + " of maximum " + MaxMovementSpeed.ToString("0.0"), "DEBUG", 0f); } PunishDetails = Config.GetMessageTruth("Truth.Punish.Reason.SpeedHack", class2.truthDetector_0.netUser, "", 0, new DateTime()); PunishDetails = PunishDetails.Replace("%SPEED.MOVEMENT%", num2.ToString("0.00")); PunishDetails = PunishDetails.Replace("%SPEED.MAXIMUM%", MaxMovementSpeed.ToString("0.00")); HackDetected = HackMethod.SpeedHack; vector3_1 = MoveBack(class2.truthDetector_0, vector3_0, vector3_1); return(true); } if (((server.log > 2) && Users.HasFlag(class2.truthDetector_0.netUser.userID, UserFlags.admin)) && (num2 > 1.0)) { Broadcast.Message(class2.truthDetector_0.netUser, "MovementSpeed: " + num2.ToString("0.0") + " of maximum " + MaxMovementSpeed.ToString("0.0"), "DEBUG", 0f); } } return(false); }