Beispiel #1
0
        internal static void SellItem(GameClient Session, uint ItemId, int SellingPrice)
        {
            UserItem item = Session.GetHabboDataContainer().GetInventoryComponent().GetItem(ItemId);

            if (item == null || SellingPrice > 10000 || !CanSellItem(item))
            {
                ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.MarketplaceMakeOfferResult);
                message.AddInt32(0);
                Session.SendMessage(message);
            }
            else
            {
                int comissionPrice = CalculateComissionPrice(SellingPrice);
                int totalPrice = SellingPrice + comissionPrice;
                int itemType = (item.GetBaseItem().Type == 'i') ? 2 : 1;

                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    dbClient.setQuery("INSERT INTO catalog_marketplace_offers (item_id,user_id,asking_price,total_price,public_name,sprite_id,item_type,timestamp,extra_data) VALUES (" + item.BaseItemID + "," + Session.GetHabbo().Id + "," + SellingPrice + "," + totalPrice + ",@public_name," + item.GetBaseItem().SpriteId + "," + itemType + "," + ButterflyEnvironment.GetUnixTimestamp() + ",@extra_data)");
                    dbClient.addParameter("public_name", item.GetBaseItem().PublicName);
                    dbClient.addParameter("extra_data", item.extraData);
                    dbClient.runQuery();
                }

                Session.GetHabboDataContainer().GetInventoryComponent().RemoveItem(ItemId, true);
                Session.GetHabboDataContainer().GetInventoryComponent().RunDBUpdate();

                ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.MarketplaceMakeOfferResult);
                message.AddInt32(1);
                Session.SendMessage(message);
            }
        }
Beispiel #2
0
          protected override void DoTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
          {
              ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.WiredFurniActionEvent);
              message.AddBoolean(false);
              message.AddInt32(0);
              message.AddInt32(0);
              message.AddInt32(Item.GetBaseItem().SpriteId);
              message.AddUInt32(Item.Id);

              if (Item.wiredHandler != null)
              {
                  Kick handler = (Kick)Item.wiredHandler;
                  message.AddString(handler.message);
              }
              else
              {
                  message.AddString(string.Empty);
              }

              message.AddInt32(0);
              message.AddInt32(0);
              message.AddInt32(7);
              message.AddInt32(0);
              message.AddInt32(0);
              message.AddString(string.Empty);

              Session.SendMessage(message);
          }
Beispiel #3
0
        internal static void TryRedeemVoucher(GameClient Session, string Code)
        {
            if (!IsValidCode(Code))
            {
                ServerMessage Error = new ServerMessage(213);
                Error.AppendRawInt32(1);
                Session.SendMessage(Error);
                return;
            }

            int Value = GetVoucherValue(Code);

            TryDeleteVoucher(Code);

            Session.GetHabbo().Credits += Value;
            Session.GetHabbo().UpdateCreditsBalance();

            Session.SendMessage(new ServerMessage(212));
        }
Beispiel #4
0
 private static void SendChatMessage(GameClient GetClient, string Message, int Type)
 {
     ServerMessage TellMsg = PacketHandelingManager.GetRecycledItem(OutputCode.WhisperMessageEvent);
     TellMsg.AddInt32(GetClient.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(GetClient.GetHabbo().Username).VirtualId);
     TellMsg.AddString(Message);
     TellMsg.AddInt32(0);
     TellMsg.AddInt32(0);
     TellMsg.AddInt32(Type);
     TellMsg.AddInt32(0);
     GetClient.SendMessage(TellMsg);
 }
Beispiel #5
0
        internal static void TryRedeemVoucher(GameClient Session, string Code)
        {
            if (!IsValidCode(Code))
            {
                ServerMessage Error = PacketHandelingManager.GetRecycledItem(OutputCode.RedeeminvalidcodeErrorMessageComposer);
                Error.AddString("1");
                Session.SendMessage(Error);
                return;
            }

            int Value = GetVoucherValue(Code);

            TryDeleteVoucher(Code);

            Session.GetHabbo().Diamonds += Value;
            Session.GetHabboDataContainer().StoreDiamondsNow();
            Session.GetHabboDataContainer().SynchronizeDiamondBalance();
            Session.GetHabboDataContainer().UpdateActivityPointsBalance();

            ServerMessage Succesfull = PacketHandelingManager.GetRecycledItem(OutputCode.RedeemSuccesfullMessageComposer);
            Succesfull.AddInt32(0);
            Session.SendMessage(Succesfull);
        }
Beispiel #6
0
 internal void GetList(GameClient Session, ClientMessage Message)
 {
     Session.SendMessage(AchievementListComposer.Compose(Session, Achievements.Values.ToList()));
 }
Beispiel #7
0
        private static void GetSongData(GameClient Session, ClientMessage Message)
        {
            int Amount = Message.PopWiredInt32();
            List<SongData> Songs = new List<SongData>();

            for (int i = 0; i < Amount; i++)
            {
                SongData Song = GetSong(Message.PopWiredUInt());

                if (Song == null)
                    continue;

                Songs.Add(Song);
            }

            Session.SendMessage(JukeboxComposer.Compose(Songs));
        }
