Exemplo n.º 1
0
 public void OnLeft(LeftEventArgs ev)
 {
     if (TrackingAndMethods.QueuedHints.ContainsKey(ev.Player.Id))
     {
         TrackingAndMethods.QueuedHints.Remove(ev.Player.Id);
     }
 }
Exemplo n.º 2
0
 private void OnLeave(LeftEventArgs ev)
 {
     if (ev.Player == player)
     {
         Destroy(this);
     }
 }
Exemplo n.º 3
0
        public void OnPlayerLeave(LeftEventArgs ev)
        {
            if (!isRoundStarted || ev.Player.Role == RoleType.Spectator || ev.Player.Role == RoleType.Tutorial || ev.Player.Position.y < -1997 || (ev.Player.CurrentRoom.Zone == ZoneType.LightContainment && Map.IsLczDecontaminated))
            {
                return;
            }

            if (isContain106 && ev.Player.Role == RoleType.Scp106)
            {
                return;
            }

            Player player = Player.List.FirstOrDefault(x => x.Role == RoleType.Spectator && x.UserId != string.Empty && x.UserId != ev.Player.UserId && !x.IsOverwatchEnabled);

            if (player != null)
            {
                RoleType        role      = ev.Player.Role;
                float           xPos      = ev.Player.Position.x;
                float           yPos      = ev.Player.Position.y;
                float           zPos      = ev.Player.Position.z;
                float           xRot      = ev.Player.Rotation.x;
                float           yRot      = ev.Player.Rotation.y;
                float           zRot      = ev.Player.Rotation.z;
                List <ItemType> inventory = ev.Player.Items.Select(i => (ItemType)i.Base.ItemTypeId).ToList();
                float           health    = ev.Player.Health;
                int             maxhealth = ev.Player.MaxHealth;
                Dictionary <global::ItemType, ushort> ammolist = new Dictionary <global::ItemType, ushort>();;
                foreach (var ammo in ev.Player.Ammo)
                {
                    ammolist[ammo.Key] = ammo.Value;
                }
                ev.Player.ClearInventory();
                player.SetRole(role, SpawnReason.Respawn, false);
                Timing.CallDelayed(0.2f, () =>
                {
                    player.Position = new Vector3(xPos, yPos, zPos);
                    player.Rotation = new Vector3(xRot, yRot, zRot);

                    player.ClearInventory();
                    player.ResetInventory(inventory);
                    foreach (var ammo in ammolist)
                    {
                        player.Ammo[ammo.Key] = ammo.Value;
                    }
                    player.Broadcast(5, "<i>Вы заменили отключённого игрока</i>");
                });
                Timing.CallDelayed(1.8f, () =>
                {
                    player.MaxHealth = maxhealth;
                    player.Health    = health;
                });
                Timing.CallDelayed(0.3f, () =>
                {
                    foreach (global::Ragdoll rd in Object.FindObjectsOfType <global::Ragdoll>().Where(r => r.owner.DeathCause.Tool == DamageTypes.Wall))
                    {
                        NetworkServer.Destroy(rd.gameObject);
                    }
                });
            }
        }
Exemplo n.º 4
0
        private static void Prefix(ReferenceHub __instance)
        {
            try
            {
                API.Features.Player player = API.Features.Player.Get(__instance.gameObject);

                if (player == null || player.IsHost)
                {
                    return;
                }

                var ev = new LeftEventArgs(player);

                API.Features.Log.Debug($"Player {ev.Player.Nickname} ({ev.Player.UserId}) disconnected");

                Player.OnLeft(ev);

                API.Features.Player.IdsCache.Remove(player.Id);
                API.Features.Player.UserIdsCache.Remove(player.UserId);
                API.Features.Player.Dictionary.Remove(player.GameObject);
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.Left: {e}\n{e.StackTrace}");
            }
        }
Exemplo n.º 5
0
 public void OnPlayerLeave(LeftEventArgs ev)
 {
     if (NpcManager.singleton.selectedNpcs.ContainsKey(ev.Player.UserId))
     {
         NpcManager.singleton.selectedNpcs.Remove(ev.Player.UserId);
     }
 }
