Beispiel #1
0
        public static EventTimer TimeEvent_HomeWarp(NetUser Sender, string Command, double time, Vector3 pos)
        {
            Events.Class36 @class = new Events.Class36();
            @class.netUser_0 = Sender;
            @class.string_0  = Command;
            @class.vector3_0 = pos;
            EventTimer result;

            if (time <= 0.0)
            {
                Events.Teleport_HomeWarp(null, @class.netUser_0, @class.string_0, @class.vector3_0);
                result = null;
            }
            else
            {
                EventTimer eventTimer = new EventTimer
                {
                    Interval  = time * 1000.0,
                    AutoReset = false
                };
                eventTimer.Elapsed += new ElapsedEventHandler(@class.method_0);
                eventTimer.Sender   = @class.netUser_0;
                eventTimer.Command  = @class.string_0;
                eventTimer.Start();
                result = eventTimer;
            }
            return(result);
        }
Beispiel #2
0
        public static EventTimer TimeEvent_ClanWarp(NetUser netUser, string Command, double time, ClanData clan)
        {
            Events.Class37 @class = new Events.Class37();
            @class.netUser_0  = netUser;
            @class.string_0   = Command;
            @class.clanData_0 = clan;
            EventTimer result;

            if (time <= 0.0)
            {
                Events.Teleport_ClanWarp(null, @class.netUser_0, @class.string_0, @class.clanData_0);
                result = null;
            }
            else
            {
                EventTimer eventTimer = new EventTimer
                {
                    Interval  = time * 1000.0,
                    AutoReset = false
                };
                eventTimer.Elapsed += new ElapsedEventHandler(@class.method_0);
                eventTimer.Sender   = @class.netUser_0;
                eventTimer.Command  = @class.string_0;
                eventTimer.Start();
                result = eventTimer;
            }
            return(result);
        }
        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);
                }
            }
        }
Beispiel #4
0
        public static bool DisablePvP(NetUser netUser, string Command, double time)
        {
            Events.Class39 @class = new Events.Class39();
            @class.netUser_0 = netUser;
            @class.string_0  = Command;
            bool result;

            if (@class.netUser_0 == null)
            {
                result = false;
            }
            else
            {
                EventTimer eventTimer = new EventTimer
                {
                    Interval  = time,
                    AutoReset = false
                };
                eventTimer.Elapsed += new ElapsedEventHandler(@class.method_0);
                eventTimer.Sender   = @class.netUser_0;
                eventTimer.Command  = @class.string_0;
                eventTimer.Start();
                result = true;
            }
            return(result);
        }
Beispiel #5
0
 public bool method_2(EventTimer eventTimer_0)
 {
     if ((eventTimer_0.Sender != this.truthDetector_0.netUser) && (eventTimer_0.Target != this.truthDetector_0.netUser))
     {
         return(false);
     }
     return(eventTimer_0.Command == "tp");
 }
        public static EventTimer TimeEvent_TeleportTo(NetUser Sender, NetUser Target, string Command, double time)
        {
            Class38 class2 = new Class38 {
                netUser_0 = Sender,
                netUser_1 = Target,
                string_0  = Command
            };

            if (Core.CommandTeleportOutdoorsOnly)
            {
                foreach (Collider collider in Physics.OverlapSphere(class2.netUser_1.playerClient.controllable.character.transform.position, 1f, 0x10360401))
                {
                    IDMain main = IDBase.GetMain(collider);
                    if (main != null)
                    {
                        StructureMaster component = main.GetComponent <StructureMaster>();
                        if (((component != null) && (component.ownerID != class2.netUser_0.userID)) && (component.ownerID != class2.netUser_1.userID))
                        {
                            UserData bySteamID = Users.GetBySteamID(component.ownerID);
                            if ((bySteamID == null) || (!bySteamID.HasShared(class2.netUser_0.userID) && !bySteamID.HasShared(class2.netUser_1.userID)))
                            {
                                Broadcast.Notice(class2.netUser_0, "☢", Config.GetMessage("Command.Teleport.NoTeleport", class2.netUser_0, class2.netUser_1.displayName), 5f);
                                Broadcast.Notice(class2.netUser_1, "☢", Config.GetMessage("Command.Teleport.NotHere", class2.netUser_1, class2.netUser_0.displayName), 5f);
                                return(null);
                            }
                        }
                    }
                }
            }
            Broadcast.Message(class2.netUser_0, Config.GetMessage("Command.Teleport.IsConfirm", class2.netUser_0, null).Replace("%USERNAME%", class2.netUser_1.displayName), null, 0f);
            Broadcast.Message(class2.netUser_1, Config.GetMessage("Command.Teleport.Confirmed", class2.netUser_1, null).Replace("%USERNAME%", class2.netUser_0.displayName), null, 0f);
            if (!Character.FindByUser(class2.netUser_1.userID, out class2.character_0))
            {
                return(null);
            }
            if (time <= 0.0)
            {
                Teleport_PlayerTo(null, class2.netUser_0, class2.netUser_1, class2.string_0, class2.character_0.transform.position);
                return(null);
            }
            EventTimer timer = new EventTimer {
                Interval  = time * 1000.0,
                AutoReset = false
            };

            timer.Elapsed += new ElapsedEventHandler(class2.method_0);
            timer.Sender   = class2.netUser_0;
            timer.Target   = class2.netUser_1;
            timer.Command  = class2.string_0;
            Broadcast.Notice(class2.netUser_0, "☢", Config.GetMessage("Command.Teleport.Timewait", class2.netUser_0, null).Replace("%TIME%", timer.TimeLeft.ToString()), 5f);
            Broadcast.Notice(class2.netUser_1, "☢", Config.GetMessage("Command.Teleport.Timewait", class2.netUser_1, null).Replace("%TIME%", timer.TimeLeft.ToString()), 5f);
            timer.Start();
            return(timer);
        }
        public static void SleeperAway(ulong userID, int lifetime)
        {
            Class35 class2 = new Class35 {
                ulong_0 = userID
            };
            EventTimer timer = new EventTimer {
                Interval  = lifetime,
                AutoReset = false
            };

            timer.Elapsed += new ElapsedEventHandler(class2.method_0);
            timer.Start();
        }
