/// <summary>
 ///  This is the event handler for Round end events (when the stats appear on screen)
 /// </summary>
 public void OnRoundEnd(RoundEndEvent ev)
 {
     if (this.plugin.roundStarted && ev.Round.Duration > 60)
     {
         Dictionary <string, string> variables = new Dictionary <string, string>
         {
             { "duration", (ev.Round.Duration / 60).ToString() },
             { "dclassalive", ev.Round.Stats.ClassDAlive.ToString() },
             { "dclassdead", ev.Round.Stats.ClassDDead.ToString() },
             { "dclassescaped", ev.Round.Stats.ClassDEscaped.ToString() },
             { "dclassstart", ev.Round.Stats.ClassDStart.ToString() },
             { "mtfalive", ev.Round.Stats.NTFAlive.ToString() },
             { "scientistsalive", ev.Round.Stats.ScientistsAlive.ToString() },
             { "scientistsdead", ev.Round.Stats.ScientistsDead.ToString() },
             { "scientistsescaped", ev.Round.Stats.ScientistsEscaped.ToString() },
             { "scientistsstart", ev.Round.Stats.ScientistsStart.ToString() },
             { "scpalive", ev.Round.Stats.SCPAlive.ToString() },
             { "scpdead", ev.Round.Stats.SCPDead.ToString() },
             { "scpkills", ev.Round.Stats.SCPKills.ToString() },
             { "scpstart", ev.Round.Stats.SCPStart.ToString() },
             { "warheaddetonated", ev.Round.Stats.WarheadDetonated.ToString() },
             { "zombies", ev.Round.Stats.Zombies.ToString() }
         };
         this.plugin.SendMessage(Config.GetArray("channels.onroundend"), "round.onroundend", variables);
         this.plugin.roundStarted = false;
     }
 }
Пример #2
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     send(ev, new IdMapping()
          .appendId(Lib.ROUND_ID, ev.Round)
          .appendId(Lib.ROUND_STATS_ID, ev.Round.Stats)
          );
 }
 public void OnRoundEnd(RoundEndEvent ev)
 {
     /// <summary>
     ///  This is the event handler for Round end events (when the stats appear on screen)
     /// </summary>
     if (roundHasStarted && ev.Round.Duration > 60)
     {
         Dictionary <string, string> variables = new Dictionary <string, string>
         {
             { "duration", (ev.Round.Duration / 60).ToString() },
             { "dclassalive", ev.Round.Stats.ClassDAlive.ToString() },
             { "dclassdead", ev.Round.Stats.ClassDDead.ToString() },
             { "dclassescaped", ev.Round.Stats.ClassDEscaped.ToString() },
             { "dclassstart", ev.Round.Stats.ClassDStart.ToString() },
             { "mtfalive", ev.Round.Stats.NTFAlive.ToString() },
             { "scientistsalive", ev.Round.Stats.ScientistsAlive.ToString() },
             { "scientistsdead", ev.Round.Stats.ScientistsDead.ToString() },
             { "scientistsescaped", ev.Round.Stats.ScientistsEscaped.ToString() },
             { "scientistsstart", ev.Round.Stats.ScientistsStart.ToString() },
             { "scpalive", ev.Round.Stats.SCPAlive.ToString() },
             { "scpdead", ev.Round.Stats.SCPDead.ToString() },
             { "scpkills", ev.Round.Stats.SCPKills.ToString() },
             { "scpstart", ev.Round.Stats.SCPStart.ToString() },
             { "warheaddetonated", ev.Round.Stats.WarheadDetonated.ToString() },
             { "zombies", ev.Round.Stats.Zombies.ToString() }
         };
         plugin.SendMessageToBot(plugin.GetConfigString("discord_channel_onroundend"), "round.onroundend", variables);
         roundHasStarted = false;
     }
 }
Пример #4
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     if (ev.Round.Duration >= 3)
     {
         AdminToolbox.isRoundFinished = true;
         AdminToolbox.lockRound       = false;
         if (ConfigManager.Manager.Config.GetBoolValue("admintoolbox_round_info", true, false))
         {
             plugin.Info("Round: " + AdminToolbox.roundCount + " has ended.");
             int minutes = (int)(ev.Round.Duration / 60), duration = ev.Round.Duration;
             if (duration < 60)
             {
                 plugin.Info("Round lasted for: " + duration + " sec");
             }
             else
             {
                 plugin.Info("Round lasted for: " + minutes + " min, " + (duration - (minutes * 60)) + " sec");
             }
         }
         if (AdminToolbox.warpVectors.Count > 0)
         {
             AdminToolbox.warpVectors.Clear();
         }
     }
     foreach (Player pl in PluginManager.Manager.Server.GetPlayers())
     {
         AdminToolbox.AddSpesificPlayer(pl);
         if (AdminToolbox.playerStats.ContainsKey(pl.SteamId))
         {
             AdminToolbox.playerStats[pl.SteamId][3]++;
         }
     }
 }