Beispiel #8
0
        internal override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
        {
            if (Session == null || Item == null)
                return;

            if (!UserHasRights)
                return;

            switch (Item.GetBaseItem().InteractionType)
            {
                // TO-REVIEW
                #region Triggers

                case InteractionType.triggerwalkonfurni:
                    {
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);
                        message.AppendByte(2);

                        message.AppendBoolean(false);
                        message.AppendInt32(8);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.triggergamestart:
                    {
                        ServerMessage Message = new ServerMessage(650);
                        Message.AppendInt32(0);
                        Message.AppendInt32(5);
                        Message.AppendInt32(0);
                        Message.AppendInt32(Item.GetBaseItem().SpriteId);
                        Message.AppendInt32((int)Item.Id);
                        Message.AppendStringWithBreak("HHPBH");
                        Session.SendMessage(Message);
                        /*
                        ServerMessage message = new ServerMessage(
                            );
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);
                        message.AppendByte(2);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendInt32(8);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);*/
                        break;
                    }

                case InteractionType.triggerroomenter:
                    {
                        ServerMessage message = new ServerMessage(650);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendInt32(7);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.triggergameend:
                    {
                        ServerMessage message = new ServerMessage(650);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendInt32(8);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.triggertimer:
                    {
                        int Counter1;

                        using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                        {
                            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
                            dbClient.addParameter("id", (int)Item.Id);
                            Counter1 = dbClient.getInteger();
                        }

                        ServerMessage Message = new ServerMessage(650);
                        Message.AppendInt32(0);
                        Message.AppendInt32(5);
                        Message.AppendInt32(0);
                        Message.AppendInt32(Item.GetBaseItem().SpriteId);
                        Message.AppendInt32((int)Item.Id);
                        Message.AppendInt32(1);
                        Message.AppendInt32(Counter1);
                        Message.AppendStringWithBreak("IKH");
                        Message.AppendInt32(1);
                        Message.AppendInt32(Counter1);
                        Message.AppendStringWithBreak("IKH");
                        Session.SendMessage(Message);
                        break;
                    }

                case InteractionType.triggerwalkofffurni:
                    {
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(false);
                        message.AppendInt32(8);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.triggeronusersay:
                    {
                        string Word = "";

                        using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                        {
                            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
                            dbClient.addParameter("id", (int)Item.Id);
                            Word = dbClient.getString();
                        }

                        ServerMessage Message = new ServerMessage(650);
                        Message.AppendInt32(0);
                        Message.AppendInt32(5);
                        Message.AppendInt32(0);
                        Message.AppendInt32(Item.GetBaseItem().SpriteId);
                        Message.AppendInt32((int)Item.Id);
                        Message.AppendStringWithBreak(Word);
                        Session.SendMessage(Message);
                        break;
                    }

                case InteractionType.triggerscoreachieved:
                    {
                        int Counter1;

                        using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                        {
                            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
                            dbClient.addParameter("id", (int)Item.Id);
                            Counter1 = dbClient.getInteger();
                        }

                        ServerMessage Message = new ServerMessage(650);
                        Message.AppendInt32(0);
                        Message.AppendInt32(5);
                        Message.AppendInt32(0);
                        Message.AppendInt32(Item.GetBaseItem().SpriteId);
                        Message.AppendInt32((int)Item.Id);
                        Message.AppendInt32(1);
                        Message.AppendInt32(Counter1);
                        Message.AppendStringWithBreak("HRBH");
                        Message.AppendInt32(1);
                        Message.AppendInt32(Counter1);
                        Message.AppendStringWithBreak("HRBH");
                        Session.SendMessage(Message);
                        /*
                        ServerMessage message = new ServerMessage(650);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(true);
                        message.AppendInt32(100);
                        message.AppendBoolean(false);
                        message.AppendInt32(10);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                         * */
                        break;
                    }

                case InteractionType.triggerrepeater:
                    {
                        ServerMessage message = new ServerMessage(650);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(true);
                        message.AppendInt32(10);
                        message.AppendBoolean(false);
                        message.AppendInt32(6);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.triggerstatechanged:
                    {
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(false);
                        message.AppendInt32(8);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }
                #endregion

                #region Effects
                case InteractionType.actionposreset:
                    {
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(true);
                        message.AppendUInt(Item.Id);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.actiongivescore:
                    {
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendInt32(2);
                        message.AppendInt32(5);
                        message.AppendBoolean(true);
                        message.AppendBoolean(false);
                        message.AppendInt32(6);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.actionresettimer:
                    {

                        int Counter1;

                        using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                        {
                            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
                            dbClient.addParameter("id", (int)Item.Id);
                            Counter1 = dbClient.getInteger();
                        }
                        if (Counter1 != 0)
                        {

                            ServerMessage Message = new ServerMessage(651);
                            Message.AppendInt32(0);
                            Message.AppendInt32(5);
                            Message.AppendInt32(0);
                            Message.AppendInt32(Item.GetBaseItem().SpriteId);
                            Message.AppendInt32((int)Item.Id);
                            #region TimeOn

                            if (Counter1 == 1)
                            {
                                Message.AppendStringWithBreak("HHIIH");
                                Message.AppendStringWithBreak("HHIIH");
                            }
                            else if (Counter1 == 2)
                            {
                                Message.AppendStringWithBreak("HHIJH");
                                Message.AppendStringWithBreak("HHIJH");
                            }
                            else if (Counter1 == 3)
                            {
                                Message.AppendStringWithBreak("HHIKH");
                                Message.AppendStringWithBreak("HHIKH");
                            }
                            else if (Counter1 == 4)
                            {
                                Message.AppendStringWithBreak("HHIPAH");
                                Message.AppendStringWithBreak("HHIPAH");
                            }

                            else if (Counter1 == 5)
                            {
                                Message.AppendStringWithBreak("HHIQAH");
                                Message.AppendStringWithBreak("HHIQAH");
                            }
                            else if (Counter1 == 6)
                            {
                                Message.AppendStringWithBreak("HHIRAH");
                                Message.AppendStringWithBreak("HHIRAH");
                            }
                            else if (Counter1 == 7)
                            {
                                Message.AppendStringWithBreak("HHISAH");
                                Message.AppendStringWithBreak("HHISAH");
                            }
                            else if (Counter1 == 8)
                            {
                                Message.AppendStringWithBreak("HHIPBH");
                                Message.AppendStringWithBreak("HHIPBH");
                            }
                            else if (Counter1 == 9)
                            {
                                Message.AppendStringWithBreak("HHIQBH");
                                Message.AppendStringWithBreak("HHIQBH");
                            }
                            else if (Counter1 == 10)
                            {
                                Message.AppendStringWithBreak("HHIRBH");
                                Message.AppendStringWithBreak("HHIRBH");
                            }
                            else if (Counter1 == 11)
                            {
                                Message.AppendStringWithBreak("HHISBH");
                                Message.AppendStringWithBreak("HHISBH");
                            }
                            else if (Counter1 == 12)
                            {
                                Message.AppendStringWithBreak("HHIPCH");
                                Message.AppendStringWithBreak("HHIPCH");
                            }
                            else if (Counter1 == 13)
                            {
                                Message.AppendStringWithBreak("HHIQCH");
                                Message.AppendStringWithBreak("HHIQCH");
                            }
                            else if (Counter1 == 14)
                            {
                                Message.AppendStringWithBreak("HHIRCH");
                                Message.AppendStringWithBreak("HHIRCH");
                            }
                            else if (Counter1 == 15)
                            {
                                Message.AppendStringWithBreak("HHISCH");
                                Message.AppendStringWithBreak("HHISCH");
                            }
                            else if (Counter1 == 16)
                            {
                                Message.AppendStringWithBreak("HHIPDH");
                                Message.AppendStringWithBreak("HHIPDH");
                            }
                            else if (Counter1 == 17)
                            {
                                Message.AppendStringWithBreak("HHIQDH");
                                Message.AppendStringWithBreak("HHIQDH");
                            }
                            else if (Counter1 == 18)
                            {
                                Message.AppendStringWithBreak("HHIRDHH");
                                Message.AppendStringWithBreak("HHIRDHH");
                            }
                            else if (Counter1 == 19)
                            {
                                Message.AppendStringWithBreak("HHISDH");
                                Message.AppendStringWithBreak("HHISDH");
                            }
                            else if (Counter1 == 20)
                            {
                                Message.AppendStringWithBreak("HHIPEH");
                                Message.AppendStringWithBreak("HHIPEH");
                            }
                            else
                                Message.AppendStringWithBreak("HHIHH");
                            Message.AppendStringWithBreak("HHIHH");

                            #endregion
                            Session.SendMessage(Message);
                        }

                        else
                        {
                            ServerMessage Message = new ServerMessage(651);
                            Message.AppendInt32(0);
                            Message.AppendInt32(5);
                            Message.AppendInt32(0);
                            Message.AppendInt32(Item.GetBaseItem().SpriteId);
                            Message.AppendInt32((int)Item.Id);
                            Message.AppendStringWithBreak("HHIHH");
                            Message.AppendStringWithBreak("HHIHH");
                            Session.SendMessage(Message);
                        }
                        break;
                    }

                case InteractionType.actiontogglestate:
                    {
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(false);
                        message.AppendInt32(8);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.actionshowmessage: // Terminada Sabagaça
                    {
                        string MSGto = "";
                        using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                        {
                            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
                            dbClient.addParameter("id", (int)Item.Id);
                            MSGto = dbClient.getString();
                        }
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendInt32((int)Item.Id);
                        message.AppendStringWithBreak(MSGto); // 100%
                        message.AppendStringWithBreak("HHSAHH");

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.actionteleportto:
                    {

                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendInt32(5);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(false);
                        message.AppendInt32(8);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.actionmoverotate:
                    {
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendInt32(2);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendInt32(4);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                #endregion

                #region Add-ons
                case InteractionType.specialrandom:
                    {
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(false);
                        message.AppendInt32(8);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.specialunseen:
                    {
                        ServerMessage message = new ServerMessage(651);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendByte(2);
                        message.AppendBoolean(false);
                        message.AppendInt32(8);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendByte(2);

                        Session.SendMessage(message);
                        break;
                    }
                #endregion

                #region Conditions
                case InteractionType.conditiontimelessthan:
                case InteractionType.conditiontimemorethan:
                    {
                        ServerMessage message = new ServerMessage(652);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(true);
                        message.AppendUInt(Item.Id);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);
                        //message.AppendBoolean(false);
                        //message.AppendBoolean(false);
                        //message.AppendInt32(7);
                        //message.AppendBoolean(false);
                        //message.AppendBoolean(false);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.conditionfurnishaveusers:
                    {
                        ServerMessage message = new ServerMessage(652);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(true);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.conditionstatepos:
                    {
                        ServerMessage message = new ServerMessage(652);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(true);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);

                        Session.SendMessage(message);
                        break;
                    }

                case InteractionType.conditiontriggeronfurni:
                    {
                        ServerMessage message = new ServerMessage(652);
                        message.AppendBoolean(false);
                        message.AppendInt32(5);
                        message.AppendBoolean(false);
                        message.AppendInt32(Item.GetBaseItem().SpriteId);
                        message.AppendUInt(Item.Id);

                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);
                        message.AppendBoolean(false);

                        Session.SendMessage(message);
                        break;
                    }

                //Unknown:
                //2 radio + 5 selct
                #endregion

            }
        }
Beispiel #9
0
        internal void AddUserToRoom(GameClient Session, bool Spectator)
        {
            if (userCount >= room.UsersMax && Session.GetHabbo().Rank < 2)
            {
                ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.CantConnectMessageEvent);
                message.AddInt32(1);
                Session.SendMessage(message);

                message = PacketHandelingManager.GetRecycledItem(OutputCode.CloseConnectionMessageEvent);
                Session.SendMessage(message);
                return;
            }

            RoomUser user = new RoomUser(Session.GetHabbo().Id, Session.GetHabbo().Username, room.RoomId, primaryPrivateUserID++, room, Spectator);

            if (user == null || user.GetClient() == null)
                return; // added 01/10/15

            user.userID = Session.GetHabbo().Id;

            string username = Session.GetHabbo().Username;
            uint userID = user.userID;

            if (usersByUsername.ContainsKey(username.ToLower()))
                usersByUsername.Remove(username.ToLower());

            if (usersByUserID.ContainsKey(userID))
                usersByUserID.Remove(userID);

            usersByUsername.Add(Session.GetHabbo().Username.ToLower(), user);
            usersByUserID.Add(Session.GetHabbo().Id, user);

            user.InternalRoomID = AddRoomUser(user);

            Session.GetHabbo().CurrentRoomId = room.RoomId;

            if (user.GetClient().GetHabbo().Rank == 3)
                user.GetClient().GetHabboDataContainer().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(178);
        }
Beispiel #10
0
        internal void ProgressUserQuest(GameClient Session, QuestType QuestType, uint EventData = 0)
        {
            if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentQuestId <= 0)
                return;

            Quest UserQuest = GetQuest(Session.GetHabbo().CurrentQuestId);

            if (UserQuest == null || UserQuest.GoalType != QuestType)
                return;

            int CurrentProgress = Session.GetHabbo().GetQuestProgress(UserQuest.Id);
            int NewProgress = CurrentProgress;
            bool PassQuest = false;

            switch (QuestType)
            {
                default:

                    NewProgress++;

                    if (NewProgress >= UserQuest.GoalData)
                        PassQuest = true;

                    break;

                case QuestType.EXPLORE_FIND_ITEM:

                    if (EventData != UserQuest.GoalData)
                        return;

                    NewProgress = (int)UserQuest.GoalData;
                    PassQuest = true;
                    break;
            }

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.runFastQuery("UPDATE user_quests SET progress = " + NewProgress + " WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id =  " + UserQuest.Id);

                if (PassQuest)
                    dbClient.runFastQuery("UPDATE users SET currentquestid = 0 WHERE id = " + Session.GetHabbo().Id);
            }

            Session.GetHabbo().quests[Session.GetHabbo().CurrentQuestId] = NewProgress;
            Session.SendMessage(QuestStartedComposer.Compose(Session, UserQuest));

            if (PassQuest)
            {
                Session.GetHabbo().CurrentQuestId = 0;
                Session.GetHabbo().LastCompleted = UserQuest.Id;
                Session.SendMessage(QuestCompletedComposer.Compose(Session, UserQuest));
                Session.GetHabbo().ActivityPoints += UserQuest.Reward;
                Session.GetHabboDataContainer().UpdateActivityPointsBalance();
                GetList(Session, null);
            }
        }
Beispiel #11
0
        internal void GetCurrentQuest(GameClient Session, ClientMessage Message)
        {
            if (!Session.GetHabbo().InRoom)
                return;

            Quest UserQuest = GetQuest(Session.GetHabbo().LastCompleted);
            Quest NextQuest = GetNextQuestInSeries(UserQuest.Category, UserQuest.Number + 1);

            if (NextQuest == null)
                return;

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.runFastQuery("REPLACE INTO user_quests VALUES (" + Session.GetHabbo().Id + ", " + NextQuest.Id + ", 0)");
                dbClient.runFastQuery("UPDATE users SET currentquestid = " + NextQuest.Id + " WHERE id = " + Session.GetHabbo().Id);
            }

            Session.GetHabbo().CurrentQuestId = NextQuest.Id;
            GetList(Session, null);
            Session.SendMessage(QuestStartedComposer.Compose(Session, NextQuest));
        }
Beispiel #12
0
 internal void GetList(GameClient Session, ClientMessage Message)
 {
     Session.SendMessage(QuestListComposer.Compose(Session, quests.Values.ToList(), (Message != null)));
 }
Beispiel #13
0
		internal void SerializeRights(GameClient session)
		{
			if (CheckRights(session, true))
			{
				ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.YouAreControllerMessageEvent);
				message.AddInt32(4);
				session.SendMessage(message);
				message = PacketHandelingManager.GetRecycledItem(OutputCode.YouAreOwnerMessageEvent);
				session.SendMessage(message);
			}
			else if (CheckRights(session))
			{
				ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.YouAreControllerMessageEvent);
				message.AddInt32(1);
				session.SendMessage(message);
			}
		}
Beispiel #14
0
		internal void SerializeRoomLayout(GameClient session)
		{
			ServerMessage message;

			if (Wallpaper != "0.0")
			{
				message = PacketHandelingManager.GetRecycledItem(OutputCode.RoomPropertyMessageEvent);
				message.AddString("wallpaper");
				message.AddString(Wallpaper);
				session.SendMessage(message);
			}

			if (Floor != "0.0")
			{
				message = PacketHandelingManager.GetRecycledItem(OutputCode.RoomPropertyMessageEvent);
				message.AddString("floor");
				message.AddString(Floor);
				session.SendMessage(message);
			}

			message = PacketHandelingManager.GetRecycledItem(OutputCode.RoomPropertyMessageEvent);
			message.AddString("landscape");
			message.AddString(Landscape);
			session.SendMessage(message);
		}
Beispiel #15
0
        internal void GiveBadge(int ID, string Badge, Boolean InDatabase, GameClient Session)
        {
            if (HasBadge(Badge))
                return;

            if (InDatabase)
            {
                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    dbClient.setQuery("INSERT INTO `user_badges` (user_id,badge_id,badge_slot) VALUES (" + UserId + ",@badge," + 0 + ")");
                    dbClient.addParameter("badge", Badge);
                    dbClient.runQuery();
                }
            }

            Badges.Add(new Badge(Badge, 0));

            Session.SendMessage(Serialize());
            UnseenBadge(ID, 1);
        }
Beispiel #16
0
 protected override void DoTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
 {
     if(UserHasRights)
         Session.SendMessage(ConditionPacketBuilder.GenerateMessage(Item));
 }
Beispiel #17
0
 internal void SerializeOpenTickets(GameClient client, uint userID)
 {
     foreach (SupportTicket ticket in Tickets)
     {
         if (ticket.Status == TicketStatus.OPEN || (ticket.Status == TicketStatus.PICKED && ticket.ModeratorId == userID))
             client.SendMessage(ticket.Serialize());
     }
 }
Beispiel #18
0
        private static void RemoveFromPlaylist(GameClient Session, ClientMessage Message)
        {
            Room Instance = Session.GetHabbo().CurrentRoom;

            if (Instance == null ||  !Instance.GotMusicController() || !Instance.CheckRights(Session, true))
            {
                return;
            }

            SongItem TakenItem = Instance.GetRoomMusicController().RemoveDisk(Message.PopWiredInt32());
            // playlist will skip to the next item automatically if it has to

            if (TakenItem == null)
            {
                return;
            }

            Session.GetHabbo().GetInventoryComponent().AddNewItem(TakenItem.itemID, TakenItem.baseItem.ItemId, TakenItem.songID.ToString(), true, true);

            Session.SendMessage(JukeboxComposer.Compose(Session));
            Session.SendMessage(JukeboxComposer.Compose(Instance.GetRoomMusicController().PlaylistCapacity,
                Instance.GetRoomMusicController().Playlist.Values.ToList()));
        }
Beispiel #19
0
        internal void RemoveUserFromRoom(GameClient Session, Boolean NotifyClient, Boolean NotifyKick)
        {
            try
            {
                if (Session == null)
                    return;

                if (Session.GetHabbo() == null)
                    return;

                if (room == null)
                    return;

                if (Session.GetHabboDataContainer().GetAvatarEffectsInventoryComponent() != null)
                    Session.GetHabboDataContainer().GetAvatarEffectsInventoryComponent().OnRoomExit();

                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                    dbClient.runFastQuery("UPDATE user_roomvisits SET exit_timestamp = '" + ButterflyEnvironment.GetUnixTimestamp() + "' WHERE room_id = '" + room.RoomId + "' AND user_id = '" + Session.GetHabbo().Id + "' ORDER BY entry_timestamp DESC LIMIT 1");

                RoomUser User = GetRoomUserByHabbo(Session.GetHabbo().Id);

                if (NotifyClient)
                {
                    if (NotifyKick)
                    {
                        ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.GenericErrorEvent);
                        message.AddInt32(4008);
                        Session.SendMessage(message);
                    }

                    ServerMessage message2 = PacketHandelingManager.GetRecycledItem(OutputCode.CloseConnectionMessageEvent);
                    Session.SendMessage(message2);
                }

                if (User != null)
                {
                    RemoveRoomUser(User);

                    if (Session.GetHabbo() != null)
                    {
                        if (!User.IsSpectator)
                        {
                            if (User.CurrentItemEffect != ItemEffectType.None)
                            {
                                User.GetClient().GetHabboDataContainer().GetAvatarEffectsInventoryComponent().CurrentEffect = -1;
                            }

                            if (Session.GetHabbo() != null)
                            {
                                if (room.HasActiveTrade(Session.GetHabbo().Id))
                                    room.TryStopTrade(Session.GetHabbo().Id);

                                Session.GetHabbo().CurrentRoomId = 0;

                                if (Session.GetHabboDataContainer().GetChatMessenger() != null)
                                    Session.GetHabboDataContainer().GetChatMessenger().OnStatusChanged(true);
                            }

                            DateTime Start = DateTime.Now;
                            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                            {
                                TimeSpan TimeUsed1 = DateTime.Now - Start;

                                if (Session.GetHabbo() != null)
                                    dbClient.runFastQuery("UPDATE user_roomvisits SET exit_timestamp = '" + ButterflyEnvironment.GetUnixTimestamp() + "' WHERE room_id = '" + room.RoomId + "' AND user_id = '" + Session.GetHabbo().Id + "' ORDER BY exit_timestamp DESC LIMIT 1");
                            }
                        }
                    }

                    usersByUserID.Remove(User.userID);
                    if (Session.GetHabbo() != null)
                        usersByUsername.Remove(Session.GetHabbo().Username.ToLower());

					onGlobalMessageBroadcast -= User.SendMessage;
                    User.Dispose();
                }
                
            }
            catch (Exception e)
            {
                Logging.LogCriticalException("Error during removing user from room:" + e.ToString());
            }
        }
Beispiel #20
0
        internal bool ProgressUserAchievement(GameClient Session, string AchievementGroup, int ProgressAmount)
        {
            if (!Achievements.ContainsKey(AchievementGroup))
            {
                return false;
            }

            Achievement AchievementData = null;

            AchievementData = Achievements[AchievementGroup];

            UserAchievement UserData = Session.GetHabbo().GetAchievementData(AchievementGroup);

            if (UserData == null)
            {
                UserData = new UserAchievement(AchievementGroup, 0, 0);
                Session.GetHabbo().Achievements.Add(AchievementGroup, UserData);
            }

            int TotalLevels = AchievementData.Levels.Count;

            if (UserData != null && UserData.Level == TotalLevels)
            {
                return false; // done, no more.
            }

            int TargetLevel = (UserData != null ? UserData.Level + 1 : 1);

            if (TargetLevel > TotalLevels)
            {
                TargetLevel = TotalLevels;
            }

            AchievementLevel TargetLevelData = AchievementData.Levels[TargetLevel];

            int NewProgress = (UserData != null ? UserData.Progress + ProgressAmount : ProgressAmount);
            int NewLevel = (UserData != null ? UserData.Level : 0);
            int NewTarget = NewLevel + 1;

            if (NewTarget > TotalLevels)
            {
                NewTarget = TotalLevels;
            }

            if (NewProgress >= TargetLevelData.Requirement)
            {
                NewLevel++;
                NewTarget++;

                int ProgressRemainder = NewProgress - TargetLevelData.Requirement;
                NewProgress = 0;

                Session.GetHabbo().GetBadgeComponent().GiveBadge(AchievementGroup + TargetLevel, true);

                if (NewTarget > TotalLevels)
                {
                    NewTarget = TotalLevels;
                }

                Session.GetHabbo().ActivityPoints += TargetLevelData.RewardPixels;
                Session.GetHabbo().UpdateActivityPointsBalance(false);

                Session.SendMessage(AchievementUnlockedComposer.Compose(AchievementData, TargetLevel, TargetLevelData.RewardPoints,
                    TargetLevelData.RewardPixels));

                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    if (dbClient.dbType == Database_Manager.Database.DatabaseType.MySQL)
                        dbClient.setQuery("REPLACE INTO user_achievement VALUES (" + Session.GetHabbo().Id + ", @group, " + NewLevel + ", " + NewProgress + ")");
                    else
                    {
                        dbClient.setQuery("IF EXISTS (SELECT userid FROM user_achievement WHERE userid = " + Session.GetHabbo().Id + " AND group = @group) " +
                                        "	UPDATE user_achievement SET level = " + NewLevel + ", progress = " + NewProgress + " WHERE userid = " + Session.GetHabbo().Id + " AND group = @group " +
                                        "ELSE" +
                                        "	INSERT INTO user_achievement VALUES (" + Session.GetHabbo().Id + ",@group," + NewLevel + "," + NewProgress + ")");
                    }
                    dbClient.addParameter("group", AchievementGroup);
                    dbClient.runQuery();
                }

                UserData.Level = NewLevel;
                UserData.Progress = NewProgress;

                Session.GetHabbo().AchievementPoints += TargetLevelData.RewardPoints;
                Session.GetHabbo().ActivityPoints += TargetLevelData.RewardPixels;
                Session.GetHabbo().UpdateActivityPointsBalance(false);
                Session.SendMessage(AchievementScoreUpdateComposer.Compose(Session.GetHabbo().AchievementPoints));

                AchievementLevel NewLevelData = AchievementData.Levels[NewTarget];
                Session.SendMessage(AchievementProgressComposer.Compose(AchievementData, NewTarget, NewLevelData,
                    TotalLevels, Session.GetHabbo().GetAchievementData(AchievementGroup)));

                return true;
            }
            else
            {
                UserData.Level = NewLevel;
                UserData.Progress = NewProgress;
                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    if (dbClient.dbType == Database_Manager.Database.DatabaseType.MySQL)
                        dbClient.setQuery("REPLACE INTO user_achievement VALUES (" + Session.GetHabbo().Id + ", @group, " + NewLevel + ", " + NewProgress + ")");
                    else
                    {
                        dbClient.setQuery("IF EXISTS (SELECT userid FROM user_achievement WHERE userid = " + Session.GetHabbo().Id + " AND group = @group) " +
                                        "	UPDATE user_achievement SET level = " + NewLevel + ", progress = " + NewProgress + " WHERE userid = " + Session.GetHabbo().Id + " AND group = @group " +
                                        "ELSE" +
                                        "	INSERT INTO user_achievement VALUES (" + Session.GetHabbo().Id + ",@group," + NewLevel + "," + NewProgress + ")");
                    }
                    dbClient.addParameter("group", AchievementGroup);
                    dbClient.runQuery();
                }

                Session.SendMessage(AchievementProgressComposer.Compose(AchievementData, TargetLevel, TargetLevelData,
                TotalLevels, Session.GetHabbo().GetAchievementData(AchievementGroup)));
            }

            return false;
        }