Beispiel #8
0
        public static void SleeperAway(ulong userID, int lifetime)
        {
            Events.Class35 @class = new Events.Class35();
            @class.ulong_0 = userID;
            EventTimer eventTimer = new EventTimer
            {
                Interval  = (double)lifetime,
                AutoReset = false
            };

            eventTimer.Elapsed += new ElapsedEventHandler(@class.method_0);
            eventTimer.Start();
        }
Beispiel #9
0
 public static void EventServerRestart(EventTimer sender, int ShutdownTime, ref int Timeleft)
 {
     if (Timeleft != 0)
     {
         if (Timeleft <= 5)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.WillRestart", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 1f);
         }
         else if (Timeleft == 10)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.WillRestart", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 5f);
         }
         else if (Timeleft == 30)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.WillRestart", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 10f);
         }
         else if (Timeleft == 60)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.WillRestart", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 10f);
         }
         else if (Timeleft == ShutdownTime)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.Restart", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 10f);
         }
     }
     if (Timeleft > 0)
     {
         Timeleft--;
     }
     else
     {
         try
         {
             if (sender != null)
             {
                 sender.Stop();
             }
             AvatarSaveProc.SaveAll();
             ServerSaveManager.AutoSave();
             string text      = Environment.GetCommandLineArgs()[0];
             string arguments = string.Join(" ", Environment.GetCommandLineArgs()).Replace(text, "").Trim();
             Process.Start(text, arguments);
             Process.GetCurrentProcess().Kill();
         }
         catch (Exception ex)
         {
             Helper.LogError(ex.ToString(), true);
         }
     }
 }
Beispiel #10
0
 public static void EventServerShutdown(EventTimer sender, int ShutdownTime, ref int Timeleft)
 {
     if (Timeleft != 0)
     {
         if (Timeleft <= 5)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.WillShutdown", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 1f);
         }
         else if (Timeleft == 10)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.WillShutdown", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 5f);
         }
         else if (Timeleft == 30)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.WillShutdown", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 10f);
         }
         else if (Timeleft == 60)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.WillShutdown", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 10f);
         }
         else if (Timeleft == ShutdownTime)
         {
             Broadcast.NoticeAll("☢", Config.GetMessage("Server.Shutdown", null, null).Replace("%SECONDS%", Timeleft.ToString()), null, 10f);
         }
     }
     if (Timeleft > 0)
     {
         Timeleft--;
     }
     else
     {
         try
         {
             if (sender != null)
             {
                 sender.Stop();
             }
             AvatarSaveProc.SaveAll();
             ServerSaveManager.AutoSave();
             Process.GetCurrentProcess().Kill();
         }
         catch (Exception ex)
         {
             Helper.LogError(ex.ToString(), true);
         }
     }
 }
        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 bool DisablePvP(NetUser netUser, string Command, double time)
        {
            Class39 class2 = new Class39 {
                netUser_0 = netUser,
                string_0  = Command
            };

            if (class2.netUser_0 == null)
            {
                return(false);
            }
            EventTimer timer = new EventTimer {
                Interval  = time,
                AutoReset = false
            };

            timer.Elapsed += new ElapsedEventHandler(class2.method_0);
            timer.Sender   = class2.netUser_0;
            timer.Command  = class2.string_0;
            timer.Start();
            return(true);
        }
        public static EventTimer TimeEvent_ClanWarp(NetUser netUser, string Command, double time, ClanData clan)
        {
            Class37 class2 = new Class37 {
                netUser_0  = netUser,
                string_0   = Command,
                clanData_0 = clan
            };

            if (time <= 0.0)
            {
                Teleport_ClanWarp(null, class2.netUser_0, class2.string_0, class2.clanData_0);
                return(null);
            }
            EventTimer timer = new EventTimer {
                Interval  = time * 1000.0,
                AutoReset = false
            };

            timer.Elapsed += new ElapsedEventHandler(class2.method_0);
            timer.Sender   = class2.netUser_0;
            timer.Command  = class2.string_0;
            timer.Start();
            return(timer);
        }
        public static EventTimer TimeEvent_HomeWarp(NetUser Sender, string Command, double time, Vector3 pos)
        {
            Class36 class2 = new Class36 {
                netUser_0 = Sender,
                string_0  = Command,
                vector3_0 = pos
            };

            if (time <= 0.0)
            {
                Teleport_HomeWarp(null, class2.netUser_0, class2.string_0, class2.vector3_0);
                return(null);
            }
            EventTimer timer = new EventTimer {
                Interval  = time * 1000.0,
                AutoReset = false
            };

            timer.Elapsed += new ElapsedEventHandler(class2.method_0);
            timer.Sender   = class2.netUser_0;
            timer.Command  = class2.string_0;
            timer.Start();
            return(timer);
        }
