public void Execute(GameClients.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 (Session.GetRoleplay().TryGetCooldown("beijar")) { return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode beijar alguém que está ausente!", 1); return; } #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); if (Distance <= 1) { Session.Shout("*Inclina-se em " + TargetClient.GetHabbo().Username + " e dá um pequeno beijo rápido nos lábios*", 16); Session.GetRoleplay().CooldownManager.CreateCooldown("beijar", 1000, 5); RoomUser.ApplyEffect(EffectsList.Love); TargetUser.ApplyEffect(EffectsList.Love); Session.GetRoleplay().KissTimer = 5; TargetClient.GetRoleplay().KissTimer = 5; return; } else { Session.SendWhisper("Você deve se aproximar desse cidadão para beijá-lo!", 1); return; } #endregion }
public bool CanCombat(GameClient Client, RoomUser RoleplayBot) { double Distance = RoleplayManager.GetDistanceBetweenPoints2D(RoleplayBot.Coordinate, Client.GetRoomUser().Coordinate); if (Distance <= 1) { return(true); } return(false); }
private void WalkToTeleport() { RoomUser BotUserInstance = this.InteractingBot.DRoomUser; double Distance = RoleplayManager.GetDistanceBetweenPoints2D(BotUserInstance.Coordinate, this.EnteringTeleport.Coordinate); if (Distance <= 3.5) { this.OnTeleport = true; } else { BotUserInstance.MoveTo(this.EnteringTeleport.Coordinate); } }
public void ExecuteBot(GameClient Session, RoomUser Bot, Room Room) { if (!Bot.GetBotRoleplay().Jailed) { Session.SendWhisper("Desculpe, mas " + Bot.GetBotRoleplay().Name + " não está preso!", 1); return; } double Distance = RoleplayManager.GetDistanceBetweenPoints2D(Session.GetRoomUser().Coordinate, Bot.Coordinate); Wanted Wanted = RoleplayManager.WantedList.ContainsKey(Bot.GetBotRoleplay().Id) ? RoleplayManager.WantedList[Bot.GetBotRoleplay().Id] : null; int WantedTime = Wanted == null ? 5 : Wanted.WantedLevel * 5; if (Distance <= 1) { // cba rn } else { Session.SendWhisper("Você deve se aproximar de " + Bot.GetBotRoleplay().Name + "para prendê-lo!", 1); return; } }
private bool CanCombat(GameClient Client, RoomUser RoleplayBot) { Point Point; if (!this.GetAttackingPosition(out Point)) { return(false); } double Distance = RoleplayManager.GetDistanceBetweenPoints2D(RoleplayBot.Coordinate, Point); if (Distance <= 1.5) { if (this.InteractingUser.GetRoomUser().IsWalking) { int Odds = new Random().Next(this.InteractingBot.MinOdds, this.InteractingBot.MaxOdds); int Odds2 = new Random().Next(this.InteractingBot.MinOdds, this.InteractingBot.MaxOdds); if (Odds == Odds2) { RoleplayBot.Chat("*Swings at " + Client.GetHabbo().Username + ", but misses*", true, 6); RoleplayBot.GetBotRoleplay().CooldownManager.CreateCooldown("fist", 1000, 3); } } int Rot = Rotation.Calculate(GetRoomUser().X, GetRoomUser().Y, Client.GetRoomUser().X, Client.GetRoomUser().Y); GetRoomUser().SetRot(Rot, false); GetRoomUser().UpdateNeeded = true; return(true); } return(false); }
public void Execute(GameClient Session, Rooms.Room Room, string[] Params) { #region Conditions RoomUser RoomUser = Session.GetRoomUser(); if (!GroupManager.HasJobCommand(Session, "flashbang")) { Session.SendWhisper("Somente um tenente da polícia pode usar esse comando!", 1); return; } if (!Session.GetRoleplay().IsWorking) { Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1); return; } List <RoomUser> WantedUsers = Room.GetRoomUserManager().GetRoomUsers().Where(x => x != null && x.GetClient() != null && x.GetClient().GetHabbo() != null && x.GetClient().GetRoleplay() != null && RoleplayManager.WantedList.ContainsKey(x.UserId)).ToList(); if (WantedUsers.Count <= 0) { Session.SendWhisper("Não há usuários procurados nesta sala!", 1); return; } if (Session.GetRoleplay().TryGetCooldown("flashbang")) { return; } Point ClientPos = new Point(RoomUser.Coordinate.X, RoomUser.Coordinate.Y); #endregion #region Execute lock (Room.GetRoomUserManager().GetRoomUsers()) { foreach (RoomUser User in Room.GetRoomUserManager().GetRoomUsers()) { if (User == null) { continue; } if (User.GetClient() == null) { continue; } if (User.GetClient().GetHabbo() == null) { continue; } if (User.GetClient().GetRoleplay() == null) { continue; } if (Session.GetHabbo().Id == User.UserId) { continue; } if (User.IsAsleep) { continue; } if (!RoleplayManager.WantedList.ContainsKey(User.UserId)) { continue; } Point TargetClientPos = new Point(User.Coordinate.X, User.Coordinate.Y); double Distance = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos); if (Distance <= 6) { User.GetClient().GetRoleplay().TimerManager.CreateTimer("atordoar", 1000, false); User.GetClient().SendMessage(new FloodControlComposer(15)); if (User.GetClient().GetRoleplay().InsideTaxi) { User.GetClient().GetRoleplay().InsideTaxi = false; } User.Frozen = true; User.CanWalk = false; User.ClearMovement(true); } } } Session.Shout("*Atira sua granada flashbang em todos os suspeitos que estão na sala*", 37); Session.GetRoleplay().CooldownManager.CreateCooldown("flashbang", 1000, 30); return; #endregion }
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 (!GroupManager.HasJobCommand(Session, "cuff") && !Session.GetRoleplay().PoliceTrial) { Session.SendWhisper("Apenas um policial pode usar esse comando!", 1); return; } if (!Session.GetRoleplay().IsWorking&& !Session.GetRoleplay().PoliceTrial) { Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1); return; } if (TargetClient.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode algemar alguém que está morto!", 1); return; } if (TargetClient.GetRoleplay().IsJailed&& !TargetClient.GetRoleplay().Jailbroken) { Session.SendWhisper("Você não pode algemar alguém que está preso!", 1); return; } if (!TargetClient.GetRoomUser().Frozen) { Session.SendWhisper("Você não pode algemar alguém que não está atordoado!", 1); return; } if (TargetClient.GetRoleplay().Cuffed) { Session.SendWhisper("Você não pode algemar alguém que já está algemado!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode algemar alguém que está ausente!", 1); return; } #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); if (Distance <= 1) { if (TargetClient.GetRoleplay().EquippedWeapon != null) { Session.Shout("*Segura " + TargetClient.GetHabbo().Username + ", pega sua " + TargetClient.GetRoleplay().EquippedWeapon.PublicName + " e joga longe*", 37); if (RoleplayManager.ConfiscateWeapons) { using (var DB = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { DB.SetQuery("UPDATE `rp_weapons_owned` SET `can_use` = '1' WHERE `user_id` = @userid AND `base_weapon` = @baseweapon LIMIT 1"); DB.AddParameter("userid", TargetClient.GetHabbo().Id); DB.AddParameter("baseweapon", TargetClient.GetRoleplay().EquippedWeapon.Name.ToLower()); DB.RunQuery(); } TargetClient.GetRoleplay().EquippedWeapon = null; TargetClient.GetRoleplay().OwnedWeapons = null; TargetClient.GetRoleplay().OwnedWeapons = TargetClient.GetRoleplay().LoadAndReturnWeapons(); } else { TargetClient.GetRoleplay().EquippedWeapon = null; } } Session.Shout("*Puxa suas algemas e coloca rapidamente no pulso do vagabundo " + TargetClient.GetHabbo().Username + "'", 37); TargetClient.GetRoleplay().Cuffed = true; TargetClient.GetRoleplay().CuffedTimeLeft = 8; TargetClient.GetRoleplay().TimerManager.CreateTimer("algemar", 1000, false); if (TargetClient.GetRoomUser() != null) { TargetClient.GetRoomUser().ApplyEffect(590); } return; } else { Session.SendWhisper("Você deve se aproximar desse cidadão para algema-lo!", 1); return; } #endregion }
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 || TargetClient.GetRoleplay() == null) { Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1); return; } int LevelDifference = Math.Abs(Session.GetRoleplay().Level - TargetClient.GetRoleplay().Level); 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 (Session.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode roubar alguém enquanto está morto!", 1); return; } if (Session.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode roubar alguém enquanto está preso!", 1); return; } if (Session.GetRoleplay().StaffOnDuty || Session.GetRoleplay().AmbassadorOnDuty) { Session.SendWhisper("Você não pode roubar alguém enquanto você está de plantão!", 1); return; } if (TargetClient.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode roubar alguém que está morto!", 1); return; } if (TargetClient.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode roubar alguém que está na prisão!", 1); return; } if (TargetClient.GetRoleplay().StaffOnDuty) { Session.SendWhisper("Você não pode roubar um funcionário que esteja de plantão!", 1); return; } if (TargetClient.GetRoleplay().AmbassadorOnDuty) { Session.SendWhisper("Você não pode roubar um embaixador que está de plantão!", 1); return; } if (TargetClient.GetHabbo().VIPRank > 1) { Session.SendWhisper("Você não pode roubar esse membro da equipe!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode roubar alguém que está ausente!", 1); return; } if (!Room.RobEnabled && !RoleplayManager.PurgeStarted) { Session.SendWhisper("Você não pode roubar nesta sala!", 1); return; } if (Session.GetRoleplay().DrivingCar) { Session.SendWhisper("Você não pode roubar alguém ao dirigir um veículo!", 1); return; } if (Session.GetRoleplay().IsNoob) { Session.SendWhisper("Você não pode completar esta ação enquanto estiver sob Deus Proteção!", 1); return; } if (TargetClient == Session) { Session.SendWhisper("Você não pode se roubar!", 1); return; } if (TargetClient.MachineId == Session.MachineId) { Session.SendWhisper("GAROTO IXPERTINHO! Você não pode roubar outra das suas contas!", 1); return; } if (TargetClient.GetRoleplay().Level < 2) { Session.SendWhisper("Você não pode completar esta ação porque o nível do usuário é abaixo de 2!", 1); return; } if (TargetClient.GetRoleplay().Level < 2) { Session.SendWhisper("Você não pode completar esta ação, pois você ainda é Nível 1!", 1); return; } if (Session.GetRoleplay().TryGetCooldown("roubar")) { return; } if (LevelDifference > 6) { Session.SendWhisper("Você não pode roubar esse usuário, pois sua diferença de nível é maior que 5!", 1); return; } #endregion #region Execute CryptoRandom Random = new CryptoRandom(); Point ClientPos = new Point(RoomUser.X, RoomUser.Y); Point TargetClientPos = new Point(TargetUser.X, TargetUser.Y); double Distance = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos); bool Success = false; string RobbedItems = ""; int DrugsChance = Random.Next(1, 101); if (Distance <= 1) { if (TargetClient.GetHabbo().Credits > 50) { int AmountToRob; if (TargetClient.GetHabbo().Credits > 100) { AmountToRob = 100; } else { AmountToRob = TargetClient.GetHabbo().Credits; } int MaxAmount = Convert.ToInt32(Math.Floor((Double)AmountToRob / 2)); int MinAmount = Convert.ToInt32(Math.Floor((double)AmountToRob / 10)); int Amount = Random.Next(MinAmount, MaxAmount + 1); Session.GetHabbo().Credits += Amount; Session.GetHabbo().UpdateCreditsBalance(); TargetClient.GetHabbo().Credits -= Amount; TargetClient.GetHabbo().UpdateCreditsBalance(); Success = true; RobbedItems += "R$" + String.Format("{0:N0}", Amount) + ", "; } if (DrugsChance <= 15) { if (TargetClient.GetRoleplay().Weed > 30) { int AmountToRob; if (TargetClient.GetRoleplay().Weed > 100) { AmountToRob = 100; } else { AmountToRob = TargetClient.GetRoleplay().Weed; } int MaxAmount = Convert.ToInt32(Math.Floor((Double)AmountToRob / 5)); int MinAmount = Convert.ToInt32(Math.Floor((double)AmountToRob / 20)); int Amount = Random.Next(MinAmount, MaxAmount + 1); Session.GetRoleplay().Weed += Amount; TargetClient.GetRoleplay().Weed -= Amount; Success = true; RobbedItems += "e " + String.Format("{0:N0}", Amount) + "g de maconha, "; } if (TargetClient.GetRoleplay().Cocaine > 30) { int AmountToRob; if (TargetClient.GetRoleplay().Cocaine > 100) { AmountToRob = 100; } else { AmountToRob = TargetClient.GetRoleplay().Cocaine; } int MaxAmount = Convert.ToInt32(Math.Floor((Double)AmountToRob / 5)); int MinAmount = Convert.ToInt32(Math.Floor((double)AmountToRob / 20)); int Amount = Random.Next(MinAmount, MaxAmount + 1); Session.GetRoleplay().Cocaine += Amount; TargetClient.GetRoleplay().Cocaine -= Amount; Success = true; RobbedItems += "e " + String.Format("{0:N0}", Amount) + "g de cocaína, "; } if (TargetClient.GetRoleplay().Cigarettes > 30) { int AmountToRob; if (TargetClient.GetRoleplay().Cigarettes > 100) { AmountToRob = 100; } else { AmountToRob = TargetClient.GetRoleplay().Cigarettes; } int MaxAmount = Convert.ToInt32(Math.Floor((Double)AmountToRob / 5)); int MinAmount = Convert.ToInt32(Math.Floor((double)AmountToRob / 20)); int Amount = Random.Next(MinAmount, MaxAmount + 1); Session.GetRoleplay().Cigarettes += Amount; TargetClient.GetRoleplay().Cigarettes -= Amount; Success = true; RobbedItems += "e " + String.Format("{0:N0}", Amount) + "g de cigarros, "; } } if (!Success) { Session.SendWhisper("Desculpe, mas esta pessoa é muito pobre para roubar!", 1); return; } if (Success) { if (!Session.GetRoleplay().WantedFor.Contains("roubar")) { Session.GetRoleplay().WantedFor = Session.GetRoleplay().WantedFor + "roubar os cidadão(s), "; } Session.Shout("*Coloca as mãos nos bolsos de " + TargetClient.GetHabbo().Username + " e rouba " + RobbedItems.TrimEnd(',', ' ') + "*", 4); lock (PlusEnvironment.GetGame().GetClientManager().GetClients) { foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (client == null || client.GetHabbo() == null) { continue; } client.SendMessage(new RoomNotificationComposer("staff_notice", "message", "[Notícia Urgente] " + Session.GetHabbo().Username + " roubou " + RobbedItems.TrimEnd(',', ' ') + " de " + TargetClient.GetHabbo().Username + ", tome cuidado!")); } } Session.SendWhisper("Você roubou " + RobbedItems.TrimEnd(',', ' ') + " de " + TargetClient.GetHabbo().Username + ", todos, inclusive a polícia recebeu a notícia!", 1); if (Session.GetRoleplay().TryGetCooldown("roubar")) { return; } TargetClient.SendWhisper("Você foi roubado e perdeu " + RobbedItems.TrimEnd(',', ' ') + " para " + Session.GetHabbo().Username + ", todos, inclusive a polícia recebeu a notícia!", 1); Session.GetRoleplay().CooldownManager.CreateCooldown("roubar", 1000, 300); Session.GetRoleplay().SpecialCooldowns.TryUpdate("roubar", 300, Session.GetRoleplay().SpecialCooldowns["roubar"]); } } else { Session.SendWhisper("Você precisa se aproximar de " + TargetClient.GetHabbo().Username + " para roubá-lo!", 1); return; } #endregion }
public void Execute(GameClients.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 (Session.GetRoleplay().TryGetCooldown("estuprar")) { return; } if (Session.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode estuprar alguém que está morto!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode estuprar alguém que está ausente!!", 1); return; } if (TargetClient == Session) { Session.SendWhisper("Você não pode estuprar você mesmo!", 1); return; } #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); if (Distance <= 1) { if (!Session.GetRoleplay().WantedFor.Contains("assédio sexual")) { Session.GetRoleplay().WantedFor = Session.GetRoleplay().WantedFor + "assédio sexual[estupro], "; } Session.Shout("*Estupra " + TargetClient.GetHabbo().Username + "*", 4); Session.GetRoleplay().CooldownManager.CreateCooldown("estuprar", 1000, ((Session.GetRoleplay().IsJailed) ? 20 : 8)); RoomUser.ApplyEffect(EffectsList.Twinkle); TargetUser.ApplyEffect(EffectsList.Twinkle); Session.GetRoleplay().RapeTimer = 5; TargetClient.GetRoleplay().RapeTimer = 5; return; } else { Session.SendWhisper("Você deve se aproximar desse cidadão para estupra-lo!", 1); return; } #endregion }
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 (!GroupManager.HasJobCommand(Session, "search")) { Session.SendWhisper("Apenas um policial pode usar esse comando!", 1); return; } if (!Session.GetRoleplay().IsWorking) { Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1); return; } if (TargetClient.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode vasculhar alguém que está morto!", 1); return; } if (TargetClient.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode vasculhar alguém que está preso!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode vasculhar alguém que está ausente", 1); return; } #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); if (Distance <= 1) { Random Random = new Random(); int Chance = Random.Next(1, 101); if (Chance <= 8) { Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " tentando encontrar drogas*", 37); return; } else { bool HasWeed = TargetClient.GetRoleplay().Weed > 0; bool HasCocaine = TargetClient.GetRoleplay().Cocaine > 0; if (!HasWeed && !HasCocaine) { Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " mas não acha nenhuma droga*", 37); return; } else if (HasWeed && !HasCocaine) { Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " e acha " + String.Format("{0:N0}", TargetClient.GetRoleplay().Weed) + "g de maconha*", 37); return; } else if (HasCocaine && !HasWeed) { Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " e acha " + String.Format("{0:N0}", TargetClient.GetRoleplay().Cocaine) + "g de cocaína*", 37); return; } else { Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " e acha " + String.Format("{0:N0}", TargetClient.GetRoleplay().Cocaine) + "g de cocaína e " + String.Format("{0:N0}", TargetClient.GetRoleplay().Weed) + "g de maconha*", 37); return; } } } else { Session.SendWhisper("Você deve se aproximar desse cidadão para vasculhar!", 1); return; } #endregion }
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) { RoomUser Bot = Room.GetRoomUserManager().GetBotByName(Params[1]); if (Bot != null && Bot.GetBotRoleplay() != null) { ExecuteBot(Session, Bot, Room); return; } 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 (!GroupManager.HasJobCommand(Session, "discharge")) { Session.SendWhisper("Somente um trabalhador do Hospital pode usar esse comando!", 1); return; } if (!Session.GetRoleplay().IsWorking) { Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1); return; } if (!TargetClient.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode reviver alguém que não está morto!", 1); return; } #endregion #region Execute double Distance = RoleplayManager.GetDistanceBetweenPoints2D(Session.GetRoomUser().Coordinate, TargetClient.GetRoomUser().Coordinate); if (Distance <= 5) { Session.Shout("*Revive " + TargetClient.GetHabbo().Username + " da cama de hospital*", 4); TargetClient.GetRoleplay().IsDead = false; TargetClient.GetRoleplay().DeadTimeLeft = 0; if (Session.GetRoleplay().LastKilled != TargetClient.GetHabbo().Id) { int Amount = 0; if (Session.GetRoleplay().Level <= 5) { Amount = 1; } else if (Session.GetRoleplay().Level > 5 && Session.GetRoleplay().Level <= 10) { Amount = 2; } else if (Session.GetRoleplay().Level > 10 && Session.GetRoleplay().Level <= 15) { Amount = 3; } else { Amount = 4; } PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Discharging", 1); Session.GetRoleplay().LastKilled = TargetClient.GetHabbo().Id; if (!Room.HitEnabled && !Room.ShootEnabled) { Session.GetHabbo().Credits += Amount; Session.GetHabbo().UpdateCreditsBalance(); Session.SendWhisper("Você ganhou R$" + Amount + " extra por reviver " + TargetClient.GetHabbo().Username + "!", 1); } } return; } else { Session.SendWhisper("Você deve se aproximar desse cidadão para revive-lo!", 1); return; } #endregion }
public void ExecuteBot(GameClient Session, RoomUser Bot, Room Room) { if (!Bot.GetBotRoleplay().Dead) { Session.SendWhisper("Desculpe, mas " + Bot.GetBotRoleplay().Name + " não está morto!", 1); return; } double Distance = RoleplayManager.GetDistanceBetweenPoints2D(Session.GetRoomUser().Coordinate, Bot.Coordinate); if (Distance <= 5) { if (Bot.GetBotRoleplay().TimerManager.ActiveTimers.ContainsKey("botdeath")) { Bot.GetBotRoleplay().TimerManager.ActiveTimers["botdeath"].EndTimer(); } if (Bot.Frozen) { Bot.Frozen = false; } Session.Shout("*Revive " + Bot.GetBotRoleplay().Name + " da cama de hospital*", 4); RoleplayManager.SpawnChairs(null, "val14_wchair", Bot); Bot.GetBotRoleplay().Dead = false; Room.SendMessage(new UsersComposer(Bot)); if (Bot.GetBotRoleplay().RoamBot) { Bot.GetBotRoleplay().MoveRandomly(); } if (Session.GetRoleplay().LastKilled != (RoleplayBotManager.BotFriendMultiplyer + Bot.GetBotRoleplay().Id)) { int Amount = 0; if (Session.GetRoleplay().Level <= 5) { Amount = 1; } else if (Session.GetRoleplay().Level > 5 && Session.GetRoleplay().Level <= 10) { Amount = 2; } else if (Session.GetRoleplay().Level > 10 && Session.GetRoleplay().Level <= 15) { Amount = 3; } else { Amount = 4; } PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Discharging", 1); Session.GetRoleplay().LastKilled = (RoleplayBotManager.BotFriendMultiplyer + Bot.GetBotRoleplay().Id); if (!Room.HitEnabled && !Room.ShootEnabled) { Session.GetHabbo().Credits += Amount; Session.GetHabbo().UpdateCreditsBalance(); Session.SendWhisper("Você ganhou R$" + Amount + " extra por reviver " + Bot.GetBotRoleplay().Name + "!", 1); } } return; } else { Session.SendWhisper("Você deve se aproximar de " + Bot.GetBotRoleplay().Name + " para revive-lo!", 1); return; } }
/// <summary> /// Selects the closest person to the client /// </summary> public bool TryGetClosestTarget(GameClient Client, out RoomUser Target) { Target = null; if (Client.GetRoomUser() == null) { return(false); } if (Client.GetRoomUser().RoomId <= 0) { return(false); } var Room = RoleplayManager.GenerateRoom(Client.GetRoomUser().RoomId); if (Room == null) { return(false); } if (Room.GetRoomUserManager().GetRoomUsers().Count <= 1) { Client.SendWhisper("Não há ninguém perto de você para atingir automaticamente!", 1); return(false); } var Point = new Point(Client.GetRoomUser().Coordinate.X, Client.GetRoomUser().Coordinate.Y); ConcurrentDictionary <RoomUser, double> PossibleUsers = new ConcurrentDictionary <RoomUser, double>(); lock (Room.GetRoomUserManager().GetRoomUsers()) { foreach (var User in Room.GetRoomUserManager().GetRoomUsers()) { if (User.IsBot) { if (User.GetBotRoleplay() == null) { continue; } if (!User.GetBotRoleplay().CanBeAttacked) { continue; } } if (User == Client.GetRoomUser()) { continue; } Point TargetPoint = new Point(User.Coordinate.X, User.Coordinate.Y); double Distance = RoleplayManager.GetDistanceBetweenPoints2D(Point, TargetPoint); if (!User.IsBot && Client.GetRoleplay().Game != null && Client.GetRoleplay().Game.GetGameMode() == Games.GameMode.TeamBrawl) { if (Client.GetRoleplay().Team != null && User.GetClient().GetRoleplay().Team != null && User.GetClient().GetRoleplay().Team == Client.GetRoleplay().Team) { continue; } } if (!PossibleUsers.ContainsKey(User)) { PossibleUsers.TryAdd(User, Distance); } } } var OrderedUsers = PossibleUsers.OrderBy(x => x.Value); if (OrderedUsers.ToList().Count < 1) { return(false); } Target = OrderedUsers.FirstOrDefault().Key; if (Target != null) { return(true); } return(false); }
/// <summary> /// Checks if a client can complete this action /// </summary> public bool CanCombat(GameClient Client, GameClient TargetClient, RoleplayBot Bot = null) { RoomUser RoomUser = Client.GetRoomUser(); RoomUser TargetRoomUser = Bot == null?TargetClient.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Username) : Client.GetHabbo().CurrentRoom.GetRoomUserManager().GetBotByName(Bot.Name); if (RoomUser == null || TargetRoomUser == null) { return(false); } if (Bot != null) { if (!Bot.CanBeAttacked) { Client.SendWhisper("Desculpe, mas este bot não pode ser atacado!", 1); return(false); } if (Bot.AIType == RoleplayBotAIType.MAFIAWARS) { if (Client.GetRoleplay().Team == null) { Client.SendWhisper("Como você não está na Guerra de Máfias, você não pode fazer isso!", 1); return(false); } if (Client.GetRoleplay().Game == null) { Client.SendWhisper("Como você não está na Guerra de Máfias, você não pode fazer isso!", 1); return(false); } if (Client.GetHabbo().VIPRank < 2 && Client.GetRoleplay().Game.GetGameMode() != GameMode.MafiaWars) { Client.SendWhisper("Como você não está na Guerra de Máfias, você não pode fazer iss!", 1); return(false); } string BotsTeam = Bot.Motto.ToLower().Split(' ')[0]; if (Client.GetRoleplay().Team.Name.ToLower() == BotsTeam) { Client.SendWhisper("Você não pode atacar os membros da sua própria equipe!", 1); return(false); } } } Point ClientPos = RoomUser.Coordinate; Point TargetClientPos = TargetRoomUser.Coordinate; #region Main Conditions double Distance = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos); Room Room = null; if (Client.GetHabbo().CurrentRoomId > 0) { Room = Client.GetHabbo().CurrentRoom; } if (Room != null) { if (Room.SafeZoneEnabled) { Client.SendWhisper("Você não pode bater nesta sala!", 1); return(false); } if (!RoleplayManager.PurgeStarted) { if (!Room.HitEnabled && Client.GetRoleplay().Game == null) { Client.SendWhisper("Você não pode bater nesta sala!", 1); return(false); } } } if (TargetRoomUser == null) { Client.SendWhisper("Esta pessoa não está na mesma sala que você!", 1); return(false); } if (Client.GetRoleplay().Game != null) { if (!Client.GetRoleplay().Game.HasGameStarted()) { Client.SendWhisper("O evento ainda não começou!", 1); return(false); } if (TargetClient != null && TargetClient.GetRoleplay().Game != Client.GetRoleplay().Game) { Client.SendWhisper("Seu alvo não faz parte desse evento!", 1); return(false); } if (RoomUser != null) { if (RoomUser.Frozen) { return(false); } } if (TargetRoomUser != null) { if (TargetRoomUser.Frozen) { return(false); } } } if (TargetClient != null && Client.GetRoleplay().Team != null && TargetClient.GetRoleplay().Team != null) { if (Client.GetRoleplay().Team == TargetClient.GetRoleplay().Team) { Client.SendWhisper("Você não pode atacar seu companheiro de equipe!", 1); return(false); } } if (Client.GetRoleplay().Game == null) { if (RoleplayManager.LevelDifference) { if (!Room.TurfEnabled) { int TargetLevel = Bot == null?TargetClient.GetRoleplay().Level : Bot.Level; int LevelDifference = Math.Abs(Client.GetRoleplay().Level - TargetLevel); if (LevelDifference > 8) { Client.SendWhisper("Você não pode atingir essa pessoa, pois sua diferença de nível é maior do que 8!", 1); return(false); } } } } if (Client.GetRoleplay().Game == null) { if (Client.GetRoleplay().IsNoob) { if (!Client.GetRoleplay().NoobWarned) { Client.SendWhisper("[OBSERVE] Se fizer isso mais vezes você perderá sua proteção de Deus e poderá ser atacado. (Avisos: 1/2)", 1); Client.GetRoleplay().NoobWarned = true; return(false); } else if (!Client.GetRoleplay().NoobWarned2) { Client.SendWhisper("[OBSERVE] Se fizer isso mais vezes você perderá sua proteção de Deus e poderá ser atacado. (Avisos: 2/2)", 1); Client.GetRoleplay().NoobWarned2 = true; return(false); } else { Client.SendWhisper("Você perdeu sua proteção de deus, você está sozinho agora.", 1); if (Client.GetRoleplay().TimerManager != null && Client.GetRoleplay().TimerManager.ActiveTimers != null) { if (Client.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("noob")) { Client.GetRoleplay().TimerManager.ActiveTimers["noob"].EndTimer(); } } Client.GetRoleplay().IsNoob = false; Client.GetRoleplay().NoobTimeLeft = 0; return(true); } } } if (Client.GetRoleplay().TryGetCooldown("fist")) { return(false); } #endregion #region Status Conditions if (RoomUser.Frozen) { Client.SendWhisper("Você não pode fazer isso enquanto você está atordoado!", 1); return(false); } if (RoomUser.IsAsleep) { Client.SendWhisper("Você não pode fazer isso enquanto a pessoa está ausente!", 1); return(false); } if (Client.GetRoleplay().IsDead) { Client.SendWhisper("Você não pode bater em alguém enquanto está morto!", 1); return(false); } if (Client.GetRoleplay().IsJailed) { Client.SendWhisper("Você não pode bater em alguém enquanto está preso!", 1); return(false); } if (Client.GetRoleplay().IsWorking) { Client.SendWhisper("Você não pode bater em alguém enquanto trabalha!", 1); return(false); } if (Client.GetRoleplay().StaffOnDuty || Client.GetRoleplay().AmbassadorOnDuty) { Client.SendWhisper("Você não pode bater em alguém enquanto está de plantão!", 1); return(false); } if (Bot != null) { if (Bot.Dead) { Client.SendWhisper("Você não pode bater em alguém que está morto!", 1); return(false); } if (Bot.Jailed) { Client.SendWhisper("Você não pode bater em alguém preso!", 1); return(false); } } if (TargetClient != null) { if (TargetClient.GetRoleplay().IsDead) { Client.SendWhisper("Você não pode bater em alguém que está morto!", 1); return(false); } if (TargetClient.GetRoleplay().IsJailed) { Client.SendWhisper("Você não pode bater em alguém que está preso!", 1); return(false); } if (TargetClient.GetRoleplay().StaffOnDuty) { Client.SendWhisper("Você não pode bater em alguém que está de plantão!", 1); return(false); } if (TargetClient.GetRoleplay().AmbassadorOnDuty) { Client.SendWhisper("Você não pode bater em um embaixador que está de plantão!", 1); return(false); } if (TargetClient == Client) { Client.SendWhisper("Você não pode bater em si mesmo!", 1); return(false); } if (TargetClient.MachineId == Client.MachineId) { Client.SendWhisper("Você não pode bater em outra das suas contas!", 1); return(false); } } if (Client.GetRoleplay().CurEnergy <= 0 && Client.GetRoleplay().Game == null) { Client.SendWhisper("Você ficou sem energia para bater em alguém!", 1); return(false); } if (Client.GetRoleplay().Cuffed) { Client.SendWhisper("Você não pode bater em um cidadão enquanto você está algemado!", 1); return(false); } if (Client.GetRoleplay().DrivingCar) { Client.SendWhisper("Por favor, pare de dirigir seu veículo para bater em alguém!", 1); return(false); } if (TargetRoomUser.IsAsleep) { Client.SendWhisper("Você não pode bater em alguém que está ausente", 1); return(false); } #endregion #region Distance if (Distance > 1) { RoleplayManager.Shout(Client, "*Tenta dar um soco em " + (Bot == null ? TargetClient.GetHabbo().Username : Bot.Name) + ", mas erra*", 4); Client.GetRoleplay().CooldownManager.CreateCooldown("fist", 1000, (Client.GetRoleplay().Game == null ? (Client.GetRoleplay().Class.ToLower() == "fighter" ? RoleplayManager.HitCooldown : RoleplayManager.DefaultHitCooldown) : RoleplayManager.HitCooldownInEvent)); return(false); } #endregion return(true); }
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 Execute(GameClient Session, Rooms.Room Room, string[] Params) { string Type = ""; #region Conditions if (Params.Length == 1) { Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1); return; } if (Params[0].ToLower() == "pulverizar") { Type = "pulverizar"; } if (Params[0].ToLower() == "atordoar") { Type = "atordoar"; } 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 (!GroupManager.HasJobCommand(Session, "stun") && !Session.GetRoleplay().PoliceTrial) { Session.SendWhisper("Somente um policial pode usar esse comando!", 1); return; } if (!Session.GetRoleplay().IsWorking&& !Session.GetRoleplay().PoliceTrial) { Session.SendWhisper("Você deve estar trabalhando para usar este comando!", 1); return; } if (Session.GetRoleplay().TryGetCooldown("atirar")) { return; } if (TargetClient.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode atordoar alguém que está morto!", 1); return; } if (TargetClient.GetRoleplay().IsJailed&& !TargetClient.GetRoleplay().Jailbroken) { Session.SendWhisper("Você não pode atordoar alguém que está preso!", 1); return; } if (TargetClient.GetRoomUser().Frozen) { Session.SendWhisper("Este usuário já está atordoado, agora coloque as algemas!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode atordoar ou pulverizar alguém que está ausente!", 1); return; } #endregion #region Execute Point ClientPos = new Point(RoomUser.Coordinate.X, RoomUser.Coordinate.Y); Point TargetClientPos = new Point(TargetUser.Coordinate.X, TargetUser.Coordinate.Y); double Distance = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos); CryptoRandom Random = new CryptoRandom(); int Chance = Random.Next(1, 101); if (Distance <= 5) { if (Chance <= 10) { if (Type == "atordoar") { Session.Shout("*Tenta atordoar " + TargetClient.GetHabbo().Username + ", mas não consegue acertar*", 37); } if (Type == "pulverizar") { Session.Shout("*Tenta atordoar " + TargetClient.GetHabbo().Username + ", mas não consegue acertar*", 37); } Session.GetRoleplay().CooldownManager.CreateCooldown("atordoar", 1000, 3); return; } else { if (Distance > 6 && Type == "pulverizar") { Session.Shout("*Solta seu spray de pimenta em " + TargetClient.GetHabbo().Username + ", mas não consegue acertar*", 37); Session.GetRoleplay().CooldownManager.CreateCooldown("atordoar", 1000, 3); return; } else { if (Type == "atordoar") { Session.Shout("*Atordoa o vagabundo " + TargetClient.GetHabbo().Username + " com sua arma de choques*", 37); TargetClient.GetRoleplay().TimerManager.CreateTimer("atordoar", 1000, false); TargetClient.SendMessage(new FloodControlComposer(5)); TargetClient.GetRoomUser().ApplyEffect(53); } else if (Type == "spray") { Session.Shout("*Pulveriza o vagabundo " + TargetClient.GetHabbo().Username + "*", 37); TargetClient.GetRoleplay().TimerManager.CreateTimer("pulverizar", 1000, false); } if (TargetClient.GetRoleplay().InsideTaxi) { TargetClient.GetRoleplay().InsideTaxi = false; } TargetClient.GetRoomUser().Frozen = true; TargetClient.GetRoomUser().CanWalk = false; TargetClient.GetRoomUser().ClearMovement(true); Session.GetRoleplay().CooldownManager.CreateCooldown("atordoar", 1000, 3); return; } } } else { if (Type == "atordoar") { Session.Shout("*Atira sua arma de choque em " + TargetClient.GetHabbo().Username + ", mas os tiros não alcançam*", 37); } if (Type == "spray") { Session.Shout("*Atira seu spray de pimenta em " + TargetClient.GetHabbo().Username + ", mas não consegue acertar*", 37); } Session.GetRoleplay().CooldownManager.CreateCooldown("atordoar", 1000, 3); return; } #endregion }
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; } if (TargetClient.GetRoleplay() == null) { Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1); return; } if (TargetClient.GetRoleplay().TimerManager == 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 (!GroupManager.HasJobCommand(Session, "heal")) { Session.SendWhisper("Somente um funcionário do hospital pode usar esse comando!", 1); return; } if (!Session.GetRoleplay().IsWorking) { Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1); return; } if (TargetClient.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode recuperar o HP de alguém que está morto!", 1); return; } if (TargetClient.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode curar alguém que está na prisão!", 1); return; } if (TargetClient.GetRoleplay().BeingHealed) { Session.SendWhisper("Você não pode curar alguém que já está sendo curado!", 1); return; } if (TargetClient.GetRoleplay().CurHealth >= TargetClient.GetRoleplay().MaxHealth) { Session.SendWhisper("Este cidadão já está com o sangue cheio!", 1); return; } if (TargetClient.GetRoleplay().Hunger >= 100) { Session.SendWhisper("Este cidadão está com muita fome para curar! Diga para ele comer algum alimento.", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode curar alguém que está ausente!", 1); return; } #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); if (Distance <= 5) { Session.Shout("*Começa a curar as feridas de " + TargetClient.GetHabbo().Username + "*", 4); TargetClient.GetRoomUser().ApplyEffect(0); TargetClient.GetRoleplay().BeingHealed = true; TargetClient.GetRoleplay().TimerManager.CreateTimer("heal", 1000, false); if (Session.GetRoleplay().LastKilled != TargetClient.GetHabbo().Id&& TargetClient.GetHabbo().Id != Session.GetHabbo().Id) { int Amount = 0; if (Session.GetRoleplay().Level <= 10) { Amount = 1; } else { Amount = 2; } PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Healing", 1); Session.GetRoleplay().LastKilled = TargetClient.GetHabbo().Id; if (!Room.HitEnabled) { Session.GetHabbo().Credits += Amount; Session.GetHabbo().UpdateCreditsBalance(); Session.SendWhisper("Você ganhou R$" + Amount + " extra por cura " + TargetClient.GetHabbo().Username + "!", 1); } } return; } else { Session.SendWhisper("Você deve se aproximar desse cidadão para curá-lo!", 1); return; } #endregion }
public void Execute(GameClient Session, Rooms.Room Room, string[] Params) { string Type = ""; #region Conditions if (Params.Length == 1) { Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1); return; } if (Params[0].ToLower() == "despulverizar") { Type = "despulverizar"; } if (Params[0].ToLower() == "desatordoar") { Type = "desatordoar"; } 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 (!GroupManager.HasJobCommand(Session, "unstun") && !Session.GetRoleplay().PoliceTrial) { Session.SendWhisper("Apenas um policial pode usar esse comando!", 1); return; } if (!Session.GetRoleplay().IsWorking&& !Session.GetRoleplay().PoliceTrial) { Session.SendWhisper("Você deve estar trabalhando para usar este comando!", 1); return; } if (!TargetClient.GetRoomUser().Frozen) { if (Type == "desatordoar") { Session.SendWhisper("Você não pode desatordoar alguém que não está atordoado!", 1); } if (Type == "despulverizar") { Session.SendWhisper("Você não pode despulverizar alguém que não está pulverizado", 1); } return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode desatordoar alguém que está ausente!", 1); return; } #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); if (Distance <= 2) { if (Type == "desatordoar") { Session.Shout("*Retira o efeito de atordoamento de " + TargetClient.GetHabbo().Username + "*", 37); TargetClient.GetRoleplay().TimerManager.CreateTimer("desatordoar", 1000, false); TargetClient.SendMessage(new FloodControlComposer(1)); } else if (Type == "despulverizar") { Session.Shout("*Despulveriza " + TargetClient.GetHabbo().Username + "*", 37); TargetClient.GetRoleplay().TimerManager.CreateTimer("despulverizar", 1000, false); } if (TargetClient.GetRoleplay().InsideTaxi) { TargetClient.GetRoleplay().InsideTaxi = true; } TargetClient.GetRoomUser().Frozen = false; TargetClient.GetRoomUser().CanWalk = true; TargetClient.GetRoomUser().ClearMovement(false); Session.GetRoleplay().CooldownManager.CreateCooldown("desatordoar", 1000, 3); return; } else { if (Type == "desatordoar") { Session.SendWhisper("Chegue mais perto para desatordoar este cidadão!", 1); } if (Type == "despulverizar") { Session.SendWhisper("Chegue mais perto para despulverizar este cidadão!", 1); } return; } #endregion }
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 (!GroupManager.HasJobCommand(Session, "cuff") && !Session.GetRoleplay().PoliceTrial) { Session.SendWhisper("Apenas um policial pode usar esse comando!", 1); return; } if (!Session.GetRoleplay().IsWorking&& !Session.GetRoleplay().PoliceTrial) { Session.SendWhisper("Você deve estar trabalhando para usar este comando!", 1); return; } if (!TargetClient.GetRoleplay().Cuffed) { Session.SendWhisper("Você não pode desalgemar alguém que não está algemado!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode desalgemar alguém que está ausente!", 1); return; } #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); if (Distance <= 1) { Session.Shout("*Pega as chaves e remove as algemas de " + TargetClient.GetHabbo().Username + "*", 37); TargetClient.GetRoleplay().Cuffed = false; return; } else { Session.SendWhisper("Chegue mais perto do cidadão para desalgema-lo!", 1); return; } #endregion }
public void Execute(GameClients.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 (Session.GetRoleplay().TryGetCooldown("sexo")) { return; } if (Session.GetRoleplay().MarriedTo == 0) { Session.SendWhisper("Você não pode completar esta ação quando não é casado(a)!", 1); return; } if (Session.GetRoleplay().MarriedTo != TargetClient.GetHabbo().Id) { Session.SendWhisper("Você só pode fazer sexo com sua esposa/seu esposo!", 1); return; } if (TargetClient.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode fazer sexo com alguém que está morto!", 1); return; } if (TargetClient.GetRoleplay().Game != null) { Session.SendWhisper("Você não pode fazer sexo com alguém enquanto estiver dentro de um evento!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode fazer sexo com alguém está ausente!", 1); return; } #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); if (Distance <= 1) { if (Session.GetHabbo().Gender.ToLower().StartsWith("m") && TargetClient.GetHabbo().Gender.ToLower().StartsWith("f")) { Session.Shout("*Agarra " + TargetClient.GetHabbo().Username + " pelos quadris e deixe-o no chão, tirando suas roupas*", 16); RoleplayManager.Shout(TargetClient, "*Gemidos de " + Session.GetHabbo().Username + " quando empurra seu pênis dentro dela*", 16); } else if (Session.GetHabbo().Gender.ToLower().StartsWith("f") && TargetClient.GetHabbo().Gender.ToLower().StartsWith("m")) { Session.Shout("*Pushes " + TargetClient.GetHabbo().Username + " down onto the floor, climbing ontop of him and sliding his clothes off*", 16); RoleplayManager.Shout(TargetClient, "*Gemidos de " + Session.GetHabbo().Username + " quando desliza o dedo dentro dela*", 16); } else if (Session.GetHabbo().Gender.ToLower().StartsWith("m") && TargetClient.GetHabbo().Gender.ToLower().StartsWith("m")) { Session.Shout("*Agarra " + TargetClient.GetHabbo().Username + " pelo peito e abate-o, tirando a roupa*", 16); RoleplayManager.Shout(TargetClient, "*Gemidos de prazer de " + Session.GetHabbo().Username + " saltando para cima e para baixo seu pau*", 16); } else if (Session.GetHabbo().Gender.ToLower().StartsWith("f") && TargetClient.GetHabbo().Gender.ToLower().StartsWith("f")) { Session.Shout("*Empurra " + TargetClient.GetHabbo().Username + " descendo no chão, subindo sobre ela e deslizando as roupas dela*", 16); RoleplayManager.Shout(TargetClient, "*Gemidos de " + Session.GetHabbo().Username + " quando os dedos deslizam dentro dela*", 16); } else { Session.Shout("*Faz amor doce com " + TargetClient.GetHabbo().Username + "*", 16); RoleplayManager.Shout(TargetClient, "*Gemidos dos movimentos de " + Session.GetHabbo().Username + "*", 16); } Session.GetRoleplay().CooldownManager.CreateCooldown("sexo", 1000, 60); RoomUser.ApplyEffect(507); TargetUser.ApplyEffect(507); Session.GetRoleplay().SexTimer = 15; TargetClient.GetRoleplay().SexTimer = 15; RoleplayManager.GetLookAndMotto(Session); RoleplayManager.GetLookAndMotto(TargetClient); return; } else { Session.SendWhisper("Você deve se aproximar desse cidadão para fazer sexo com ele!", 1); return; } #endregion }
/// <summary> /// Executes this type of combat /// </summary> public void Execute(GameClient Client, GameClient TargetClient, bool HitClosest = false) { if (!CanCombat(Client, TargetClient)) { return; } #region Variables RoomUser RoomUser = Client.GetRoomUser(); RoomUser TargetRoomUser = TargetClient.GetRoomUser(); int Damage = GetDamage(Client, TargetClient); Weapon Weapon = Client.GetRoleplay().EquippedWeapon; Point ClientPos = RoomUser.Coordinate; Point TargetClientPos = TargetRoomUser.Coordinate; #endregion #region Ammo Check if (Client.GetRoleplay().GunShots >= Weapon.ClipSize) { Weapon.Reload(Client, TargetClient); Client.GetRoleplay().CooldownManager.CreateCooldown("reload", 1000, Weapon.ReloadTime); return; } #endregion #region Distance Check double Distance = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos); if (Distance > Weapon.Range) { RoleplayManager.Shout(Client, "*Tenta acertar o tiro em " + TargetClient.GetHabbo().Username + ", mas erra o alvo*", 4); Client.GetRoleplay().GunShots++; if (Client.GetRoleplay().Game == null) { Client.GetRoleplay().Bullets--; } return; } #endregion #region Target Death Procedure if (TargetClient.GetRoleplay().CurHealth - Damage <= 0) { Client.GetRoleplay().ClearWebSocketDialogue(); string Text = Weapon.FiringText.Split(':')[1]; string GunName = Weapon.PublicName; RoleplayManager.Shout(Client, FormatFiringText(Text, GunName, TargetClient.GetHabbo().Username, Damage, Weapon.Energy), 6); lock (PlusEnvironment.GetGame().GetClientManager().GetClients) { foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (client == null || client.GetHabbo() == null) { continue; } client.SendMessage(new RoomNotificationComposer("staff_notice", "message", "[Notícia Urgente] " + Client.GetHabbo().Username + " matou com tiros o cidadão " + TargetClient.GetHabbo().Username + ", tome cuidado pelas ruas!")); } } if (Client.GetRoleplay().LastKilled != TargetClient.GetHabbo().Id&& TargetClient.GetRoleplay().Game == null) { PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Client, QuestType.KILL_USER); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Client, "ACH_Kills", 1); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(TargetClient, "ACH_Death", 1); #region Player Stats Client.GetRoleplay().LastKilled = TargetClient.GetHabbo().Id; Client.GetRoleplay().Kills++; Client.GetRoleplay().GunKills++; if (GroupManager.HasJobCommand(TargetClient, "guide") && TargetClient.GetRoleplay().IsWorking) { TargetClient.GetRoleplay().CopDeaths++; } else { TargetClient.GetRoleplay().Deaths++; } if (!Client.GetRoleplay().WantedFor.Contains("cometer assassinato")) { Client.GetRoleplay().WantedFor = Client.GetRoleplay().WantedFor + "cometer assassinato, "; } #endregion #region Exp Calculator CryptoRandom Random = new CryptoRandom(); int Multiplier = 1; int Chance = Random.Next(1, 101); if (Chance <= 16) { if (Chance <= 8) { Multiplier = 3; } else { Multiplier = 2; } } LevelManager.AddLevelEXP(Client, GetEXP(Client, TargetClient) * Multiplier); #endregion #region Gang Stats Group Gang = GroupManager.GetGang(Client.GetRoleplay().GangId); Group TarGetGang = GroupManager.GetGang(TargetClient.GetRoleplay().GangId); using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { if (Gang != null) { if (Gang.Id > 1000) { int ScoreIncrease = Random.Next(1, 11); Gang.GangKills++; Gang.GangScore += ScoreIncrease; dbClient.RunQuery("UPDATE `rp_gangs` SET `gang_kills` = '" + Gang.GangKills + "', `gang_score` = '" + Gang.GangScore + "' WHERE `id` = '" + Gang.Id + "'"); } } if (TarGetGang != null) { if (TarGetGang.Id > 1000) { TarGetGang.GangDeaths++; dbClient.RunQuery("UPDATE `rp_gangs` SET `gang_deaths` = '" + TarGetGang.GangDeaths + "' WHERE `id` = '" + TarGetGang.Id + "'"); } } } #endregion BountyManager.CheckBounty(Client, TargetClient.GetHabbo().Id); if ((TargetClient.GetRoleplay().CurHealth - Damage) <= 0) { TargetClient.GetRoleplay().CurHealth = 0; } } } #endregion #region Target Damage Procedure (Did not die) else { string Text = Weapon.FiringText.Split(':')[0]; string GunName = Weapon.PublicName; Client.GetRoleplay().OpenUsersDialogue(TargetClient); TargetClient.GetRoleplay().OpenUsersDialogue(Client); PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Client, QuestType.SHOOT_USER); RoleplayManager.Shout(Client, FormatFiringText(Text, GunName, TargetClient.GetHabbo().Username, Damage, Weapon.Energy), 6); } #endregion TargetClient.GetRoleplay().CurHealth -= Damage; if (Client.GetRoleplay().Game == null) { Client.GetRoleplay().Bullets--; } if (Client.GetRoleplay().Game == null) { Client.GetRoleplay().CurEnergy -= Weapon.Energy; } Client.GetRoleplay().GunShots++; if (!Client.GetRoleplay().WantedFor.Contains("tentativa de assaltSo + tentativa/assassinato")) { Client.GetRoleplay().WantedFor = Client.GetRoleplay().WantedFor + "tentativa de assalto + tentativa/assassinato "; } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length != 2) { Session.SendWhisper("Digite o nome de usuário do membro da gangue que deseja curar!", 1); return; } Group Gang = GroupManager.GetGang(Session.GetRoleplay().GangId); GroupRank GangRank = GroupManager.GetGangRank(Session.GetRoleplay().GangId, Session.GetRoleplay().GangRank); if (Gang == null) { Session.SendWhisper("Você não faz parte de nenhum grupo!", 1); return; } if (Gang.Id <= 1000) { Session.SendWhisper("Você não faz parte de nenhum grupo!", 1); return; } if (!GroupManager.HasGangCommand(Session, "gheal")) { Session.SendWhisper("Você não possui um cargo alto o suficiente para usar esse comando!", 1); return; } if (Gang.MediPacks <= 0) { Session.SendWhisper("Sua gangue não tem mais pacotes de cura!", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendWhisper("Desculpe, mas este usuário não pôde ser encontrado!", 1); return; } RoomUser RoomUser = Session.GetRoomUser(); RoomUser TargetRoomUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Username); if (TargetRoomUser == 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().CurHealth == TargetClient.GetRoleplay().MaxHealth) { Session.SendWhisper(TargetClient.GetHabbo().Username + " não precisa ser curado!", 1); return; } Point ClientPos = new Point(RoomUser.X, RoomUser.Y); Point TargetClientPos = new Point(TargetRoomUser.X, TargetRoomUser.Y); double Distance = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos); if (Distance > 1) { Session.SendWhisper("Aproxime-se de " + TargetClient.GetHabbo().Username + " para curá-lo com um pacote médico!", 1); return; } Session.Shout("*Puxa um pacote médico e aplica alguns band-aid nas feridas de " + TargetClient.GetHabbo().Username + "'*", 4); Gang.MediPacks -= 1; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) dbClient.RunQuery("UPDATE `rp_gangs` SET `medipacks` = '" + Gang.MediPacks + "' WHERE `id` = '" + Gang.Id + "'"); CryptoRandom Random = new CryptoRandom(); int HealAmount = Random.Next(5, 16); new Thread(() => { Thread.Sleep(3000); if (!TargetClient.GetRoleplay().IsDead) { if (TargetRoomUser != null) { TargetRoomUser.ApplyEffect(23); } int NewHealth = TargetClient.GetRoleplay().CurHealth + HealAmount; if (NewHealth > TargetClient.GetRoleplay().MaxHealth) { TargetClient.GetRoleplay().CurHealth = TargetClient.GetRoleplay().MaxHealth; } else { TargetClient.GetRoleplay().CurHealth = NewHealth; } TargetClient.SendWhisper(Session.GetHabbo().Username + " Os kits médicos começou a produzir efeito!", 1); } }).Start(); }