Beispiel #21
0
		internal void SerializeRoomRating(GameClient session)
		{
			ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.RoomRatingEvent);
			message.AddInt32(Score);
			message.AddBoolean(!(session.GetHabbo().RatedRooms.Contains(RoomId) || CheckRights(session, true)));
			session.SendMessage(message);
		}
Beispiel #22
0
        internal void SerializeOpenTickets(GameClient client, uint userID)
        {
            ServerMessage Response = PacketHandelingManager.GetRecycledItem(OutputCode.IssueInfoMessageEvent);

            foreach (SupportTicket ticket in Tickets)
            {
                if (ticket.Status == TicketStatus.OPEN || (ticket.Status == TicketStatus.PICKED && ticket.ModeratorId == userID))
                    client.SendMessage(ticket.Serialize(Response));
            }
        }
Beispiel #23
0
        internal void ActivateQuest(GameClient Session, ClientMessage Message)
        {
            Quest Quest = GetQuest(Message.ReadUInt());

            if (Quest == null)
                return;

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.runFastQuery("REPLACE INTO user_quests VALUES (" + Session.GetHabbo().Id + ", " + Quest.Id + ", 0)");
                dbClient.runFastQuery("UPDATE users SET currentquestid = " + Quest.Id + " WHERE id = " + Session.GetHabbo().Id);
            }

            Session.GetHabbo().CurrentQuestId = Quest.Id;
            GetList(Session, null);
            Session.SendMessage(QuestStartedComposer.Compose(Session, Quest));
        }
