public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } Room Room = null; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room)) { return; } if (!Room.CheckRights(Session, true)) { return; } Item Item = Session.GetHabbo().GetInventoryComponent().GetItem(Packet.PopInt()); if (Item == null) { return; } if (Item.GetBaseItem() == null) { return; } string DecorationKey = string.Empty; switch (Item.GetBaseItem().InteractionType) { case InteractionType.FLOOR: DecorationKey = "floor"; break; case InteractionType.WALLPAPER: DecorationKey = "wallpaper"; break; case InteractionType.LANDSCAPE: DecorationKey = "landscape"; break; } switch (DecorationKey) { case "floor": Room.Floor = Item.ExtraData; Room.RoomData.Floor = Item.ExtraData; PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.FURNI_DECORATION_FLOOR); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_RoomDecoFloor", 1); break; case "wallpaper": Room.Wallpaper = Item.ExtraData; Room.RoomData.Wallpaper = Item.ExtraData; PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.FURNI_DECORATION_WALL); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_RoomDecoWallpaper", 1); break; case "landscape": Room.Landscape = Item.ExtraData; Room.RoomData.Landscape = Item.ExtraData; PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_RoomDecoLandscape", 1); break; } using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `rooms` SET `" + DecorationKey + "` = @extradata WHERE `id` = '" + Room.RoomId + "' LIMIT 1"); dbClient.AddParameter("extradata", Item.ExtraData); dbClient.RunQuery(); dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Item.Id + "' LIMIT 1"); } Session.GetHabbo().GetInventoryComponent().RemoveItem(Item.Id); Room.SendPacket(new RoomPropertyComposer(DecorationKey, Item.ExtraData)); }
public void Parse(GameClient session, ClientPacket packet) { ICollection <SearchResultList> categories = PlusEnvironment.GetGame().GetNavigator().GetEventCategories(); session.SendPacket(new NavigatorFlatCatsComposer(categories)); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Please enter the username of the user you wish to super pull."); return; } if (!Room.SPullEnabled && !Room.CheckRights(Session, true) && !Session.GetHabbo().GetPermissions().HasRight("room_override_custom_config")) { Session.SendWhisper("Oops, it appears that the room owner has disabled the ability to use the spull command in here."); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendWhisper("An error occoured whilst finding that user, maybe they're not online."); return; } RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Id); if (TargetUser == null) { Session.SendWhisper("An error occoured whilst finding that user, maybe they're not online or in this room."); return; } if (TargetClient.GetHabbo().Username == Session.GetHabbo().Username) { Session.SendWhisper("Come on, surely you don't want to push yourself!"); return; } if (TargetUser.TeleportEnabled) { Session.SendWhisper("Oops, you cannot push a user whilst they have their teleport mode enabled."); return; } RoomUser ThisUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (ThisUser == null) { return; } if (ThisUser.SetX - 1 == Room.GetGameMap().Model.DoorX) { Session.SendWhisper("Please don't pull that user out of the room :(!"); return; } if (ThisUser.RotBody % 2 != 0) { ThisUser.RotBody--; } if (ThisUser.RotBody == 0) { TargetUser.MoveTo(ThisUser.X, ThisUser.Y - 1); } else if (ThisUser.RotBody == 2) { TargetUser.MoveTo(ThisUser.X + 1, ThisUser.Y); } else if (ThisUser.RotBody == 4) { TargetUser.MoveTo(ThisUser.X, ThisUser.Y + 1); } else if (ThisUser.RotBody == 6) { TargetUser.MoveTo(ThisUser.X - 1, ThisUser.Y); } Room.SendMessage(new ChatComposer(ThisUser.VirtualId, "*super pulls " + Params[1] + " to them*", 0, ThisUser.LastBubble)); return; }
public void Parse(GameClient session, ClientPacket packet) { if (session == null || session.GetHabbo() == null || !session.GetHabbo().InRoom) { return; } var room = session.GetHabbo().CurrentRoom; if (room == null) { return; } var itemId = packet.PopInt(); var item = room.GetRoomItemHandler().GetItem(itemId); if (item == null) { return; } if (item.Data == null) { return; } if (item.UserId != session.GetHabbo().Id) { return; } if (item.Data.InteractionType != InteractionType.PurchasableClothing) { session.SendNotification("Oops, this item isn't set as a sellable clothing item!"); return; } if (item.Data.BehaviourData == 0) { session.SendNotification("Oops, this item doesn't have a linking clothing configuration, please report it!"); return; } ClothingItem clothing = null; if (!PlusEnvironment.GetGame().GetCatalog().GetClothingManager().TryGetClothing(item.Data.BehaviourData, out clothing)) { session.SendNotification("Oops, we couldn't find this clothing part!"); return; } //Quickly delete it from the database. using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("DELETE FROM `items` WHERE `id` = @ItemId LIMIT 1"); dbClient.AddParameter("ItemId", item.Id); dbClient.RunQuery(); } //Remove the item. room.GetRoomItemHandler().RemoveFurniture(session, item.Id); session.GetHabbo().GetClothing().AddClothing(clothing.ClothingName, clothing.PartIds); session.SendPacket(new FigureSetIdsComposer(session.GetHabbo().GetClothing().GetClothingParts)); session.SendPacket(new RoomNotificationComposer("figureset.redeemed.success")); session.SendWhisper("If for some reason cannot see your new clothing, reload the hotel!"); }
public void BanzaiEnd(bool triggeredByUser = false) { banzaiStarted = false; _room.GetGameManager().StopGame(); floorMap = null; if (!triggeredByUser) { _room.GetWired().TriggerEvent(WiredBoxType.TriggerGameEnds, null); } Team winners = _room.GetGameManager().GetWinningTeam(); _room.GetGameManager().UnlockGates(); foreach (Item tile in _banzaiTiles.Values) { if (tile.team == winners) { tile.interactionCount = 0; tile.interactionCountHelper = 0; tile.UpdateNeeded = true; } else if (tile.team == Team.None) { tile.ExtraData = "0"; tile.UpdateState(); } } if (winners != Team.None) { List <RoomUser> Winners = _room.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser User in Winners.ToList()) { if (User.Team != Team.None) { if (PlusEnvironment.GetUnixTimestamp() - timestarted > 5) { PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_BattleBallTilesLocked", User.LockedTilesCount); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_BattleBallPlayer", 1); } } if (winners == Team.Blue) { if (User.CurrentEffect == 35) { if (PlusEnvironment.GetUnixTimestamp() - timestarted > 5) { PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_BattleBallWinner", 1); } _room.SendPacket(new ActionComposer(User.VirtualId, 1)); } } else if (winners == Team.Red) { if (User.CurrentEffect == 33) { if (PlusEnvironment.GetUnixTimestamp() - timestarted > 5) { PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_BattleBallWinner", 1); } _room.SendPacket(new ActionComposer(User.VirtualId, 1)); } } else if (winners == Team.Green) { if (User.CurrentEffect == 34) { if (PlusEnvironment.GetUnixTimestamp() - timestarted > 5) { PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_BattleBallWinner", 1); } _room.SendPacket(new ActionComposer(User.VirtualId, 1)); } } else if (winners == Team.Yellow) { if (User.CurrentEffect == 36) { if (PlusEnvironment.GetUnixTimestamp() - timestarted > 5) { PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), "ACH_BattleBallWinner", 1); } _room.SendPacket(new ActionComposer(User.VirtualId, 1)); } } } if (field != null) { field.Dispose(); } } }
public void Parse(GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool") && Room.CheckMute(Session)) { Session.SendWhisper("Oops, you're currently muted."); return; } if (PlusEnvironment.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { return; } string Params = Packet.PopString(); string ToUser = Params.Split(' ')[0]; string Message = Params.Substring(ToUser.Length + 1); int Colour = Packet.PopInt(); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } RoomUser User2 = Room.GetRoomUserManager().GetRoomUserByHabbo(ToUser); if (User2 == null) { return; } if (Session.GetHabbo().TimeMuted > 0) { Session.SendPacket(new MutedComposer(Session.GetHabbo().TimeMuted)); return; } if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override")) { Message = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(Message); } ChatStyle Style = null; if (!PlusEnvironment.GetGame().GetChatManager().GetChatStyles().TryGetStyle(Colour, out Style) || (Style.RequiredRight.Length > 0 && !Session.GetHabbo().GetPermissions().HasRight(Style.RequiredRight))) { Colour = 0; } User.LastBubble = Session.GetHabbo().CustomBubbleId == 0 ? Colour : Session.GetHabbo().CustomBubbleId; if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { int MuteTime; if (User.IncrementAndCheckFlood(out MuteTime)) { Session.SendPacket(new FloodControlComposer(MuteTime)); return; } } if (!User2.GetClient().GetHabbo().ReceiveWhispers&& !Session.GetHabbo().GetPermissions().HasRight("room_whisper_override")) { Session.SendWhisper("Oops, this user has their whispers disabled!"); return; } PlusEnvironment.GetGame().GetChatManager().GetLogs().StoreChatlog(new ChatlogEntry(Session.GetHabbo().Id, Room.Id, "<Whisper to " + ToUser + ">: " + Message, UnixTimestamp.GetNow(), Session.GetHabbo(), Room)); if (PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckBannedWords(Message)) { Session.GetHabbo().BannedPhraseCount++; if (Session.GetHabbo().BannedPhraseCount >= (Convert.ToInt32(PlusEnvironment.GetSettingsManager().TryGetValue("room.chat.filter.banned_phrases.chances")))) { PlusEnvironment.GetGame().GetModerationManager().BanUser("System", HabboHotel.Moderation.ModerationBanType.USERNAME, Session.GetHabbo().Username, "Spamming banned phrases (" + Message + ")", (PlusEnvironment.GetUnixTimestamp() + 78892200)); Session.Disconnect(); return; } Session.SendPacket(new WhisperComposer(User.VirtualId, Message, 0, User.LastBubble)); return; } PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_CHAT); User.UnIdle(); User.GetClient().SendPacket(new WhisperComposer(User.VirtualId, Message, 0, User.LastBubble)); if (User2 != null && !User2.IsBot && User2.UserId != User.UserId) { if (!User2.GetClient().GetHabbo().GetIgnores().IgnoredUserIds().Contains(Session.GetHabbo().Id)) { User2.GetClient().SendPacket(new WhisperComposer(User.VirtualId, Message, 0, User.LastBubble)); } } List <RoomUser> ToNotify = Room.GetRoomUserManager().GetRoomUserByRank(2); if (ToNotify.Count > 0) { foreach (RoomUser user in ToNotify) { if (user != null && user.HabboId != User2.HabboId && user.HabboId != User.HabboId) { if (user.GetClient() != null && user.GetClient().GetHabbo() != null && !user.GetClient().GetHabbo().IgnorePublicWhispers) { user.GetClient().SendPacket(new WhisperComposer(User.VirtualId, "[Whisper to " + ToUser + "] " + Message, 0, User.LastBubble)); } } } } }
public override void OnUserSay(RoomUser User, string Message) { if (User == null) { return; } RoomUser Pet = GetRoomUser(); if (Pet == null) { return; } if (Pet.PetData.DBState != DatabaseUpdateState.NeedsInsert) { Pet.PetData.DBState = DatabaseUpdateState.NeedsUpdate; } if (Message.ToLower().Equals(Pet.PetData.Name.ToLower())) { Pet.SetRot(Rotation.Calculate(Pet.X, Pet.Y, User.X, User.Y), false); return; } //if (!Pet.Statusses.ContainsKey("gst thr")) // Pet.Statusses.Add("gst, TextHandling.GetString(Pet.Z)); if ((Message.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") && User.GetClient().GetHabbo().Username.ToLower() == Pet.PetData.OwnerName.ToLower()) || (Message.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") && PlusEnvironment.GetGame().GetChatManager().GetPetCommands().TryInvoke(Message.Substring(Pet.PetData.Name.ToLower().Length + 1)) == 8)) { string Command = Message.Substring(Pet.PetData.Name.ToLower().Length + 1); int r = RandomNumber.GenerateRandom(1, 8); // Made Random if (Pet.PetData.Energy > 10 && r < 6 || Pet.PetData.Level > 15 || PlusEnvironment.GetGame().GetChatManager().GetPetCommands().TryInvoke(Command) == 8) { RemovePetStatus(); // Remove Status switch (PlusEnvironment.GetGame().GetChatManager().GetPetCommands().TryInvoke(Command)) { // TODO - Level you can use the commands at... #region free case 1: RemovePetStatus(); //int randomX = PlusEnvironment.GetRandomNumber(0, GetRoom().Model.MapSizeX); //int randomY = PlusEnvironment.GetRandomNumber(0, GetRoom().Model.MapSizeY); Point nextCoord = GetRoom().GetGameMap().getRandomWalkableSquare(); Pet.MoveTo(nextCoord.X, nextCoord.Y); Pet.PetData.Addexperience(10); // Give XP break; #endregion #region here case 2: RemovePetStatus(); int NewX = User.X; int NewY = User.Y; ActionTimer = 30; // Reset ActionTimer #region Rotation if (User.RotBody == 4) { NewY = User.Y + 1; } else if (User.RotBody == 0) { NewY = User.Y - 1; } else if (User.RotBody == 6) { NewX = User.X - 1; } else if (User.RotBody == 2) { NewX = User.X + 1; } else if (User.RotBody == 3) { NewX = User.X + 1; NewY = User.Y + 1; } else if (User.RotBody == 1) { NewX = User.X + 1; NewY = User.Y - 1; } else if (User.RotBody == 7) { NewX = User.X - 1; NewY = User.Y - 1; } else if (User.RotBody == 5) { NewX = User.X - 1; NewY = User.Y + 1; } #endregion Pet.PetData.Addexperience(10); // Give XP Pet.MoveTo(NewX, NewY); break; #endregion #region sit case 3: // Remove Status RemovePetStatus(); Pet.PetData.Addexperience(10); // Give XP // Add Status Pet.Statusses.Add("sit", TextHandling.GetString(Pet.Z)); Pet.UpdateNeeded = true; ActionTimer = 25; EnergyTimer = 10; break; #endregion #region lay case 4: // Remove Status RemovePetStatus(); // Add Status Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z)); Pet.UpdateNeeded = true; Pet.PetData.Addexperience(10); // Give XP ActionTimer = 30; EnergyTimer = 5; break; #endregion #region dead case 5: // Remove Status RemovePetStatus(); // Add Status Pet.Statusses.Add("ded", TextHandling.GetString(Pet.Z)); Pet.UpdateNeeded = true; Pet.PetData.Addexperience(10); // Give XP // Don't move to speak for a set amount of time. SpeechTimer = 45; ActionTimer = 30; break; #endregion #region sleep case 6: // Remove Status RemovePetStatus(); Pet.Chat("ZzzZZZzzzzZzz", false); Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z)); Pet.UpdateNeeded = true; Pet.PetData.Addexperience(10); // Give XP // Don't move to speak for a set amount of time. EnergyTimer = 5; SpeechTimer = 30; ActionTimer = 45; break; #endregion #region jump case 7: // Remove Status RemovePetStatus(); // Add Status Pet.Statusses.Add("jmp", TextHandling.GetString(Pet.Z)); Pet.UpdateNeeded = true; Pet.PetData.Addexperience(10); // Give XP // Don't move to speak for a set amount of time. EnergyTimer = 5; SpeechTimer = 10; ActionTimer = 5; break; #endregion #region breed case 46: break; #endregion default: string[] Speech = PlusEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("pet.unknowncommand"); Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false); break; } Pet.PetData.PetEnergy(false); // Remove Energy } else { RemovePetStatus(); // Remove Status if (Pet.PetData.Energy < 10) { //GetRoomUser refers to the pet //User refers to Owner RoomUser UserRiding = GetRoom().GetRoomUserManager().GetRoomUserByVirtualId(Pet.HorseID);; if (UserRiding.RidingHorse) { Pet.Chat("Getof my sit", false); UserRiding.RidingHorse = false; Pet.RidingHorse = false; UserRiding.ApplyEffect(-1); UserRiding.MoveTo(new Point(GetRoomUser().X + 1, GetRoomUser().Y + 1)); } string[] Speech = PlusEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("pet.tired"); var RandomSpeech = new Random(); Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false); Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z)); Pet.UpdateNeeded = true; SpeechTimer = 50; ActionTimer = 45; EnergyTimer = 5; } else { string[] Speech = PlusEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("pet.lazy"); var RandomSpeech = new Random(); Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false); Pet.PetData.PetEnergy(false); // Remove Energy } } } //Pet = null; }
public CatalogOfferComposer(CatalogItem item) : base(ServerPacketHeader.CatalogOfferMessageComposer) { WriteInteger(item.OfferId); WriteString(item.Data.ItemName); WriteBoolean(false); //IsRentable WriteInteger(item.CostCredits); if (item.CostDiamonds > 0) { WriteInteger(item.CostDiamonds); WriteInteger(5); // Diamonds } else { WriteInteger(item.CostPixels); WriteInteger(0); // Type of PixelCost } WriteBoolean(ItemUtility.CanGiftItem(item)); WriteInteger(string.IsNullOrEmpty(item.Badge) ? 1 : 2); //Count 1 item if there is no badge, otherwise count as 2. if (!string.IsNullOrEmpty(item.Badge)) { WriteString("b"); WriteString(item.Badge); } WriteString(item.Data.Type.ToString()); if (item.Data.Type.ToString().ToLower() == "b") { WriteString(item.Data.ItemName); //Badge name. } else { WriteInteger(item.Data.SpriteId); if (item.Data.InteractionType == InteractionType.Wallpaper || item.Data.InteractionType == InteractionType.Floor || item.Data.InteractionType == InteractionType.Landscape) { WriteString(item.Name.Split('_')[2]); } else if (item.PageID == 9) //Bots { WriteString(!PlusEnvironment.GetGame().GetCatalog().TryGetBot(item.ItemId, out var cataBot) ? "hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92" : cataBot.Figure); } else if (item.ExtraData != null) { WriteString(item.ExtraData != null ? item.ExtraData : string.Empty); } WriteInteger(item.Amount); WriteBoolean(item.IsLimited); // IsLimited if (item.IsLimited) { WriteInteger(item.LimitedEditionStack); WriteInteger(item.LimitedEditionStack - item.LimitedEditionSells); } } WriteInteger(0); // club_level WriteBoolean(ItemUtility.CanSelectAmount(item)); WriteBoolean(false); // TODO: Figure out WriteString(""); //previewImage -> e.g; catalogue/pet_lion.png }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int GroupId = Packet.PopInt(); int Page = Packet.PopInt(); string SearchVal = Packet.PopString(); int RequestType = Packet.PopInt(); Group Group = null; if (!PlusEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group)) { return; } List <UserCache> Members = new List <UserCache>(); switch (RequestType) { case 0: { List <int> MemberIds = Group.GetAllMembers; foreach (int Id in MemberIds.ToList()) { UserCache GroupMember = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(Id); if (GroupMember == null) { continue; } if (!Members.Contains(GroupMember)) { Members.Add(GroupMember); } } break; } case 1: { List <int> AdminIds = Group.GetAdministrators; foreach (int Id in AdminIds.ToList()) { UserCache GroupMember = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(Id); if (GroupMember == null) { continue; } if (!Members.Contains(GroupMember)) { Members.Add(GroupMember); } } break; } case 2: { List <int> RequestIds = Group.GetRequests; foreach (int Id in RequestIds.ToList()) { UserCache GroupMember = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(Id); if (GroupMember == null) { continue; } if (!Members.Contains(GroupMember)) { Members.Add(GroupMember); } } break; } } if (!string.IsNullOrEmpty(SearchVal)) { Members = Members.Where(x => x.Username.StartsWith(SearchVal)).ToList(); } int StartIndex = ((Page - 1) * 14 + 14); int FinishIndex = Members.Count; Session.SendMessage(new GroupMembersComposer(Group, Members.Skip(StartIndex).Take(FinishIndex - StartIndex).ToList(), Members.Count, Page, (Group.CreatorId == Session.GetHabbo().Id || Group.IsAdmin(Session.GetHabbo().Id)), RequestType, SearchVal)); }
public void Parse(GameClient session, ClientPacket packet) { if (session == null || session.Habbo == null) { return; } List <RoomData> rooms = RoomFactory.GetRoomsDataByOwnerSortByName(session.Habbo.Id); if (rooms.Count >= 500) { session.SendPacket(new CanCreateRoomComposer(true, 500)); return; } string name = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(packet.PopString()); string description = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(packet.PopString()); string modelName = packet.PopString(); int category = packet.PopInt(); int maxVisitors = packet.PopInt(); //10 = min, 25 = max. int tradeSettings = packet.PopInt(); //2 = All can trade, 1 = owner only, 0 = no trading. if (name.Length < 3) { return; } if (name.Length > 25) { return; } if (!PlusEnvironment.GetGame().GetRoomManager().TryGetModel(modelName, out RoomModel model)) { return; } if (!PlusEnvironment.GetGame().GetNavigator().TryGetSearchResultList(category, out SearchResultList searchResultList)) { category = 36; } if (searchResultList.CategoryType != NavigatorCategoryType.Category || searchResultList.RequiredRank > session.Habbo.Rank) { category = 36; } if (maxVisitors < 10 || maxVisitors > 25) { maxVisitors = 10; } if (tradeSettings < 0 || tradeSettings > 2) { tradeSettings = 0; } RoomData newRoom = PlusEnvironment.GetGame().GetRoomManager().CreateRoom(session, name, description, category, maxVisitors, tradeSettings, model); if (newRoom != null) { session.SendPacket(new FlatCreatedComposer(newRoom.Id, name)); } if (session.Habbo != null && session.Habbo.GetMessenger() != null) { session.Habbo.GetMessenger().OnStatusChanged(true); } }
public void Parse(GameClient session, ClientPacket packet) { if (!session.GetHabbo().InRoom) { return; } if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(session.GetHabbo().CurrentRoomId, out Room room)) { return; } if (!room.CheckRights(session, true)) { return; } Item item = session.GetHabbo().GetInventoryComponent().GetItem(packet.PopInt()); if (item == null) { return; } if (item.GetBaseItem() == null) { return; } string decorationKey = string.Empty; switch (item.GetBaseItem().InteractionType) { case InteractionType.FLOOR: decorationKey = "floor"; break; case InteractionType.WALLPAPER: decorationKey = "wallpaper"; break; case InteractionType.LANDSCAPE: decorationKey = "landscape"; break; } switch (decorationKey) { case "floor": room.Floor = item.ExtraData; PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(session, QuestType.FurniDecoFloor); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(session, "ACH_RoomDecoFloor", 1); break; case "wallpaper": room.Wallpaper = item.ExtraData; PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(session, QuestType.FurniDecoWall); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(session, "ACH_RoomDecoWallpaper", 1); break; case "landscape": room.Landscape = item.ExtraData; PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(session, "ACH_RoomDecoLandscape", 1); break; } using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `rooms` SET `" + decorationKey + "` = @extradata WHERE `id` = '" + room.RoomId + "' LIMIT 1"); dbClient.AddParameter("extradata", item.ExtraData); dbClient.RunQuery(); dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + item.Id + "' LIMIT 1"); } session.GetHabbo().GetInventoryComponent().RemoveItem(item.Id); room.SendPacket(new RoomPropertyComposer(decorationKey, item.ExtraData)); }
public void OnChat(int Colour, string Message, bool Shout) { if (GetClient() == null || GetClient().GetHabbo() == null || mRoom == null) { return; } if (mRoom.GetWired().TriggerEvent(Items.Wired.WiredBoxType.TriggerUserSays, GetClient().GetHabbo(), Message)) { return; } GetClient().GetHabbo().HasSpoken = true; if (mRoom.WordFilterList.Count > 0 && !GetClient().GetHabbo().GetPermissions().HasRight("word_filter_override")) { Message = mRoom.GetFilter().CheckMessage(Message); } ServerPacket Packet = null; if (Shout) { Packet = new ShoutComposer(VirtualId, Message, PlusEnvironment.GetGame().GetChatManager().GetEmotions().GetEmotionsForText(Message), Colour); } else { Packet = new ChatComposer(VirtualId, Message, PlusEnvironment.GetGame().GetChatManager().GetEmotions().GetEmotionsForText(Message), Colour); } if (GetClient().GetHabbo().TentId > 0) { mRoom.SendToTent(GetClient().GetHabbo().Id, GetClient().GetHabbo().TentId, Packet); Packet = new WhisperComposer(this.VirtualId, "[Tent Chat] " + Message, 0, Colour); List <RoomUser> ToNotify = mRoom.GetRoomUserManager().GetRoomUserByRank(2); if (ToNotify.Count > 0) { foreach (RoomUser user in ToNotify) { if (user == null || user.GetClient() == null || user.GetClient().GetHabbo() == null || user.GetClient().GetHabbo().TentId == GetClient().GetHabbo().TentId) { continue; } user.GetClient().SendMessage(Packet); } } } else { foreach (RoomUser User in mRoom.GetRoomUserManager().GetRoomUsers().ToList()) { if (User == null || User.GetClient() == null || User.GetClient().GetHabbo() == null || User.GetClient().GetHabbo().MutedUsers.Contains(mClient.GetHabbo().Id)) { continue; } if (mRoom.chatDistance > 0 && Gamemap.TileDistance(this.X, this.Y, User.X, User.Y) > mRoom.chatDistance) { continue; } User.GetClient().SendMessage(Packet); } } #region Pets/Bots responces if (Shout) { foreach (RoomUser User in mRoom.GetRoomUserManager().GetUserList().ToList()) { if (!User.IsBot) { continue; } if (User.IsBot) { User.BotAI.OnUserShout(this, Message); } } } else { foreach (RoomUser User in mRoom.GetRoomUserManager().GetUserList().ToList()) { if (!User.IsBot) { continue; } if (User.IsBot) { User.BotAI.OnUserSay(this, Message); } } } #endregion }
public void Parse(GameClient session, ClientPacket packet) { if (session == null || session.GetHabbo() == null || !session.GetHabbo().GetPermissions().HasRight("mod_soft_ban")) { return; } int userId = packet.PopInt(); string message = packet.PopString(); double length = packet.PopInt() * 3600 + PlusEnvironment.GetUnixTimestamp(); packet.PopString(); //unk1 packet.PopString(); //unk2 bool ipBan = packet.PopBoolean(); bool machineBan = packet.PopBoolean(); if (machineBan) { ipBan = false; } Habbo habbo = PlusEnvironment.GetHabboById(userId); if (habbo == null) { session.SendWhisper("An error occoured whilst finding that user in the database."); return; } if (habbo.GetPermissions().HasRight("mod_tool") && !session.GetHabbo().GetPermissions().HasRight("mod_ban_any")) { session.SendWhisper("Oops, you cannot ban that user."); return; } message = message != null ? message : "No reason specified."; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + habbo.Id + "' LIMIT 1"); } if (ipBan == false && machineBan == false) { PlusEnvironment.GetGame().GetModerationManager().BanUser(session.GetHabbo().Username, ModerationBanType.Username, habbo.Username, message, length); } else if (ipBan) { PlusEnvironment.GetGame().GetModerationManager().BanUser(session.GetHabbo().Username, ModerationBanType.IP, habbo.Username, message, length); } else { PlusEnvironment.GetGame().GetModerationManager().BanUser(session.GetHabbo().Username, ModerationBanType.IP, habbo.Username, message, length); PlusEnvironment.GetGame().GetModerationManager().BanUser(session.GetHabbo().Username, ModerationBanType.Username, habbo.Username, message, length); PlusEnvironment.GetGame().GetModerationManager().BanUser(session.GetHabbo().Username, ModerationBanType.Machine, habbo.Username, message, length); } GameClient targetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(habbo.Username); if (targetClient != null) { targetClient.Disconnect(); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } int Unknown = Packet.PopInt(); int ItemId = Packet.PopInt(); Item Item = Room.GetRoomItemHandler().GetItem(ItemId); if (Item == null) { return; } if (Item.GetBaseItem().InteractionType == InteractionType.POSTIT) { return; } Boolean ItemRights = false; if (Item.UserID == Session.GetHabbo().Id || Room.CheckRights(Session, false)) { ItemRights = true; } else if (Room.Group != null && Room.CheckRights(Session, false, true))//Room has a group, this user has group rights. { ItemRights = true; } else if (Session.GetHabbo().GetPermissions().HasRight("room_item_take")) { ItemRights = true; } if (ItemRights == true) { if (Item.GetBaseItem().InteractionType == InteractionType.TENT || Item.GetBaseItem().InteractionType == InteractionType.TENT_SMALL) { Room.RemoveTent(Item.Id); } if (Item.GetBaseItem().InteractionType == InteractionType.MOODLIGHT) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `room_items_moodlight` WHERE `item_id` = '" + Item.Id + "' LIMIT 1"); } } else if (Item.GetBaseItem().InteractionType == InteractionType.TONER) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `room_items_toner` WHERE `id` = '" + Item.Id + "' LIMIT 1"); } } if (Item.UserID == Session.GetHabbo().Id) { Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id); Session.GetHabbo().GetInventoryComponent().AddNewItem(Item.Id, Item.BaseItem, Item.ExtraData, Item.GroupId, true, true, Item.LimitedNo, Item.LimitedTot); Session.GetHabbo().GetInventoryComponent().UpdateItems(false); } else if (Session.GetHabbo().GetPermissions().HasRight("room_item_take"))//Staff are taking this item { Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id); Session.GetHabbo().GetInventoryComponent().AddNewItem(Item.Id, Item.BaseItem, Item.ExtraData, Item.GroupId, true, true, Item.LimitedNo, Item.LimitedTot); Session.GetHabbo().GetInventoryComponent().UpdateItems(false); } else//Item is being ejected. { GameClient targetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Item.UserID); if (targetClient != null && targetClient.GetHabbo() != null)//Again, do we have an active client? { Room.GetRoomItemHandler().RemoveFurniture(targetClient, Item.Id); targetClient.GetHabbo().GetInventoryComponent().AddNewItem(Item.Id, Item.BaseItem, Item.ExtraData, Item.GroupId, true, true, Item.LimitedNo, Item.LimitedTot); targetClient.GetHabbo().GetInventoryComponent().UpdateItems(false); } else//No, query time. { Room.GetRoomItemHandler().RemoveFurniture(null, Item.Id); using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `items` SET `room_id` = '0' WHERE `id` = '" + Item.Id + "' LIMIT 1"); } } } PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.FurniPick); } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { Group job = GroupManager.GetJob(Session.GetRoleplay().JobId); GroupRank rank = GroupManager.GetJobRank(Session.GetRoleplay().JobId, Session.GetRoleplay().JobRank); StringBuilder MarriedMesssage = new StringBuilder(); if (Session.GetRoleplay().MarriedTo != 0) { MarriedMesssage.Append(PlusEnvironment.GetGame().GetCacheManager().GenerateUser(Session.GetRoleplay().MarriedTo).Username); } else { MarriedMesssage.Append("Ninguém!"); } StringBuilder JailMessage = new StringBuilder(); if (Session.GetRoleplay().IsJailed) { JailMessage.Append("Você está preso por " + Session.GetRoleplay().JailedTimeLeft + " minutos"); } else { JailMessage.Append("Você não está preso"); } StringBuilder DeadMessage = new StringBuilder(); if (Session.GetRoleplay().IsDead) { DeadMessage.Append("Você está morto por " + Session.GetRoleplay().DeadTimeLeft + " minutos"); } else { DeadMessage.Append("Você nãot dead"); } StringBuilder WantedMessage = new StringBuilder(); if (Session.GetRoleplay().IsWanted) { WantedMessage.Append("Você está sendo procurado por " + Session.GetRoleplay().WantedTimeLeft + " minutos"); } else { WantedMessage.Append("Você não está sendo procurado"); } StringBuilder ProbationMessage = new StringBuilder(); if (Session.GetRoleplay().OnProbation) { ProbationMessage.Append("Você está em liberdade condicional por" + Session.GetRoleplay().ProbationTimeLeft + " minutos"); } else { ProbationMessage.Append("Você não está em liberdade condicional"); } StringBuilder SendhomeMessage = new StringBuilder(); if (Session.GetRoleplay().SendHomeTimeLeft > 0) { SendhomeMessage.Append("Você está enviado para casa por " + Session.GetRoleplay().SendHomeTimeLeft + " minutos"); } else { SendhomeMessage.Append("Você não foi enviado para casa"); } StringBuilder PhoneType = new StringBuilder(); if (Session.GetRoleplay().PhoneType == 0) { PhoneType.Append("Você não tem um telefone"); } if (Session.GetRoleplay().PhoneType == 1) { PhoneType.Append("Você tem um Nokia Tijolão. Mensagens custam [3 creditos de celuar cada]"); } if (Session.GetRoleplay().PhoneType == 2) { PhoneType.Append("Você tem um iPhone 4s. Mensagens custam [2 creditos de celuar cada]"); } if (Session.GetRoleplay().PhoneType == 3) { PhoneType.Append("Você tem o último iPhone 7. Mensagens custam [1 creditos de celuar cada]"); } Group Gang = GroupManager.GetGang(Session.GetRoleplay().GangId); GroupRank GangRank = GroupManager.GetGangRank(Session.GetRoleplay().GangId, Session.GetRoleplay().GangRank); string grank = "\n"; if (Session.GetRoleplay().GangId > 1000) { if (GangRank != null) { grank = "Rank da Gangue: " + GangRank.Name + "\n\n"; } } StringBuilder CarType = new StringBuilder(); if (Session.GetRoleplay().CarType == 0) { CarType.Append("Você não tem"); } else if (Session.GetRoleplay().CarType == 1) { CarType.Append("Você tem um Toyota Corolla. Ele usa 3 combustível por cada 10 segundos"); } else if (Session.GetRoleplay().CarType == 2) { CarType.Append("Você tem um Honda Accord. Ele usa 2 combustível por cada 10 segundos"); } else { CarType.Append("Você tem o fantastico Nissan GTR. Ele usa 1 combustível por cada 10 segundos"); } StringBuilder CarFuel = new StringBuilder(); if (Session.GetRoleplay().CarType == 0) { CarFuel.Append(""); } else { if (Session.GetRoleplay().CarFuel > 0) { CarFuel.Append("Combustível: Você tem " + String.Format("{0:N0}", Session.GetRoleplay().CarFuel) + " galões!\n"); } else { CarFuel.Append("Combustível: Você não tem combustível!\n"); } } StringBuilder MessageToSend = new StringBuilder().Append( "<---------- Suas Estatísticas ---------->\n\n" + "<----- Informações [Básicas] ----->\n" + "Level: " + Session.GetRoleplay().Level + "/" + RoleplayManager.LevelCap + "\n" + "Level XP: " + String.Format("{0:N0}", Session.GetRoleplay().LevelEXP) + "/" + String.Format("{0:N0}", ((!LevelManager.Levels.ContainsKey(Session.GetRoleplay().Level + 1) ? 100000 : LevelManager.Levels[Session.GetRoleplay().Level + 1]))) + "\n" + "Classe: " + Session.GetRoleplay().Class + "\n\n" + "<----- Informações [Trabalho] ----->\n" + "Emprego: " + job.Name + " no cargo " + rank.Name + "\n" + "Pagamento: R$" + rank.Pay + " por 15 minutos\n" + "Enviado para casa: " + SendhomeMessage + "\n" + "Minutos trabalhados: " + String.Format("{0:N0}", Session.GetRoleplay().TimeWorked) + "\n\n" + "<----- Informações [Humanas] ----->\n" + "Sangue: " + String.Format("{0:N0}", Session.GetRoleplay().CurHealth) + "/" + Session.GetRoleplay().MaxHealth + "\n" + "Energia: " + Session.GetRoleplay().CurEnergy + "/" + Session.GetRoleplay().MaxEnergy + "\n" + "Fome: " + Session.GetRoleplay().Hunger + "/100\n" + "Higiene: " + Session.GetRoleplay().Hygiene + "/100\n\n" + "<----- Informações [Níveis] ----->\n" + "Inteligência: " + Session.GetRoleplay().Intelligence + "/" + RoleplayManager.IntelligenceCap + " <---> XP: " + String.Format("{0:N0}", Session.GetRoleplay().IntelligenceEXP) + " / " + String.Format("{0:N0}", (!LevelManager.IntelligenceLevels.ContainsKey(Session.GetRoleplay().Intelligence + 1) ? 100000 : LevelManager.IntelligenceLevels[Session.GetRoleplay().Intelligence + 1])) + "\n" + "Força: " + Session.GetRoleplay().Strength + "/" + RoleplayManager.StrengthCap + " <---> XP: " + String.Format("{0:N0}", Session.GetRoleplay().StrengthEXP) + " / " + String.Format("{0:N0}", (!LevelManager.StrengthLevels.ContainsKey(Session.GetRoleplay().Strength + 1) ? 100000 : LevelManager.StrengthLevels[Session.GetRoleplay().Strength + 1])) + "\n" + "Vigor: " + Session.GetRoleplay().Stamina + "/" + RoleplayManager.StaminaCap + " <---> XP: " + String.Format("{0:N0}", Session.GetRoleplay().StaminaEXP) + " / " + String.Format("{0:N0}", (!LevelManager.StaminaLevels.ContainsKey(Session.GetRoleplay().Stamina + 1) ? 100000 : LevelManager.StaminaLevels[Session.GetRoleplay().Stamina + 1])) + "\n\n" + "<----- Informação [Comportamento] ----->\n" + "Preso: " + JailMessage + "\n" + "Morto: " + DeadMessage + "\n" + "Procurado: " + WantedMessage + "\n" + "Liberdade condicional: " + ProbationMessage + "\n\n" + "<----- Informações [Afiliações] ----->\n" + "Casado(a) com: " + MarriedMesssage + "\n" + "Gangue: " + (Gang == null ? "Nenhuma" : Gang.Name) + "\n" + grank + "<----- Informações [Outros] ----->\n" + "Socos: " + String.Format("{0:N0}", Session.GetRoleplay().Punches) + "\n" + "Matou: " + String.Format("{0:N0}", Session.GetRoleplay().Kills) + " cidadãos\n" + "Matou com soco " + String.Format("{0:N0}", Session.GetRoleplay().HitKills) + " cidadãos\n" + "Matou com armas: " + String.Format("{0:N0}", Session.GetRoleplay().GunKills) + " cidadãos\n" + "Morreu: " + String.Format("{0:N0}", Session.GetRoleplay().Deaths) + " vezes\n" + "Morreu sendo PM: " + String.Format("{0:N0}", Session.GetRoleplay().CopDeaths) + "vezes\n" + "Prendeu: " + String.Format("{0:N0}", Session.GetRoleplay().Arrests) + " criminosos\n" + "Foi preso: " + String.Format("{0:N0}", Session.GetRoleplay().Arrested) + " vezes\n" + "Fugas da prisão: " + String.Format("{0:N0}", Session.GetRoleplay().Evasions) + "\n\n" + "<----- Informações [Bancárias] ----->\n" + "Conta de Cheques: R$" + String.Format("{0:N0}", Session.GetRoleplay().BankChequings) + "\n" + "Conta de Poupança: R$" + String.Format("{0:N0}", Session.GetRoleplay().BankSavings) + "\n\n" + "<----- Informações [Inventário] ----->\n" + "Celular: " + PhoneType + "\n" + "Carro: " + CarType + "\n" + CarFuel + "Balas: " + String.Format("{0:N0}", Session.GetRoleplay().Bullets) + "\n" + "Dinamites: " + String.Format("{0:N0}", Session.GetRoleplay().Dynamite) + "\n" + "Cigarros: " + String.Format("{0:N0}", Session.GetRoleplay().Cigarettes) + " cigarros\n" + "Maconha: " + String.Format("{0:N0}", Session.GetRoleplay().Weed) + " gramas\n" + "Cocaína: " + String.Format("{0:N0}", Session.GetRoleplay().Cocaine) + " gramas\n\n" + "<----- Informações [Agrícolas] ----->\n" + "Use o comando ':agricultura' para ver as suas estatísticas!\n\n" + "<----- Informações [Armas] ----->\n" + "Use o comando ':armas' para ver as que você possui!\n"); Session.SendMessage(new MOTDNotificationComposer(MessageToSend.ToString())); }
private GameClient GetClient() => PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(_userId);
public void Parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().TimeMuted > 0) { Session.SendNotification("Oops, you're currently muted - you cannot change your motto."); return; } if ((DateTime.Now - Session.GetHabbo().LastMottoUpdateTime).TotalSeconds <= 2.0) { Session.GetHabbo().MottoUpdateWarnings += 1; if (Session.GetHabbo().MottoUpdateWarnings >= 25) { Session.GetHabbo().SessionMottoBlocked = true; } return; } if (Session.GetHabbo().SessionMottoBlocked) { return; } Session.GetHabbo().LastMottoUpdateTime = DateTime.Now; string newMotto = StringCharFilter.Escape(Packet.PopString().Trim()); if (newMotto.Length > 38) { newMotto = newMotto.Substring(0, 38); } if (newMotto == Session.GetHabbo().Motto) { return; } if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override")) { newMotto = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(newMotto); } Session.GetHabbo().Motto = newMotto; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `motto` = @motto WHERE `id` = @userId LIMIT 1"); dbClient.AddParameter("userId", Session.GetHabbo().Id); dbClient.AddParameter("motto", newMotto); dbClient.RunQuery(); } PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.ProfileChangeMotto); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Motto", 1); if (Session.GetHabbo().InRoom) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null || User.GetClient() == null) { return; } Room.SendPacket(new UserChangeComposer(User, false)); } }
public void Parse(GameClient Session, ClientPacket Packet) { int UsersOnline = PlusEnvironment.GetGame().GetClientManager().Count; Session.SendPacket(new ConcurrentUsersGoalProgressComposer(UsersOnline)); }
public void Parse(GameClient Session, ClientPacket Packet) { PlusEnvironment.GetGame().GetQuestManager().GetList(Session, null); }
public void ChooseReward(GameClient Session) { var Random = new CryptoRandom(); int TotalCraftingItems = CraftingManager.CraftableItems.Count; int Chance = Random.Next(1, 101); int SecondChance = Random.Next(1, 101); if (SecondChance < 4 && Chance > TotalCraftingItems) { Chance = Random.Next(1, TotalCraftingItems + 1); } #region Crafting Materials if (Chance <= TotalCraftingItems) { var CraftingItemName = CraftingManager.CraftableItems[Chance - 1]; ItemData Data = null; foreach (var itemdata in PlusEnvironment.GetGame().GetItemManager()._items.Values) { if (itemdata.ItemName != CraftingItemName) { continue; } Data = itemdata; break; } var Item = ItemFactory.CreateSingleItemNullable(Data, Session.GetHabbo(), "", ""); Session.GetHabbo().GetInventoryComponent().TryAddItem(Item); ICollection <Item> FloorItems = Session.GetHabbo().GetInventoryComponent().GetFloorItems(); ICollection <Item> WallItems = Session.GetHabbo().GetInventoryComponent().GetWallItems(); Session.GetRoleplay().CraftingCheck = true; Session.SendMessage(new FurniListComposer(FloorItems.ToList(), WallItems, Session.GetRoleplay().CraftingCheck)); Session.Shout("*Depois de vasculhar o lixo, encontra " + Item.GetBaseItem().PublicName + "*", 4); } #endregion #region Drugs else if (Chance > TotalCraftingItems && Chance <= 60) { int Amount; // Cocaine if (Chance > 30) { Amount = Random.Next(1, 10); Session.GetRoleplay().Cocaine += Amount; Session.Shout("*Depois de vasculhar o lixo, acha pequena bolsa contendo " + Amount + "g de cocaina*", 4); } // Cigarettes else if (Chance <= 30 && Chance > 16) { Amount = Random.Next(1, 10); Session.GetRoleplay().Cigarettes += Amount; Session.Shout("*Depois de vasculhar o lixo, acha pequena bolsa contendo " + Amount + " cigarro(s)*", 4); } // Weed else { Amount = Random.Next(1, 10); Session.GetRoleplay().Weed += Amount; Session.Shout("*Depois de vasculhar o lixo, acha pequena bolsa contendo " + Amount + "g de maconha*", 4); } } #endregion #region Money else if (Chance > 30 && Chance <= 55) { int Amount = Random.Next(3, 10); Session.GetHabbo().Credits += Amount; Session.GetHabbo().UpdateCreditsBalance(); Session.Shout("*Depois de revirar o lixo, acha uma carteira contendo R$" + Amount + "*", 4); } #endregion #region Special Bot else if (Chance > 75 && Chance <= 78) { } #endregion #region No Reward else { Session.Shout("*Não encontra nada depois de revirar o lixo*", 4); } #endregion }
public override void OnTimerTick() { RoomUser Pet = GetRoomUser(); if (Pet == null) { return; } #region Speech if (SpeechTimer <= 0) { if (Pet.PetData.DBState != DatabaseUpdateState.NeedsInsert) { Pet.PetData.DBState = DatabaseUpdateState.NeedsUpdate; } if (Pet != null) { var RandomSpeech = new Random(); RemovePetStatus(); string[] Speech = PlusEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("speech.pet" + Pet.PetData.Type); string rSpeech = Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)]; if (rSpeech.Length != 3) { Pet.Chat(rSpeech, false); } else { Pet.Statusses.Add(rSpeech, TextHandling.GetString(Pet.Z)); } } SpeechTimer = PlusEnvironment.GetRandomNumber(20, 120); } else { SpeechTimer--; } #endregion #region Actions if (ActionTimer <= 0) { try { RemovePetStatus(); ActionTimer = RandomNumber.GenerateRandom(15, 40 + GetRoomUser().PetData.VirtualId); if (!GetRoomUser().RidingHorse) { // Remove Status RemovePetStatus(); Point nextCoord = GetRoom().GetGameMap().getRandomWalkableSquare(); if (GetRoomUser().CanWalk) { GetRoomUser().MoveTo(nextCoord.X, nextCoord.Y); } } } catch (Exception e) { Logging.HandleException(e, "PetBot.OnTimerTick"); } } else { ActionTimer--; } #endregion #region Energy if (EnergyTimer <= 0) { RemovePetStatus(); // Remove Status Pet.PetData.PetEnergy(true); // Add Energy EnergyTimer = RandomNumber.GenerateRandom(30, 120); // 2 Min Max } else { EnergyTimer--; } #endregion }
public override void OnTimerTick() { if (GetBotData() == null) { return; } if (SpeechTimer <= 0) { if (GetBotData().RandomSpeech.Count > 0) { if (GetBotData().AutomaticChat == false) { return; } RandomSpeech Speech = GetBotData().GetRandomSpeech(); string String = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(Speech.Message); if (String.Contains("<img src") || String.Contains("<font ") || String.Contains("</font>") || String.Contains("</a>") || String.Contains("<i>")) { String = "Eu realmente não deveria usar HTML dentro de discursos de bot."; } GetRoomUser().Chat(String, false, GetBotData().ChatBubble); } SpeechTimer = GetBotData().SpeakingInterval; } else { SpeechTimer--; } if (ActionTimer <= 0) { Point nextCoord; switch (GetBotData().WalkingMode.ToLower()) { default: case "stand": // (8) Why is my life so boring? break; case "freeroam": if (GetBotData().ForcedMovement) { if (GetRoomUser().Coordinate == GetBotData().TargetCoordinate) { GetBotData().ForcedMovement = false; GetBotData().TargetCoordinate = new Point(); GetRoomUser().MoveTo(GetBotData().TargetCoordinate.X, GetBotData().TargetCoordinate.Y); } } else if (GetBotData().ForcedUserTargetMovement > 0) { RoomUser Target = GetRoom().GetRoomUserManager().GetRoomUserByHabbo(GetBotData().ForcedUserTargetMovement); if (Target == null) { GetBotData().ForcedUserTargetMovement = 0; GetRoomUser().ClearMovement(true); } else { var Sq = new Point(Target.X, Target.Y); if (Target.RotBody == 0) { Sq.Y--; } else if (Target.RotBody == 2) { Sq.X++; } else if (Target.RotBody == 4) { Sq.Y++; } else if (Target.RotBody == 6) { Sq.X--; } GetRoomUser().MoveTo(Sq); } } else if (GetBotData().TargetUser == 0) { nextCoord = GetRoom().GetGameMap().getRandomWalkableSquare(); GetRoomUser().MoveTo(nextCoord.X, nextCoord.Y); } break; case "specified_range": break; } ActionTimer = new Random(DateTime.Now.Millisecond + this.VirtualId ^ 2).Next(5, 15); } else { ActionTimer--; } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Digite o nome de usuário do usuário que deseja empurrar.", 1); return; } if (!Room.PushEnabled && !Session.GetHabbo().GetPermissions().HasRight("room_override_custom_config")) { Session.SendWhisper("Você não pode empurrar nesta sala!", 1); return; } if (Session.GetRoleplay().StaffOnDuty || Session.GetRoleplay().AmbassadorOnDuty&& !Session.GetHabbo().GetPermissions().HasRight("room_override_custom_config")) { Session.SendWhisper("Você não pode empurrar alguém enquanto você está de plantão!", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online.", 1); return; } 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 (TargetClient.GetHabbo().Username == Session.GetHabbo().Username) { Session.SendWhisper("Você não pode se empurrar!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode empurrar alguém que não está jogando o jogo agora!", 1); return; } if (TargetUser.TeleportEnabled) { Session.SendWhisper("Opa, você não pode empurrar um usuário que possui o modo de teleporte ativado.", 1); return; } if (TargetClient.GetRoleplay().StaffOnDuty) { Session.SendWhisper("Você não pode empurrar alguém que está de plantão!", 1); return; } if (TargetClient.GetRoleplay().AmbassadorOnDuty) { Session.SendWhisper("Você não pode empurrar um embaixador que está de plantão!", 1); return; } if (Session.GetRoleplay().TryGetCooldown("empurrar")) { return; } if (Session.GetRoleplay().Team != null && TargetClient.GetRoleplay().Team != null) { if (Session.GetRoleplay().Team == TargetClient.GetRoleplay().Team) { Session.SendWhisper("Você não pode empurrar o membro da sua equipe enquanto estiver dentro de um evento!", 1); return; } } RoomUser ThisUser = Session.GetRoomUser(); if (ThisUser == null) { return; } if (!((Math.Abs(TargetUser.X - ThisUser.X) >= 2) || (Math.Abs(TargetUser.Y - ThisUser.Y) >= 2))) { if (!HabboRoleplay.Misc.RoleplayManager.PushPullOnArrows) { if (TargetClient.GetRoleplay().Game == null || TargetClient.GetRoleplay().Team == null) { List <Item> RoomArrow = Room.GetRoomItemHandler().GetFloor.Where(x => x != null && x.GetBaseItem() != null && x.GetBaseItem().InteractionType == InteractionType.ARROW && (ThisUser.RotBody == 0 ? TargetUser.SetY - 1 == x.GetY : (ThisUser.RotBody == 1 ? TargetUser.SetX + 1 == x.GetX && TargetUser.Y - 1 == x.GetY : (ThisUser.RotBody == 2 ? TargetUser.SetX + 1 == x.GetX : (ThisUser.RotBody == 3 ? TargetUser.X + 1 == x.GetX && TargetUser.Y + 1 == x.GetY : (ThisUser.RotBody == 4 ? TargetUser.SetY + 1 == x.GetY : (ThisUser.RotBody == 5 ? TargetUser.X - 1 == x.GetX && TargetUser.Y + 1 == x.GetY : (ThisUser.RotBody == 6 ? TargetUser.SetX - 1 == x.GetX : (ThisUser.RotBody == 7 ? TargetUser.X - 1 == x.GetX && TargetUser.Y - 1 == x.GetY : false))))))))).ToList(); if (RoomArrow.Count > 0) { Session.SendWhisper("Você não pode expulsar os usuários desta sala!", 1); return; } } } if (TargetUser.RotBody == 4) { TargetUser.MoveTo(TargetUser.X, TargetUser.Y + 1); } if (ThisUser.RotBody == 0) { TargetUser.MoveTo(TargetUser.X, TargetUser.Y - 1); } if (ThisUser.RotBody == 6) { TargetUser.MoveTo(TargetUser.X - 1, TargetUser.Y); } if (ThisUser.RotBody == 2) { TargetUser.MoveTo(TargetUser.X + 1, TargetUser.Y); } if (ThisUser.RotBody == 3) { TargetUser.MoveTo(TargetUser.X + 1, TargetUser.Y); TargetUser.MoveTo(TargetUser.X, TargetUser.Y + 1); } if (ThisUser.RotBody == 1) { TargetUser.MoveTo(TargetUser.X + 1, TargetUser.Y); TargetUser.MoveTo(TargetUser.X, TargetUser.Y - 1); } if (ThisUser.RotBody == 7) { TargetUser.MoveTo(TargetUser.X - 1, TargetUser.Y); TargetUser.MoveTo(TargetUser.X, TargetUser.Y - 1); } if (ThisUser.RotBody == 5) { TargetUser.MoveTo(TargetUser.X - 1, TargetUser.Y); TargetUser.MoveTo(TargetUser.X, TargetUser.Y + 1); } Session.Shout("*Empurra " + TargetClient.GetHabbo().Username + " para longe*"); Session.GetRoleplay().CooldownManager.CreateCooldown("puxar", 1000, 3); } else { Session.SendWhisper("Opa, " + TargetClient.GetHabbo().Username + " não está perto!", 1); } }
private GameClient GetClient() { return(PlusEnvironment.GetGame().GetClientManager().GetClientByUserId(_userId)); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_soft_ban")) { return; } int UserId = Packet.PopInt(); string Message = Packet.PopString(); double Length = (Packet.PopInt() * 3600) + PlusEnvironment.GetUnixTimestamp(); string Unknown1 = Packet.PopString(); string Unknown2 = Packet.PopString(); bool IPBan = Packet.PopBoolean(); bool MachineBan = Packet.PopBoolean(); if (MachineBan) { IPBan = false; } Habbo Habbo = PlusEnvironment.GetHabboById(UserId); if (Habbo == null) { Session.SendWhisper("An error occoured whilst finding that user in the database."); return; } if (Habbo.GetPermissions().HasRight("mod_tool") && !Session.GetHabbo().GetPermissions().HasRight("mod_ban_any")) { Session.SendWhisper("Oops, you cannot ban that user."); return; } Message = (Message != null ? Message : "No reason specified."); string Username = Habbo.Username; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + Habbo.Id + "' LIMIT 1"); } if (IPBan == false && MachineBan == false) { PlusEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.USERNAME, Habbo.Username, Message, Length); } else if (IPBan == true) { PlusEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.IP, Habbo.Username, Message, Length); } else if (MachineBan == true) { PlusEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.IP, Habbo.Username, Message, Length); PlusEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.USERNAME, Habbo.Username, Message, Length); PlusEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.MACHINE, Habbo.Username, Message, Length); } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Habbo.Username); if (TargetClient != null) { TargetClient.Disconnect(); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().GetMessenger() == null) { return; } if (!RoleplayManager.FollowFriends) { Session.SendWhisper("Opa, o gerenciamento do servidor desativou a capacidade de seguir seus amigos.", 1); return; } int BuddyId = Packet.PopInt(); bool IsVip = Session.GetHabbo().VIPRank < 1 ? false : true; int Cost = IsVip ? 0 : 3; int Time = IsVip ? (5 + DayNightManager.GetTaxiTime()) : (10 + DayNightManager.GetTaxiTime()); string TaxiText = IsVip ? " VIP" : ""; bool OnDuty = false; if (BuddyId == 0 || BuddyId == Session.GetHabbo().Id) { return; } GameClient Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(BuddyId); if (Client == null || Client.GetHabbo() == null) { return; } if (!Client.GetHabbo().InRoom) { Session.SendMessage(new FollowFriendFailedComposer(2)); Session.GetHabbo().GetMessenger().UpdateFriend(Client.GetHabbo().Id, Client, true); return; } else if (Session.GetHabbo().CurrentRoom != null && Client.GetHabbo().CurrentRoom != null) { if (Session.GetHabbo().CurrentRoom.RoomId == Client.GetHabbo().CurrentRoom.RoomId) { return; } } if (!Client.GetHabbo().AllowConsoleMessages) { if (Session.GetHabbo().InRoom) { Session.SendWhisper("Desculpe, mas esse cidadão desligou o telefone, então você não pode segui-lo.", 1); } else { Session.SendNotification("Desculpe, mas esse cidadão desligou o telefone, então você não pode segui-lo."); } return; } if (Session.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode seguir seu amigo enquanto está morto!", 1); return; } if (Session.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode seguir seu amigo enquanto está preso!", 1); return; } if (Session.GetRoomUser() != null) { if (Session.GetRoomUser().Frozen) { Session.SendWhisper("Você não pode seguir seu amigo enquanto está congelado ou atordoado!", 1); return; } } if (Session.GetHabbo().GetPermissions().HasRight("mod_tool") && Session.GetRoleplay().StaffOnDuty) { OnDuty = true; } if (Session.GetHabbo().VIPRank > 1) { OnDuty = true; } if (Session.GetHabbo().CurrentRoom != null) { if (!Session.GetHabbo().CurrentRoom.TaxiFromEnabled&& !OnDuty) { Session.SendWhisper("[RPG Taxi] Desculpe, não podemos levá-lo para fora deste quarto!", 1); return; } } if (Session.GetRoleplay().Cuffed) { Session.SendWhisper("Os motoristas de taxi estão muito assustados para levá-lo com as algemas presas em você!", 1); return; } bool PoliceCost = false; if (HabboHotel.Groups.GroupManager.HasJobCommand(Session, "guide") && Session.GetRoleplay().IsWorking) { PoliceCost = true; } if (Session.GetHabbo().Credits < Cost && Cost > 0 && !OnDuty && !PoliceCost) { Session.SendWhisper("[RPG Taxi] Você não tem dinheiro suficiente para dar uma volta!", 1); return; } if (Session.GetRoleplay().InsideTaxi) { Session.SendWhisper("[RPG Taxi] Já estou indo te buscar! Digite ':ptaxi' se mudar de ideia!", 1); return; } RoomData roomData = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(Client.GetHabbo().CurrentRoomId); if (roomData == null) { Session.SendWhisper("[RPG Taxi] Desculpe, não conseguimos encontrar esse quarto!", 1); return; } if (!roomData.TaxiToEnabled && !OnDuty) { Session.SendWhisper("[RPG Taxi] Desculpe, não podemos táxi você para este quarto!", 1); return; } if (roomData.TutorialEnabled && !OnDuty) { Session.SendWhisper("Você não pode ir para uma sala de tutorial, desculpe!", 1); return; } if (Session.GetHabbo().CurrentRoom != null) { if (Session.GetHabbo().CurrentRoom.TutorialEnabled&& !OnDuty) { Session.SendWhisper("Você não pode sair de uma sala de tutorial! Somente após concluir!", 1); return; } } if (Session.GetRoleplay().Game != null) { Session.SendWhisper("Você não pode pegar um taxi enquanto está dentro de um evento!", 1); return; } if (Session.GetRoleplay().TexasHoldEmPlayer > 0) { Session.SendWhisper("Você não pode pegar um taxi no meio de um jogo de Texas Hold!", 1); return; } Session.GetRoleplay().InsideTaxi = true; bool PoliceTaxi = false; if (!OnDuty) { if (HabboHotel.Groups.GroupManager.HasJobCommand(Session, "guide") && Session.GetRoleplay().IsWorking) { Cost = 0; Time = 5; if (Session.GetRoomUser() != null) { Session.GetRoomUser().ApplyEffect(597); } Session.Shout("*Puxa o rádio da Polícia e vai rapidamente para " + roomData.Name + " [ID: " + roomData.Id + "]*", 37); PoliceTaxi = true; } else { if (Session.GetRoomUser() != null) { Session.GetRoomUser().ApplyEffect(596); } Session.Shout("*Chama um Taxi" + TaxiText + " para " + roomData.Name + " [ID: " + roomData.Id + "]*", 4); } new Thread(() => { for (int i = 0; i < (Time + 1) * 10; i++) { if (Session.GetRoleplay() == null) { break; } if (Session.GetRoleplay().InsideTaxi) { Thread.Sleep(100); } else { break; } } if (Session.GetRoleplay() != null) { if (Session.GetRoleplay().InsideTaxi) { if (Cost > 0) { Session.GetHabbo().Credits -= Cost; Session.GetHabbo().UpdateCreditsBalance(); } if (PoliceTaxi) { if (Session.GetRoomUser() != null) { Session.GetRoomUser().ApplyEffect(EffectsList.CarPolice); } Session.Shout("*Pula dentro do carro da polícia do meu parceiro e vai para o local*", 37); } else { Session.Shout("*Pula no meu Taxi" + TaxiText + " e vai para o local*", 4); } RoleplayManager.SendUser(Session, roomData.Id); } } }).Start(); } else { Session.Shout("*Segue imediatamente " + Client.GetHabbo().Username + "*", 23); RoleplayManager.SendUser(Session, Client.GetHabbo().CurrentRoomId); PlusEnvironment.GetGame().GetChatManager().GetCommands().LogCommand(Session.GetHabbo().Id, "follow " + Client.GetHabbo().Username, Session.GetHabbo().MachineId, "staff"); } }
public void Execute(GameClient Session, Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Please enter a currency type! (coins, duckets, diamonds, gotw)"); return; } GameClient Target = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (Target == null) { Session.SendWhisper("Oops, couldn't find that user!"); return; } string UpdateVal = Params[2]; switch (UpdateVal.ToLower()) { case "coins": case "credits": { if (!Session.Habbo.GetPermissions().HasCommand("command_give_coins")) { Session.SendWhisper("Oops, it appears that you do not have the permissions to use this command!"); break; } else { int Amount; if (int.TryParse(Params[3], out Amount)) { Target.Habbo.Credits = Target.Habbo.Credits += Amount; Target.SendPacket(new CreditBalanceComposer(Target.Habbo.Credits)); if (Target.Habbo.Id != Session.Habbo.Id) { Target.SendNotification(Session.Habbo.Username + " has given you " + Amount.ToString() + " Credit(s)!"); } Session.SendWhisper("Successfully given " + Amount + " Credit(s) to " + Target.Habbo.Username + "!"); break; } else { Session.SendWhisper("Oops, that appears to be an invalid amount!"); break; } } } case "pixels": case "duckets": { if (!Session.Habbo.GetPermissions().HasCommand("command_give_pixels")) { Session.SendWhisper("Oops, it appears that you do not have the permissions to use this command!"); break; } else { int Amount; if (int.TryParse(Params[3], out Amount)) { Target.Habbo.Duckets += Amount; Target.SendPacket(new HabboActivityPointNotificationComposer(Target.Habbo.Duckets, Amount)); if (Target.Habbo.Id != Session.Habbo.Id) { Target.SendNotification(Session.Habbo.Username + " has given you " + Amount.ToString() + " Ducket(s)!"); } Session.SendWhisper("Successfully given " + Amount + " Ducket(s) to " + Target.Habbo.Username + "!"); break; } else { Session.SendWhisper("Oops, that appears to be an invalid amount!"); break; } } } case "diamonds": { if (!Session.Habbo.GetPermissions().HasCommand("command_give_diamonds")) { Session.SendWhisper("Oops, it appears that you do not have the permissions to use this command!"); break; } else { int Amount; if (int.TryParse(Params[3], out Amount)) { Target.Habbo.Diamonds += Amount; Target.SendPacket(new HabboActivityPointNotificationComposer(Target.Habbo.Diamonds, Amount, 5)); if (Target.Habbo.Id != Session.Habbo.Id) { Target.SendNotification(Session.Habbo.Username + " has given you " + Amount.ToString() + " Diamond(s)!"); } Session.SendWhisper("Successfully given " + Amount + " Diamond(s) to " + Target.Habbo.Username + "!"); break; } else { Session.SendWhisper("Oops, that appears to be an invalid amount!"); break; } } } case "gotw": case "gotwpoints": { if (!Session.Habbo.GetPermissions().HasCommand("command_give_gotw")) { Session.SendWhisper("Oops, it appears that you do not have the permissions to use this command!"); break; } else { int Amount; if (int.TryParse(Params[3], out Amount)) { Target.Habbo.GOTWPoints = Target.Habbo.GOTWPoints + Amount; Target.SendPacket(new HabboActivityPointNotificationComposer(Target.Habbo.GOTWPoints, Amount, 103)); if (Target.Habbo.Id != Session.Habbo.Id) { Target.SendNotification(Session.Habbo.Username + " has given you " + Amount.ToString() + " GOTW Point(s)!"); } Session.SendWhisper("Successfully given " + Amount + " GOTW point(s) to " + Target.Habbo.Username + "!"); break; } else { Session.SendWhisper("Oops, that appears to be an invalid amount!"); break; } } } default: Session.SendWhisper("'" + UpdateVal + "' is not a valid currency!"); break; } }
public void Execute(GameClient Session, Rooms.Room Room, string[] Params) { #region Conditions if (Params.Length < 4) { Session.SendWhisper("Por favor, use o comando como ':scontratar (usuário) (ID do Emprego) (ID do Cargo)'!", 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; } int jobId; if (!int.TryParse(Params[2], out jobId)) { Session.SendWhisper("Por favor, insira um numero válido de Emprego!", 1); return; } int jobRank; if (!int.TryParse(Params[3], out jobRank)) { Session.SendWhisper("Por favor, insira um numero válido de Cargo!!", 1); return; } if (!GroupManager.JobExists(jobId, jobRank)) { Session.SendWhisper("Esse não é um trabalho válido!", 1); return; } if (TargetClient.GetRoleplay().JobId == jobId && TargetClient.GetRoleplay().JobRank == jobRank) { Session.SendWhisper("Este cidadão já trabalha nesta empresa e tem este cargo!", 1); return; } var Job = GroupManager.GetJob(jobId); var JobRank = GroupManager.GetJobRank(jobId, jobRank); if (JobRank.HasCommand("guide")) { if (BlackListManager.BlackList.Contains(TargetClient.GetHabbo().Id)) { Session.SendWhisper("Desculpe, este usuário está na lista negra da polícia, então não pode ser contratado!", 1); return; } } #endregion #region Execute if (TargetClient.GetRoleplay().IsWorking) { WorkManager.RemoveWorkerFromList(TargetClient); TargetClient.GetRoleplay().IsWorking = false; TargetClient.GetHabbo().Poof(); if (GroupManager.HasJobCommand(TargetClient, "guide")) { PlusEnvironment.GetGame().GetGuideManager().RemoveGuide(TargetClient); TargetClient.SendMessage(new HelperToolConfigurationComposer(TargetClient)); #region End Existing Calls if (TargetClient.GetRoleplay().GuideOtherUser != null) { TargetClient.GetRoleplay().GuideOtherUser.SendMessage(new OnGuideSessionDetachedComposer(0)); TargetClient.GetRoleplay().GuideOtherUser.SendMessage(new OnGuideSessionDetachedComposer(1)); if (TargetClient.GetRoleplay().GuideOtherUser.GetRoleplay() != null) { TargetClient.GetRoleplay().GuideOtherUser.GetRoleplay().Sent911Call = false; TargetClient.GetRoleplay().GuideOtherUser.GetRoleplay().GuideOtherUser = null; } TargetClient.GetRoleplay().GuideOtherUser = null; TargetClient.SendMessage(new OnGuideSessionDetachedComposer(0)); TargetClient.SendMessage(new OnGuideSessionDetachedComposer(1)); } #endregion } } int OriginalJob = TargetClient.GetRoleplay().JobId; var OldJob = GroupManager.GetJob(OriginalJob); TargetClient.GetRoleplay().TimeWorked = 0; TargetClient.GetRoleplay().JobId = jobId; TargetClient.GetRoleplay().JobRank = jobRank; TargetClient.GetRoleplay().JobRequest = 0; if (Job.Id == OriginalJob) { Job.UpdateJobMember(TargetClient.GetHabbo().Id); } else { Job.AddNewMember(TargetClient.GetHabbo().Id, jobRank); } Job.SendPackets(TargetClient); Session.SendMessage(new GroupInfoComposer(OldJob, Session)); Session.Shout("*Super contrata imediatamente " + TargetClient.GetHabbo().Username + " na empresa '" + Job.Name + "' no cargo '" + JobRank.Name + "'*", 23); TargetClient.SendWhisper("Você contratou com sucesso " + Session.GetHabbo().Username + " na empresa '" + Job.Name + "' no cargo '" + JobRank.Name + "'!", 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) { if (Params.Length == 1) { Session.SendWhisper("Please enter the username of the user you'd like to IP ban & account ban."); return; } Habbo Habbo = PlusEnvironment.GetHabboByUsername(Params[1]); if (Habbo == null) { Session.SendWhisper("An error occoured whilst finding that user in the database."); return; } if (Habbo.GetPermissions().HasRight("mod_soft_ban") && !Session.GetHabbo().GetPermissions().HasRight("mod_ban_any")) { Session.SendWhisper("Oops, you cannot ban that user."); return; } Double Expire = 0; string Hours = Params[2]; if (String.IsNullOrEmpty(Hours) || Hours == "perm") { Expire = PlusEnvironment.GetUnixTimestamp() + 78892200; } else { Expire = (PlusEnvironment.GetUnixTimestamp() + (Convert.ToDouble(Hours) * 3600)); } string Reason = null; if (Params.Length >= 4) { Reason = CommandManager.MergeParams(Params, 3); } else { Reason = "No reason specified."; } string Username = Habbo.Username; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + Habbo.Id + "' LIMIT 1"); } PlusEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.USERNAME, Habbo.Username, Reason, Expire); GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Username); if (TargetClient != null) { TargetClient.Disconnect(); } Session.SendWhisper("Success, you have account banned the user '" + Username + "' for " + Hours + " hour(s) with the reason '" + Reason + "'!"); }