Exemplo n.º 6
0
 public void OnPlayerLeave(LeftEventArgs ev)
 {
     if (ev.Player.Role == RoleType.Scp0492 && ev.Player.ReferenceHub.TryGetComponent(out SCP008 s008))
     {
         ClearSCP008(ev.Player);
     }
 }
        public void PersonLeave(LeftEventArgs ev)
        {
            int    idx    = 0;
            Player player = null;

            foreach (var plr in Player.List)
            {
                if (plr != null && plr.Role == RoleType.ClassD && plr.ReferenceHub != ev.Player.ReferenceHub)
                {
                    player = plr;
                    idx++;
                }
            }
            if (idx <= 1)
            {
                if (player != null)
                {
                    RoundSummary.RoundLock = false;
                    Map.Broadcast(10, "<color=red>" + player.Nickname + " wins!</color>", Broadcast.BroadcastFlags.Monospaced);
                    foreach (var plr in PlayerManager.players)
                    {
                        if (plr != null && plr.GetComponent <CharacterClassManager>().CurClass != RoleType.ClassD)
                        {
                            plr.GetComponent <CharacterClassManager>().SetClassID(RoleType.Spectator);
                        }
                    }
                }
            }
            else if (ev.Player.Role == RoleType.ClassD)
            {
                Map.Broadcast(3, "<color=orange>" + ev.Player.Nickname + " died!\n" + (idx + 0) + " people left!</color>", Broadcast.BroadcastFlags.Monospaced);
            }
        }
Exemplo n.º 8
0
 // no work
 public void OnPlayerLeave(LeftEventArgs ev)
 {
     if (ev.Player.Team == Team.SCP)
     {
         Timing.RunCoroutine(Check079(3f));
     }
 }
Exemplo n.º 9
0
        private static void Prefix(NetworkConnection conn)
        {
            try
            {
                // The game checks for null NetworkIdentity, do the same
                Player player = Player.Get(conn.identity?.gameObject);

                if (player == null || player.IsHost)
                {
                    return;
                }

                var ev = new LeftEventArgs(player);

                Log.SendRaw($"Player {ev.Player.Nickname} ({ev.Player.UserId}) ({player?.Id}) disconnected", ConsoleColor.Green);

                Handlers.Player.OnLeft(ev);

                Player.IdsCache.Remove(player.Id);
                Player.UserIdsCache.Remove(player.UserId);
                Player.Dictionary.Remove(player.GameObject);
            }
            catch (Exception exception)
            {
                Log.Error($"Exiled.Events.Patches.Events.Player.Left: {exception}\n{exception.StackTrace}");
            }
        }
Exemplo n.º 10
0
 public void onLeave(LeftEventArgs ev)
 {
     if (EventHandlers.manager.Contains(ev.Player))
     {
         this.killmanager(ev.Player);
     }
 }
Exemplo n.º 11
0
        private static void Prefix(ReferenceHub __instance)
        {
            API.Features.Player player = API.Features.Player.Get(__instance.gameObject);

            if (player.IsHost || string.IsNullOrEmpty(player.UserId))
            {
                return;
            }

            var ev = new LeftEventArgs(player);

            API.Features.Log.Debug($"Player {ev.Player?.Nickname} ({ev.Player?.UserId}) disconnected");

            Player.OnLeft(ev);

            if (API.Features.Player.IdsCache.ContainsKey(__instance.queryProcessor.PlayerId))
            {
                API.Features.Player.IdsCache.Remove(__instance.queryProcessor.PlayerId);
            }

            if (API.Features.Player.UserIdsCache.ContainsKey(__instance.characterClassManager.UserId))
            {
                API.Features.Player.UserIdsCache.Remove(__instance.characterClassManager.UserId);
            }

            if (API.Features.Player.Dictionary.ContainsKey(__instance.gameObject))
            {
                API.Features.Player.Dictionary.Remove(__instance.gameObject);
            }
        }
Exemplo n.º 12
0
 public void OnLeft(LeftEventArgs ev)
 {
     if (Plugin.Instance.Config.leftuse == true)
     {
         Map.Broadcast(5, Plugin.Instance.Config.Leftmessage.Replace("{player.Nickname}", ev.Player.Nickname).Replace("{player}", ev.Player.UserId));
     }
 }