Beispiel #24
0
        private static void GetPlaylist(GameClient Session, ClientMessage Message)
        {
            Room Instance = Session.GetHabbo().CurrentRoom;

            if (Instance == null || !Instance.CheckRights(Session, true))
            {
                return;
            }

            Session.SendMessage(JukeboxComposer.Compose(Instance.GetRoomMusicController().PlaylistCapacity,
                Instance.GetRoomMusicController().Playlist.Values.ToList()));
        }
Beispiel #25
0
        internal void CancelQuest(GameClient Session, ClientMessage Message)
        {
            Quest Quest = GetQuest(Session.GetHabbo().CurrentQuestId);

            if (Quest == null)
                return;

            Session.GetHabbo().CurrentQuestId = 0;

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.runFastQuery("DELETE FROM user_quests WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id = " + Quest.Id);
                dbClient.runFastQuery("UPDATE users SET currentquestid = " + Session.GetHabbo().CurrentQuestId + " WHERE id = " + Session.GetHabbo().Id);
            }

            GetList(Session, null);

            Session.SendMessage(QuestAbortedComposer.Compose());
        }
Beispiel #26
0
        internal void ActivateQuest(GameClient Session, ClientMessage Message)
        {
            Quest Quest = GetQuest(Message.PopWiredUInt());

            if (Quest == null)
            {
                return;
            }

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                if (dbClient.dbType == Database_Manager.Database.DatabaseType.MySQL)
                    dbClient.runFastQuery("REPLACE INTO user_quests VALUES (" + Session.GetHabbo().Id + ", " + Quest.Id + ", 0)");
                else
                    dbClient.runFastQuery("IF NOT EXISTS (SELECT user_id FROM user_quests WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id = " + Quest.Id + ") " +
                                          "INSERT INTO user_quests VALUES (" + Session.GetHabbo().Id + ", " + Quest.Id + ", 0)");
                dbClient.runFastQuery("UPDATE users SET currentquestid = " + Quest.Id + " WHERE id = " + Session.GetHabbo().Id);
            }

            Session.GetHabbo().CurrentQuestId = Quest.Id;
            GetList(Session, null);
            Session.SendMessage(QuestStartedComposer.Compose(Session, Quest));
        }
