public bool AddPlayerToGame(GameClient player, RoleplayTeam team) { try { if (player == null || player.GetHabbo() == null) { return(false); } if (team.Members.Contains(player.GetHabbo().Id)) { return(false); } player.GetHabbo().Look = RoleplayManager.SplitFigure(player.GetHabbo().Look, team.Uniform); player.GetHabbo().Motto = "[JOGOS VORAZES] - [Time: " + team.Name + "] "; player.GetHabbo().Poof(false); Players.Add(player.GetHabbo().Id); team.Members.Add(player.GetHabbo().Id); return(true); } catch (Exception e) { Logging.LogRPGamesError("Error in AddPlayerToGame() void: " + e); return(false); } }
public void Winner(RoleplayTeam Team) { try { if (Team != null && Team.Members != null) { while (Team.Members.Count > 0) { foreach (var Member in Team.Members) { var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Member); if (Client != null && Client.GetHabbo() != null && Client.GetRoleplay() != null) { RemovePlayerFromGame(Client, true); } if (Players.Contains(Member)) { Players.Remove(Member); } if (Team.Members.Contains(Member)) { Team.Members.Remove(Member); } break; } if (Team.Members.Count <= 0) { if (Teams.ContainsKey(Team.Name)) { Teams.Remove(Team.Name); } break; } } lock (PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (client != null && client.GetHabbo() != null && client.GetRoleplay() != null) { client.SendWhisper("[Alerta de EVENTO] O Time " + Team.Name + " ganhou o evento [Guerra de Máfias]! Parabéns!", 33); } } } } Stop(); } catch (Exception e) { Logging.LogRPGamesError("Error in Winner() void: " + e); } }
public bool TeamCanBeJoined(RoleplayTeam team) { if (team.Members.Count >= Convert.ToInt32(RoleplayData.GetData("teambrawl", "maxusersperteam"))) { return(false); } return(true); }
public bool TeamCanBeJoined(RoleplayTeam team) { if (team.Members.Count >= 6) { return(false); } return(true); }
public void GenerateTeams() { string greenTeamData = RoleplayData.GetData("mafiawars", "green").ToString(); string blueTeamData = RoleplayData.GetData("mafiawars", "blue").ToString(); RoleplayTeam green = new RoleplayTeam("Verde", greenTeamData.Split(';')); RoleplayTeam blue = new RoleplayTeam("Azul", blueTeamData.Split(';')); Game.Teams.Add(green.Name, green); Game.Teams.Add(blue.Name, blue); }
public bool CanJoinTeam(RoleplayTeam Team) { if (Manager.TeamCanBeJoined(Team)) { return(true); } else { return(false); } }
public override void OnDeath(GameClient Client) { bool IsBoss = (GetBotRoleplay().Motto.ToLower().Contains("boss")) ? true : false; if (IsBoss) { RoleplayManager.Shout(Client, "*Dá um soco em " + GetBotRoleplay().Name + ", matando-o e ganhando a Guerra de Máfias " + Client.GetRoleplay().Team.Name + "! [+5 Pontos de Eventos]*", 1); Client.GetHabbo().EventPoints += 5; Client.GetHabbo().UpdateEventPointsBalance(); RoleplayTeam DefeatedTeam = Client.GetRoleplay().Game.GetTeams().Values.FirstOrDefault(x => x.CaptureRoom == Client.GetRoomUser().RoomId); Client.GetRoleplay().Game.NotifyPlayers("O mestre do time" + DefeatedTeam.Name + " foi derrotado por " + Client.GetHabbo().Username + "! A vitória pertence ao Time " + Client.GetRoleplay().Team.Name + "!"); foreach (RoomUser RoleplayBot in GetRoom().GetRoomUserManager().GetBotList()) { if (RoleplayBot == null) { continue; } if (!RoleplayBot.IsRoleplayBot) { continue; } if (RoleplayBot.GetBotRoleplay() == null) { continue; } if (RoleplayBot.GetBotRoleplay().Invisible || (RoleplayBot.GetBotRoleplay().Dead)) { continue; } RoleplayBot.GetBotRoleplay().StopAllHandlers(); } new Thread(() => { Thread.Sleep(5000); Client.GetRoleplay().Game.RemoveTeamMembers(DefeatedTeam); }).Start(); } else { RoleplayManager.Shout(Client, "*Dá um soco em " + GetBotRoleplay().Name + ", matando-o*"); Client.GetHabbo().EventPoints += 10; Client.GetHabbo().UpdateEventPointsBalance(); } GetRoom().SendMessage(new UserRemoveComposer(GetRoomUser().VirtualId)); GetBotRoleplay().Invisible = true; GetBotRoleplay().Dead = true; }
public void RemoveTeamMembers(RoleplayTeam Team) { try { if (!Teams.ContainsKey(Team.Name)) { return; } if (Team != null && Team.Members != null) { while (Team.Members.Count > 0) { foreach (var Member in Team.Members) { var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Member); if (Client != null && Client.GetHabbo() != null && Client.GetRoleplay() != null) { RemovePlayerFromGame(Client); break; } else { Players.Remove(Member); Team.Members.Remove(Member); if (Team.LostMembers.Contains(Member)) { Team.LostMembers.Remove(Member); } break; } } if (Team.Members.Count <= 0) { if (Teams.ContainsKey(Team.Name)) { Teams.Remove(Team.Name); } break; } } } } catch (Exception e) { Logging.LogRPGamesError("Error in RemoveTeamMembers() void: " + e); } }
public void GenerateTeams() { string pinkTeamData = RoleplayData.GetData("hungergames", "pink").ToString(); string greenTeamData = RoleplayData.GetData("hungergames", "green").ToString(); string blueTeamData = RoleplayData.GetData("hungergames", "blue").ToString(); string yellowTeamData = RoleplayData.GetData("hungergames", "yellow").ToString(); RoleplayTeam pink = new RoleplayTeam("Rosa", pinkTeamData.Split(';')); RoleplayTeam green = new RoleplayTeam("Verde", greenTeamData.Split(';')); RoleplayTeam blue = new RoleplayTeam("Azul", blueTeamData.Split(';')); RoleplayTeam yellow = new RoleplayTeam("Amarelo", yellowTeamData.Split(';')); Game.Teams.Add(pink.Name, pink); Game.Teams.Add(green.Name, green); Game.Teams.Add(blue.Name, blue); Game.Teams.Add(yellow.Name, yellow); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Digite uma mensagem para enviar.", 1); return; } if (Session.GetRoleplay().Game == null) { Session.SendWhisper("Você não está dentro de um evento para usar este comando!", 1); return; } if (Session.GetRoleplay().Team == null) { Session.SendWhisper("Este evento não possui alertas de equipe!", 1); return; } string Message = CommandManager.MergeParams(Params, 1); RoleplayTeam Team = Session.GetRoleplay().Team; if (RoleplayGameManager.RunningGames.ContainsKey(Session.GetRoleplay().Game.GetGameMode())) { lock (Team.Members) { foreach (var Member in Team.Members) { var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Member); if (Client == null) { continue; } Client.SendWhisper("[Alerta do TIME] [" + Session.GetHabbo().Username + "] " + Message, 11); } } } else { Session.SendWhisper("Um erro ocorreu!", 1); return; } }
public bool AddPlayerToGame(GameClient player, RoleplayTeam team) { try { if (Players.Contains(player.GetHabbo().Id)) { return(false); } Players.Add(player.GetHabbo().Id); player.GetHabbo().Motto = "[SoloQueue]"; player.GetHabbo().Poof(false); return(true); } catch (Exception e) { Logging.LogRPGamesError("Error in AddPlayerToGame() void: " + e); return(false); } }
public RoleplayTeam GetTeam(string teamName) { try { RoleplayTeam theteam = null; foreach (RoleplayTeam team in Teams.Values) { if (team.Name == teamName) { return(team); } } return(theteam); } catch { return(null); } }
/// <summary> /// Turf capture timer /// </summary> public override void Execute() { try { if (base.Client == null || base.Client.GetHabbo() == null || base.Client.GetRoleplay() == null || base.Client.GetRoomUser() == null) { base.EndTimer(); return; } IGame Game = base.Client.GetRoleplay().Game; RoleplayTeam Team = base.Client.GetRoleplay().Team; if (Game == null || Team == null) { if (base.Client.GetRoomUser().CurrentEffect == EffectsList.SunnyD) { base.Client.GetRoomUser().ApplyEffect(0); } base.EndTimer(); return; } Room room = RoleplayManager.GenerateRoom(base.Client.GetRoomUser().RoomId); if (room == null) { return; } var Items = room.GetGameMap().GetRoomItemForSquare(base.Client.GetRoomUser().Coordinate.X, base.Client.GetRoomUser().Coordinate.Y); if (Items.Count < 1) { if (base.Client.GetRoomUser().CurrentEffect == EffectsList.SunnyD) { base.Client.GetRoomUser().ApplyEffect(EffectsList.None); } RoleplayManager.Shout(base.Client, "*Para de capturar a base*", 1); base.EndTimer(); return; } bool HasCaptureTile = Items.ToList().Where(x => x.GetBaseItem().ItemName == "bb_rnd_tele").ToList().Count() > 0; if (!HasCaptureTile) { if (base.Client.GetRoomUser().CurrentEffect == EffectsList.SunnyD) { base.Client.GetRoomUser().ApplyEffect(EffectsList.None); } RoleplayManager.Shout(base.Client, "*Para de capturar a base*", 1); base.EndTimer(); return; } var Teams = base.Client.GetRoleplay().Game.GetTeams(); if (Teams == null) { if (base.Client.GetRoomUser().CurrentEffect == EffectsList.SunnyD) { base.Client.GetRoomUser().ApplyEffect(EffectsList.None); } base.EndTimer(); return; } var Zones = Teams.Values.Select(x => x.CaptureRoom).ToList(); if (!Zones.Contains(room.Id)) { if (base.Client.GetRoomUser().CurrentEffect == EffectsList.SunnyD) { base.Client.GetRoomUser().ApplyEffect(EffectsList.None); } RoleplayManager.Shout(base.Client, "*Para de capturar a base*", 1); base.EndTimer(); return; } RoleplayTeam CaptureTeam = Teams.Values.FirstOrDefault(x => x.CaptureRoom == room.Id); TimeCount++; TimeLeft -= 1000; if (TimeLeft > 0) { if (TimeCount == 60) { RoleplayManager.Shout(base.Client, "*Você está quase capturando a base! [" + (TimeLeft / 60000) + " minutos restantes]*", 4); TimeCount = 0; lock (CaptureTeam.Members) { foreach (int Player in CaptureTeam.Members) { GameClient Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Player); if (Client == null) { continue; } Client.SendWhisper("[Alerta de EVENTO] " + base.Client.GetHabbo().Username + " ainda está capturando a base de sua equipe!", 34); } } } return; } RoleplayManager.Shout(base.Client, "*Capturou com sucesso a base da [Equipe " + CaptureTeam.Name + "]*", 4); base.Client.GetRoleplay().Game.NotifyPlayers("A [Equipe " + CaptureTeam.Name + "] acaba de ser removida do jogo!"); base.Client.GetRoleplay().Game.RemoveTeamMembers(CaptureTeam); if (base.Client.GetRoomUser().CurrentEffect == EffectsList.SunnyD) { base.Client.GetRoomUser().ApplyEffect(EffectsList.None); } lock (Team.Members) { foreach (var Member in Team.Members) { var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Member); if (Client != null && Client.GetHabbo() != null) { Client.GetHabbo().EventPoints += 3; Client.GetHabbo().UpdateEventPointsBalance(); Client.SendWhisper("Você recebeu 3 Pontos de Evento por seu time capturar uma base!", 1); } } } base.EndTimer(); return; } catch (Exception e) { Logging.LogRPTimersError("Error in Execute() void: " + e); base.EndTimer(); } }
public void LastTwo(RoleplayTeam First, RoleplayTeam Second) { try { if (finaltwo) { return; } finaltwo = true; First.LostMembers.Clear(); Second.LostMembers.Clear(); #region First Team foreach (int playerid in First.Members) { GameClient Player = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(playerid); int Counter = 6; Player.GetRoleplay().ReplenishStats(); if (Player.GetRoomUser() != null) { List <ThreeDCoord> Squares = RoleplayManager.GenerateMap(ArenaStartX, ArenaStartY, ArenaFinishX, ArenaFinishY); ThreeDCoord RandomSquare = Squares[Random.Next(0, Squares.Count)] == null?Squares.FirstOrDefault() : Squares[Random.Next(0, Squares.Count)]; Player.GetRoomUser().Frozen = true; Player.GetRoomUser().ClearMovement(true); var Room = RoleplayManager.GenerateRoom(Player.GetRoomUser().RoomId); if (Room != null) { Room.GetGameMap().UpdateUserMovement(new Point(Player.GetRoomUser().X, Player.GetRoomUser().Y), new Point(RandomSquare.X, RandomSquare.Y), Player.GetRoomUser()); } Player.GetRoomUser().X = RandomSquare.X; Player.GetRoomUser().Y = RandomSquare.Y; Player.GetRoomUser().UpdateNeeded = true; } new Thread(() => { while (Counter > 0) { if (Player != null) { if (Counter == 6) { Player.SendWhisper("Sua equipe chegou às semi finais! Boa sorte!", 1); } else { Player.SendWhisper("[Briga de Times] vai continuar em " + Counter + " segundos!", 1); } } Counter--; Thread.Sleep(1000); if (Counter == 0) { Player.GetRoomUser().Frozen = false; Player.GetRoomUser().ClearMovement(true); Player.SendWhisper("Evento iniciado, mete a porrada neles!", 1); } } }).Start(); } #endregion #region Second Team foreach (int playerid in Second.Members) { GameClient Player = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(playerid); int Counter = 6; Player.GetRoleplay().ReplenishStats(); if (Player.GetRoomUser() != null) { List <ThreeDCoord> Squares = RoleplayManager.GenerateMap(ArenaStartX, ArenaStartY, ArenaFinishX, ArenaFinishY); ThreeDCoord RandomSquare = Squares[Random.Next(0, Squares.Count)] == null?Squares.FirstOrDefault() : Squares[Random.Next(0, Squares.Count)]; Player.GetRoomUser().Frozen = true; Player.GetRoomUser().ClearMovement(true); var Room = RoleplayManager.GenerateRoom(Player.GetRoomUser().RoomId); if (Room != null) { Room.GetGameMap().UpdateUserMovement(new Point(Player.GetRoomUser().X, Player.GetRoomUser().Y), new Point(RandomSquare.X, RandomSquare.Y), Player.GetRoomUser()); } Player.GetRoomUser().X = RandomSquare.X; Player.GetRoomUser().Y = RandomSquare.Y; Player.GetRoomUser().UpdateNeeded = true; } new Thread(() => { while (Counter > 0) { if (Player != null) { if (Counter == 6) { Player.SendWhisper("Sua equipe chegou a final! Boa sorte!", 1); } else { Player.SendWhisper("[Briga de Times] vai continuar em " + Counter + " segundos!", 1); } } Counter--; Thread.Sleep(1000); if (Counter == 0) { Player.GetRoomUser().Frozen = false; Player.GetRoomUser().ClearMovement(true); Player.SendWhisper("Evento iniciado! Que comece a briga!", 1); } } }).Start(); } #endregion } catch (Exception e) { Logging.LogRPGamesError("Error in LastTwo() void: " + e); } }
public void RemovePlayerFromGame(GameClient player, bool Winner = false) { try { if (player == null || player.GetHabbo() == null || player.GetRoleplay() == null) { return; } if (Players.Contains(player.GetHabbo().Id)) { Players.Remove(player.GetHabbo().Id); } else { return; } if (Teams.Values.Where(x => x.Members.Contains(player.GetHabbo().Id)).ToList().Count > 0) { RoleplayTeam Team = Teams.Values.FirstOrDefault(x => x.Members.Contains(player.GetHabbo().Id)); Team.Members.Remove(player.GetHabbo().Id); if (Team.LostMembers.Contains(player.GetHabbo().Id)) { Team.LostMembers.Remove(player.GetHabbo().Id); } } player.GetHabbo().Look = player.GetRoleplay().OriginalOutfit; player.GetHabbo().Motto = player.GetRoleplay().Class; player.GetHabbo().Poof(false); player.GetRoleplay().GameSpawned = false; player.GetRoleplay().Game = null; player.GetRoleplay().Team = null; if (player.GetRoomUser() != null) { player.GetRoomUser().ClearMovement(true); } RoleplayManager.SpawnChairs(player, "es_bench"); if (GameStarted) { if (Winner) { player.GetRoleplay().UpdateEventWins("brawl", 1); player.GetRoleplay().ReplenishStats(true); player.GetHabbo().EventPoints += Prize; player.GetHabbo().UpdateEventPointsBalance(); player.SendNotification("Prabéns! Sua equipe ganhou, você foi premiado " + Prize + " pontos de eventos!"); } else { player.GetHabbo().EventPoints++; player.GetHabbo().UpdateEventPointsBalance(); player.SendNotification("Que merda hein, sua equipe perdeu no evento [Briga de Times]! Você ganhou 1 ponto de evento por participar!"); } } } catch (Exception e) { Logging.LogRPGamesError("Error in RemovePlayerFromGame() void: " + e); } }
public void Check() { try { if (RoleplayGameManager.RunningGames.ContainsKey(GameMode.ColourWars)) { #region Room Notification if (1 == 1 /*!GameIsStarting && GameStarted*/) { Counter++; if (Counter >= 150) { Counter = 0; int RoomId = Convert.ToInt32(RoleplayData.GetData("colourwars", "lobbyid")); int MaxUsersPerTeam = Convert.ToInt32(RoleplayData.GetData("colourwars", "maxusersperteam")); var Room = RoleplayManager.GenerateRoom(RoomId); if (Room != null && Room.GetRoomUserManager() != null && Room.GetRoomUserManager().GetRoomUsers() != null) { RoleplayTeam Pink = null; RoleplayTeam Green = null; RoleplayTeam Blue = null; RoleplayTeam Yellow = null; if (Teams.ContainsKey("Pink")) { Pink = Teams["Rosa"]; } if (Teams.ContainsKey("Green")) { Green = Teams["Verde"]; } if (Teams.ContainsKey("Blue")) { Blue = Teams["Azul"]; } if (Teams.ContainsKey("Yellow")) { Yellow = Teams["Amarelo"]; } lock (Room.GetRoomUserManager().GetRoomUsers()) { foreach (var User in Room.GetRoomUserManager().GetRoomUsers()) { if (User == null || User.IsBot || User.GetClient() == null) { continue; } string Message = "Agora temos: " + (Pink == null ? "" : Pink.Members.Count + "/" + MaxUsersPerTeam + " Membros [ROSA], ") + (Green == null ? "" : Green.Members.Count + "/" + MaxUsersPerTeam + " Membros [VERDE], ") + (Blue == null ? "" : Blue.Members.Count + "/" + MaxUsersPerTeam + " Membros [AZUL] ") + (Yellow == null ? "" : Yellow.Members.Count + "/" + MaxUsersPerTeam + " Membros [AMARELO],").TrimEnd(',', ' '); User.GetClient().SendWhisper(Message, 34); } } } } } #endregion #region Logged/Kicked Check if (Players.Count > 0 && !GameIsStarting) { List <int> PlayersToRemove = Players.Where(x => RoleplayManager.OfflineCheck(x, true, this)).ToList(); foreach (int playerId in PlayersToRemove) { List <RoleplayTeam> AllTeams = Teams.Values.ToList(); bool HasTeam = AllTeams.Where(x => x.Members.Contains(playerId)).ToList().Count > 0; if (HasTeam) { RoleplayTeam Team = AllTeams.FirstOrDefault(x => x.Members.Contains(playerId)); if (Team != null) { Team.Members.Remove(playerId); } } Players.Remove(playerId); } } #endregion #region Main Checks if (GameStarted && !GameIsStarting && Teams.Count > 1) { TeamCheck(); } else if (GameStarted && !GameIsStarting && Teams.Count <= 1) { if (Teams.Count < 1) { Stop(); } else { Winner(Teams.Values.FirstOrDefault()); } } if (GameStarted && !GameIsStarting && Players.Count <= 0) { Stop(); } if (Players.Count == MaxPlayers && !GameStarted && !GameIsStarting) { Start(); } #endregion } } catch (Exception e) { Logging.LogRPGamesError("Error in Check() void: " + e); } }
public void RemovePlayerFromGame(GameClient player, bool Winner = false) { try { if (player == null || player.GetHabbo() == null || player.GetRoleplay() == null) { return; } if (Players.Contains(player.GetHabbo().Id)) { Players.Remove(player.GetHabbo().Id); } else { return; } if (Teams.Values.Where(x => x.Members.Contains(player.GetHabbo().Id)).ToList().Count > 0) { RoleplayTeam Team = Teams.Values.FirstOrDefault(x => x.Members.Contains(player.GetHabbo().Id)); Team.Members.Remove(player.GetHabbo().Id); } player.GetHabbo().Look = player.GetRoleplay().OriginalOutfit; player.GetHabbo().Motto = player.GetRoleplay().Class; player.GetHabbo().Poof(false); player.GetRoleplay().GameSpawned = false; player.GetRoleplay().Game = null; player.GetRoleplay().Team = null; if (player.GetRoomUser() != null) { player.GetRoomUser().CanWalk = true; } RoleplayManager.SendUser(player, Convert.ToInt32(RoleplayData.GetData("colourwars", "lobbyid"))); if (GameStarted) { if (Winner) { player.GetRoleplay().UpdateEventWins("cw", 1); player.GetRoleplay().ReplenishStats(true); player.GetHabbo().EventPoints += Prize; player.GetHabbo().UpdateEventPointsBalance(); player.SendNotification("Parabéns! Sua equipe ganhou, você foi premiado com " + Prize + " pontos de eventos!"); } else { player.GetHabbo().EventPoints++; player.GetHabbo().UpdateEventPointsBalance(); player.SendNotification("Que merda hein, sua equipe perdeu no evento [Guerras de Cores]! Você ganhou 1 ponto de evento por participar!"); } } } catch (Exception e) { Logging.LogRPGamesError("Error in RemovePlayerFromGame() void: " + e); } }
public void RemoveTeamMembers(RoleplayTeam Team) { }
public bool CanJoinTeam(RoleplayTeam Team) { return(true); }