Exemplo n.º 13
0
 public void onLeave(LeftEventArgs ev)
 {
     if (EventHandlers.scp343.Contains(ev.Player))
     {
         this.kill343(ev.Player);
     }
 }
Exemplo n.º 14
0
 internal void OnDisconnect(LeftEventArgs ev)
 {
     if (subclassPlayers.Contains(ev.Player))
     {
         KillSubclassPlayer(ev.Player);
     }
 }
Exemplo n.º 15
0
 public void OnDisconnect(LeftEventArgs ev)
 {
     if (shPlayers.Contains(ev.Player.Id))
     {
         shPlayers.Remove(ev.Player.Id);
     }
 }
Exemplo n.º 16
0
        private static void Prefix(ReferenceHub __instance)
        {
            try
            {
                Player player = Player.Get(__instance.gameObject);

                if (player == null || player.IsHost)
                {
                    return;
                }

                var ev = new LeftEventArgs(player);

                Log.SendRaw($"Player {ev.Player.Nickname} ({ev.Player.UserId}) ({player?.Id}) disconnected", ConsoleColor.Green);

                Handlers.Player.OnLeft(ev);

                Player.IdsCache.Remove(player.Id);
                Player.UserIdsCache.Remove(player.UserId);
                Player.Dictionary.Remove(player.GameObject);
            }
            catch (Exception exception)
            {
                Log.Error($"Exiled.Events.Patches.Events.Player.Left: {exception}\n{exception.StackTrace}");
            }
        }
Exemplo n.º 17
0
        public void OnLeft(LeftEventArgs ev)
        {
            if (AdvSrvTools.Instance.Config.VerboseMode)
            {
                Log.Info("left event trigerred");
            }
            if (AdvSrvTools.Instance.Config.RestartRoundOnEmpty)
            {
                if (AdvSrvTools.Instance.Config.VerboseMode)
                {
                    Log.Info("entered RR on empty if, players:" + (Exiled.API.Features.Player.List.Count() - 1));
                }
                if (Round.IsStarted && (Exiled.API.Features.Player.List.Count() <= 1))
                {
                    Log.Info("No players online and round started, restarting it");
                    Round.Restart(true, false);
                }
            }
            int duration = AdvSrvTools.Instance.Config.LeftMessageDuration;

            if (duration < 0)
            {
                string message = AdvSrvTools.Instance.Config.LeftMessage.Replace(oldValue: "{player}", newValue: ev.Player.Nickname);
                Exiled.API.Features.Map.Broadcast((ushort)duration, message);
            }
        }
Exemplo n.º 18
0
 public void OnLeave(LeftEventArgs ev)
 {
     if (ev.Player != null)
     {
         teamedPlayers.Remove(ev.Player);
         Methods.CheckRoundEnd();
     }
 }
Exemplo n.º 19
0
 public void OnPlayerLeave(LeftEventArgs ev)
 {
     if (!(ev.Player.Id == playerReferenceHub.playerId))
     {
         return;
     }
     Destroy();
 }
Exemplo n.º 20
0
        public static void OnLeft(LeftEventArgs ev)
        {
            string message =
                YouTubeTutorialPlugin.Instance.Config.LeftMessage.Replace("{player}", ev.Player.Nickname);

            Map.Broadcast(6, message);

            Timing.CallDelayed(YouTubeTutorialPlugin.Instance.Config.PlayerCacheTime, () => RemovePlayer(ev.Player));
        }
Exemplo n.º 21
0
 public void OnLeft(LeftEventArgs ev)
 {
     if (ev.Player.RemoteAdminAccess)
     {
         int      port = (int)LiteNetLib4MirrorTransport.Singleton.port;
         DateTime now  = DateTime.Now;
         File.AppendAllText(string.Format("/home/owo/admin/{0}{1}.txt", ev.Player.UserId, port), string.Format(" Отключение в: {0}", now));
     }
 }
Exemplo n.º 22
0
 public void OnDisconnect(LeftEventArgs ev)
 {
     if (shPlayers.Contains(ev.Player.Id))
     {
         shPlayers.Remove(ev.Player.Id);
         ev.Player.CustomInfo = string.Empty;
         ev.Player.ReferenceHub.nicknameSync.ShownPlayerInfo |= PlayerInfoArea.Nickname;
         ev.Player.ReferenceHub.nicknameSync.ShownPlayerInfo |= PlayerInfoArea.Role;
     }
 }