Beispiel #27
0
        void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
        {
            if (Item.ExtraData.Contains(Convert.ToChar(5).ToString()))
            {
                String[] Stuff = Item.ExtraData.Split(Convert.ToChar(5));
                Session.GetHabbo().Gender = Stuff[0].ToUpper();
                Dictionary<String, String> NewFig = new Dictionary<String, String>();
                NewFig.Clear();
                foreach (String Man in Stuff[1].Split('.'))
                {
                    foreach (String Fig in Session.GetHabbo().Look.Split('.'))
                    {
                        if (Fig.Split('-')[0] == Man.Split('-')[0])
                        {
                            if (NewFig.ContainsKey(Fig.Split('-')[0]) && !NewFig.ContainsValue(Man))
                            {
                                NewFig.Remove(Fig.Split('-')[0]);
                                NewFig.Add(Fig.Split('-')[0], Man);
                            }
                            else if (!NewFig.ContainsKey(Fig.Split('-')[0]) && !NewFig.ContainsValue(Man))
                            {
                                NewFig.Add(Fig.Split('-')[0], Man);
                            }
                        }
                        else
                        {
                            if (!NewFig.ContainsKey(Fig.Split('-')[0]))
                            {
                                NewFig.Add(Fig.Split('-')[0], Fig);
                            }
                        }
                    }
                }

                string Final = "";
                foreach (String Str in NewFig.Values)
                {
                    Final += Str + ".";
                }


                Session.GetHabbo().Look = Final.TrimEnd('.');

                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    dbClient.setQuery("UPDATE users SET look = @look, gender = @gender WHERE id = '" + Session.GetHabbo().Id + "' LIMIT 1");
                    dbClient.addParameter("look", Session.GetHabbo().Look);
                    dbClient.addParameter("gender", Session.GetHabbo().Gender);
                    dbClient.runQuery();
                }

                ServerMessage message = PacketHandelingManager.GetRecycledItem(OutputCode.UserChangeMessageEvent);
                message.AddInt32(-1);
                message.AddString(Session.GetHabbo().Look);
                message.AddString(Session.GetHabbo().Gender.ToLower());
                message.AddString(Session.GetHabbo().Motto);
                message.AddInt32(Session.GetHabbo().AchievementPoints);
                Session.SendMessage(message);

                RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                ServerMessage RoomUpdate = PacketHandelingManager.GetRecycledItem(OutputCode.UserChangeMessageEvent);
                RoomUpdate.AddInt32(User.VirtualId);
                RoomUpdate.AddString(Session.GetHabbo().Look);
                RoomUpdate.AddString(Session.GetHabbo().Gender.ToLower());
                RoomUpdate.AddString(Session.GetHabbo().Motto);
                RoomUpdate.AddInt32(Session.GetHabbo().AchievementPoints);
                Session.GetHabbo().CurrentRoom.SendMessage(RoomUpdate);
            }
        }