Пример #5
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     //Empties bleeding list
     SCP939.playersToDamage.Clear();
     //Duh.
     SCP939.roundCount++;
 }
Пример #6
0
        public void OnRoundEnd(RoundEndEvent ev)
        {
            foreach (KeyValuePair <string, int> key in Jugadores)
            {
                var1 = key.Value;
                if (var1 > var2)
                {
                    var2 = var1; MVP = key.Key;
                }
            }
            foreach (Player player in PluginManager.Manager.Server.GetPlayers())
            {
                if (MVP == player.SteamId)
                {
                    mejor = player.Name;
                }
            }

            if (Scientists > Dboys)
            {
                PluginManager.Manager.Server.Map.Broadcast(6, "Ganan Los Científicos, el mejor jugador fué " + mejor, false);
            }
            if (Dboys > Scientists)
            {
                PluginManager.Manager.Server.Map.Broadcast(6, "Ganan Los Clases D, el mejor jugador  fué " + mejor, true);
            }
            if (Dboys == Scientists)
            {
                PluginManager.Manager.Server.Map.Broadcast(6, "¡EMPATE xD!, El mejor jugador fué " + mejor, true);
            }
        }
Пример #7
0
        public void OnRoundEnd(RoundEndEvent ev)
        {
            if (this.isPluginDisabledThisRound)
            {
                return;
            }

            if (this.roundWatch.ElapsedMilliseconds < 10000)
            {
                return;
            }

            // Disable spawning after round have ended
            this.isSpawnAllowed = false;

            // Stop the timer for disabling spawns
            this.StopDelayedSpawnTimer();

            // Clear spawned tables
            this.ResetPlayersSpawned();
            this.ResetTeamsSpawned();

            // Stop round watch
            this.roundWatch.Stop();
        }
 public void OnRoundEnd(RoundEndEvent ev)
 {
     //Empties infected list
     SCP008.playersToDamage.Clear();
     //Duh.
     SCP008.roundCount++;
 }
 public void OnRoundEnd(RoundEndEvent ev)
 {
     if (ev.Round.Duration >= 3)
     {
         reset();
     }
 }
Пример #10
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     if (Status.gamemodeRoundActive)
     {
         Status.HaltLCZD            = false;
         Status.gamemodeRoundActive = false;
     }
 }
Пример #11
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     isRoundStarted = false;
     if (isVoting)
     {
         CancelVote();
     }
 }
Пример #12
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     if (ev.Status == ROUND_END_STATUS.ON_GOING)
     {
         return;
     }
     interrupt = true;
 }
Пример #13
0
 public override void EventEnd(RoundEndEvent ev)
 {
     boss.EndTask();
     boss = null;
     if (isFFdefault)
     {
         PluginManager.Manager.CommandManager.CallCommand(ev.Server, "setconfig", new string[] { "friendly_fire", "true" });
     }
 }
Пример #14
0
        public static void OnEnd(RoundEndEvent ev)
        {
            WebhookHandler wb = new WebhookHandler();

            if (AdminLogs.Instance.Config.RoundEnd)
            {
                wb.SendMessage("Round Ended", "Round Results", $"```# of people escaped : {ev.EscapedPlayers}\nForce Ended? : {ev.ForceEnded}```", 12874076);
            }
        }
Пример #15
0
        public void OnRoundEnd(RoundEndEvent ev)
        {
            if (!isEnabled)
            {
                return;
            }

            isRoundStarted = false;
        }
Пример #16
0
        public void OnRoundEnd(RoundEndEvent ev)
        {
            plugin.EventManager.RemoveEventHandlers(plugin);
            OverwatchEventLogic events = new OverwatchEventLogic(plugin);

            plugin.AddEventHandler(typeof(IEventHandlerRoundEnd), events);
            plugin.AddEventHandler(typeof(IEventHandlerRoundStart), events);
            plugin.AddEventHandler(typeof(IEventHandlerUpdate), events);
            plugin.AddEventHandler(typeof(IEventHandlerWaitingForPlayers), events);
        }
Пример #17
0
        /// <summary>
        /// Notifies the end of a round.
        /// </summary>
        private void EndRound()
        {
            RoundEndEvent ev = new RoundEndEvent(CurrentRound);

            AppendEvent(ev);
            if (OnRoundEnd != null)
            {
                OnRoundEnd(this, ev);
            }
        }
