public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { Room R = null; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Room.Id, out R)) { return; } if (Room.Name.ToLower().Contains("gun")) { RoleplayManager.CalledDelivery = false; RoleplayManager.DeliveryWeapon = null; } List <RoomUser> UsersToReturn = Room.GetRoomUserManager().GetRoomUsers().ToList(); PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(R, true); foreach (RoomUser User in UsersToReturn) { if (User == null || User.GetClient() == null) { continue; } RoleplayManager.SendUser(User.GetClient(), Room.Id, "Este quarto foi recarregado para correções!"); } }
public void UnloadRoom(House House) { if (House == null) { return; } Room Room = null; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(House.RoomId, out Room)) { return; } List <RoomUser> UsersToReturn = Room.GetRoomUserManager().GetRoomUsers().ToList(); PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(Room, true); foreach (RoomUser User in UsersToReturn) { if (User == null || User.GetClient() == null) { continue; } RoleplayManager.SendUser(User.GetClient(), House.Sign.RoomId, "The house was just bought, so you were sent back outside!"); } }
/// <summary> /// Checks if the client is jailed, if so send the user to jail /// </summary> public void JailCheck(GameClient Client) { if (!Client.GetRoleplay().IsJailed) { return; } if (JailbreakManager.JailbreakActivated) { Client.GetRoleplay().Jailbroken = true; Client.SendNotification("Someone has initiated a jailbreak while you were offline! Better run before you get caught!"); return; } int JailRID = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid")); if (Client.GetRoleplay().IsWanted || Client.GetRoleplay().WantedLevel != 0 || Client.GetRoleplay().WantedTimeLeft != 0) { Client.GetRoleplay().IsWanted = false; Client.GetRoleplay().WantedLevel = 0; Client.GetRoleplay().WantedTimeLeft = 0; } if (Client.GetHabbo().HomeRoom != JailRID) { Client.GetHabbo().HomeRoom = JailRID; } RoleplayManager.SendUser(Client, JailRID, ""); Client.GetRoleplay().TimerManager.CreateTimer("jail", 1000, true); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length < 3) { Session.SendWhisper("Por favor, use o comando ':uenviar (usuário) (id do quarto)'.", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null || TargetClient.GetHabbo() == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online.", 1); return; } if (TargetClient.GetHabbo().CurrentRoom != null) { if (TargetClient.GetHabbo().CurrentRoom.TutorialEnabled) { Session.SendWhisper("Você não pode enviar alguém que está em uma sala de tutorial!", 1); return; } } int RoomId; if (!int.TryParse(Params[2], out RoomId)) { Session.SendWhisper("Digite um ID válido!", 1); return; } Room TargetRoom = HabboRoleplay.Misc.RoleplayManager.GenerateRoom(RoomId); if (TargetRoom == null) { Session.SendWhisper("Desculpe, não conseguimos encontrar o ID!", 1); return; } if (TargetClient.GetRoleplay().IsDead) { TargetClient.GetRoleplay().IsDead = false; TargetClient.GetRoleplay().ReplenishStats(true); TargetClient.GetHabbo().Poof(); } if (TargetClient.GetRoleplay().IsJailed) { TargetClient.GetRoleplay().IsJailed = false; TargetClient.GetRoleplay().JailedTimeLeft = 0; } Session.Shout("*Envia imediatamente " + TargetClient.GetHabbo().Username + " para " + TargetRoom.Name + " [ID: " + RoomId + "]*", 23); RoleplayManager.SendUser(TargetClient, RoomId, "Você foi enviado para " + TargetRoom.Name + " [ID: " + RoomId + "] por " + Session.GetHabbo().Username + "!"); }
public void Start() { try { GameIsStarting = true; int UserCounter = 0; lock (Players) { foreach (int playerid in Players) { GameClient Player = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(playerid); int Counter = 11; UserCounter++; new Thread(() => { while (Counter > 0) { if (Player != null) { if (Counter == 11) { Player.SendWhisper("A [Guerra de Cores] vai começar em alguns segundos!", 1); } else { Player.SendWhisper("[ATENÇÃO] Começará em " + Counter + " segundos!", 1); } } Counter--; Thread.Sleep(1000); if (Counter == 0) { if (Player != null && Player.GetRoleplay() != null) { PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Player, "ACH_ColourWars", 1); RoleplayManager.SendUser(Player, Player.GetRoleplay().Team.SpawnRoom); Player.GetRoleplay().ReplenishStats(); } GameStarted = true; GameIsStarting = false; } } }).Start(); } } } catch (Exception e) { Logging.LogRPGamesError("Error in Start() void: " + e); } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { UInt32 RoomId = 0; if (Params.Length == 1) { Session.SendWhisper("Opa, você esqueceu de inserir um ID do quarto!", 1); return; } if (!UInt32.TryParse(Params[1].ToString(), out RoomId)) { Session.SendWhisper("Por favor insira um número válido.", 1); return; } Room TargetRoom = RoleplayManager.GenerateRoom(Convert.ToInt32(RoomId)); if (Session.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode taxi enquanto está morto!", 1); return; } if (Session.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode usar táxi enquanto está preso!!", 1); return; } if (RoomId == Session.GetHabbo().CurrentRoomId) { Session.SendWhisper("Você já está nesta sala!", 1); return; } if (TargetRoom == null) { Session.SendWhisper("[RPG TAXI] Desculpe, não conseguimos encontrar esse quarto!", 1); return; } if (Session.GetRoleplay().Game != null) { Session.SendWhisper("Você não pode usar taxi enquanto está dentro de um evento!", 1); return; } if (!Session.GetHabbo().Username.Contains("Ying")) { Session.Shout("*Pega o Taxi Administrativo e vai imediatamente para o local*", 23); } RoleplayManager.SendUser(Session, (int)RoomId); }
public void Execute(GameClients.GameClient Session, Room Room, string[] Params) { #region Variables int Count = 0; #endregion #region Execute lock (PlusEnvironment.GetGame().GetClientManager().GetClients) { foreach (GameClient Client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (Client == null || Client.GetHabbo() == null || Client.GetRoleplay() == null) { continue; } if (Client == Session) { continue; } if (Client.GetHabbo().PetId <= 0) { continue; } if (Client.GetRoleplay().IsDead) { Client.GetRoleplay().IsDead = false; Client.GetRoleplay().ReplenishStats(true); Client.GetHabbo().Poof(); } if (Client.GetRoleplay().IsJailed) { Client.GetRoleplay().IsJailed = false; Client.GetRoleplay().JailedTimeLeft = 0; Client.GetHabbo().Poof(); } Count++; RoleplayManager.SendUser(Client, Room.Id, "Você foi convocado por " + Session.GetHabbo().Username + "!"); } if (Count > 0) { Session.Shout("*Puxa todos os usuários transformados para minha sala*", 23); } else { Session.SendWhisper("Desculpe, mas não houve usuários transformados para invocar!", 1); } } #endregion }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Session == null || Session.GetHabbo() == null || Session.GetRoleplay() == null || Session.GetRoomUser() == null) { return; } if (!Session.GetRoleplay().IsWanted || !RoleplayManager.WantedList.ContainsKey(Session.GetHabbo().Id)) { Session.SendWhisper("Você não está sendo procurado!", 1); return; } if (Params.Length < 2) { Session.SendWhisper("Para confirmar que deseja se entregar, Digite :serender sim"); return; } if (Params[1].ToString().ToLower() == "sim") { int JailRID = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid")); Session.Shout("*Se entrega às autoridades da lei e é escoltado para a prisão*", 4); if (Session.GetHabbo().CurrentRoomId != JailRID) { RoleplayManager.SendUser(Session, JailRID, "Você se entregou às autoridades da lei e foi preso por " + Session.GetRoleplay().WantedLevel * 5 + " minutos!"); } Wanted Junk; RoleplayManager.WantedList.TryRemove(Session.GetHabbo().Id, out Junk); PlusEnvironment.GetGame().GetClientManager().JailAlert("[Alerta RÁDIO] " + Session.GetHabbo().Username + " se rendeu às autoridades da lei!"); if (Session.GetRoleplay().EquippedWeapon != null) { Session.GetRoleplay().EquippedWeapon = null; } Session.GetRoleplay().IsJailed = true; Session.GetRoleplay().JailedTimeLeft = Session.GetRoleplay().WantedLevel * 5; Session.GetRoleplay().TimerManager.CreateTimer("preso", 1000, false); return; } else { Session.SendWhisper("Tem certeza de que deseja se render? Você será preso por " + Session.GetRoleplay().WantedLevel * 5 + " minutos!", 1); Session.SendWhisper("Digite :serender sim se realmente deseja se entregar.", 1); return; } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Digite o usuário que deseja convocar..", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null || TargetClient.GetHabbo() == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online.", 1); return; } if (TargetClient.GetRoleplay().Game != null) { Session.SendWhisper("Desculpe, mas " + TargetClient.GetHabbo().Username + " está em um evento!", 1); return; } if (TargetClient.GetHabbo().CurrentRoom != null) { if (TargetClient.GetHabbo().CurrentRoom.TutorialEnabled) { Session.SendWhisper("Você não pode puxar alguém que está em uma sala de tutorial!", 1); return; } } if (TargetClient.GetRoleplay().IsDead) { TargetClient.GetRoleplay().IsDead = false; TargetClient.GetRoleplay().ReplenishStats(true); TargetClient.GetHabbo().Poof(); } if (TargetClient.GetRoleplay().IsJailed) { TargetClient.GetRoleplay().IsJailed = false; TargetClient.GetRoleplay().JailedTimeLeft = 0; TargetClient.GetHabbo().Poof(); } Session.Shout("*Traz imediatamente " + TargetClient.GetHabbo().Username + " para o quarto*", 23); RoleplayManager.SendUser(TargetClient, Room.Id, "Você foi puxado por " + Session.GetHabbo().Username + "!"); }
/// <summary> /// Checks to see if the client is jailed, if true send back to jail if not already in one /// </summary> private void JailCheck(GameClient Client, object[] Params) { if (Client.GetRoleplay().IsJailed) { if (Client.GetRoleplay().Jailbroken) { RoleplayManager.GetLookAndMotto(Client); return; } int JailRID = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid")); int JailRID2 = Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid")); int CourtRID = Convert.ToInt32(RoleplayData.GetData("court", "roomid")); Room Room = (Room)Params[0]; if (RoleplayManager.Defendant == Client && Room.Id == CourtRID) { RoleplayManager.GetLookAndMotto(Client); RoleplayManager.SpawnChairs(Client, "uni_lectern"); new Thread(() => { Thread.Sleep(500); if (Client.GetRoomUser() != null) { Client.GetRoomUser().Frozen = true; } }).Start(); return; } if (Room.Id != JailRID && Room.Id != JailRID2) { RoleplayManager.SendUser(Client, JailRID); Client.SendNotification("You cannot leave jail until your sentence has expired!"); } if (Room.Id == JailRID) { RoleplayManager.GetLookAndMotto(Client); RoleplayManager.SpawnBeds(Client, "bed_silo_one"); } } else { return; } }
/// <summary> /// Checks if the client is dead, if so send the user to hospital /// </summary> public void DeathCheck(GameClient Client) { if (!Client.GetRoleplay().IsDead) { return; } int HospitalRID = Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2")); if (Client.GetHabbo().HomeRoom != HospitalRID) { Client.GetHabbo().HomeRoom = HospitalRID; } RoleplayManager.SendUser(Client, HospitalRID, ""); Client.GetRoleplay().TimerManager.CreateTimer("death", 1000, true); }
public void Start() { try { GameStarted = true; foreach (int playerid in Players) { GameClient Player = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(playerid); int Counter = 11; new Thread(() => { while (Counter > 0) { if (Player != null) { if (Counter == 11) { Player.SendWhisper("[Jogos Vorazes] vai começar em alguns segundos!", 1); } else { Player.SendWhisper("[ATENÇÃO] Começará em " + Counter + " segundos!", 1); } } Counter--; Thread.Sleep(1000); if (Counter == 0) { RoleplayManager.SendUser(Player, Player.GetRoleplay().Team.SpawnRoom); } } }).Start(); } } catch (Exception e) { Logging.LogRPGamesError("Error in Start() void: " + e); } }
/// <summary> /// Checks to see if the client is dead, if true send back to hospital if not already in one /// </summary> private void DeathCheck(GameClient Client, object[] Params) { if (Client.GetRoleplay().IsDead) { int HospitalRID = Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2")); Room Room = (Room)Params[0]; if (Room.Id != HospitalRID) { RoleplayManager.SendUser(Client, HospitalRID); Client.SendNotification("You cannot leave the hospital while you are dead!"); } RoleplayManager.GetLookAndMotto(Client); RoleplayManager.SpawnBeds(Client, "hosptl_bed"); } else { return; } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { House House; if (!Room.TryGetHouse(out House)) { Session.SendWhisper("Você não está nem dentro de uma casa!", 1); return; } if (House.OwnerId != Session.GetHabbo().Id&& !Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { Session.SendWhisper("Você não é o dono da casa!", 1); return; } if (Params.Length == 1) { Session.SendWhisper("Por favor, forneça um motivo expulsar os usuários da sala.", 1); return; } string Message = CommandManager.MergeParams(Params, 1); foreach (RoomUser RoomUser in Room.GetRoomUserManager().GetUserList().ToList()) { if (RoomUser == null || RoomUser.IsBot || RoomUser.GetClient() == null || RoomUser.GetClient().GetHabbo() == null || RoomUser.GetClient().GetHabbo().GetPermissions().HasRight("mod_tool") || RoomUser.GetClient().GetHabbo().Id == Session.GetHabbo().Id) { continue; } RoomUser.GetClient().SendNotification("Você foi expulso da casa por: " + Message); RoomData roomData = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(House.Sign.RoomId); RoleplayManager.SendUser(Session, roomData.Id); } Session.SendWhisper("Expulsou com sucesso a todos os usuários da sua casa.", 1); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Digite o usuário que deseja seguir.", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online.", 1); return; } if (TargetClient.GetHabbo().CurrentRoom == Session.GetHabbo().CurrentRoom) { Session.SendWhisper(TargetClient.GetHabbo().Username + " está na mesma sala que você!", 1); return; } if (TargetClient.GetHabbo().Username == Session.GetHabbo().Username) { Session.SendWhisper("Você não pode seguir a si mesmo!", 1); return; } if (!TargetClient.GetHabbo().InRoom) { Session.SendWhisper("Esse usuário atualmente não está em uma sala!", 1); return; } Session.Shout("*Segue imediatamente " + TargetClient.GetHabbo().Username + "*", 23); RoleplayManager.SendUser(Session, TargetClient.GetHabbo().CurrentRoomId); }
public void Execute(GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length < 3) { Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário ou o número de estrelas de 1-6!", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1); return; } var RoomUser = Session.GetRoomUser(); var TargetRoomUser = TargetClient.GetRoomUser(); if (RoomUser == null || TargetRoomUser == null) { return; } if (TargetClient.GetRoleplay().IsJailed) { Session.SendWhisper("Esta pessoa já está presa!", 1); return; } int Stars; if (!int.TryParse(Params[2], out Stars)) { Session.SendWhisper("Digite um número de estrelas válido de 1-6", 1); return; } else { if (Stars < 1 || Stars > 6) { Session.SendWhisper("Digite um número de estrelas válido de 1-6", 1); return; } } int WantedTime = Stars * 5; TargetClient.GetRoleplay().WantedLevel = Stars; if (TargetClient.GetRoleplay().IsDead) { TargetClient.GetRoleplay().IsDead = false; TargetClient.GetRoleplay().ReplenishStats(true); TargetClient.GetHabbo().Poof(); } if (TargetClient.GetRoleplay().IsWorking) { WorkManager.RemoveWorkerFromList(TargetClient); TargetClient.GetRoleplay().IsWorking = false; TargetClient.GetHabbo().Poof(); } if (TargetClient.GetRoleplay().Cuffed) { TargetClient.GetRoleplay().Cuffed = false; } if (TargetClient.GetRoleplay().OnProbation) { TargetClient.GetRoleplay().OnProbation = false; } if (TargetRoomUser.Frozen) { TargetRoomUser.Frozen = false; } TargetClient.GetRoleplay().IsJailed = true; TargetClient.GetRoleplay().JailedTimeLeft = WantedTime; TargetClient.GetRoleplay().TimerManager.CreateTimer("jail", 1000, false); int JailRID = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid")); if (TargetClient.GetHabbo().CurrentRoomId == JailRID) { RoleplayManager.GetLookAndMotto(TargetClient); RoleplayManager.SpawnBeds(TargetClient, "bed_silo_one"); TargetClient.SendMessage(new RoomNotificationComposer("room_jail_prison", "message", "Você foi preso por " + Session.GetHabbo().Username + " por " + WantedTime + " minutos!")); } else { TargetClient.SendMessage(new RoomNotificationComposer("room_jail_prison", "message", "Você foi preso por " + Session.GetHabbo().Username + " por " + WantedTime + " minutos!")); RoleplayManager.SendUser(TargetClient, JailRID); } if (RoleplayManager.WantedList.ContainsKey(TargetClient.GetHabbo().Id)) { Wanted Junk; RoleplayManager.WantedList.TryRemove(TargetClient.GetHabbo().Id, out Junk); PlusEnvironment.GetGame().GetClientManager().JailAlert("[Alerta RÁDIO] " + TargetClient.GetHabbo().Username + " acabou de ser preso por " + Session.GetHabbo().Username + "! Bom trabalho."); } Session.Shout("*Prende imediatamente o " + TargetClient.GetHabbo().Username + " por " + WantedTime + " minutos*", 23); return; }
public void Execute(GameClient Session, Rooms.Room Room, string[] Params) { #region Conditions if (Params.Length == 1) { Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1); return; } RoomUser RoomUser = Session.GetRoomUser(); RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Username); if (TargetUser == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online ou nesta sala.", 1); return; } if (TargetUser == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online ou nesta sala.", 1); return; } if (TargetClient.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode escoltar alguém que está morto!", 1); return; } if (TargetClient.GetRoleplay().IsJailed&& !TargetClient.GetRoleplay().Jailbroken) { Session.SendWhisper("Você não pode escoltar alguém que já está preso!", 1); return; } if (!TargetClient.GetRoleplay().Cuffed) { Session.SendWhisper("Você não pode escoltar alguém que não está algemado!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode escoltar alguém que está ausente!", 1); return; } if (TargetClient == Session) { Session.SendWhisper("Você não pode se escoltar!", 1); return; } if (!TargetClient.GetRoleplay().Jailbroken) { if (!RoleplayManager.WantedList.ContainsKey(TargetClient.GetHabbo().Id)) { if (TargetClient.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("probation")) { TargetClient.GetRoleplay().TimerManager.ActiveTimers["probation"].EndTimer(); } TargetClient.GetRoleplay().IsWanted = true; TargetClient.GetRoleplay().WantedLevel = 1; TargetClient.GetRoleplay().WantedTimeLeft = 10; TargetClient.GetRoleplay().TimerManager.CreateTimer("procurado", 1000, false); RoleplayManager.WantedList.TryUpdate(TargetClient.GetHabbo().Id, new Wanted(Convert.ToUInt32(TargetClient.GetHabbo().Id), Room.Id.ToString(), 1), RoleplayManager.WantedList[TargetClient.GetHabbo().Id]); } } #endregion #region Execute Point ClientPos = new Point(RoomUser.X, RoomUser.Y); Point TargetClientPos = new Point(TargetUser.X, TargetUser.Y); double Distance = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos); Wanted Wanted = RoleplayManager.WantedList.ContainsKey(TargetClient.GetHabbo().Id) ? RoleplayManager.WantedList[TargetClient.GetHabbo().Id] : null; int WantedTime = Wanted == null ? 6 : Wanted.WantedLevel * 5; if (Distance <= 1) { if (TargetClient.GetRoleplay().IsWorking) { WorkManager.RemoveWorkerFromList(TargetClient); TargetClient.GetRoleplay().IsWorking = false; TargetClient.GetHabbo().Poof(); } Session.Shout("*Algema as mãos de " + TargetClient.GetHabbo().Username + ", coloca as algemas e prende por " + WantedTime + " minutos*", (GroupManager.HasJobCommand(Session, "guide") && Session.GetRoleplay().IsWorking ? 37 : 4)); TargetClient.GetRoleplay().Cuffed = false; TargetClient.GetRoomUser().ApplyEffect(0); if (TargetClient.GetHabbo().Look.Contains("lg-78322")) { if (!TargetClient.GetRoleplay().WantedFor.Contains("exposição indecente")) { TargetClient.GetRoleplay().WantedFor = TargetClient.GetRoleplay().WantedFor + "exposição indecente, "; } } if (TargetUser.Frozen) { TargetUser.Frozen = false; } if (!TargetClient.GetRoleplay().IsJailed) { TargetClient.GetRoleplay().IsJailed = true; TargetClient.GetRoleplay().JailedTimeLeft = WantedTime; TargetClient.GetRoleplay().TimerManager.CreateTimer("jail", 1000, false); } if (TargetClient.GetRoleplay().Jailbroken&& !JailbreakManager.FenceBroken) { TargetClient.GetRoleplay().Jailbroken = false; } int JailRID = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid")); if (TargetClient.GetHabbo().CurrentRoomId == JailRID) { RoleplayManager.GetLookAndMotto(TargetClient); RoleplayManager.SpawnBeds(TargetClient, "bed_silo_one"); TargetClient.SendMessage(new RoomNotificationComposer("room_jail_prison", "message", "Você foi escoltado por " + Session.GetHabbo().Username + " por " + WantedTime + " minutos!")); } else { TargetClient.SendMessage(new RoomNotificationComposer("room_jail_prison", "message", "Você foi escoltado por " + Session.GetHabbo().Username + " por " + WantedTime + " minutos!")); RoleplayManager.SendUser(TargetClient, JailRID); } PlusEnvironment.GetGame().GetClientManager().JailAlert("[Alerta RÁDIO] " + TargetClient.GetHabbo().Username + " acabou de ser escoltado para a prisão por " + Session.GetHabbo().Username + "!"); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Arrests", 1); Session.GetRoleplay().Arrests++; PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(TargetClient, "ACH_Arrested", 1); TargetClient.GetRoleplay().Arrested++; return; } else { Session.SendWhisper("Você deve se aproximar desse cidadão para escoltá-lo!", 1); return; } #endregion }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int roomID = Packet.PopInt(); bool IsVip = Session.GetHabbo().VIPRank < 1 ? false : true; int Cost = IsVip ? 0 : 3; int Time = IsVip ? (5 + DayNightManager.GetTaxiTime()) : (10 + DayNightManager.GetTaxiTime()); string TaxiText = IsVip ? " VIP" : ""; bool RoomLoaded = false; bool OnDuty = false; if (Session.GetHabbo().GetPermissions().HasRight("mod_tool") && Session.GetRoleplay().StaffOnDuty) { OnDuty = true; } if (Session.GetHabbo().VIPRank > 1) { OnDuty = true; } #region Conditions if (Session.GetRoleplay().IsJailed || Session.GetRoleplay().IsDead) { return; } if (Session.GetRoleplay().Cuffed) { Session.SendWhisper("Os taxistas não querem levar você, pois estão com medo de você algemado!", 1); return; } if (Session.GetRoomUser() != null) { if (Session.GetRoomUser().Frozen) { Session.SendWhisper("Você não pode pegar um taxi enquanto está atordoado!", 1); return; } } #endregion RoomData roomData = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(roomID); if (roomData == null) { return; } if (RoomLoaded) { return; } if (roomData.TutorialEnabled && !OnDuty) { Session.SendWhisper("[RPG Taxi] Você não pode ir para uma sala de Tutorial!", 1); return; } if (Session.GetRoomUser() != null && Session.GetRoomUser().GetRoom() != null) { if (Session.GetRoomUser().GetRoom().TutorialEnabled&& !OnDuty) { Session.SendWhisper("[RPG Taxi] Você não pode usar taxi em uma sala de tutorial, termine ele primeiro!", 1); return; } if (!Session.GetRoomUser().GetRoom().TaxiFromEnabled&& !OnDuty) { Session.SendWhisper("[RPG Taxi] Desculpe, não podemos pegar você neste quarto!", 1); return; } } if (roomID != Session.GetHabbo().CurrentRoomId) { if (Session.GetRoleplay().Game != null) { Session.SendWhisper("Você não pode pegar um texi no evento!", 1); return; } bool PoliceCost = false; if (HabboHotel.Groups.GroupManager.HasJobCommand(Session, "guide") && Session.GetRoleplay().IsWorking) { PoliceCost = true; } if (Session.GetHabbo().Credits < Cost && Cost > 0 && !OnDuty && !PoliceCost) { Session.SendWhisper("[RPG Taxi] Você não tem dinheiro suficiente para dar uma volta!", 1); return; } if (Session.GetRoleplay().InsideTaxi) { Session.SendWhisper("[RPG Taxi] Já estou indo pegar você! Digite ':ptaxi' se mudar de ideia!", 1); return; } bool PoliceTool = false; if (Session.GetRoleplay().GuideOtherUser != null) { if (HabboHotel.Groups.GroupManager.HasJobCommand(Session, "guide")) { if (Session.GetRoleplay().GuideOtherUser.GetHabbo() != null && Session.GetRoleplay().GuideOtherUser.GetRoomUser() != null) { if (roomID == Session.GetRoleplay().GuideOtherUser.GetRoomUser().RoomId) { PoliceTool = true; } } } } if (!roomData.TaxiToEnabled && !OnDuty && !PoliceTool) { Session.SendWhisper("[RPG Taxi] Desculpe, não podemos buscar você neste quarto!", 1); return; } bool Event = false; if (roomData.RoleplayEvent != null) { if (!roomData.RoleplayEvent.HasGameStarted()) { Event = true; } } Session.GetRoleplay().InsideTaxi = true; bool PoliceTaxi = false; if (!OnDuty && !PoliceTool && Session.GetHabbo().CurrentRoomId > 0 && !Event) { if (HabboHotel.Groups.GroupManager.HasJobCommand(Session, "guide") && Session.GetRoleplay().IsWorking) { Cost = 0; Time = 5; if (Session.GetRoomUser() != null) { Session.GetRoomUser().ApplyEffect(EffectsList.PoliceTaxi); } Session.Shout("*Puxa o rádio da Polícia e vai rapidamente para " + roomData.Name + " [ID: " + roomID + "]*", 37); PoliceTaxi = true; } else { if (Session.GetRoomUser() != null) { Session.GetRoomUser().ApplyEffect(EffectsList.Taxi); } Session.Shout("*Chama um Taxi" + TaxiText + " por " + roomData.Name + " [ID: " + roomID + "]*", 4); } new Thread(() => { for (int i = 0; i < (Time + 1) * 10; i++) { if (Session.GetRoleplay() == null) { break; } if (Session.GetRoleplay().InsideTaxi) { Thread.Sleep(100); } else { break; } } if (Session.GetRoleplay() != null) { if (Session.GetRoleplay().InsideTaxi) { if (Cost > 0) { Session.GetHabbo().Credits -= Cost; Session.GetHabbo().UpdateCreditsBalance(); } if (PoliceTaxi) { if (Session.GetRoomUser() != null) { Session.GetRoomUser().ApplyEffect(EffectsList.CarPolice); } Session.Shout("*Entra no meu carro de polícia e vai para o local*", 37); } else { Session.Shout("*Pula dentro do meu Taxi" + TaxiText + " e vai rapidamente para o local*", 4); } RoleplayManager.SendUser(Session, roomData.Id); } } }).Start(); } else { if (PoliceTool) { if (Session.GetRoomUser() != null) { Session.GetRoomUser().ApplyEffect(EffectsList.CarPolice); } Session.Shout("*Entra no meu carro de polícia e dirige para ajudar um cidadão em necessidade*", 4); } else if (OnDuty) { Session.Shout("*Pula dentro do meu Carro Staff*", 23); } RoleplayManager.SendUser(Session, roomData.Id); } } else { Session.SendMessage(new GetGuestRoomResultComposer(Session, roomData, true, false)); } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Digite uma mensagem para enviar.", 1); return; } List <string> CantSummon = new List <string>(); int OnlineStaff = 0; foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (client == null || client.GetHabbo() == null) { continue; } if (client == Session) { continue; } if (client.GetHabbo().CurrentRoom == Room) { continue; } if (!client.GetHabbo().GetPermissions().HasRight("mod_tool")) { continue; } OnlineStaff++; if (client.GetRoleplay().Game != null) { CantSummon.Add(client.GetHabbo().Username); continue; } if (client.GetRoleplay().IsDead) { client.GetRoleplay().IsDead = false; client.GetRoleplay().ReplenishStats(true); client.GetHabbo().Poof(); } if (client.GetRoleplay().IsJailed) { client.GetRoleplay().IsJailed = false; client.GetRoleplay().JailedTimeLeft = 0; client.GetHabbo().Poof(); } RoleplayManager.SendUser(client, Room.Id, "Você foi puxado ao quarto por " + Session.GetHabbo().Username + "!"); } if (OnlineStaff > 0) { Session.Shout("*Puxa para o quarto todos os membros da equipe on-lines*", 23); } else { Session.SendWhisper("Desculpa! Não há mais Staffs online neste momento!", 1); return; } if (CantSummon.Count > 0) { string Users = ""; foreach (string user in CantSummon) { Users += user + ","; } Session.SendMessage(new MOTDNotificationComposer("Desculpe, não pôde trazer os seguintes Staffs, pois estão dentro de um Evento!\n\n " + Users)); } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { HabboRoleplay.Apartments.Apartment Apartment; if (!Room.TryGetApartment(out Apartment)) { Session.SendWhisper("Desculpe, mas este quarto não é um apartamento!", 1); return; } if (!Apartment.ForSale) { Session.SendWhisper("Desculpe, mas este apartamento não está à venda!", 1); return; } if (Params.Length == 1) { Session.SendWhisper("Tem certeza de que quer comprar este apartamento por R$" + Apartment.Cost + "? Digite ':comprarap sim' para confirmar!", 1); return; } else { if (Params[1].ToLower() != "sim") { Session.SendWhisper("Tem certeza de que quer comprar este apartamento por R$" + Apartment.Cost + "? Digite ':comprarap sim' para confirmar!", 1); return; } else { if (Session.GetHabbo().Credits < Apartment.Cost) { Session.SendWhisper("You do not have the $" + Apartment.Cost + " to purchase this apartment!", 1); return; } else { RoleplayManager.Shout(Session, "*Compra este apartamento por R$" + Apartment.Cost + "*", 4); Session.GetHabbo().Credits -= Apartment.Cost; Session.GetHabbo().UpdateCreditsBalance(); var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Apartment.OwnerId); if (Client == null) { using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `credits` = `credits` + @cost WHERE `id` = @userid"); dbClient.AddParameter("cost", Apartment.Cost); dbClient.AddParameter("userid", Apartment.OwnerId); dbClient.RunQuery(); } } else { Client.SendNotification("Seu apartamento em [Quarto ID: " + Apartment.RoomId + "] acabou de ser vendido para " + Session.GetHabbo().Id + " por R$" + Apartment.Cost + "!\n\nParabéns."); Client.GetHabbo().Credits += Apartment.Cost; Client.GetHabbo().UpdateCreditsBalance(); } Apartment.BuyApartment(Session); Room R; if (PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Room.Id, out R)) { List <RoomUser> UsersToReturn = Room.GetRoomUserManager().GetRoomUsers().ToList(); PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(Room, true); foreach (RoomUser User in UsersToReturn) { if (User == null || User.GetClient() == null) { continue; } RoleplayManager.SendUser(User.GetClient(), Room.Id, "O apartamento acabou de ser comprado por " + Session.GetHabbo().Username + "!"); } } return; } } } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Insira um quarto para enviar os usuários!", 1); return; } if (Room.GetRoomUserManager().GetRoomUsers().Count == 1) { Session.SendWhisper("Você é a única pessoa na sala!", 1); return; } int RoomId; if (!int.TryParse(Params[1], out RoomId)) { Session.SendWhisper("Digite um id válido para o quarto!", 1); return; } Room TargetRoom = HabboRoleplay.Misc.RoleplayManager.GenerateRoom(RoomId); if (TargetRoom == null) { Session.SendWhisper("Desculpe, mas este quarto não pôde ser encontrado!", 1); return; } if (TargetRoom == Session.GetHabbo().CurrentRoom) { Session.SendWhisper("Você e todos os outros já estão nteste quarto!", 1); return; } List <string> CantSend = new List <string>(); int count = 0; foreach (var user in Room.GetRoomUserManager().GetRoomUsers()) { if (user == null || user.GetClient() == null || user.GetClient().GetHabbo() == null) { continue; } if (user.GetClient() == Session) { continue; } if (user.GetClient().GetRoleplay().Game != null) { CantSend.Add(user.GetClient().GetHabbo().Username); continue; } count++; if (user.GetClient().GetRoleplay().IsDead) { user.GetClient().GetRoleplay().IsDead = false; user.GetClient().GetRoleplay().ReplenishStats(true); user.GetClient().GetHabbo().Poof(); } if (user.GetClient().GetRoleplay().IsJailed) { user.GetClient().GetRoleplay().IsJailed = false; user.GetClient().GetRoleplay().JailedTimeLeft = 0; } RoleplayManager.SendUser(user.GetClient(), RoomId, "Você foi enviado para o quarto [" + TargetRoom.Name + " -´Quarto ID: " + RoomId + "] por " + Session.GetHabbo().Username + "!"); } if (count > 0) { Session.Shout("*Envia imediatamente todas as pessoas do quarto para [" + TargetRoom.Name + " Quarto ID: " + RoomId + "]*", 23); } if (CantSend.Count > 0) { string Users = ""; foreach (string user in CantSend) { Users += user + ","; } Session.SendMessage(new MOTDNotificationComposer("Desculpe, não foi possível enviar os seguintes usuários, pois estão dentro de um Evento!\n\n " + Users)); } }
/// <summary> /// Begins chasing the client /// </summary> public override void Execute() { try { if (base.CachedBot == null || base.CachedBot.DRoomUser == null || base.CachedBot.DRoom == null) { SpawnJuryUsersOut(false); Thread.Sleep(200); RoleplayManager.CourtVoteEnabled = false; RoleplayManager.InnocentVotes = 0; RoleplayManager.GuiltyVotes = 0; RoleplayManager.CourtJuryTime = 0; RoleplayManager.CourtTrialIsStarting = false; RoleplayManager.CourtTrialStarted = false; RoleplayManager.Defendant = null; RoleplayManager.InvitedUsersToJuryDuty.Clear(); base.EndTimer(); return; } GameClient Client = RoleplayManager.Defendant; int CourtRoomId = Convert.ToInt32(RoleplayData.GetData("court", "roomid")); Room Room = RoleplayManager.GenerateRoom(CourtRoomId); if (Client == null || Client.LoggingOut || Client.GetHabbo() == null || Client.GetRoleplay() == null) { SpawnJuryUsersOut(false); RoleplayManager.CourtVoteEnabled = false; RoleplayManager.InnocentVotes = 0; RoleplayManager.GuiltyVotes = 0; RoleplayManager.CourtJuryTime = 0; RoleplayManager.CourtTrialIsStarting = false; RoleplayManager.CourtTrialStarted = false; RoleplayManager.Defendant = null; RoleplayManager.InvitedUsersToJuryDuty.Clear(); if (base.CachedBot != null) { if (base.CachedBot.DRoomUser != null) { base.CachedBot.DRoomUser.Chat("Olá, como o réu saiu, o processo judicial foi suspenso. Desculpas por qualquer inconveniente!", false, 2); } } base.EndTimer(); return; } RoleplayManager.CourtJuryTime++; if (RoleplayManager.CourtJuryTime < 151) { if (RoleplayManager.CourtJuryTime == 2) { RoleplayManager.SendUser(Client, CourtRoomId, ""); return; } else if (RoleplayManager.CourtJuryTime == 5) { base.CachedBot.DRoomUser.Chat("Bom dia senhoras e senhores, agora irá começar o julgamento da Polícia do HabboRPG contra o(a) " + Client.GetHabbo().Username + ", seja honesto.", false, 2); return; } else if (RoleplayManager.CourtJuryTime == 10) { if (Client.GetRoleplay().WantedFor != "") { base.CachedBot.DRoomUser.Chat("Esta pessoa é acusada de " + Client.GetRoleplay().WantedFor.TrimEnd(',', ' ') + ".", false, 2); } else { base.CachedBot.DRoomUser.Chat("Infelizmente, não recebi receber o relatório das acusações para o julgamento deste tribunal, então o juiz ouvirá sua explicação " + Client.GetHabbo().Username + "!", false, 2); } return; } else if (RoleplayManager.CourtJuryTime == 18) { base.CachedBot.DRoomUser.Chat("Apenas um lembrete. A Polícia do HabboRPG afirma que o Réu é culpado dos crimes, vamos prosseguir.", false, 2); return; } else if (RoleplayManager.CourtJuryTime == 26) { base.CachedBot.DRoomUser.Chat(Client.GetHabbo().Username + ", explique para mim e para os juris, o que realmente aconteceu?", false, 2); return; } else if (RoleplayManager.CourtJuryTime == 75) { base.CachedBot.DRoomUser.Chat("Obrigado por sua explicação.", false, 2); return; } else if (RoleplayManager.CourtJuryTime == 81) { base.CachedBot.DRoomUser.Chat(Client.GetHabbo().Username + ", Se os jurados achar que você é inocente, você será libertado da prisão.", false, 2); return; } else if (RoleplayManager.CourtJuryTime == 87) { base.CachedBot.DRoomUser.Chat("No entanto, se acharem que você é culpado, você permanecerá na prisão para servir o resto da sua sentença.", false, 2); return; } else if (RoleplayManager.CourtJuryTime == 93) { base.CachedBot.DRoomUser.Chat("Advogado(a), por favor, pode remover " + Client.GetHabbo().Username + " para prosseguirmos com o julgamento.", false, 2); return; } else if (RoleplayManager.CourtJuryTime == 96) { int JailRID = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid")); RoleplayManager.SendUser(Client, JailRID); return; } else if (RoleplayManager.CourtJuryTime == 100) { base.CachedBot.DRoomUser.Chat("Agora são vocês, juris, decidir o destino do Réu", false, 2); return; } else if (RoleplayManager.CourtJuryTime == 105) { RoleplayManager.CourtVoteEnabled = true; base.CachedBot.DRoomUser.Chat("Por favor, vote digitando ':votar (culpado/inocente)'!", false, 2); return; } else if (RoleplayManager.CourtJuryTime == 125) { int CourtResult = Math.Max(RoleplayManager.InnocentVotes, RoleplayManager.GuiltyVotes); if (CourtResult == 0) { base.CachedBot.DRoomUser.Chat("Obrigado pelos seus votos. O júri definiu que o réu, " + Client.GetHabbo().Username + ", é culpado de todos os crimes.", false, 2); Thread.Sleep(4000); base.CachedBot.DRoomUser.Chat("O réu permanecerá na prisão e servirá o resto de sua sentença lá.", false, 2); Client.SendNotification("Os juris definiu que você é culpado de todos os crimes. Você permanecerá na prisão e servirá o resto da sua sentença!"); return; } else if (CourtResult == RoleplayManager.GuiltyVotes) { base.CachedBot.DRoomUser.Chat("Obrigado pelo seu voto. O júri definiu que o réu, " + Client.GetHabbo().Username + ", é culpado de todos os crimes.", false, 2); Thread.Sleep(4000); base.CachedBot.DRoomUser.Chat("O réu permanecerá na prisão e servirá o resto de sua sentença lá.", false, 2); Client.SendNotification("Os juris definiu que você é culpado de todos os crimes. Você permanecerá na prisão e servirá o resto da sua sentença!"); return; } else { base.CachedBot.DRoomUser.Chat("Obrigado por seu voto. Os juris definiu que o réu, " + Client.GetHabbo().Username + ", é inocente de todos os crimes.", false, 2); Thread.Sleep(4000); base.CachedBot.DRoomUser.Chat("Eu liberto o réu e perdoo de todos os crimes.", false, 2); Client.SendNotification("Os juris definiu que você é inocente de todos os crimes. Você foi libertado da prisão!"); Client.GetRoleplay().IsJailed = false; Client.GetRoleplay().JailedTimeLeft = 0; } return; } else if (RoleplayManager.CourtJuryTime == 150) { base.CachedBot.DRoomUser.Chat("Obrigado juris. Caso encerrado.", false, 2); if (Room != null) { SpawnJuryUsersOut(true); } return; } return; } RoleplayManager.CourtVoteEnabled = false; RoleplayManager.InnocentVotes = 0; RoleplayManager.GuiltyVotes = 0; RoleplayManager.CourtJuryTime = 0; RoleplayManager.CourtTrialIsStarting = false; RoleplayManager.CourtTrialStarted = false; RoleplayManager.Defendant = null; RoleplayManager.InvitedUsersToJuryDuty.Clear(); base.EndTimer(); } catch (Exception e) { Logging.LogRPTimersError("Error in Execute() void: " + e); base.EndTimer(); } }
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); } }
/// <summary> /// Kills the user normally, depends on the event mode /// </summary> /// <param name="Client"></param> private void EventDeath(GameClient Client) { if (Client.GetRoleplay().Game == null) { NormalDeath(Client); } #region Brawl else if (Client.GetRoleplay().Game == Games.RoleplayGameManager.GetGame(Games.GameMode.Brawl)) { Client.GetRoleplay().ReplenishStats(); RoleplayManager.Shout(Client, "*Nocauteado e expulso da briga*", 32); RoleplayManager.SpawnChairs(Client, "es_bench"); Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado e perdeu a briga!")); Client.GetRoleplay().Game.RemovePlayerFromGame(Client); } #endregion #region Team Brawl else if (Client.GetRoleplay().Game == Games.RoleplayGameManager.GetGame(Games.GameMode.TeamBrawl)) { Client.GetRoleplay().ReplenishStats(); RoleplayManager.Shout(Client, "*Sai da briga por ser nocauteado*", 32); #region Graveyard Spawn if (Client.GetRoomUser() != null) { int ArenaStartX = Convert.ToInt32(RoleplayData.GetData("teambrawl", "graveyardstartx")); int ArenaStartY = Convert.ToInt32(RoleplayData.GetData("teambrawl", "graveyardstarty")); int ArenaFinishX = Convert.ToInt32(RoleplayData.GetData("teambrawl", "graveyardfinishx")); int ArenaFinishY = Convert.ToInt32(RoleplayData.GetData("teambrawl", "graveyardfinishy")); CryptoRandom Random = new CryptoRandom(); 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)]; Client.GetRoomUser().ClearMovement(true); var Room = RoleplayManager.GenerateRoom(Client.GetRoomUser().RoomId); if (Room != null) { Room.GetGameMap().UpdateUserMovement(new Point(Client.GetRoomUser().X, Client.GetRoomUser().Y), new Point(RandomSquare.X, RandomSquare.Y), Client.GetRoomUser()); } Client.GetRoomUser().X = RandomSquare.X; Client.GetRoomUser().Y = RandomSquare.Y; Client.GetRoomUser().UpdateNeeded = true; } #endregion Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado da Briga de Times!")); if (!Client.GetRoleplay().Team.LostMembers.Contains(Client.GetHabbo().Id)) { Client.GetRoleplay().Team.LostMembers.Add(Client.GetHabbo().Id); } if (Client.GetRoleplay().Team.LostMembers.Count == Client.GetRoleplay().Team.Members.Count) { Client.GetRoleplay().Team.InGame = false; } } #endregion #region SoloQueue else if (Client.GetRoleplay().Game.GetGameMode() == Games.GameMode.SoloQueue || Client.GetRoleplay().Game.GetGameMode() == Games.GameMode.SoloQueueGuns) { Client.GetRoleplay().ReplenishStats(); RoleplayManager.Shout(Client, "*Sai do Soloqueue por ser nocauteado*", 32); RoleplayManager.SpawnChairs(Client, "es_bench"); Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado do Soloqueue!")); Client.GetRoleplay().Game.RemovePlayerFromGame(Client); } #endregion #region Colour Wars else if (Client.GetRoleplay().Game == Games.RoleplayGameManager.GetGame(Games.GameMode.ColourWars)) { Client.GetRoleplay().ReplenishStats(); Client.GetRoleplay().NeedsRespawn = true; RoleplayManager.Shout(Client, "*Nocauteado! Você está sendo levado para sala de revivência*", 32); RoleplayManager.SendUser(Client, Client.GetRoleplay().Team.SpawnRoom); Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado. Vai demorar dois minutos para recuperar.")); new Thread(() => { Thread.Sleep(2000); int Counter = 0; while (Counter < 200) { if (Client == null || Client.GetRoleplay() == null || Client.GetRoleplay().Game == null || Client.GetRoleplay().Team == null || Client.GetRoleplay().Game.GetGameMode() != Games.GameMode.ColourWars) { if (Client.GetRoomUser() != null) { Client.GetRoomUser().CanWalk = true; } if (Client.GetRoleplay() != null) { Client.GetRoleplay().NeedsRespawn = false; } break; } Counter++; Thread.Sleep(1000); if (Counter == 30) { Client.SendWhisper("Você tem 1 minuto, 30 segundos restantes até que você possa se mover novamente!", 1); } else if (Counter == 60) { Client.SendWhisper("Você tem 1 minuto restante até que você possa se mover novamente!", 1); } else if (Counter == 90) { Client.SendWhisper("Você tem 30 segundos restantes até que você possa se mover novamente!", 1); } else if (Counter == 110) { Client.SendWhisper("Você tem 10 segundos restantes até que você possa se mover novament!", 1); } else if (Counter == 120) { Client.SendWhisper("Você agora está consciente e pode se mover!", 1); } else if (Counter >= 121) { if (Client.GetRoomUser() != null) { Client.GetRoomUser().CanWalk = true; } if (Client.GetRoleplay() != null) { Client.GetRoleplay().NeedsRespawn = false; } break; } } }).Start(); } #endregion #region Mafia Wars else if (Client.GetRoleplay().Game == Games.RoleplayGameManager.GetGame(Games.GameMode.MafiaWars)) { Client.GetRoleplay().ReplenishStats(); Client.GetRoleplay().NeedsRespawn = true; RoleplayManager.Shout(Client, "*Nocauteado! Você está sendo levado para sala de revivência*", 32); RoleplayManager.SendUser(Client, Client.GetRoleplay().Team.SpawnRoom); Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado! Levará 35 segundos para recuperar.")); new Thread(() => { Thread.Sleep(2000); if (Client.GetRoomUser() != null) { Client.GetRoomUser().ApplyEffect(EffectsList.Ghost); Client.GetRoomUser().Frozen = true; } Thread.Sleep(4000); int Counter = 0; while (Counter < 30) { if (Client == null) { break; } if (Client.GetRoomUser() == null) { break; } Counter++; Thread.Sleep(1000); if (Counter == 30) { Client.SendWhisper("Agora você pode se mover novamente!", 1); if (Client.GetRoomUser() != null) { Client.GetRoomUser().ApplyEffect(EffectsList.None); Client.GetRoomUser().CanWalk = true; Client.GetRoomUser().Frozen = false; } if (Client.GetRoleplay() != null) { Client.GetRoleplay().NeedsRespawn = false; } break; } } }).Start(); } #endregion }
/// <summary> /// Ends the jailbreak /// </summary> public override void Execute() { try { if (!JailbreakManager.JailbreakActivated) { base.EndTimer(); return; } List <GameClient> CurrentJailbrokenUsers = PlusEnvironment.GetGame().GetClientManager().GetClients.Where(x => x != null && x.GetHabbo() != null && x.GetRoleplay() != null && x.GetRoleplay().Jailbroken).ToList(); GameClient UserJailbreaking = JailbreakManager.UserJailbreaking; if (CurrentJailbrokenUsers.Count <= 0) { JailbreakManager.JailbreakActivated = false; if (JailbreakManager.FenceBroken) { Room Room = RoleplayManager.GenerateRoom(Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid"))); if (Room != null) { JailbreakManager.GenerateFence(Room); } JailbreakManager.FenceBroken = false; } MessagePoliceOfficers(); base.EndTimer(); return; } if (UserJailbreaking != null || UserJailbreaking.GetHabbo().CurrentRoom != null || UserJailbreaking.GetRoomUser() != null) { if (UserJailbreaking.GetHabbo().CurrentRoomId != Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid"))) { JailbreakManager.JailbreakActivated = false; if (JailbreakManager.FenceBroken) { Room Room = RoleplayManager.GenerateRoom(Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid"))); if (Room != null) { JailbreakManager.GenerateFence(Room); } JailbreakManager.FenceBroken = false; } foreach (GameClient Client in CurrentJailbrokenUsers) { if (Client == null || Client.GetRoleplay() == null || Client.GetHabbo() == null) { continue; } if (Client.GetRoleplay().Jailbroken&& !JailbreakManager.FenceBroken) { Client.GetRoleplay().Jailbroken = false; } if (Client.GetHabbo().CurrentRoomId == Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid"))) { RoleplayManager.GetLookAndMotto(Client); RoleplayManager.SpawnBeds(Client, "bed_silo_one"); Client.SendNotification("O processo para fuga da prisão parou, então você voltou para ela!"); } else { Client.SendNotification("O processo para fuga da prisão parou, então você voltou para ela!"); RoleplayManager.SendUser(Client, Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid"))); } } MessagePoliceOfficers(); RoleplayManager.Shout(UserJailbreaking, "*Para a fuga*", 4); base.EndTimer(); return; } } TimeCount++; TimeLeft -= 1000; if (TimeLeft > 0) { if (TimeCount == 60) { if (UserJailbreaking != null || UserJailbreaking.GetHabbo().CurrentRoom != null || UserJailbreaking.GetRoomUser() != null) { RoleplayManager.Shout(UserJailbreaking, "*Estou mais perto de terminar a fuga dos prisioneiros [" + (TimeLeft / 60000) + " minutos restantes]*", 4); } TimeCount = 0; } return; } foreach (GameClient Client in CurrentJailbrokenUsers) { if (Client == null || Client.GetRoleplay() == null || Client.GetHabbo() == null) { continue; } RoleplayManager.Shout(Client, "*Escapa completamente da prisão graças a um parceiro*", 4); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Client, "ACH_Jailbreak", 1); Client.GetRoleplay().Jailbroken = false; Client.GetRoleplay().IsWanted = false; Client.GetRoleplay().IsJailed = false; Client.GetHabbo().Poof(); } if (JailbreakManager.FenceBroken) { Room Room = RoleplayManager.GenerateRoom(Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid"))); if (Room != null) { JailbreakManager.GenerateFence(Room); } JailbreakManager.FenceBroken = false; } JailbreakManager.JailbreakActivated = false; JailbreakManager.UserJailbreaking = null; base.EndTimer(); return; } catch (Exception e) { Logging.LogRPTimersError("Error in Execute() void: " + e); base.EndTimer(); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null || Session.GetHabbo().CurrentRoomId != Room.Id || !Room.CheckRights(Session, true)) { return; } char[] validLetters = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', '\r' }; string Map = Packet.PopString().ToLower().TrimEnd(); if (Map.Length > 4159) //4096 + New Lines = 4159 { Session.SendMessage(new RoomNotificationComposer("floorplan_editor.error", "errors", "(%%%general%%%): %%%too_large_area%%% (%%%max%%% 2048 %%%tiles%%%)")); return; } if (Map.Any(letter => !validLetters.Contains(letter)) || String.IsNullOrEmpty(Map)) { Session.SendMessage(new RoomNotificationComposer("floorplan_editor.error", "errors", "Opa, parece que você entrou em um mapa do piso inválido!")); return; } var modelData = Map.Split((char)13); int SizeY = modelData.Length; int SizeX = modelData[0].Length; if (SizeY > 64 || SizeX > 64) { Session.SendMessage(new RoomNotificationComposer("floorplan_editor.error", "errors", "A altura e a largura máximas de um modelo são 64x64!")); return; } int lastLineLength = 0; bool isValid = true; for (int i = 0; i < modelData.Length; i++) { if (lastLineLength == 0) { lastLineLength = modelData[i].Length; continue; } if (lastLineLength != modelData[i].Length) { isValid = false; } } if (!isValid) { Session.SendMessage(new RoomNotificationComposer("floorplan_editor.error", "errors", "Opa, parece que você entrou em um mapa do piso inválido!")); return; } int DoorX = Packet.PopInt(); int DoorY = Packet.PopInt(); int DoorDirection = Packet.PopInt(); int WallThick = Packet.PopInt(); int FloorThick = Packet.PopInt(); int WallHeight = Packet.PopInt(); int DoorZ = 0; try { DoorZ = parse(modelData[DoorY][DoorX]); } catch { } if (WallThick > 1) { WallThick = 1; } if (WallThick < -2) { WallThick = -2; } if (FloorThick > 1) { FloorThick = 1; } if (FloorThick < -2) { WallThick = -2; } if (WallHeight < 0) { WallHeight = 0; } if (WallHeight > 15) { WallHeight = 15; } string ModelName = "model_bc_" + Room.Id; DataRow Row = null; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `room_models` WHERE `id` = @model AND `custom` = '1' LIMIT 1"); dbClient.AddParameter("model", "model_bc_" + Room.Id); Row = dbClient.getRow(); if (Row == null)//The row is still null, let's insert instead. { dbClient.SetQuery("INSERT INTO `room_models` (`id`,`door_x`,`door_y`, `door_z`, `door_dir`,`heightmap`,`custom`,`wall_height`) VALUES (@ModelName, @DoorX, @DoorY, @DoorZ, @DoorDirection, @Map,'1',@WallHeight)"); dbClient.AddParameter("ModelName", "model_bc_" + Room.Id); dbClient.AddParameter("DoorX", DoorX); dbClient.AddParameter("DoorY", DoorY); dbClient.AddParameter("DoorDirection", DoorDirection); dbClient.AddParameter("DoorZ", DoorZ); dbClient.AddParameter("Map", Map); dbClient.AddParameter("WallHeight", WallHeight); dbClient.RunQuery(); } else { dbClient.SetQuery("UPDATE `room_models` SET `heightmap` = @Map, `door_x` = @DoorX, `door_y` = @DoorY, `door_z` = @DoorZ, `door_dir` = @DoorDirection, `wall_height` = @WallHeight WHERE `id` = @ModelName LIMIT 1"); dbClient.AddParameter("ModelName", "model_bc_" + Room.Id); dbClient.AddParameter("Map", Map); dbClient.AddParameter("DoorX", DoorX); dbClient.AddParameter("DoorY", DoorY); dbClient.AddParameter("DoorZ", DoorZ); dbClient.AddParameter("DoorDirection", DoorDirection); dbClient.AddParameter("WallHeight", WallHeight); dbClient.RunQuery(); } dbClient.SetQuery("UPDATE `rooms` SET `model_name` = @ModelName, `wallthick` = @WallThick, `floorthick` = @FloorThick WHERE `id` = '" + Room.Id + "' LIMIT 1"); dbClient.AddParameter("ModelName", "model_bc_" + Room.Id); dbClient.AddParameter("WallThick", WallThick); dbClient.AddParameter("FloorThick", FloorThick); dbClient.RunQuery(); } Room.RoomData.ModelName = ModelName; Room.RoomData.WallThickness = WallThick; Room.RoomData.FloorThickness = FloorThick; List <RoomUser> UsersToReturn = Room.GetRoomUserManager().GetRoomUsers().ToList(); PlusEnvironment.GetGame().GetRoomManager().ReloadModel(ModelName); PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(Room); foreach (RoomUser User in UsersToReturn) { if (User == null || User.GetClient() == null) { continue; } RoleplayManager.SendUser(User.GetClient(), Room.Id, "A sala em que você estava estava apenas descarregada devido a um construtor de salas editando o modelo do quarto!"); } }
/// <summary> /// Kills the user normally, sends them to the hospital /// </summary> /// <param name="Client"></param> private void NormalDeath(GameClient Client) { RoleplayManager.Shout(Client, "*Cai no chão desmaiado e morre*", 32); if (Client.GetRoomUser() != null) { Client.GetRoomUser().ApplyEffect(0); } #region Lays User Down if (Client.GetRoomUser() != null) { var User = Client.GetRoomUser(); if (User.isLying) { User.RemoveStatus("lay"); User.isLying = false; } if (User.isSitting) { User.RemoveStatus("sit"); User.isSitting = false; } if ((User.RotBody % 2) == 0) { if (User == null) { return; } try { User.Statusses.Add("lay", "1.0 null"); User.Z -= 0.35; User.isLying = true; User.UpdateNeeded = true; } catch { } } else { User.RotBody--; User.Statusses.Add("lay", "1.0 null"); User.Z -= 0.35; User.isLying = true; User.UpdateNeeded = true; } } #endregion if (Client.GetRoleplay().IsWorking) { WorkManager.RemoveWorkerFromList(Client); Client.GetRoleplay().IsWorking = false; } Client.GetRoleplay().IsDead = true; Client.GetRoleplay().DeadTimeLeft = RoleplayManager.DeathTime; if (Client.GetRoleplay() != null && Client.GetRoleplay().TimerManager != null && Client.GetRoleplay().TimerManager.ActiveTimers != null) { if (Client.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("death")) { Client.GetRoleplay().TimerManager.ActiveTimers["death"].EndTimer(); } Client.GetRoleplay().TimerManager.CreateTimer("death", 1000, true); } PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Client, QuestType.DEATH); int HospitalRID = Convert.ToInt32(RoleplayData.GetData("hospital", "insideroomid")); RoomData roomData = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(HospitalRID); if (Client != null && Client.GetHabbo() != null) { if (Client.GetHabbo().CurrentRoomId == HospitalRID) { RoleplayManager.GetLookAndMotto(Client); RoleplayManager.SpawnBeds(Client, "hosptl_bed"); Client.SendMessage(new RoomNotificationComposer("room_death_axe", "message", "Você morreu! Você está sendo levado ao Hospital.")); } else { Client.SendMessage(new RoomNotificationComposer("room_death_axe", "message", "Você morreu! Você está sendo levado ao Hospital.")); RoleplayManager.SendUser(Client, HospitalRID); } } }
public void Parse(GameClient Session, ClientPacket Packet) { RoomUser User = Session.GetRoomUser(); Group Group = GroupManager.GetJob(Session.GetRoleplay().JobId); #region Conditions if (User == null) { return; } if (Group == null) { Session.SendNotification("Somente um policial pode usar esta ferramenta!"); return; } if (Group.Id <= 0) { Session.SendNotification("Somente um policial pode usar esta ferramenta!!"); return; } if (!GroupManager.HasJobCommand(Session, "guide")) { Session.SendNotification("Somente um policial pode usar esta ferramenta!!"); return; } if (Session.GetRoleplay().IsDead) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); Session.SendWhisper("Você não pode trabalhar enquanto está morto!", 1); return; } if (Session.GetRoleplay().IsJailed) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); Session.SendWhisper("Você não pode trabalhar enquanto está preso!", 1); return; } if (Session.GetRoleplay().IsWorkingOut) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); Session.SendWhisper("Você não pode trabalhar enquanto está malhando!", 1); return; } if (Session.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("sendhome")) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); Session.SendWhisper("Você não pode trabalhar enquanto foi enviado para casa!", 1); return; } if (Session.GetRoleplay().Game != null) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); Session.SendWhisper("Você não pode trabalhar enquanto estiver dentro de um evento!", 1); return; } if (GroupManager.HasJobCommand(Session, "guide") && RoleplayManager.PurgeStarted) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); Session.SendWhisper("Você não pode começar a trabalhar como policial enquanto uma purga foi ativada!", 1); return; } if (GroupManager.HasJobCommand(Session, "guide") && Session.GetHabbo().CurrentRoom.RoomData.TurfEnabled&& !RoleplayManager.StartWorkInPoliceHQ) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); Session.SendWhisper("Você não pode trabalhar como policial enquanto está dentro de um território!", 1); return; } if (BlackListManager.BlackList.Contains(Session.GetHabbo().Id)) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); Session.SendWhisper("Desculpe, mas você está na lista negra da corporação policial!", 1); return; } #endregion GuideManager guideManager = PlusEnvironment.GetGame().GetGuideManager(); bool onDuty = Packet.PopBoolean(); Session.GetRoleplay().HandlingCalls = Packet.PopBoolean(); Session.GetRoleplay().HandlingJailbreaks = Packet.PopBoolean(); Session.GetRoleplay().HandlingHeists = Packet.PopBoolean(); if (onDuty) { if (Session.GetRoleplay().TryGetCooldown("startwork", true)) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); return; } if (Session.GetRoleplay().CurEnergy <= 0) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); Session.SendWhisper("Você não tem energia para trabalhar!", 1); return; } if (!Session.GetRoleplay().IsWorking) { Session.GetRoleplay().IsWorking = true; guideManager.AddGuide(Session); Session.Shout("*Começa a trabalhar como " + GroupManager.GetJob(Session.GetRoleplay().JobId).Name + " no cargo " + GroupManager.GetJobRank(Session.GetRoleplay().JobId, Session.GetRoleplay().JobRank).Name + "*", 4); RoleplayManager.GetLookAndMotto(Session); WorkManager.AddWorkerToList(Session); Session.GetRoleplay().TimerManager.CreateTimer("work", 1000, true); Session.GetRoleplay().CooldownManager.CreateCooldown("startwork", 1000, 10); if (Session.GetHabbo().CurrentRoomId != Convert.ToInt32(RoleplayData.GetData("police", "headquartersroomid"))) { if (RoleplayManager.StartWorkInPoliceHQ) { RoleplayManager.SendUser(Session, Convert.ToInt32(RoleplayData.GetData("police", "headquartersroomid"))); } } } } else { if (Session.GetRoleplay().TryGetCooldown("stopwork", true)) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); return; } if (Session.GetRoleplay().IsWorking) { Session.GetRoleplay().IsWorking = false; guideManager.RemoveGuide(Session); Session.Shout("*Para de trabalhar como " + GroupManager.GetJob(Session.GetRoleplay().JobId).Name + " [" + GroupManager.GetJobRank(Session.GetRoleplay().JobId, Session.GetRoleplay().JobRank).Name + "]*", 4); WorkManager.RemoveWorkerFromList(Session); Session.GetHabbo().Poof(); Session.GetRoleplay().CooldownManager.CreateCooldown("stopwork", 1000, 10); } } Session.SendMessage(new HelperToolConfigurationComposer(Session)); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { House House; if (!Room.TryGetHouse(out House)) { Session.SendWhisper("Você não está dentro de uma casa!", 1); return; } if (House.OwnerId != Session.GetHabbo().Id&& !Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { Session.SendWhisper("Você não é o dono da casa!", 1); return; } if (Params.Length == 1) { Session.SendWhisper("Digite o nome do usuário que deseja expulsar da sala.", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null || TargetClient.GetRoomUser() == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online.", 1); return; } if (TargetClient.GetRoomUser().RoomId != Room.RoomId) { Session.SendWhisper("Este usuário não está em sua casa!", 1); return; } if (TargetClient.GetHabbo().Username == Session.GetHabbo().Username) { Session.SendWhisper("Você não pode se expulsar da casa!", 1); return; } Room TargetRoom; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(TargetClient.GetHabbo().CurrentRoomId, out TargetRoom)) { return; } if (Params.Length > 2) { TargetClient.SendNotification("Você foi expulso da casa pelo seguinte motivo: " + CommandManager.MergeParams(Params, 2)); } else { TargetClient.SendNotification("Você foi expulso da casa."); } if (TargetClient.GetRoomUser() != null) { if (TargetClient.GetRoomUser().RoomId == House.Sign.RoomId) { return; } } RoomData roomData = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(House.Sign.RoomId); RoleplayManager.SendUser(TargetClient, roomData.Id); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { List <string> CantSummon = new List <string>(); int OnlineUsers = 0; foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (client == null || client.GetHabbo() == null) { continue; } if (client == Session) { continue; } if (client.GetHabbo().CurrentRoom != null) { if (client.GetHabbo().CurrentRoom == Room) { continue; } if (client.GetHabbo().CurrentRoom.TutorialEnabled) { continue; } } OnlineUsers++; if (client.GetRoleplay().Game != null) { CantSummon.Add(client.GetHabbo().Username); continue; } if (client.GetRoleplay().IsDead) { client.GetRoleplay().IsDead = false; client.GetRoleplay().ReplenishStats(true); client.GetHabbo().Poof(); } if (client.GetRoleplay().IsJailed) { client.GetRoleplay().IsJailed = false; client.GetRoleplay().JailedTimeLeft = 0; client.GetHabbo().Poof(); } RoleplayManager.SendUser(client, Room.Id, "Você foi convocado por " + Session.GetHabbo().Username + "!"); } if (OnlineUsers > 0) { Session.Shout("*Convoca todos os usuários online para a sala*", 23); } else { Session.SendWhisper("Desculpa! Não há outros usuários online neste momento!", 1); return; } if (CantSummon.Count > 0) { string Users = ""; foreach (string user in CantSummon) { Users += user + ","; } Session.SendMessage(new MOTDNotificationComposer("Desculpe, não foi possível trazer os seguintes usuários, pois estão dentro de um Evento!\n\n " + Users)); } }