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;
        }
Example #4
0
        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!");
        }
Example #5
0
        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();
                }
            }
        }
Example #6
0
        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));
                        }
                    }
                }
            }
        }
Example #7
0
        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;
        }
Example #8
0
        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));
        }
Example #10
0
        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);
            }
        }
Example #11
0
        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));
        }
Example #12
0
        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
        }
Example #13
0
        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();
            }
        }
Example #14
0
        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);
            }
        }
Example #15
0
        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()));
        }
Example #16
0
 private GameClient GetClient() => PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(_userId);
Example #17
0
        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);
 }
Example #20
0
        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
        }
Example #21
0
        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
        }
Example #22
0
        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--;
            }
        }
Example #23
0
        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);
            }
        }
Example #24
0
 private GameClient GetClient()
 {
     return(PlusEnvironment.GetGame().GetClientManager().GetClientByUserId(_userId));
 }
Example #25
0
        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();
            }
        }
Example #26
0
        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");
            }
        }
Example #27
0
        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;
            }
        }
Example #28
0
        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
        }
Example #29
0
        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
        }
Example #30
0
        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 + "'!");
        }