Пример #18
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     if (ev.Round.Duration < 60)
     {
         return;
     }
     bot.Post("Round End", $"Teamkills count: {teamkills_count} | Bans count: {bans_count}", $"Round time: {ev.Round.Duration / 60} minutes", 3289800);
     canLog = false;
     SaveBans();
 }
Пример #19
0
        public void OnRoundEnd(RoundEndEvent ev)
        {
            DiscordLab.bot.NewMessage($"**Round Ended**\n```Round Time: {new DateTime(TimeSpan.FromSeconds((DateTime.Now - (DateTime)roundStart).TotalSeconds).Ticks):HH:mm:ss}"
                                      + $"\nEscaped Class-D: {ev.Class_D.Escaped_ClassD}/{ev.Class_D.Starting_ClassD}"
                                      + $"\nRescued Scientists: {ev.Scientist.Escaped_Scientists}/{ev.Scientist.Starting_Scientists}"
                                      + $"\nTerminated SCPs: {ev.SCP.Terminated_SCPs}/{ev.SCP.Starting_SCPs}"
                                      + $"\nWarhead Status: {(AlphaWarheadController.Host.detonated == false ? "Not Detonated" : $"Detonated")}```");

            roundStart = null;
            RoundEnded = DateTime.Now;
        }
Пример #20
0
        private void HandleRoundEnd(object sender, RoundEndedEventArgs e)
        {
            RoundEndEvent newEvent = new RoundEndEvent()
            {
                Reason  = (Models.RoundEndReason)((int)e.Reason),
                Message = e.Message,
                Winner  = (Models.Team)((int)e.Winner),
            };

            CurrentTick.Events.Add(newEvent);
        }
        public void OnRoundEnd(RoundEndEvent ev)
        {
            CustomAnnouncements.roundStarted = false;

            string[] message = File.ReadAllLines(CustomAnnouncements.RoundEndFilePath);
            if (message.Length > 0)
            {
                string text = CustomAnnouncements.ReplaceVariables(CustomAnnouncements.SpacePeriods(CustomAnnouncements.StringArrayToString(message, 0)));
                plugin.pluginManager.Server.Map.AnnounceCustomMessage(text);
                plugin.Info("Running round end announcement...");
            }
        }
Пример #22
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     /// <summary>
     ///  This is the event handler for Round end events (when the stats appear on screen)
     /// </summary>
     plugin.SendMessageAsync(plugin.GetConfigString("discord_channel_onroundend"), plugin.MultiLanguage(15) + (ev.Round.Duration / 60) + plugin.MultiLanguage(16) +
                             "```\n" +
                             plugin.MultiLanguage(17) + ev.Round.Stats.ClassDEscaped + "/" + ev.Round.Stats.ClassDStart + "\n" +
                             plugin.MultiLanguage(18) + ev.Round.Stats.ScientistsEscaped + "/" + ev.Round.Stats.ScientistsStart + "\n" +
                             plugin.MultiLanguage(19) + ev.Round.Stats.SCPDead + "/" + ev.Round.Stats.SCPStart + "\n" +
                             plugin.MultiLanguage(20) + ev.Round.Stats.SCPKills + "\n" +
                             "```");
 }
Пример #23
0
 /// <summary>
 /// Makes it so 343 loses his divine touch when the round ends.
 /// </summary>
 public void OnRoundEnd(RoundEndEvent ev)
 {
     foreach (Player player in Smod2.PluginManager.Manager.Server.GetPlayers())
     {
         if (Is343(player))
         {
             SCP_343Manager _343Manager = Get343Manager(player);
             _343Manager.Is343 = false;
             player.SetRank(_343Manager.PreviousBadgeColor, _343Manager.PreviousBadgeColor);
             player.HP = 100;
         }
     }
 }
Пример #24
0
    public void HandleRoundEnd(RoundEndEvent e)
    {
        if (hypedCoroutine != null)
        {
            StopCoroutine(hypedCoroutine);
            this.gameObject.PublishEvent(new StopHypedEvent());
        }

        if (confusedCoroutine != null)
        {
            StopCoroutine(confusedCoroutine);
            this.gameObject.PublishEvent(new StopConfusedEvent());
        }
    }
