コード例 #1
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (GamemodeManager.GamemodeManager.GetCurrentMode().Equals(plugin))
     {
         ev.SpawnChaos = false;
     }
 }
コード例 #2
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if ((PluginManager.Manager.Server.Round.Duration > 5) && (ev.SpawnChaos))
     {
         PluginManager.Manager.Server.Map.AnnounceCustomMessage("attention all facility personnel, Unauthorized personnel has been detected on the surface");
     }
 }
コード例 #3
0
ファイル: EventHandler.cs プロジェクト: RogerFK/CISpy
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (Plugin.isEnabled && !ev.SpawnChaos && Plugin.rand.Next(1, 101) <= Plugin.spawnChance && ev.PlayerList.Count >= Plugin.minSizeForSpy)
     {
         MEC.Timing.RunCoroutine(Plugin.MakeSpy(ev.PlayerList[Plugin.rand.Next(ev.PlayerList.Count)]), MEC.Segment.Update);
     }
 }
コード例 #4
0
        public void OnTeamRespawn(TeamRespawnEvent ev)
        {
            if (ev.SpawnChaos)
            {
                if (SHPlugin.rand.Next(1, 101) <= SHPlugin.spawnChance && ev.PlayerList.Count > 0 && respawnCount >= SHPlugin.teamRespawnDelay)
                {
                    List <Player> SHPlayers = new List <Player>();
                    List <Player> CIPlayers = ev.PlayerList;

                    for (int i = 0; i < SHPlugin.shMaxSquad && CIPlayers.Count > 0; i++)
                    {
                        Player player = CIPlayers[SHPlugin.rand.Next(CIPlayers.Count)];
                        SHPlayers.Add(player);
                        CIPlayers.Remove(player);
                    }

                    ev.PlayerList = SHPlayers;

                    Timing.InTicks(() =>
                    {
                        SHPlugin.SpawnSHSquad(ev.PlayerList);
                    }, 4);
                }
                else
                {
                    string ann = SHPlugin.ciAnnouncement;
                    if (ann != "")
                    {
                        PluginManager.Manager.Server.Map.AnnounceCustomMessage(ann);
                    }
                }
            }
            respawnCount++;
        }
コード例 #5
0
 internal void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (ev.Allowed && plugin.SpawnChance >= RNG.Next(1, 100))
     {
         Player player = ev.Players[RNG.Next(ev.Players.Count)];
         SpawnSpy(player);
     }
 }
コード例 #6
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (Status.gamemodeRoundActive)
     {
         ev.SpawnChaos = true;
         ev.PlayerList = new List <Player>();
     }
 }
コード例 #7
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (plugin.activated)
     {
         ev.SpawnChaos = false; // force ntf
         plugin.Debug("Forced NTF on team respawn.");
     }
 }
コード例 #8
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (plugin.Active)
     {
         ev.SpawnChaos = true;
         ev.PlayerList = new List <Player>();
     }
 }
コード例 #9
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (Plugin.isEnabled && !ev.SpawnChaos && Plugin.rand.Next(1, 101) <= Plugin.spawnChance && ev.PlayerList.Count >= Plugin.minSizeForSpy)
     {
         Timing.Next(() =>
         {
             Plugin.MakeSpy(ev.PlayerList[Plugin.rand.Next(ev.PlayerList.Count)]);
         });
     }
 }
コード例 #10
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (ev.SpawnChaos)
     {
         string[] message = File.ReadAllLines(CustomAnnouncements.ChaosSpawnFilePath);
         if (message.Length > 0)
         {
             Thread ChaosSpawnHandler = new Thread(new ThreadStart(() => new ChaosSpawnHandler(plugin, message)));
             ChaosSpawnHandler.Start();
             plugin.Info("Running Chaos Insurgency spawn announcement...");
         }
     }
 }
コード例 #11
0
ファイル: RoundEvents.cs プロジェクト: Mika-Westphal/Synapse
        internal void InvokeTeamRespawn(ref List <Player> players, ref Respawning.SpawnableTeamType teamType, out bool allow)
        {
            var ev = new TeamRespawnEventArgs
            {
                Players = players,
                Team    = teamType
            };

            TeamRespawnEvent?.Invoke(ev);

            players  = ev.Players;
            teamType = ev.Team;
            allow    = ev.Allow;
        }
