/// <summary> /// Generates a new game /// </summary> /// <param name="gameMode"></param> /// <returns></returns> private static IGame GetNewGame(GameMode gameMode) { switch (gameMode) { case GameMode.HungerGames: return(new HungerGames(Convert.ToInt32(RoleplayData.GetData("hungergames", "usersrequired")), GameMode.HungerGames)); case GameMode.Brawl: return(new Brawl(Convert.ToInt32(RoleplayData.GetData("brawl", "usersrequired")), GameMode.Brawl)); case GameMode.ColourWars: return(new ColourWars(Convert.ToInt32(RoleplayData.GetData("colourwars", "usersrequired")), GameMode.ColourWars)); case GameMode.MafiaWars: return(new MafiaWars(Convert.ToInt32(RoleplayData.GetData("mafiawars", "usersrequired")), GameMode.MafiaWars)); case GameMode.TeamBrawl: return(new TeamBrawl(Convert.ToInt32(RoleplayData.GetData("teambrawl", "usersrequired")), GameMode.TeamBrawl)); case GameMode.SoloQueue: return(new SoloQueue(2, GameMode.SoloQueue)); case GameMode.SoloQueueGuns: return(new SoloQueueGuns(2, GameMode.SoloQueueGuns)); default: return(null); } }
/// <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); }
/// <summary> /// Creates a game based on the string gameMode /// </summary> /// <param name="gameMode"></param> /// <returns></returns> public static IGame CreateGame(string gameMode) { GameMode mode = GameList.GetGameModeType(gameMode); IGame game = GetNewGame(mode); if (game == null || RunningGames.ContainsKey(mode)) { return(null); } string EventData = RoleplayData.GetData("eventslobby", gameMode); if (EventData != null) { int EventsLobby = Convert.ToInt32(EventData); var EventsRoom = RoleplayManager.GenerateRoom(EventsLobby); if (EventsRoom != null) { EventsRoom.RoleplayEvent = game; EventsRoom.RoomData.RoleplayEvent = EventsRoom.RoleplayEvent; PlusEnvironment.GetGame().GetRoomManager().UpdateRoom(EventsRoom); } } RunningGames.Add(mode, game); if (GameTick == null || GameTick.ThreadState != ThreadState.Running) { GameTick = new Thread(TickGames); GameTick.Start(); } return(game); }
/// <summary> /// Gets the coins from the users dead body /// </summary> public int GetCoins(GameClient TargetClient, RoleplayBot Bot = null) { if (TargetClient != null && TargetClient.GetHabbo() != null) { if (TargetClient.GetHabbo().VIPRank > 1) { return(0); } if (TargetClient.GetHabbo().Credits < 3) { return(0); } } if (Bot != null) { int MinMoney = Convert.ToInt32(RoleplayData.GetData("bots", "minmoney")); int MaxMoney = Convert.ToInt32(RoleplayData.GetData("bots", "maxmoney")); if (MaxMoney == 0) { return(0); } CryptoRandom Random = new CryptoRandom(); return(Random.Next(MinMoney, (MaxMoney + 1))); } return(TargetClient.GetHabbo().Credits / 3); }
/// <summary> /// Adds exp to the farming skill /// </summary> public static void AddEXP(GameClient Session, int Amount) { try { Amount = Convert.ToInt32(RoleplayData.GetData("farming", "modifier")) * Amount; if (Session != null && Session.GetRoleplay() != null) { Session.GetRoleplay().FarmingStats.Exp += Amount; if (LevelUp(Session)) { Session.GetRoleplay().FarmingStats.Level += 1; Session.SendWhisper("Você acabou de upar sua agricultura! Agora é Nível: " + Session.GetRoleplay().FarmingStats.Level + "."); } else { Session.SendWhisper("Você recebeu " + Amount + " XP! para o seu próximo nível, você precisa " + (levels[Session.GetRoleplay().FarmingStats.Level + 1] - Session.GetRoleplay().FarmingStats.Exp) + "XP para alcançar " + (Session.GetRoleplay().FarmingStats.Level + 1), 1); } } } catch { } }
public static void AddStrengthEXP(GameClient Session, int amount) { try { amount = Convert.ToInt32(RoleplayData.GetData("strength", "modifier")) * amount; if (Session != null && Session.GetRoleplay() != null) { Session.GetRoleplay().StrengthEXP += amount; if (LevelUp(Session, "strength")) { Session.GetRoleplay().Strength += 1; Session.Shout("*Se sente um pouco mais forte [+1 Força]*", 4); } else { Session.SendWhisper("Malhando: " + String.Format("{0:N0}", Session.GetRoleplay().StrengthEXP) + "/" + String.Format("{0:N0}", (StrengthLevels[Session.GetRoleplay().Strength + 1])), 1); } } } catch { } }
public static void AddStaminaEXP(GameClient Session, int amount) { try { amount = Convert.ToInt32(RoleplayData.GetData("stamina", "modifier")) * amount; if (Session != null && Session.GetRoleplay() != null) { Session.GetRoleplay().StaminaEXP += amount; if (LevelUp(Session, "stamina")) { Session.GetRoleplay().Stamina += 1; Session.GetRoleplay().MaxEnergy = (100 + Session.GetRoleplay().Stamina * 5); Session.Shout("*Se senta com mais vida [+1 Vigor]*", 4); } else { Session.SendWhisper("Malhando: " + String.Format("{0:N0}", Session.GetRoleplay().StaminaEXP) + "/" + String.Format("{0:N0}", (StaminaLevels[Session.GetRoleplay().Stamina + 1])), 1); } } } catch { } }
public static void AddIntelligenceEXP(GameClient Session, int amount) { try { amount = Convert.ToInt32(RoleplayData.GetData("intelligence", "modifier")) * amount; if (Session != null && Session.GetRoleplay() != null) { Session.GetRoleplay().IntelligenceEXP += amount; if (LevelUp(Session, "intelligence")) { Session.GetRoleplay().Intelligence += 1; Session.Shout("*Se sente um pouco mais inteligente [+1 Inteligência]*", 4); } else { Session.SendWhisper("Lendo: " + String.Format("{0:N0}", Session.GetRoleplay().IntelligenceEXP) + "/" + String.Format("{0:N0}", (IntelligenceLevels[Session.GetRoleplay().Intelligence + 1])), 1); } } } catch { } }
public static void AddLevelEXP(GameClient Session, int amount) { try { Session.GetRoleplay().RefreshStatDialogue(); amount = Convert.ToInt32(RoleplayData.GetData("level", "modifier")) * amount; if (Session != null && Session.GetRoleplay() != null) { Session.GetRoleplay().LevelEXP += amount; if (LevelUp(Session, "level")) { Session.GetRoleplay().Level += 1; Session.GetRoleplay().RefreshStatDialogue(); if (PlusEnvironment.GetGame().GetCacheManager().ContainsUser(Session.GetHabbo().Id)) { PlusEnvironment.GetGame().GetCacheManager().TryUpdateUser(Session); } Session.SendWhisper("Você upou seu nível, agora você é Nível: " + Session.GetRoleplay().Level + "."); } else { Session.SendWhisper("Você recebeu " + String.Format("{0:N0}", amount) + "XP! você precisa de " + String.Format("{0:N0}", (Levels[Session.GetRoleplay().Level + 1] - Session.GetRoleplay().LevelEXP)) + " para ir para o nível " + (Session.GetRoleplay().Level + 1), 1); } } } catch { } }
public override void HandleRequest(GameClient Client, string Message) { if (!OnDuty) { return; } if (GetBotRoleplay().WalkingToItem) { return; } if (RespondToSpeech(Client, Message)) { return; } string Name = GetBotRoleplay().Name.ToLower(); int WeedCost = Convert.ToInt32(RoleplayData.GetData("drugs", "weedcost")); int CocaineCost = Convert.ToInt32(RoleplayData.GetData("drugs", "cocainecost")); if (Message.ToLower() == Name) { GetRoomUser().Chat("Sim " + Client.GetHabbo().Username + ", você quer me vender drogas?", true); } else if (Message.ToLower() == "droga" || Message.ToLower() == "drogas" || Message.ToLower() == "valor") { string WhisperMessage = "Atualmente, estou comprando 10g de maconha por R$" + String.Format("{0:N0}", WeedCost) + " e 10g de cocaína por R$" + String.Format("{0:N0}", CocaineCost) + "!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); } else if (Message.ToLower() == "maconha") { if (Client.GetRoleplay().Weed < 15) { string WhisperMessage = "Você não tem 15g de maconha para me vender!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } Client.GetRoleplay().Weed -= 10; Client.GetHabbo().Credits += WeedCost; Client.GetHabbo().UpdateCreditsBalance(); GetRoomUser().Chat("*Compra 10g de maconha de " + Client.GetHabbo().Username + " por R$" + String.Format("{0:N0}", WeedCost) + "*", true); } else if (Message.ToLower() == "cocaina") { if (Client.GetRoleplay().Cocaine < 15) { string WhisperMessage = "Você não tem 15g de cocaína para me vender!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } Client.GetRoleplay().Cocaine -= 15; Client.GetHabbo().Credits += CocaineCost; Client.GetHabbo().UpdateCreditsBalance(); GetRoomUser().Chat("*Compra 15g de cocaína de " + Client.GetHabbo().Username + " por R$" + String.Format("{0:N0}", CocaineCost) + "*", true); } }
public bool TeamCanBeJoined(RoleplayTeam team) { if (team.Members.Count >= Convert.ToInt32(RoleplayData.GetData("teambrawl", "maxusersperteam"))) { return(false); } return(true); }
public InvitationTimer(string Type, int Time, bool Forever, object[] Params) : base(Type, Time, Forever, Params) { // 3 minutes converted to milliseconds int InvitationTime = Convert.ToInt32(RoleplayData.GetData("court", "invitationtime")); TimeLeft = InvitationTime * 60000; TimeCount = 0; }
public JailbreakTimer(string Type, int Time, bool Forever, object[] Params) : base(Type, Time, Forever, Params) { // minutes converted to miliseconds int JailbreakTime = Convert.ToInt32(RoleplayData.GetData("jailbreak", "timer")); TimeLeft = JailbreakTime * 60000; TimeCount = 0; }
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 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) { #region Variables int Cost = LotteryManager.Cost; int LotteryRoom = Convert.ToInt32(RoleplayData.GetData("bank", "room")); //bank = lottery #endregion #region Conditions if (Room.Id != LotteryRoom) { Session.SendWhisper("Você deve estar na loja da loteria para comprar um bilhete!", 1); return; } if (Session.GetHabbo().Credits < Cost) { Session.SendWhisper("Você não tem dinheiro suficiente para comprar um bilhete!", 1); return; } if (LotteryManager.LotteryTickets.ContainsKey(Session.GetHabbo().Id)) { Session.SendWhisper("Você já comprou um bilhete para esta loteria!", 1); return; } if (LotteryManager.LotteryFull()) { Session.SendWhisper("Desculpe, mas não há tickets para venda!", 1); return; } #endregion #region Execute int TicketId = LotteryManager.LotteryTickets.Count + 1; LotteryManager.LotteryTickets.TryAdd(Session.GetHabbo().Id, TicketId); Session.Shout("*Compra um bilhete de loteria da loja*", 4); Session.GetHabbo().Credits -= Cost; Session.GetHabbo().UpdateCreditsBalance(); using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `rp_lottery` VALUES (@user, @ticket)"); dbClient.AddParameter("user", Session.GetHabbo().Id); dbClient.AddParameter("ticket", TicketId); dbClient.RunQuery(); } #endregion }
/// <summary> /// Sends out a hotel alert based on the gamemode /// </summary> /// <param name="Mode"></param> public static void EventAlert(IGame Game) { int GameRoom; if (int.TryParse(RoleplayData.GetData("eventslobby", Game.GetName().Replace(" ", "").ToLower()), out GameRoom)) { var Room = RoleplayManager.GenerateRoom(GameRoom); if (Room != null) { PlusEnvironment.GetGame().GetClientManager().SendMessage(new RoomNotificationComposer(null, "event", "", 0, Game.GetGameMode(), Room)); } } }
/// <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; } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int ClothingRoom = Convert.ToInt32(RoleplayData.GetData("clothing", "roomid")); if (Session.GetRoomUser() == null || !Session.GetHabbo().InRoom) { Session.SendNotification("Você so pode mudar seu visual na Loja de Roupas! [Quarto ID: " + ClothingRoom + "]"); } if (Session.GetRoomUser().RoomId != ClothingRoom) { Session.SendNotification("Você so pode mudar seu visual na Loja de Roupas! [Quarto ID: " + ClothingRoom + "]"); } Session.SendMessage(new WardrobeComposer(Session)); }
/// <summary> /// Removes the cooldown /// </summary> public override void Execute() { if (base.Client == null || base.Client.GetRoleplay() == null || base.Client.GetHabbo() == null) { base.EndCooldown(); return; } TimeLeft -= Convert.ToInt32(RoleplayData.GetData("farming", "cooldown")); if (TimeLeft > 0) { return; } base.EndCooldown(); }
/// <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 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 SendToPoint(GameClient Client) { try { if (Client == null || Client.GetRoleplay() == null || Client.GetHabbo() == null || Client.GetRoomUser() == null) { return; } if (Client.GetRoleplay().Game == null) { return; } int SpawnX = 0; int SpawnY = 0; if (Client.GetRoleplay().Game.GetGameMode() == GameMode.ColourWars) { SpawnX = Convert.ToInt32(RoleplayData.GetData("colourwarspoint", Name.ToLower() + "spawnx")); SpawnY = Convert.ToInt32(RoleplayData.GetData("colourwarspoint", Name.ToLower() + "spawny")); } else if (Client.GetRoleplay().Game.GetGameMode() == GameMode.TeamBrawl) { SpawnX = Convert.ToInt32(RoleplayData.GetData("teambrawlpoint", Name.ToLower() + "spawnx")); SpawnY = Convert.ToInt32(RoleplayData.GetData("teambrawlpoint", Name.ToLower() + "spawny")); } else if (Client.GetRoleplay().Game.GetGameMode() == GameMode.MafiaWars) { SpawnX = Convert.ToInt32(RoleplayData.GetData("mafiawarspoint", Name.ToLower() + "spawnx")); SpawnY = Convert.ToInt32(RoleplayData.GetData("mafiawarspoint", Name.ToLower() + "spawny")); } var OldCoord = new Point(Client.GetRoomUser().Coordinate.X, Client.GetRoomUser().Coordinate.Y); var NewCoord = new Point(SpawnX, SpawnY); Client.GetHabbo().CurrentRoom.GetGameMap().UpdateUserMovement(OldCoord, NewCoord, Client.GetRoomUser()); Client.GetRoomUser().SetPos(SpawnX, SpawnY, Client.GetHabbo().CurrentRoom.GetGameMap().GetHeightForSquare(NewCoord)); } catch (Exception e) { Logging.LogRPGamesError("Error in SendToPoint() void: " + e); } }
/// <summary> /// Initiates the bots death /// </summary> public void InitiateDeath() { this.Dead = true; this.UserAttacking = null; this.TimerManager.EndAllTimers(); this.CurHealth = this.MaxHealth; RoomUser Bot = RoleplayBotManager.GetDeployedBotById(this.Id); if (Bot == null) { return; } int HospitalRoomId = Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2")); Room Hospital = RoleplayManager.GenerateRoom(HospitalRoomId); RoleplayBotManager.TransportDeployedBot(Bot, HospitalRoomId, true); this.TimerManager.CreateTimer("botdeath", this, 1000, true); }
/// <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 TutorialBadge(GameClient Client, object[] Params) { Room Room = (Room)Params[0]; int FinalTutorialRoom = Convert.ToInt32(RoleplayData.GetData("tutorial", "finishroomid")); if (Room == null) { return; } if (Room.Id != FinalTutorialRoom) { return; } if (Client == null || Client.GetHabbo() == null || Client.GetHabbo().GetBadgeComponent() == null) { return; } Client.GetHabbo().GetBadgeComponent().GiveBadge("BR248", true, Client); Client.SendNotification("You have just been awarded the 'Tutorial Master' badge for completing the tutorial!\n\nCongratulations!"); }
/// <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(); } }
/// <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); } } }
/// <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> /// Decrease our users timer /// </summary> public override void Execute() { try { if (base.Client == null || base.Client.GetHabbo() == null || base.Client.GetRoleplay() == null) { base.EndTimer(); return; } if (base.Client.GetRoomUser() == null) { return; } if (!base.Client.GetRoleplay().IsDead) { Client.GetRoleplay().UpdateTimerDialogue("Dead-Timer", "remove", Client.GetRoleplay().DeadTimeLeft, OriginalTime); if (base.Client.GetRoomUser().Frozen) { base.Client.GetRoomUser().Frozen = false; } if (base.Client.GetHabbo().CurrentRoomId == Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2"))) { RoleplayManager.SpawnChairs(base.Client, "pura_mdl3*4"); } base.Client.GetRoleplay().BeingHealed = false; base.Client.GetRoleplay().IsDead = false; base.Client.GetRoleplay().DeadTimeLeft = 0; base.Client.GetRoleplay().ReplenishStats(true); base.EndTimer(); return; } if (!base.Client.GetRoomUser().Frozen) { base.Client.GetRoomUser().Frozen = true; } if (base.Client.GetRoleplay().BeingHealed) { return; } TimeCount++; TimeLeft -= 1000; if (TimeCount == 60) { base.Client.GetRoleplay().DeadTimeLeft--; } if (TimeLeft > 0) { if (TimeCount == 60) { Client.GetRoleplay().UpdateTimerDialogue("Dead-Timer", "decrement", Client.GetRoleplay().DeadTimeLeft, OriginalTime); base.Client.SendWhisper("Você tem " + base.Client.GetRoleplay().DeadTimeLeft + " minuto(s) para ser liberado do hospital", 1); TimeCount = 0; } return; } if (base.Client.GetRoomUser().Frozen) { base.Client.GetRoomUser().Frozen = false; } if (base.Client.GetRoomUser().RoomId == Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2"))) { RoleplayManager.SpawnChairs(base.Client, "pura_mdl3*4"); } Client.GetRoleplay().UpdateTimerDialogue("Dead-Timer", "remove", Client.GetRoleplay().DeadTimeLeft, OriginalTime); RoleplayManager.Shout(base.Client, "*Recupera a consciência*", 4); Client.SendWhisper("Seu visual voltará ao original após sair do quarto!", 1); base.Client.GetRoleplay().BeingHealed = false; base.Client.GetRoleplay().IsDead = false; base.Client.GetRoleplay().DeadTimeLeft = 0; base.Client.GetRoleplay().ReplenishStats(true); base.EndTimer(); } catch (Exception e) { Logging.LogRPTimersError("Error in Execute() void: " + e); base.EndTimer(); } }