internal void OnPlayerSpawn(SpawningEventArgs ev) { if (ev.Player.Team == Team.SCP || (pluginInstance.Config.AreTutorialsSCP && ev.Player.Team == Team.TUT)) { ev.Player.GetDatabasePlayer().TotalScpGamesPlayed++; } }
public void OnSpawning(SpawningEventArgs ev) { if (ev.Player.Role == RoleType.Scp173) { ev.Player.Broadcast(7, "You can vent by typing `.vent` in the `~` console!\nYou will have 5 seconds until you will be vent locked"); } }
public void OnSpawningPlayers(SpawningEventArgs ev) { if (Player.List.Count() < 3) { if (ev.Player.Team == Team.SCP && scp372.Count < Plugin.Singleton.Config.Max_SCP372_Count && !scp372.Contains(ev.Player.UserId)) { if (rnd.Next(0, 101) <= Plugin.Singleton.Config.SpawnChance) { Add372(ev.Player); } } } else { if (ev.RoleType == RoleType.ClassD && scp372.Count < Plugin.Singleton.Config.Max_SCP372_Count && !scp372.Contains(ev.Player.UserId)) { if (rnd.Next(0, 101) <= Plugin.Singleton.Config.SpawnChance) { Add372(ev.Player); } } } if (scp372.Contains(ev.Player.UserId)) { Remove372(ev.Player); } }
private static void OnSpawning(SpawningEventArgs ev) { if (!(Scp457.Get(ev.Player) is Scp457 scp457)) { return; } if (ev.RoleType != RoleType.Scp0492) { scp457.Destroy(); return; } Door door = Map.GetDoorByName(Plugin.Instance.Config.Scp457Settings.SpawnDoor); if (door == null) { Log.Error("Could not find the spawn door for Scp457!"); return; } if (PlayerMovementSync.FindSafePosition(door.Base.transform.position, out Vector3 pos, true)) { ev.Position = pos; } }
public void OnSpawn(SpawningEventArgs ev) { if (shPlayers.Contains(ev.Player.Id)) { ev.Position = shSpawnPos; } }
internal void PlayerSpawn(SpawningEventArgs ev) { if (ev.Player.Role == RoleType.Scp079) { ev.Player.ShowHint(PluginMain.Instance.Config.Scp079StartMsg, PluginMain.Instance.Config.Scp079StartMsgDur); } }
public void OnSpawn(SpawningEventArgs ev) { if (Blackout.active && ev.Player.Role == RoleType.Scientist) { ev.Position = SpawnpointManager.GetRandomPosition(RoleType.Scp049).transform.position; } }
/// <inheritdoc cref="Exiled.Events.Handlers.Player.OnSpawning(SpawningEventArgs)"/> internal static void OnSpawning(SpawningEventArgs ev) { if (ev.Player.Role == RoleType.Scp079) { ev.Player.ShowHint(Plugin.Instance.Config.MainTranslations.SpawnMsg, 10f); } }
public void OnSpawning(SpawningEventArgs ev) { if (Tracking.PlayersInvisibleByCommand.Contains(ev.Player)) { Tracking.PlayersInvisibleByCommand.Remove(ev.Player); } Timing.CallDelayed(Subclass.Instance.CommonUtilsEnabled ? 2f : 0.1f, () => { Tracking.QueuedCassieMessages.Clear(); if (Tracking.NextSpawnWave.Contains(ev.Player) && Tracking.NextSpawnWaveGetsRole.ContainsKey(ev.Player.Role)) { Tracking.RemoveAndAddRoles(ev.Player, true); Tracking.AddClass(ev.Player, Tracking.NextSpawnWaveGetsRole[ev.Player.Role]); } else { if (!Tracking.PlayersWithSubclasses.ContainsKey(ev.Player)) { Tracking.RemoveAndAddRoles(ev.Player, false, Subclass.Instance.Scp035Enabled && scp035.API.Scp035Data.GetScp035()?.Id == ev.Player.Id); } } foreach (string message in Tracking.QueuedCassieMessages) { Cassie.Message(message, true, false); Log.Debug($"Sending message via cassie: {message}", Subclass.Instance.Config.Debug); } Tracking.CheckRoundEnd(); }); }
/// <inheritdoc cref="Exiled.Events.Handlers.Player.OnSpawning(SpawningEventArgs)"/> public void OnSpawning(SpawningEventArgs ev) { if (ev.RoleType == RoleType.Scientist) { ev.Position = new Vector3(53f, 1020f, -44f); Timing.CallDelayed(1f, () => ev.Player.CurrentItem = Item.Create(ItemType.GunCrossvec)); Timing.CallDelayed(1f, () => ev.Player.AddItem(ItemType.GunLogicer)); } }
internal void PlayerSpawn(SpawningEventArgs ev) { if (ev.Player.Role == RoleType.Scp079) { ev.Player.ReferenceHub.hints.Show(new TextHint(Better079Plugin.instance.Config.b079_spawn_msg, new HintParameter[] { new StringHintParameter("") }, new HintEffect[] { HintEffectPresets.TrailingPulseAlpha(0.5f, 1f, 0.5f, 2f, 0f, 3) }, 10f)); } }
public void OnPlayerSpawn(SpawningEventArgs e) { if (No_096_Frustration.Singleton.Config.ChangingRoleTriggersPlugin) { if (e.RoleType == RoleType.Scp096) { Scp096Players.Add(e.Player); Timing.CallDelayed(0.1f, () => { CheckStuff(true); }); } } }
private IEnumerator <float> OnPlayerSpawnRoutine(SpawningEventArgs ev) { yield return(Timing.WaitForSeconds(0.3f)); if (ev.RoleType != RoleType.Scp173) { ev.Player.SetRole(RoleType.ClassD); yield return(Timing.WaitForSeconds(0.3f)); ev.Player.Position = Common.GetRoomByName(Constant.SEVEN_NINE_CHAMBER).Position + new Vector3(0, 2); } }
public void onSpawn(SpawningEventArgs ev) { if (flag) { flag = false; return; } if (GulagRef.isInQueue(ev.Player)) { GulagRef.remove(ev.Player); } }
internal void OnPlayerSpawn(SpawningEventArgs ev) { Player databasePlayer = ev.Player.GetDatabasePlayer(); if (ev.Player.Team == Team.SCP || (pluginInstance.Config.AreTutorialsSCP && ev.Player.Team == Team.TUT)) { if (databasePlayer.RoundBanLeft >= 1 && ev.Player.Role != RoleType.Scp0492) { Timing.CallDelayed(1.5f, () => pluginInstance.Functions.ReplacePlayer(ev.Player)); } else { ev.Player.GetDatabasePlayer().TotalScpGamesPlayed++; } } }
internal void Spawning(SpawningEventArgs ev) { if (Plugin.Instance.Config.Spawning == "") { return; } string message = Plugin.Instance.Config.Spawning.Replace("%player%", ev.Player.ToString()); message = message.Replace("%role%", ev.Player.Role.ToString()); if (Plugin.Instance.Config.debug_to_console) { Log.Debug(message: "[ " + Plugin.Instance.Config.player_name + "] " + message); } Plugin.sendWebHook(Plugin.Instance.Config.player_url, message, Plugin.Instance.Config.player_name); }
public void OnSpawning(SpawningEventArgs ev) { Timing.CallDelayed(Subclass.Instance.CommonUtilsEnabled ? 2f : 0.1f, () => { if (!Subclass.Instance.RealisticSizesEnabled) { ev.Player.Scale = new Vector3(1, 1, 1); } try { TrackingAndMethods.RemoveZombie(ev.Player); TrackingAndMethods.QueuedCassieMessages.Clear(); if (TrackingAndMethods.NextSpawnWave.Contains(ev.Player) && TrackingAndMethods.NextSpawnWaveGetsRole.ContainsKey(ev.Player.Role)) { TrackingAndMethods.AddClass(ev.Player, TrackingAndMethods.NextSpawnWaveGetsRole[ev.Player.Role]); } else { if (!TrackingAndMethods.PlayersWithSubclasses.ContainsKey(ev.Player)) { if (Subclass.Instance.Scp035Enabled) { EPlayer scp035 = (EPlayer)Loader.Plugins.First(pl => pl.Name == "scp035").Assembly.GetType("scp035.API.Scp035Data").GetMethod("GetScp035", BindingFlags.Public | BindingFlags.Static).Invoke(null, null); TrackingAndMethods.RemoveAndAddRoles(ev.Player, false, scp035?.Id == ev.Player.Id); } else { TrackingAndMethods.RemoveAndAddRoles(ev.Player, false, false); } } } foreach (string message in TrackingAndMethods.QueuedCassieMessages) { Cassie.Message(message, true, false); Log.Debug($"Sending message via cassie: {message}", Subclass.Instance.Config.Debug); } Timing.RunCoroutine(TrackingAndMethods.CheckRoundEnd()); } catch (Exception e) { Log.Error(e); } }); }
public void OnSpawning(SpawningEventArgs ev) { PlayerInfo pinfo = PlayerInfoDict[ev.Player.UserId]; pinfo.lastSide = ev.Player.Side; }
internal void PlayerSpawn(SpawningEventArgs ev) { //Log.Debug("roundStarted " + roundStarted); if (plugin.curMod.HasFlag(ModType.NONE) && plugin.enabledTypes.Contains(ModType.NONE)) { return; // cuz none means none } if (plugin.curMod.HasFlag(ModType.SINGLESCPTYPE) && plugin.enabledTypes.Contains(ModType.SINGLESCPTYPE) && !(plugin.curMod.HasFlag(ModType.SCPBOSS) && plugin.enabledTypes.Contains(ModType.SCPBOSS))) { // do not comment kek, remember last time? if (!roundStarted) { if (ev.RoleType == RoleType.Scp049 || ev.RoleType == RoleType.Scp0492 || ev.RoleType == RoleType.Scp079 || ev.RoleType == RoleType.Scp096 || ev.RoleType == RoleType.Scp106 || ev.RoleType == RoleType.Scp173 || ev.RoleType == RoleType.Scp93953 || ev.RoleType == RoleType.Scp93989) { ev.RoleType = rngRole; Timing.RunCoroutine(ChangeClassLate(ev.Player, rngRole, -1)); } } } if (plugin.curMod.HasFlag(ModType.PLAYERSIZE) && plugin.enabledTypes.Contains(ModType.PLAYERSIZE)) { if (!roundStarted || respawning) { Timing.RunCoroutine(ChangeSizeLate(ev.Player)); } } if (plugin.curMod.HasFlag(ModType.SCPBOSS) && plugin.enabledTypes.Contains(ModType.SCPBOSS)) { // do not comment kek, remember last time? if (!roundStarted /*|| respawning*/) { if (ev.Player.gameObject.Equals(boss)) { } else { if (ev.RoleType == RoleType.Scp049 || ev.RoleType == RoleType.Scp0492 || ev.RoleType == RoleType.Scp079 || ev.RoleType == RoleType.Scp096 || ev.RoleType == RoleType.Scp106 || ev.RoleType == RoleType.Scp173 || ev.RoleType == RoleType.Scp93953 || ev.RoleType == RoleType.Scp93989) { if (boss == null) { boss = ev.Player.gameObject; ev.Role = rngRoleBoss; Timing.RunCoroutine(ChangeClassLate(ev.Player, rngRoleBoss, plugin.bossHpMulti, true)); //Timing.RunCoroutine(ChangeSizeLate(ev.Player)); } else { ev.Role = RoleType.ClassD; Timing.RunCoroutine(ChangeClassLate(ev.Player, RoleType.ClassD, -1)); } } } } } if (plugin.curMod.HasFlag(ModType.UPSIDEDOWN) && plugin.enabledTypes.Contains(ModType.UPSIDEDOWN)) { if (ev.Role == RoleType.Scp106) { Timing.RunCoroutine(ChangeSizeLate(ev.Player, -1f, -1f, -1f, client: false)); } else { Timing.RunCoroutine(ChangeSizeLate(ev.Player, 1f, -1f, 1f, client: false)); } } /*if (plugin.curMod.HasFlag(ModType.NOWEAPONS) && plugin.enabledTypes.Contains(ModType.NOWEAPONS)) * { * if (!roundStarted) * { * if (ev.Role == RoleType.ChaosInsurgency || ev.Role == RoleType.NtfCadet || ev.Role == RoleType.NtfCommander || ev.Role == RoleType.NtfLieutenant || ev.Role == RoleType.NtfScientist || ev.Role == RoleType.FacilityGuard) * { * ev.Role = RoleType.ClassD; * Timing.RunCoroutine(ChangeClassLate(ev.Player, RoleType.ClassD, -1)); * } * } * }*/ if (plugin.curMod.HasFlag(ModType.FINDWEAPONS) && plugin.enabledTypes.Contains(ModType.FINDWEAPONS)) { //delete weapons Timing.RunCoroutine(DeletePlayerWeaponsLate(ev.Player)); } if (plugin.curMod.HasFlag(ModType.ITEMRANDOMIZER) && plugin.enabledTypes.Contains(ModType.ITEMRANDOMIZER)) { //Timing.RunCoroutine(RandomItems(ev.Player)); } }
/// <summary> /// Invoked before spawning a player. /// </summary> /// <param name="ev">The <see cref="SpawningEventArgs"/> instance.</param> public static void OnSpawning(SpawningEventArgs ev) => Spawning.InvokeSafely(ev);
private void OnPlayerSpawn(SpawningEventArgs ev) { Timing.RunCoroutine(OnPlayerSpawnRoutine(ev)); }
private static bool Prefix(CharacterClassManager __instance, bool lite = false, bool escape = false) { Role role = __instance.Classes.SafeGet(__instance.CurClass); if (!__instance._wasAnytimeAlive && __instance.CurClass != RoleType.Spectator && __instance.CurClass != RoleType.None) { __instance._wasAnytimeAlive = true; } __instance.InitSCPs(); __instance.AliveTime = 0f; switch (role.team) { case Team.MTF: AchievementManager.Achieve("arescue"); break; case Team.CHI: AchievementManager.Achieve("chaos"); break; case Team.RSC: case Team.CDP: __instance.EscapeStartTime = (int)Time.realtimeSinceStartup; break; } __instance.GetComponent <Inventory>(); try { __instance.GetComponent <FootstepSync>().SetLoudness(role.team, role.roleId.Is939()); } catch { } if (NetworkServer.active) { Handcuffs component = __instance.GetComponent <Handcuffs>(); component.ClearTarget(); component.NetworkCufferId = -1; } if (role.team != Team.RIP) { if (NetworkServer.active && !lite) { Vector3 constantRespawnPoint = NonFacilityCompatibility.currentSceneSettings.constantRespawnPoint; if (constantRespawnPoint != Vector3.zero) { __instance._pms.OnPlayerClassChange(constantRespawnPoint, 0f); } else { GameObject randomPosition = CharacterClassManager._spawnpointManager.GetRandomPosition(__instance.CurClass); Vector3 spawnPoint; float rotY; if (randomPosition != null) { spawnPoint = randomPosition.transform.position; rotY = randomPosition.transform.rotation.eulerAngles.y; AmmoBox component1 = __instance.GetComponent <AmmoBox>(); if (escape && __instance.KeepItemsAfterEscaping) { Inventory component2 = PlayerManager.localPlayer.GetComponent <Inventory>(); for (ushort index = 0; index < 3; ++index) { if (component1[index] >= 15U) { component2.SetPickup(component1.types[index].inventoryID, component1[index], randomPosition.transform.position, randomPosition.transform.rotation, 0, 0, 0); } } } component1.ResetAmmo(); } else { spawnPoint = __instance.DeathPosition; rotY = 0f; } var ev = new SpawningEventArgs(API.Features.Player.Get(__instance.gameObject), __instance.CurClass, spawnPoint, rotY); Player.OnSpawning(ev); __instance._pms.OnPlayerClassChange(ev.Position, ev.RotationY); } if (!__instance.SpawnProtected && __instance.EnableSP && __instance.SProtectedTeam.Contains((int)role.team)) { __instance.GodMode = true; __instance.SpawnProtected = true; __instance.ProtectedTime = Time.time; } } if (!__instance.isLocalPlayer) { __instance.GetComponent <PlayerStats>().maxHP = role.maxHP; } } __instance.Scp0492.iAm049_2 = __instance.CurClass == RoleType.Scp0492; __instance.Scp106.iAm106 = __instance.CurClass == RoleType.Scp106; __instance.Scp173.iAm173 = __instance.CurClass == RoleType.Scp173; __instance.Scp939.iAm939 = __instance.CurClass.Is939(); __instance.RefreshPlyModel(); return(false); }
public void OnSpawning(SpawningEventArgs ev) { if (ev.RoleType.GetTeam() == Team.SCP) { bool wasSCP = scps.ContainsKey(ev.Player.Id); if (!wasSCP) { scps.Add(ev.Player.Id, ev.Player.DisplayNickname); } string name = ""; switch (ev.RoleType) { case RoleType.Scp173: name = Plugin.Instance.Config.Scp173Name; break; case RoleType.Scp106: name = Plugin.Instance.Config.Scp106Name; break; case RoleType.Scp049: name = Plugin.Instance.Config.Scp049Name; break; case RoleType.Scp0492: name = Plugin.Instance.Config.Scp0492Name.Replace("{name}", GetRandomName()); break; case RoleType.Scp079: name = Plugin.Instance.Config.Scp079Name; break; case RoleType.Scp096: name = Plugin.Instance.Config.Scp096Name; break; case RoleType.Scp93989: name = Plugin.Instance.Config.Scp939_89Name; break; case RoleType.Scp93953: name = Plugin.Instance.Config.Scp939_53Name; break; } ev.Player.DisplayNickname = name; } else if (scps.ContainsKey(ev.Player.Id) && ev.RoleType != RoleType.Spectator && ev.RoleType != RoleType.Tutorial) { ev.Player.DisplayNickname = scps[ev.Player.Id]; scps.Remove(ev.Player.Id); if (names == null && !Plugin.Instance.Config.CanRepeat) { usedNames = new List <string>(); } if (names == null || names.Count == 0) { names = new List <string>(Plugin.Instance.Config.Names); } string name = names[rnd.Next(names.Count)]; if (!Plugin.Instance.Config.CanRepeat) { names.Remove(name); usedNames.Add(name); } ev.Player.DisplayNickname = name; } else if (ev.RoleType != RoleType.Spectator && ev.RoleType != RoleType.Tutorial) { if (names == null && !Plugin.Instance.Config.CanRepeat) { usedNames = new List <string>(); } if (names == null || names.Count == 0) { names = new List <string>(Plugin.Instance.Config.Names); } string name = names[rnd.Next(names.Count)]; if (!Plugin.Instance.Config.CanRepeat) { names.Remove(name); usedNames.Add(name); } ev.Player.DisplayNickname = name; } else if (ev.RoleType == RoleType.Spectator || ev.RoleType == RoleType.Tutorial) { string name = ev.Player.DisplayNickname; if (!Plugin.Instance.Config.CanRepeat) { usedNames.Remove(name); if (!usedNames.Contains(name)) // In case the names were used more than once { names.Add(ev.Player.DisplayNickname); } } ev.Player.DisplayNickname = null; } }