コード例 #12
0
ファイル: EventHandlers.cs プロジェクト: RogerFK/HMD
        public void OnTeamRespawn(TeamRespawnEvent ev)
        {
            Timing.InTicks(() =>
            {
                List <Player> filteredPossibleSnipers = ev.SpawnChaos ?
                                                        ev.PlayerList :
                                                        ev.PlayerList.Where(x => plugin.MtfHmdRoles.Contains((int)x.TeamRole.Role)).ToList();

                if (filteredPossibleSnipers.Count > 0)
                {
                    DistributeHmd(filteredPossibleSnipers, ev.SpawnChaos ? plugin.ChaosHmds : plugin.MtfHmds);
                }
            }, 2);
        }
コード例 #13
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     /// <summary>
     /// Called before MTF or CI respawn.
     /// <summary>
     if (!ev.SpawnChaos)
     {
         plugin.SendMessageAsync(plugin.GetConfigString("discord_channel_onteamrespawn"), plugin.MultiLanguage(6));
     }
     else
     {
         plugin.SendMessageAsync(plugin.GetConfigString("discord_channel_onteamrespawn"), plugin.MultiLanguage(7));
     }
 }
コード例 #14
0
        public void OnTeamRespawn(TeamRespawnEvent ev)
        {
            List <Player> list = (from item in plugin.pluginManager.Server.GetPlayers()
                                  where (item.TeamRole.Role == Role.TUTORIAL || item.TeamRole.Role == Role.SPECTATOR) && !item.OverwatchMode
                                  select item).ToList();

            Random random = new Random();

            while (list.Count > maxRespawnAmount)
            {
                list.RemoveAt(random.Next(0, list.Count));
            }

            ev.PlayerList = list;
        }
コード例 #15
0
    public JsonSetting[] handle(object api, Dictionary <string, string> mapper)
    {
        TeamRespawnEvent e       = api as TeamRespawnEvent;
        List <Player>    players = e.PlayerList;

        JsonSetting[] settings = new JsonSetting[players.Count];
        for (int i = 0; i < settings.Length; i++)
        {
            settings[i] = new JsonSetting(Lib.getInt(mapper["id"]), null,
                                          new IdMapping().appendId(Lib.ID, Guid.NewGuid().ToString(), players[i]).appendId(Lib.PLAYER_SCPDATA_ID, Guid.NewGuid().ToString(), players[i].Scp079Data).appendId(Lib.PLAYER_TEAM_ROLE_ID, Guid.NewGuid().ToString(), players[i].TeamRole)
                                          );
        }

        return(settings);
    }
コード例 #16
0
    public JsonSetting[] handle(object api, Dictionary <string, string> mapper)
    {
        TeamRespawnEvent e = api as TeamRespawnEvent;

        string[]      ids     = Lib.getArray(mapper["players"]);
        List <Player> players = new List <Player>();

        foreach (string id in ids)
        {
            players.Add(ProxyHandler.handler.apiMapping[id] as Player);
        }

        e.PlayerList = players;
        return(null);
    }
コード例 #17
0
ファイル: Dziady.cs プロジェクト: Killerdash117/SL-EventPack
        public void OnTeamRespawn(TeamRespawnEvent ev)
        {
            if (!isQueue)
            {
                return;
            }
            Random rand = new Random();

            ev.SpawnChaos = true;
            ev.PlayerList.ForEach(zombie =>
            {
                zombie.ChangeRole(Smod2.API.RoleType.SCP_049_2);
                zombie.Teleport(PluginHandler.Shared.Server.Map.GetSpawnPoints(Smod2.API.RoleType.CHAOS_INSURGENCY)[rand.Next(0, 3)]);
            });
            PluginHandler.Shared.Server.Map.Broadcast(10, Translation["zombie_spawn"], false);
            PluginHandler.Shared.Server.Map.AnnounceCustomMessage("Dead Is Alive . . Destroy Every 1");
        }
コード例 #18
0
        /// <summary>
        /// Called before MTF or CI respawn.
        /// </summary>
        public void OnTeamRespawn(TeamRespawnEvent ev)
        {
            Dictionary <string, string> variables = new Dictionary <string, string>
            {
                { "players", ev.PlayerList.ToString() },
                { "spawnchaos", ev.SpawnChaos.ToString() }
            };

            if (ev.SpawnChaos)
            {
                this.plugin.SendMessage(Config.GetArray("channels.onteamrespawn.ci"), "team.onteamrespawn.ci", variables);
            }
            else
            {
                this.plugin.SendMessage(Config.GetArray("channels.onteamrespawn.mtf"), "team.onteamrespawn.mtf", variables);
            }
        }
コード例 #19
0
ファイル: ServerEvents.cs プロジェクト: SynapseSL/SynapseOld
        internal static void InvokeTeamRespawnEvent(ref List <Player> respawnList, ref Respawning.SpawnableTeamType team)
        {
            if (TeamRespawnEvent == null)
            {
                return;
            }

            var ev = new TeamRespawnEvent
            {
                RespawnList = respawnList,
                Team        = team
            };

            TeamRespawnEvent.Invoke(ev);

            team        = ev.Team;
            respawnList = ev.RespawnList;
        }
コード例 #20
0
 internal void TeamSpawn(ref TeamRespawnEvent ev)
 {
     respawning = true;
     foreach (ReferenceHub hub in ev.ToRespawn)
     {
         Timing.RunCoroutine(ResetSize(hub));
         if (plugin.curMod.HasFlag(ModType.NONE) && plugin.enabledTypes.Contains(ModType.NONE))
         {
             return; // cuz none means none
         }
         if (plugin.curMod.HasFlag(ModType.PLAYERSIZE) && plugin.enabledTypes.Contains(ModType.PLAYERSIZE))
         {
             Timing.RunCoroutine(ChangeSizeLate(hub, 2.5f));
         }
         if (plugin.curMod.HasFlag(ModType.UPSIDEDOWN) && plugin.enabledTypes.Contains(ModType.UPSIDEDOWN))
         {
             if (hub.GetRole() == RoleType.Scp106)
             {
                 Timing.RunCoroutine(ChangeSizeLate(hub, -1f, -1f, -1f, 2.5f, client: false));
             }
             else
             {
                 Timing.RunCoroutine(ChangeSizeLate(hub, 1f, -1f, 1f, 2.5f, client: false));
             }
         }
     }
     Timing.RunCoroutine(SetRespawnStop());
     if (plugin.curMod.HasFlag(ModType.NONE) && plugin.enabledTypes.Contains(ModType.NONE))
     {
         return; // cuz none means none
     }
     if (plugin.curMod.HasFlag(ModType.NORESPAWN) && plugin.enabledTypes.Contains(ModType.NORESPAWN))
     {
         ev.ToRespawn.Clear();
     }
     if (plugin.curMod.HasFlag(ModType.FINDWEAPONS) && plugin.enabledTypes.Contains(ModType.FINDWEAPONS))
     {
         Timing.RunCoroutine(SpawnFindWeapons());
     }
     if (plugin.curMod.HasFlag(ModType.ITEMRANDOMIZER) && plugin.enabledTypes.Contains(ModType.ITEMRANDOMIZER))
     {
         Timing.RunCoroutine(RandomItems());
     }
 }
コード例 #21
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (!Sitrep.Events.Contains("teamrespawnevent"))
     {
         return;
     }
     if (!Sitrep.CustomChannelIds.TryGetValue("teamrespawnevent", out ulong channel))
     {
         channel = Sitrep.EventsId;
     }
     if (ev.Team == Respawning.SpawnableTeamType.ChaosInsurgency)
     {
         Send($":blue_car: {ev.Players.Count} hráčů se respawnulo jako Chaos Insurgency.", channel);
     }
     else
     {
         Send($":passport_control: {ev.Players.Count} hráčů se respawnulo jako Nine-Tailed Fox.", channel);
     }
 }
コード例 #22
0
        public void OnTeamRespawn(TeamRespawnEvent ev)
        {
            if (Config.GetBoolValue("po_gamemodemanager", true))
            {
                if (GamemodeManager.GamemodeManager.CurrentMode != plugin)
                {
                    return;
                }
            }
            else
            {
                if (!plugin.isActive)
                {
                    return;
                }
            }

            ev.PlayerList = null;
        }