Beispiel #28
0
        private static void AddToPlaylist(GameClient Session, ClientMessage Message)
        {
            Room Instance = Session.GetHabbo().CurrentRoom;

            if (Instance == null || !Instance.CheckRights(Session, true) || !Instance.GotMusicController() ||
                Instance.GetRoomMusicController().PlaylistSize >= Instance.GetRoomMusicController().PlaylistCapacity)
            {
                return;
            }

            UserItem DiskUserItem = Session.GetHabbo().GetInventoryComponent().GetItem(Message.PopWiredUInt());

            if (DiskUserItem == null || DiskUserItem.GetBaseItem().InteractionType != InteractionType.musicdisc)
            {
                return;
            }

            SongItem item = new SongItem(DiskUserItem);

            int NewOrder = Instance.GetRoomMusicController().AddDisk(item);

            if (NewOrder < 0)
            {
                return;
            }

            Session.GetHabbo().GetInventoryComponent().RemoveItem(item.itemID, true);

            Session.SendMessage(JukeboxComposer.Compose(Instance.GetRoomMusicController().PlaylistCapacity,
                Instance.GetRoomMusicController().Playlist.Values.ToList()));
        }
Beispiel #29
0
        internal void GetCurrentQuest(GameClient Session, ClientMessage Message)
        {
            if (!Session.GetHabbo().InRoom)
            {
                return;
            }

            Quest UserQuest = GetQuest(Session.GetHabbo().LastCompleted);
            Quest NextQuest = GetNextQuestInSeries(UserQuest.Category, UserQuest.Number + 1);

            if (NextQuest == null)
            {
                return;
            }

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                if (dbClient.dbType == Database_Manager.Database.DatabaseType.MySQL)
                    dbClient.runFastQuery("REPLACE INTO user_quests VALUES (" + Session.GetHabbo().Id + ", " + NextQuest.Id + ", 0)");
                else
                    dbClient.runFastQuery("IF NOT EXISTS (SELECT user_id FROM user_quests WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id = " + NextQuest.Id + ") " +
                                          "INSERT INTO user_quests VALUES (" + Session.GetHabbo().Id + ", " + NextQuest.Id + ", 0)");
                dbClient.runFastQuery("UPDATE users SET currentquestid = " + NextQuest.Id + " WHERE id = " + Session.GetHabbo().Id);
            }

            Session.GetHabbo().CurrentQuestId = NextQuest.Id;
            GetList(Session, null);
            Session.SendMessage(QuestStartedComposer.Compose(Session, NextQuest));

            //Session.SendMessage(QuestStartedComposer.Compose(Session, NextQuest));
        }
Beispiel #30
0
 private static void GetDisks(GameClient Session, ClientMessage Message)
 {
     Session.SendMessage(JukeboxComposer.Compose(Session));
 }