Пример #25
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     if (AllXP.RoundWinXP > 0)
     {
         foreach (Player player in plugin.Server.GetPlayers())
         {
             if (player.TeamRole.Team != Smod2.API.Team.SPECTATOR && player.TeamRole.Team != Smod2.API.Team.NONE && roundStarted)
             {
                 player.SendConsoleMessage("You have gained " + AllXP.RoundWinXP.ToString() + "xp for winning the round!", "yellow");
                 AddXP(player.SteamId, AllXP.RoundWinXP);
             }
         }
     }
     roundStarted = false;
 }
 public void OnRoundEnd(RoundEndEvent ev)
 {
     if (ev.Round.Duration >= 3)
     {
         FilledTeams.Clear();
         blacklist.Clear();
         enabledSCPs.Clear();
         spqueue.Clear();
         infqueue.Clear();
         roundstarted          = false;
         decond                = false;
         detonated             = false;
         plugin.infAutoRespawn = false;
     }
 }
Пример #27
0
        public void OnRoundEnd(RoundEndEvent ev)
        {
            if (!Sitrep.Events.Contains("roundendevent"))
            {
                return;
            }
            if (!Sitrep.CustomChannelIds.TryGetValue("roundendevent", out ulong channel))
            {
                channel = Sitrep.EventsId;
            }
            int    roundTime = RoundSummary.roundTime / 60;
            string time      = roundTime == 1 ? "minuta" : "minut";
            string time2     = roundTime == 2 || roundTime == 3 || roundTime == 5 ? "minuty" : time;

            Send($":trophy: Kolo skončilo!\n```Počet uprchlých vědců: {Round.Info.EscapedScientists}/{Round.Info.ClassListOnStart.scientists}\nPočet uprchlých Class-D: {RoundSummary.escaped_ds}/{RoundSummary.singleton.classlistStart.class_ds}\nCelkový počet úmrtí: {RoundSummary.Kills}\nPočet úmrtí na SCP: {RoundSummary.kills_by_scp}\nPočet úmrtí na granát: {RoundSummary.kills_by_frag}\nDélka trvání: {roundTime} {time2}```", channel);
        }
        public void OnRoundEnd(RoundEndEvent ev)
        {
            bool realRoundEnd(RoundEndEvent myEvent)
            {
                //Temp fix for the OnRoundEnd triggering on RoundStart bug
                if (myEvent.Round.Duration >= 3)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            if (realRoundEnd(ev))
            {
                AdminToolbox.isRoundFinished = true;
                AdminToolbox.lockRound       = false;
                if (ConfigManager.Manager.Config.GetBoolValue("admintoolbox_round_info", true, false))
                {
                    plugin.Info("Round: " + AdminToolbox.RoundCount + " has ended.");
                    int minutes = (int)(ev.Round.Duration / 60), duration = ev.Round.Duration;
                    if (duration < 60)
                    {
                        plugin.Info("Round lasted for: " + duration + " sec");
                    }
                    else
                    {
                        plugin.Info("Round lasted for: " + minutes + " min, " + (duration - (minutes * 60)) + " sec");
                    }
                }
                AdminToolbox.AddMissingPlayerVariables();
                foreach (Player pl in PluginManager.Manager.Server.GetPlayers())
                {
                    if (AdminToolbox.ATPlayerDict.ContainsKey(pl.SteamId))
                    {
                        AdminToolbox.ATPlayerDict[pl.SteamId].RoundsPlayed++;
                    }
                }
                AdminToolbox.atfileManager.PlayerStatsFileManager(AdminToolbox.ATPlayerDict.Keys.ToList(), Managers.ATFileManager.PlayerFile.Write);
            }
        }
Пример #29
0
    public void HandleRoundEnd(RoundEndEvent e)
    {
        PathGraph graph = FindObjectOfType <PathGraph>();

        graph.startNode  = null;
        graph.finishNode = null;

        // ghetto score heuristic - tweak later
        float scoreBonus = 0f;

        if (e.remainingTime > 0.0f)
        {
            scoreBonus = .2f + e.remainingTime / timer.raceTime;
        }
        playerOneScore += currentPlayer == 1 ? scoreBonus : 0;
        playerTwoScore += currentPlayer == 2 ? scoreBonus : 0;

        this.gameObject.PublishEvent(new PlayerGainedScoreEvent(currentPlayer, scoreBonus));
    }
Пример #30
0
 public void OnRoundEnd(RoundEndEvent ev)
 {
     foreach (KeyValuePair <string, float> key in Jugadores)
     {
         var1 = key.Value;
         if (var1 > var2)
         {
             var2 = var1; MVP = key.Key;
         }
     }
     foreach (Player player in PluginManager.Manager.Server.GetPlayers())
     {
         if (player.SteamId == MVP)
         {
             Name = player.Name;
         }
     }
     PluginManager.Manager.Server.Map.Broadcast(10, "El Mejor jugador ha sido  " + Name + " El daño que ha causado" + var2.ToString(), false);
 }