Beispiel #15
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }
Beispiel #16
0
 public bool method_0(EventTimer eventTimer_0)
 {
     return(eventTimer_0.Sender == this.netUser_0 && eventTimer_0.Command == this.string_0);
 }
Beispiel #17
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);
        }
Beispiel #18
0
        public static EventTimer TimeEvent_TeleportTo(NetUser Sender, NetUser Target, string Command, double time)
        {
            Events.Class38 @class = new Events.Class38();
            @class.netUser_0 = Sender;
            @class.netUser_1 = Target;
            @class.string_0  = Command;
            EventTimer result;

            if (Core.CommandTeleportOutdoorsOnly)
            {
                Vector3    position = @class.netUser_1.playerClient.controllable.character.transform.position;
                Collider[] array    = Physics.OverlapSphere(position, 1f, 271975425);
                for (int i = 0; i < array.Length; i++)
                {
                    Collider component = array[i];
                    IDMain   main      = IDBase.GetMain(component);
                    if (!(main == null))
                    {
                        StructureMaster component2 = main.GetComponent <StructureMaster>();
                        if (!(component2 == null) && component2.ownerID != @class.netUser_0.userID && component2.ownerID != @class.netUser_1.userID)
                        {
                            UserData bySteamID = Users.GetBySteamID(component2.ownerID);
                            if (bySteamID == null || (!bySteamID.HasShared(@class.netUser_0.userID) && !bySteamID.HasShared(@class.netUser_1.userID)))
                            {
                                Broadcast.Notice(@class.netUser_0, "☢", Config.GetMessage("Command.Teleport.NoTeleport", @class.netUser_0, @class.netUser_1.displayName), 5f);
                                Broadcast.Notice(@class.netUser_1, "☢", Config.GetMessage("Command.Teleport.NotHere", @class.netUser_1, @class.netUser_0.displayName), 5f);
                                result = null;
                                return(result);
                            }
                        }
                    }
                }
            }
            Broadcast.Message(@class.netUser_0, Config.GetMessage("Command.Teleport.IsConfirm", @class.netUser_0, null).Replace("%USERNAME%", @class.netUser_1.displayName), null, 0f);
            Broadcast.Message(@class.netUser_1, Config.GetMessage("Command.Teleport.Confirmed", @class.netUser_1, null).Replace("%USERNAME%", @class.netUser_0.displayName), null, 0f);
            if (!Character.FindByUser(@class.netUser_1.userID, out @class.character_0))
            {
                result = null;
            }
            else if (time <= 0.0)
            {
                Events.Teleport_PlayerTo(null, @class.netUser_0, @class.netUser_1, @class.string_0, @class.character_0.transform.position);
                result = null;
            }
            else
            {
                EventTimer eventTimer = new EventTimer
                {
                    Interval  = time * 1000.0,
                    AutoReset = false
                };
                eventTimer.Elapsed += new ElapsedEventHandler(@class.method_0);
                eventTimer.Sender   = @class.netUser_0;
                eventTimer.Target   = @class.netUser_1;
                eventTimer.Command  = @class.string_0;
                Broadcast.Notice(@class.netUser_0, "☢", Config.GetMessage("Command.Teleport.Timewait", @class.netUser_0, null).Replace("%TIME%", eventTimer.TimeLeft.ToString()), 5f);
                Broadcast.Notice(@class.netUser_1, "☢", Config.GetMessage("Command.Teleport.Timewait", @class.netUser_1, null).Replace("%TIME%", eventTimer.TimeLeft.ToString()), 5f);
                eventTimer.Start();
                result = eventTimer;
            }
            return(result);
        }
Beispiel #19
0
 public bool method_1(EventTimer eventTimer_0)
 {
     return((eventTimer_0.Sender == this.truthDetector_0.netUser) && (eventTimer_0.Command == "clan"));
 }
        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);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }