private void spring_PlayerLeft(object sender, SpringLogEventArgs e) { if (RegisterPlayerInCombat(e.Username)) { players[e.Username].LeaveTime = DateTime.Now.Subtract(startTime); } }
private void spring_GameOver(object sender, SpringLogEventArgs e) { string query = String.Format("a=battle&map={0}&mod={1}&title={2}&start={3}&duration={4}", battle.Map.Name, battle.Mod.Name, battle.Title, Utils.ToUnix(startTime), Utils.ToUnix(DateTime.Now.Subtract(startTime))); foreach (Player p in players.Values) { if (!p.Spectator && p.AliveTillEnd) { foreach (Player pset in players.Values) { if (pset.AllyNumber == p.AllyNumber && !pset.Spectator) { pset.OnVictoryTeam = true; } } } } foreach (Player p in players.Values) { query += "&player[]=" + p; } // send only if there were at least 2 players in game if (players.Count > 1) { SendCommand(gatherScript, query, true, true); } }
private void spring_PlayerSaid(object sender, SpringLogEventArgs e) { ConnectedUser user; var isPlayer = spring.Context.ActualPlayers.Any(x => x.Name == e.Username && !x.IsSpectator); // block spectator chat in FFA and non chicken MM if (!isPlayer) { if (spring.LobbyStartContext.Mode == AutohostMode.GameFFA || (spring.LobbyStartContext.IsMatchMakerGame && spring.LobbyStartContext.Mode != AutohostMode.GameChickens)) { return; } } // check bans if (!server.ConnectedUsers.TryGetValue(e.Username, out user) || user.User.BanMute || (user.User.BanSpecChat && !isPlayer)) { return; } // relay if (!e.Line.StartsWith("Allies:") && !e.Line.StartsWith("Spectators:")) { server.GhostSay(new Say() { User = e.Username, Text = e.Line, Place = SayPlace.Battle, AllowRelay = false }, BattleID); } }
void spring_PlayerDisconnected(object sender, SpringLogEventArgs e) { if (RegisterPlayerInCombat(e.Username)) { players[e.Username].DisconnectTime = DateTime.Now.Subtract(startTime); } }
private void spring_PlayerJoined(object sender, SpringLogEventArgs e) { if (e.Username == UserName) { return; // do not add autohost itself } RegisterPlayerInCombat(e.Username); }
private void spring_PlayerLost(object sender, SpringLogEventArgs e) { if (RegisterPlayerInCombat(e.Username)) { players[e.Username].LoseTime = DateTime.Now.Subtract(startTime); players[e.Username].AliveTillEnd = false; } }
private void spring_PlayerSaid(object sender, SpringLogEventArgs e) { tas.GameSaid(e.Username, e.Line); if (config.RedirectGameChat && e.Username != tas.UserName && !e.Line.StartsWith("Allies:") && !e.Line.StartsWith("Spectators:")) { tas.Say(TasClient.SayPlace.Battle, "", "[" + e.Username + "]" + e.Line, false); } }
private void spring_PlayerLeft(object sender, SpringLogEventArgs e) { if (RegisterPlayerInCombat(e.Username)) { players[e.Username].LeaveTime = (int)DateTime.Now.Subtract(startTime).TotalSeconds; players[e.Username].AliveTillEnd = false; } }
private void spring_GameOver(object sender, SpringLogEventArgs e) { string query = String.Format("a=battle&map={0}&mod={1}&title={2}&start={3}&duration={4}", battle.Map.Name, battle.Mod.Name, battle.Title, Utils.ToUnix(startTime), Utils.ToUnix(DateTime.Now.Subtract(startTime))); foreach (var p in players.Values) { if (!p.Spectator && p.AliveTillEnd) { foreach (var pset in players.Values) { if (pset.AllyNumber == p.AllyNumber && !pset.Spectator) { pset.OnVictoryTeam = true; } } } } foreach (var p in players.Values) { query += "&player[]=" + p; } if (Program.main.config.PlanetWarsEnabled) { try { var pw = Program.main.PlanetWars; string response = pw.SendBattleResult(new AuthInfo { Login = Program.main.config.PlanetWarsServerLogin, Password = Program.main.config.PlanetWarsServerPassword }, battle.Map.Name, players.Values); Program.main.AutoHost.SayBattle(response); foreach (var p in players.Values) { if (p.Name != tas.UserName) { tas.Say(TasClient.SayPlace.User, p.Name, response, false); } } } catch (Exception ex) { Program.main.AutoHost.SayBattle(string.Format("Error sending planet battle result :(( {0}", ex.Message), true); } } // send only if there were at least 2 players in game if (players.Count > 1) { SendCommand(gatherScript, query, true, true); } }
void spring_GameOver(object sender, SpringLogEventArgs e) { System.Threading.Thread.Sleep(3000); // wait for stats SayBattle("Game over, exiting"); spring.ExitGame(); if (config.MapCycle.Length > 0) { mapCycleIndex = mapCycleIndex % config.MapCycle.Length; SayBattle("changing to another map in mapcycle"); ComMap(TasSayEventArgs.Default, config.MapCycle[mapCycleIndex].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)); mapCycleIndex++; } }
void spring_PlayerSaid(object sender, SpringLogEventArgs e) { tas.GameSaid(e.Username, e.Line); User us; tas.ExistingUsers.TryGetValue(e.Username, out us); bool isMuted = us != null && us.BanMute; if (Program.main.Config.RedirectGameChat && e.Username != tas.UserName && !e.Line.StartsWith("Allies:") && !e.Line.StartsWith("Spectators:") && !isMuted) { tas.Say(SayPlace.Battle, "", "[" + e.Username + "]" + e.Line, false); } }
void spring_GameOver(object sender, SpringLogEventArgs e) { SayBattle("Game over, exiting"); // Spring sends GAMEOVER for every player and spec, we only need the first one. spring.GameOver -= spring_GameOver; ZkData.Utils.SafeThread(() => { // Wait for gadgets that send spring autohost messages after gadget:GameOver() // such as awards.lua Thread.Sleep(10000); spring.ExitGame(); spring.GameOver += spring_GameOver; }).Start(); }
void spring_GameOver(object sender, SpringLogEventArgs e) { System.Threading.Thread.Sleep(3000); // wait for stats tas.Say(TasClient.SayPlace.Battle, "", "Game over, exiting", true); spring.ExitGame(); if (config.MapCycle.Length > 0) { mapCycleIndex = mapCycleIndex % config.MapCycle.Length; tas.Say(TasClient.SayPlace.Battle, "", "changing to another map in mapcycle", true); ComMap(new TasSayEventArgs(TasSayEventArgs.Origins.Player, TasSayEventArgs.Places.Battle, "", tas.UserName, "", false), config.MapCycle[mapCycleIndex].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)); mapCycleIndex++; } }
void spring_GameOver(object sender, SpringLogEventArgs e) { System.Threading.Thread.Sleep(3000); // wait for stats tas.Say(TasClient.SayPlace.Battle, "", "Game over, exiting", true); spring.ExitGame(); }