コード例 #23
0
        public void OnTeamRespawn(TeamRespawnEvent ev)
        {
            /// <summary>
            /// Called before MTF or CI respawn.
            /// <summary>
            Dictionary <string, string> variables = new Dictionary <string, string>
            {
                { "players", ev.PlayerList.ToString() },
                { "spawnchaos", ev.SpawnChaos.ToString() }
            };

            if (ev.SpawnChaos)
            {
                plugin.SendMessageToBot(plugin.GetConfigString("discord_channel_onteamrespawn"), "team.onteamrespawn.cispawn", variables);
            }
            else
            {
                plugin.SendMessageToBot(plugin.GetConfigString("discord_channel_onteamrespawn"), "team.onteamrespawn", variables);
            }
        }
コード例 #24
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     if (ev.SpawnChaos)
     {
         if (rand.Next(1, 101) <= plugin.GetConfigInt("sh_spawn_chance"))
         {
             Thread SpawnDelay = new Thread(new ThreadStart(() => new SpawnDelay(plugin, ev.PlayerList, 100)));
             SpawnDelay.Start();
             plugin.pluginManager.Server.Map.AnnounceCustomMessage(plugin.GetConfigString("sh_entry_announcement"));
         }
         else
         {
             string ann = plugin.GetConfigString("sh_ci_entry_announcement");
             if (ann != "")
             {
                 plugin.pluginManager.Server.Map.AnnounceCustomMessage(ann);
             }
         }
     }
 }
コード例 #25
0
        public void OnTeamRespawn(TeamRespawnEvent ev)
        {
            /// <summary>
            /// Called before MTF or CI respawn.
            /// <summary>
            Dictionary <string, string> variables = new Dictionary <string, string>
            {
                { "players", ev.PlayerList.ToString() },
                { "spawnchaos", ev.SpawnChaos.ToString() }
            };

            if (ev.SpawnChaos)
            {
                plugin.SendMessage(Config.GetArray("channels.onteamrespawn.ci"), "team.onteamrespawn.ci", variables);
            }
            else
            {
                plugin.SendMessage(Config.GetArray("channels.onteamrespawn.mtf"), "team.onteamrespawn.mtf", variables);
            }
        }
コード例 #26
0
        /*public void OnRoundEnd(RoundEndEvent ev)
         * {
         *      if (plugin.GetConfigBool("spycup_enabled"))
         *              sc.roundStarted = false;
         * }*/

        public void OnTeamRespawn(TeamRespawnEvent ev)
        {
            if (plugin.GetConfigBool("spycup_enabled"))
            {
                if (!ev.SpawnChaos)
                {
                    Player player = ev.PlayerList[rand.Next(ev.PlayerList.Count)];
                    //plugin.Info("Got player " + player.Name);
                    Role MTFRole = sc.NTFRoles[rand.Next(sc.NTFRoles.Count)];
                    //plugin.Info("Set role to " + MTFRole.ToString());
                    sc.RoleDict.Add(player.SteamId, MTFRole);
                    //plugin.Info("Added player " + player.Name + " to dict with role " + MTFRole.ToString());

                    Thread ChangeSpyRole = new Thread(new ThreadStart(() => new ChangeSpyRole(sc, player, true)));
                    ChangeSpyRole.Start();

                    plugin.Info(player.Name + " has become a spy.");
                }
            }
        }
コード例 #27
0
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     send(ev, new IdMapping());
 }
コード例 #28
0
ファイル: Hooks.cs プロジェクト: Dogma4b/Qlay
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     plugin.luaHookCall.Function.Call("OnTeamRespawn", ev.PlayerList, ev.SpawnChaos);
 }
コード例 #29
0
 internal void TeamRespawnEvent(ref TeamRespawnEvent ev)
 {
     MTFplus.subclasses.ShuffleList();
     MEC.Timing.RunCoroutine(RespawnPlus(ev.ToRespawn));
 }
コード例 #30
0
ファイル: Handler.cs プロジェクト: Crawcik/EventPack
 public void OnTeamRespawn(TeamRespawnEvent ev)
 {
     ev.SpawnChaos = true;
     SpawnZombie(ev.PlayerList.ToArray()).GetAwaiter();
 }