Exemplo n.º 23
0
 public void OnPlayerLeave(LeftEventArgs ev)
 {
     if (ev.Player.UserId != null)
     {
         tcp.SendData(new DataObjects.Events.Player
         {
             eventName = "PlayerLeave",
             player    = PlyToUser(ev.Player)
         });
     }
 }
Exemplo n.º 24
0
 // Token: 0x06000006 RID: 6 RVA: 0x000023D0 File Offset: 0x000005D0
 private static void HandlePlayerLeave(LeftEventArgs ev)
 {
     if (State.AfkTime.ContainsKey(ev.Player.ReferenceHub))
     {
         State.AfkTime.Remove(ev.Player.ReferenceHub);
     }
     if (State.PrevPos.ContainsKey(ev.Player.ReferenceHub))
     {
         State.PrevPos.Remove(ev.Player.ReferenceHub);
     }
 }
Exemplo n.º 25
0
        public void OnLeft(LeftEventArgs ev)
        {
            string LeftMessage     = DupecToolbox.Instance.Config.LeftBroadcastMessage.Replace("{player}", ev.Player.Nickname);
            bool   enabled         = DupecToolbox.Instance.Config.LeftBroadcastEnabled;
            float  durationmessage = DupecToolbox.Instance.Config.LeftBroadcastDuration;

            if (enabled == true)
            {
                Exiled.API.Features.Map.Broadcast(duration: 6, message: $"" + LeftMessage);
            }
            Exiled.API.Features.Log.Info(message: LeftMessage);
        }
Exemplo n.º 26
0
        public void OnPlayerDisconnect(LeftEventArgs ev)
        {
            // Remove unused ID's from the lists because it would just stack up if we didn't.
            string userid = ev.Player.UserId;

            if (SnapDetection.hubNotSpawnedList.Contains(userid))
            {
                SnapDetection.hubNotSpawnedList.Remove(userid);
            }

            _ = DisconnectChecks(ev);
        }
Exemplo n.º 27
0
 public void OnLeft(LeftEventArgs ev)
 {
     if (beenShot == null || bleeding == null)
     {
         return;
     }
     if (beenShot.ContainsKey(ev.Player.Id))
     {
         beenShot.Remove(ev.Player.Id);
     }
     if (bleeding.ContainsKey(ev.Player.Id))
     {
         bleeding.Remove(ev.Player.Id);
     }
 }
Exemplo n.º 28
0
 public void RunOnPlayerLeave(LeftEventArgs ev)
 {
     if (PlayersWithRegen.Contains(ev.Player))
     {
         PlayersWithRegen.Remove(ev.Player);
     }
     if (PlayersWithInfiniteAmmo.Contains(ev.Player))
     {
         PlayersWithInfiniteAmmo.Remove(ev.Player);
     }
     if (PlayersThatCanPryGates.Contains(ev.Player))
     {
         PlayersThatCanPryGates.Remove(ev.Player);
     }
 }
Exemplo n.º 29
0
        public async void OnLeave(LeftEventArgs ev)
        {
            if (_recentlyRemoved.Contains(ev.Player.Id))
            {
                _recentlyRemoved.Remove(ev.Player.Id);
                return;
            }

            var playerCount = Exiled.API.Features.Player.List.Count();
            var playerText  = playerCount > 1 ? "players" : "player";
            await _publicWebhook.ExecuteWebhook(
                $"{ev.Player.Nickname} has left the server. ({playerCount - 1} {playerText} active)",
                "SCP-Bot",
                false);
        }
Exemplo n.º 30
0
 public void OnLeft(LeftEventArgs ev)
 {
     if (Plugin.Instance.Config.CanRepeat)
     {
         return;
     }
     if (usedNames.Contains(ev.Player.DisplayNickname))
     {
         usedNames.Remove(ev.Player.DisplayNickname);
         if (!usedNames.Contains(ev.Player.DisplayNickname)) // In case the names were used more than once
         {
             names.Add(ev.Player.DisplayNickname);
         }
     }
 }