コード例 #1
0
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            try
            {
                string data2     = null;
                string wireditem = null;

                dbClient.SetQuery("SELECT trigger_data, trigger_data_2, triggers_item FROM wired_items WHERE trigger_id = @id ");
                dbClient.AddParameter("id", this.itemID);
                DataRow row = dbClient.GetRow();
                if (row != null)
                {
                    this.Delay = Convert.ToInt32(row["trigger_data"]);

                    data2 = row["trigger_data_2"].ToString();

                    wireditem = row["triggers_item"].ToString();
                }
                if (data2 != null)
                {
                    int rotationint = 0;
                    int.TryParse(data2.Split(';')[0], out rotationint);

                    int movementint = 0;
                    int.TryParse(data2.Split(';')[1], out movementint);

                    this.rotation = (RotationState)rotationint;
                    this.movement = (MovementState)movementint;
                }
                else
                {
                    this.rotation = RotationState.none;
                    this.movement = MovementState.none;
                }

                if (wireditem == "" || wireditem == null)
                {
                    return;
                }

                foreach (string itemid in wireditem.Split(';'))
                {
                    Item roomItem = insideRoom.GetRoomItemHandler().GetItem(Convert.ToInt32(itemid));
                    if (roomItem != null && !this.items.Contains(roomItem) && roomItem.Id != this.itemID)
                    {
                        this.items.Add(roomItem);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Wired id : " + this.itemID + " erreur :" + ex);
            }
        }
コード例 #2
0
        /// <summary>
        ///     Loads the specified index.
        /// </summary>
        /// <param name="index">The index.</param>
        /// <returns>SmallPromo.</returns>
        public static HotelLandingPromos Load(int index)
        {
            using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                queryReactor.SetQuery("SELECT hotelview_promos.`index`,hotelview_promos.header,hotelview_promos.body,hotelview_promos.button,hotelview_promos.in_game_promo,hotelview_promos.special_action,hotelview_promos.image,hotelview_promos.enabled FROM hotelview_promos WHERE hotelview_promos.`index` = @x LIMIT 1");
                queryReactor.AddParameter("x", index);

                DataRow row = queryReactor.GetRow();

                return(new HotelLandingPromos(index, (string)row[1], (string)row[2], (string)row[3], Convert.ToInt32(row[4]), (string)row[5], (string)row[6]));
            }
        }
コード例 #3
0
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.SetQuery("SELECT trigger_data FROM wired_items WHERE trigger_id = @id ");
            dbClient.AddParameter("id", this.item.Id);
            DataRow row = dbClient.GetRow();

            if (row == null)
            {
                return;
            }
            this.NameBot = row["trigger_data"].ToString();
        }
コード例 #4
0
        public void Parse(GameClient session, ClientPacket packet)
        {
            if (session == null || session.GetHabbo() == null)
            {
                return;
            }

            DataRow row;
            int     offerId = packet.PopInt();

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `furni_id`, `item_id`, `user_id`, `extra_data`, `offer_id`, `state`, `timestamp`, `limited_number`, `limited_stack` FROM `catalog_marketplace_offers` WHERE `offer_id` = @OfferId LIMIT 1");
                dbClient.AddParameter("OfferId", offerId);
                row = dbClient.GetRow();
            }

            if (row == null)
            {
                session.SendPacket(new MarketplaceCancelOfferResultComposer(offerId, false));
                return;
            }

            if (Convert.ToInt32(row["user_id"]) != session.GetHabbo().Id)
            {
                session.SendPacket(new MarketplaceCancelOfferResultComposer(offerId, false));
                return;
            }

            if (!PlusEnvironment.GetGame().GetItemManager().GetItem(Convert.ToInt32(row["item_id"]), out ItemData item))
            {
                session.SendPacket(new MarketplaceCancelOfferResultComposer(offerId, false));
                return;
            }

            //PlusEnvironment.GetGame().GetCatalog().DeliverItems(Session, Item, 1, Convert.ToString(Row["extra_data"]), Convert.ToInt32(Row["limited_number"]), Convert.ToInt32(Row["limited_stack"]), Convert.ToInt32(Row["furni_id"]));

            Item giveItem = ItemFactory.CreateSingleItem(item, session.GetHabbo(), Convert.ToString(row["extra_data"]), Convert.ToString(row["extra_data"]), Convert.ToInt32(row["furni_id"]), Convert.ToInt32(row["limited_number"]), Convert.ToInt32(row["limited_stack"]));

            session.SendPacket(new FurniListNotificationComposer(giveItem.Id, 1));
            session.SendPacket(new FurniListUpdateComposer());

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("DELETE FROM `catalog_marketplace_offers` WHERE `offer_id` = @OfferId AND `user_id` = @UserId LIMIT 1");
                dbClient.AddParameter("OfferId", offerId);
                dbClient.AddParameter("UserId", session.GetHabbo().Id);
                dbClient.RunQuery();
            }

            session.GetHabbo().GetInventoryComponent().UpdateItems(true);
            session.SendPacket(new MarketplaceCancelOfferResultComposer(offerId, true));
        }
コード例 #5
0
ファイル: ModerationTool.cs プロジェクト: sgf/Yupi
        /// <summary>
        ///     Serializes the user information.
        /// </summary>
        /// <param name="userId">The user identifier.</param>
        /// <returns>ServerMessage.</returns>
        /// <exception cref="System.NullReferenceException">User not found in database.</exception>
        internal static ServerMessage SerializeUserInfo(uint userId)
        {
            ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("ModerationToolUserToolMessageComposer"));

            using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                if (queryReactor != null)
                {
                    queryReactor.SetQuery(
                        "SELECT id, username, mail, look, trade_lock, trade_lock_expire, rank, ip_last, " +
                        "IFNULL(cfhs, 0) cfhs, IFNULL(cfhs_abusive, 0) cfhs_abusive, IFNULL(cautions, 0) cautions, IFNULL(bans, 0) bans, " +
                        "IFNULL(reg_timestamp, 0) reg_timestamp, IFNULL(login_timestamp, 0) login_timestamp " +
                        $"FROM users left join users_info on (users.id = users_info.user_id) WHERE id = '{userId}' LIMIT 1"
                        );

                    DataRow row = queryReactor.GetRow();

                    uint id = Convert.ToUInt32(row["id"]);
                    serverMessage.AppendInteger(id);
                    serverMessage.AppendString(row["username"].ToString());
                    serverMessage.AppendString(row["look"].ToString());
                    double regTimestamp   = (double)row["reg_timestamp"];
                    double loginTimestamp = (double)row["login_timestamp"];
                    int    unixTimestamp  = Yupi.GetUnixTimeStamp();
                    serverMessage.AppendInteger(
                        (int)(regTimestamp > 0 ? Math.Ceiling((unixTimestamp - regTimestamp) / 60.0) : regTimestamp));
                    serverMessage.AppendInteger(
                        (int)
                        (loginTimestamp > 0 ? Math.Ceiling((unixTimestamp - loginTimestamp) / 60.0) : loginTimestamp));
                    serverMessage.AppendBool(true);
                    serverMessage.AppendInteger(Convert.ToInt32(row["cfhs"]));
                    serverMessage.AppendInteger(Convert.ToInt32(row["cfhs_abusive"]));
                    serverMessage.AppendInteger(Convert.ToInt32(row["cautions"]));
                    serverMessage.AppendInteger(Convert.ToInt32(row["bans"]));

                    serverMessage.AppendInteger(0);
                    uint rank = (uint)row["rank"];
                    serverMessage.AppendString(row["trade_lock"].ToString() == "1"
                        ? Yupi.UnixToDateTime(int.Parse(row["trade_lock_expire"].ToString())).ToLongDateString()
                        : "Not trade-locked");
                    serverMessage.AppendString(rank < 6 ? row["ip_last"].ToString() : "127.0.0.1");
                    serverMessage.AppendInteger(id);
                    serverMessage.AppendInteger(0);

                    serverMessage.AppendString($"E-Mail:         {row["mail"]}");
                    serverMessage.AppendString($"Rank ID:        {rank}");
                }
            }
            return(serverMessage);
        }
コード例 #6
0
ファイル: TeleHandler.cs プロジェクト: xXSicilyXx/Yupi
        /// <summary>
        ///     Gets the linked tele.
        /// </summary>
        /// <param name="teleId">The tele identifier.</param>
        /// <param name="pRoom">The p room.</param>
        /// <returns>System.UInt32.</returns>
        internal static uint GetLinkedTele(uint teleId, Room pRoom)
        {
            uint result;

            using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                queryReactor.SetQuery($"SELECT tele_two_id FROM items_teleports WHERE tele_one_id = {teleId}");
                DataRow row = queryReactor.GetRow();

                result = row == null ? 0 : Convert.ToUInt32(row[0]);
            }

            return(result);
        }
コード例 #7
0
ファイル: RoomManager.cs プロジェクト: EmuZoneDEV/HBBO-EMU
        private static RoomModel GetCustomData(int roomID)
        {
            DataRow row;

            using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                queryreactor.SetQuery("SELECT door_x,door_y,door_z,door_dir,heightmap, murheight FROM room_models_customs WHERE roomid = " + roomID);
                row = queryreactor.GetRow();
            }
            if (row == null)
            {
                throw new Exception("The custom room model for room " + roomID + " was not found");
            }
            return(new RoomModel(roomID.ToString(), (int)row["door_x"], (int)row["door_y"], (double)row["door_z"], (int)row["door_dir"], (string)row["heightmap"], (int)row["murheight"]));
        }
コード例 #8
0
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.SetQuery("SELECT trigger_data FROM wired_items WHERE trigger_id = @id ");
            dbClient.AddParameter("id", this.item.Id);
            DataRow row = dbClient.GetRow();

            if (row != null)
            {
                this.timeout = Convert.ToInt32(row[0].ToString());
            }
            else
            {
                this.timeout = 20;
            }
        }
コード例 #9
0
ファイル: CollisionTeam.cs プロジェクト: EmuZoneDEV/HBBO-EMU
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.SetQuery("SELECT trigger_data FROM wired_items WHERE trigger_id = @id");
            dbClient.AddParameter("id", this.itemID);
            DataRow row = dbClient.GetRow();

            if (row == null)
            {
                return;
            }
            if (int.TryParse(row[0].ToString(), out int number))
            {
                this.team = (Team)number;
            }
        }
コード例 #10
0
ファイル: TimerReset.cs プロジェクト: EmuZoneDEV/HBBO-EMU
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.SetQuery("SELECT trigger_data, triggers_item FROM wired_items WHERE trigger_id = @id ");
            dbClient.AddParameter("id", this.itemID);
            DataRow row = dbClient.GetRow();

            this.Delay = 0;

            if (row == null)
            {
                return;
            }

            this.Delay = row == null ? 0 : Convert.ToInt32(row[0].ToString());
        }
コード例 #11
0
ファイル: SubscriptionManager.cs プロジェクト: sgf/Yupi
        /// <summary>
        ///     Reloads the subscription.
        /// </summary>
        internal void ReloadSubscription()
        {
            using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                queryReactor.SetQuery(
                    "SELECT * FROM users_subscriptions WHERE user_id=@id AND timestamp_expire > UNIX_TIMESTAMP() ORDER BY subscription_id DESC LIMIT 1");
                queryReactor.AddParameter("id", _userId);

                DataRow row = queryReactor.GetRow();

                _subscription = row == null
                    ? null
                    : new Subscription((int)row[1], (int)row[2], (int)row[3], (int)row[4]);
            }
        }
コード例 #12
0
        /// <summary>
        /// Gets the linked tele.
        /// </summary>
        /// <param name="teleId">The tele identifier.</param>
        /// <param name="pRoom">The p room.</param>
        /// <returns>System.UInt32.</returns>
        internal static UInt32 GetLinkedTele(UInt32 TeleId, Room pRoom)
        {
            using (IQueryAdapter dbClient = Plus.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT tele_two_id FROM items_teleports WHERE tele_one_id = " + TeleId);
                DataRow Row = dbClient.GetRow();

                if (Row == null)
                {
                    return(0);
                }

                return(Convert.ToUInt32(Row[0]));
            }
        }
コード例 #13
0
        public void Parse(HabboHotel.GameClients.GameClient session, ClientPacket packet)
        {
            if (!session.Habbo.GetPermissions().HasRight("mod_tool"))
            {
                return;
            }

            int userId = packet.PopInt();

            DataRow user;
            DataRow info;

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `id`,`username`,`online`,`mail`,`ip_last`,`look`,`account_created`,`last_online` FROM `users` WHERE `id` = '" + userId + "' LIMIT 1");
                user = dbClient.GetRow();

                if (user == null)
                {
                    session.SendNotification(PlusEnvironment.GetLanguageManager().TryGetValue("user.not_found"));
                    return;
                }

                dbClient.SetQuery("SELECT `cfhs`,`cfhs_abusive`,`cautions`,`bans`,`trading_locked`,`trading_locks_count` FROM `user_info` WHERE `user_id` = '" + userId + "' LIMIT 1");
                info = dbClient.GetRow();
                if (info == null)
                {
                    dbClient.RunQuery("INSERT INTO `user_info` (`user_id`) VALUES ('" + userId + "')");
                    dbClient.SetQuery("SELECT `cfhs`,`cfhs_abusive`,`cautions`,`bans`,`trading_locked`,`trading_locks_count` FROM `user_info` WHERE `user_id` = '" + userId + "' LIMIT 1");
                    info = dbClient.GetRow();
                }
            }


            session.SendPacket(new ModeratorUserInfoComposer(user, info));
        }
コード例 #14
0
        public static int GetLinkedTele(int TeleId)
        {
            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `tele_two_id` FROM `room_items_tele_links` WHERE `tele_one_id` = '" + TeleId + "' LIMIT 1");
                DataRow Row = dbClient.GetRow();

                if (Row == null)
                {
                    return(0);
                }

                return(Convert.ToInt32(Row[0]));
            }
        }
コード例 #15
0
ファイル: SuperTrigger.cs プロジェクト: EmuZoneDEV/HBBO-EMU
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.SetQuery("SELECT trigger_data,  all_user_triggerable FROM wired_items WHERE trigger_id = @id ");
            dbClient.AddParameter("id", this.item.Id);
            DataRow row = dbClient.GetRow();

            if (row != null)
            {
                this.triggerMessage = row[0].ToString();
            }
            else
            {
                this.triggerMessage = string.Empty;
            }
        }
コード例 #16
0
ファイル: UserInfo.cs プロジェクト: sgf/Yupi
        public override bool Execute(GameClient session, string[] pms)
        {
            string userName = pms[0];

            if (string.IsNullOrEmpty(userName))
            {
                return(true);
            }
            GameClient clientByUserName = Yupi.GetGame().GetClientManager().GetClientByUserName(userName);

            if (clientByUserName == null || clientByUserName.GetHabbo() == null)
            {
                using (IQueryAdapter adapter = Yupi.GetDatabaseManager().GetQueryReactor())
                {
                    adapter.SetQuery(
                        "SELECT username, rank, id, credits, activity_points, diamonds FROM users WHERE username=@user LIMIT 1");
                    adapter.AddParameter("user", userName);
                    DataRow row = adapter.GetRow();

                    if (row == null)
                    {
                        session.SendWhisper(Yupi.GetLanguage().GetVar("user_not_found"));
                        return(true);
                    }
                    session.SendNotif(string.Format(Yupi.GetLanguage().GetVar("user_info_all"), userName, row[1],
                                                    row[3], row[4], row[5]));
                }
                return(true);
            }
            Habbo         habbo   = clientByUserName.GetHabbo();
            StringBuilder builder = new StringBuilder();

            if (habbo.CurrentRoom != null)
            {
                builder.AppendFormat(" - ROOM INFORMATION [{0}] - \r", habbo.CurrentRoom.RoomId);
                builder.AppendFormat("Owner: {0}\r", habbo.CurrentRoom.RoomData.Owner);
                builder.AppendFormat("Room Name: {0}\r", habbo.CurrentRoom.RoomData.Name);
                builder.Append(
                    string.Concat("Current Users: ", habbo.CurrentRoom.UserCount, "/",
                                  habbo.CurrentRoom.RoomData.UsersMax));
            }
            session.SendNotif(string.Concat("User info for: ", userName, " \rUser ID: ", habbo.Id, ":\rRank: ",
                                            habbo.Rank, "\rCurrentTalentLevel: ", habbo.CurrentTalentLevel, " \rCurrent Room: ", habbo.CurrentRoomId,
                                            " \rCredits: ", habbo.Credits, "\rDuckets: ", habbo.ActivityPoints, "\rDiamonds: ", habbo.Diamonds,
                                            "\rMuted: ", habbo.Muted.ToString(), "\r\r\r", builder.ToString()));

            return(true);
        }
コード例 #17
0
        /// <summary>
        ///     Adds the user score.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="username">The username.</param>
        /// <param name="score">The score.</param>
        internal void AddUserScore(RoomItem item, string username, int score)
        {
            using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                if (item.GetBaseItem().Name.StartsWith("highscore_classic"))
                {
                    queryReactor.SetQuery(
                        "INSERT INTO items_highscores (item_id,username,score) VALUES (@itemid,@username,@score)");
                    queryReactor.AddParameter("itemid", item.Id);
                    queryReactor.AddParameter("username", username);
                    queryReactor.AddParameter("score", score);
                    queryReactor.RunQuery();
                }
                else if (item.GetBaseItem().Name.StartsWith("highscore_mostwin"))
                {
                    score = 1;
                    queryReactor.SetQuery(
                        "SELECT id,score FROM items_highscores WHERE username = @username AND item_id = @itemid");
                    queryReactor.AddParameter("itemid", item.Id);
                    queryReactor.AddParameter("username", username);

                    DataRow row = queryReactor.GetRow();

                    if (row != null)
                    {
                        queryReactor.SetQuery(
                            "UPDATE items_highscores SET score = score + 1 WHERE username = @username AND item_id = @itemid");
                        queryReactor.AddParameter("itemid", item.Id);
                        queryReactor.AddParameter("username", username);
                        queryReactor.RunQuery();
                        Lines.Remove((int)row["id"]);
                        score = (int)row["score"] + 1;
                    }
                    else
                    {
                        queryReactor.SetQuery(
                            "INSERT INTO items_highscores (item_id,username,score) VALUES (@itemid,@username,@score)");
                        queryReactor.AddParameter("itemid", item.Id);
                        queryReactor.AddParameter("username", username);
                        queryReactor.AddParameter("score", score);
                        queryReactor.RunQuery();
                    }
                }

                LastId++;
                Lines.Add(LastId, new HighScoreLine(username, score));
            }
        }
コード例 #18
0
ファイル: RoomCompetitionManager.cs プロジェクト: sgf/Yupi
        public void RefreshCompetitions()
        {
            Competition = null;
            using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                queryReactor.SetQuery("SELECT * FROM rooms_competitions WHERE enabled = '1' LIMIT 1");
                DataRow row = queryReactor.GetRow();

                if (row == null)
                {
                    return;
                }

                Competition = new RoomCompetition((int)row["id"], (string)row["name"], (string)row["required_furnis"]);
            }
        }
コード例 #19
0
 public static int GetLinkedTele(int TeleId)
 {
     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
     {
         queryreactor.SetQuery("SELECT tele_two_id FROM tele_links WHERE tele_one_id = " + TeleId);
         DataRow row = queryreactor.GetRow();
         if (row == null)
         {
             return(0);
         }
         else
         {
             return(Convert.ToInt32(row[0]));
         }
     }
 }
コード例 #20
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int ItemId   = Packet.PopInt();
            int SpriteId = Packet.PopInt();

            DataRow Row = null;

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `avgprice` FROM `catalog_marketplace_data` WHERE `sprite` = @SpriteId LIMIT 1");
                dbClient.AddParameter("SpriteId", SpriteId);
                Row = dbClient.GetRow();
            }

            Session.SendPacket(new MarketplaceItemStatsComposer(ItemId, SpriteId, (Row != null ? Convert.ToInt32(Row["avgprice"]) : 0)));
        }
コード例 #21
0
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.SetQuery("SELECT trigger_data, trigger_data_2 FROM wired_items WHERE trigger_id = @id ");
            dbClient.AddParameter("id", this.itemID);
            DataRow row = dbClient.GetRow();

            if (row == null)
            {
                return;
            }
            this.message = row["trigger_data"].ToString();

            int result;

            this.Delay = (int.TryParse(row["trigger_data_2"].ToString(), out result)) ? result : 0;
        }
コード例 #22
0
        public static SmallPromo load(int index)
        {
            DataRow dRow;

            using (IQueryAdapter DbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT hotelview_promos.`index`,hotelview_promos.header,hotelview_promos.body,hotelview_promos.button,hotelview_promos.in_game_promo,hotelview_promos.special_action," +
                                  "hotelview_promos.image,hotelview_promos.enabled FROM hotelview_promos WHERE hotelview_promos.`index` = @x LIMIT 1");
                DbClient.AddParameter("x", index);
                dRow = DbClient.GetRow();
            }

            SmallPromo newPromo = new SmallPromo(index, (string)dRow[1], (string)dRow[2], (string)dRow[3], Convert.ToInt32(dRow[4]), (string)dRow[5], (string)dRow[6]);

            return(newPromo);
        }
コード例 #23
0
ファイル: PositionReset.cs プロジェクト: EmuZoneDEV/HBBO-EMU
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.SetQuery("SELECT trigger_data, trigger_data_2, triggers_item FROM wired_items WHERE trigger_id = @id ");
            dbClient.AddParameter("id", this.itemID);
            DataRow row = dbClient.GetRow();

            this.Delay = 20;

            if (row == null)
            {
                return;
            }

            int result;

            this.Delay = (int.TryParse(row["trigger_data"].ToString(), out result)) ? result : 20;

            string itemslist = row["triggers_item"].ToString();

            string data2 = row["trigger_data_2"].ToString();

            if (data2.Length == 5)
            {
                this.EtatActuel      = Convert.ToInt32(data2.Split(';')[0]);
                this.DirectionActuel = Convert.ToInt32(data2.Split(';')[1]);
                this.PositionActuel  = Convert.ToInt32(data2.Split(';')[2]);
            }

            if (itemslist == "")
            {
                return;
            }

            foreach (string item in itemslist.Split(';'))
            {
                string[] Item2 = item.Split(':');
                if (Item2.Length != 6)
                {
                    continue;
                }
                Item roomItem = insideRoom.GetRoomItemHandler().GetItem(Convert.ToInt32(Item2[0]));
                if (roomItem != null && !this.items.ContainsKey(roomItem.Id) && roomItem.Id != this.itemID)
                {
                    this.items.TryAdd(roomItem.Id, new ItemsPosReset(roomItem, Convert.ToInt32(Item2[1]), Convert.ToInt32(Item2[2]), Convert.ToDouble(Item2[3]), Convert.ToInt32(Item2[4]), Item2[5]));
                }
            }
        }
コード例 #24
0
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.SetQuery("SELECT trigger_data, trigger_data_2 FROM wired_items WHERE trigger_id = @id ");
            dbClient.AddParameter("id", this.itemID);
            DataRow row = dbClient.GetRow();

            if (row != null)
            {
                this.maxCountPerGame = Convert.ToInt32(row[0].ToString());
                this.scoreToGive     = Convert.ToInt32(row[1].ToString());
            }
            else
            {
                this.maxCountPerGame = 0;
                this.scoreToGive     = 0;
            }
        }
コード例 #25
0
        /// <summary>
        ///     Loads the reward.
        /// </summary>
        private void LoadReward()
        {
            using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                queryReactor.SetQuery("SELECT hotelview_rewards_promos.furni_id, hotelview_rewards_promos.furni_name FROM hotelview_rewards_promos WHERE hotelview_rewards_promos.enabled = 1 LIMIT 1");

                DataRow row = queryReactor.GetRow();

                if (row == null)
                {
                    return;
                }

                FurniRewardId   = Convert.ToInt32(row[0]);
                FurniRewardName = Convert.ToString(row[1]);
            }
        }
コード例 #26
0
        public UserCache GenerateUser(int id)
        {
            UserCache user = null;

            if (_usersCached.ContainsKey(id))
            {
                if (TryGetUser(id, out user))
                {
                    return(user);
                }
            }

            GameClient client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserId(id);

            if (client != null)
            {
                if (client.Habbo != null)
                {
                    user = new UserCache(id, client.Habbo.Username, client.Habbo.Motto, client.Habbo.Look);
                    _usersCached.TryAdd(id, user);
                    return(user);
                }
            }

            /*
             * TODO: Make this asynchronous!
             * user = await _dao.GetUserCache(id);
             * if (user != null) _usersCached.TryAdd(id, user);*/

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `username`, `motto`, `look` FROM users WHERE id = @id LIMIT 1");
                dbClient.AddParameter("id", id);

                DataRow dRow = dbClient.GetRow();

                if (dRow != null)
                {
                    user = new UserCache(id, dRow["username"].ToString(), dRow["motto"].ToString(), dRow["look"].ToString());
                    _usersCached.TryAdd(id, user);
                }
            }

            return(user);
        }
コード例 #27
0
        public static ServerPacket SerializeRoomTool(RoomData Data)
        {
            Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Data.Id);
            int  i    = 0;

            using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                try
                {
                    queryreactor.SetQuery("SELECT id FROM users WHERE username = @owner");
                    queryreactor.AddParameter("owner", Data.OwnerName);
                    i = Convert.ToInt32(queryreactor.GetRow()[0]);
                }
                catch (Exception ex)
                {
                    Logging.HandleException(ex, "ModerationTool.SerializeRoomTool");
                }
            }
            ServerPacket serverMessage = new ServerPacket(ServerPacketHeader.ModeratorRoomInfoMessageComposer);

            serverMessage.WriteInteger(Data.Id);
            serverMessage.WriteInteger(Data.UsersNow);
            if (room != null)
            {
                serverMessage.WriteBoolean(room.GetRoomUserManager().GetRoomUserByHabbo(Data.OwnerName) != null);
            }
            else
            {
                serverMessage.WriteBoolean(false);
            }
            serverMessage.WriteInteger(i);
            serverMessage.WriteString(Data.OwnerName);
            serverMessage.WriteBoolean(room != null);
            if (room != null)
            {
                serverMessage.WriteString(Data.Name);
                serverMessage.WriteString(Data.Description);
                serverMessage.WriteInteger(Data.TagCount);
                foreach (string s in Data.Tags)
                {
                    serverMessage.WriteString(s);
                }
            }
            return(serverMessage);
        }
コード例 #28
0
        public void LoadPromotions()
        {
            DataRow GetPromotion = null;

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT * FROM `room_promotions` WHERE `room_id` = " + Id + " LIMIT 1;");
                GetPromotion = dbClient.GetRow();

                if (GetPromotion != null)
                {
                    if (Convert.ToDouble(GetPromotion["timestamp_expire"]) > Plus.Utilities.UnixTimestamp.GetNow())
                    {
                        this._promotion = new RoomPromotion(Convert.ToString(GetPromotion["title"]), Convert.ToString(GetPromotion["description"]), Convert.ToDouble(GetPromotion["timestamp_start"]), Convert.ToDouble(GetPromotion["timestamp_expire"]), Convert.ToInt32(GetPromotion["category_id"]));
                    }
                }
            }
        }
コード例 #29
0
        public static ServerPacket SerializeUserInfo(int UserId)
        {
            GameClient User = ButterflyEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
            DataRow    row1 = null;

            if (User == null)
            {
                using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    queryreactor.SetQuery("SELECT id, username FROM users WHERE id = " + UserId);
                    row1 = queryreactor.GetRow();
                }
                if (row1 == null)
                {
                    return(null);
                }
            }

            ServerPacket serverMessage = new ServerPacket(ServerPacketHeader.ModeratorUserInfoMessageComposer);

            serverMessage.WriteInteger((row1 == null) ? User.GetHabbo().Id : Convert.ToInt32(row1["id"]));
            serverMessage.WriteString((row1 == null) ? User.GetHabbo().Username : (string)row1["username"]);
            serverMessage.WriteString("Unknown");

            serverMessage.WriteInteger(0);
            serverMessage.WriteInteger(0);

            serverMessage.WriteBoolean(User != null);

            serverMessage.WriteInteger(0);
            serverMessage.WriteInteger(0);
            serverMessage.WriteInteger(0);
            serverMessage.WriteInteger(0);

            serverMessage.WriteInteger(0); // trading_lock_count_txt

            serverMessage.WriteString("");
            serverMessage.WriteString("");
            serverMessage.WriteInteger(0);
            serverMessage.WriteInteger(0);
            serverMessage.WriteString("Unknown");
            serverMessage.WriteString(""); // ???
            return(serverMessage);
        }
コード例 #30
0
ファイル: HighScore.cs プロジェクト: EmuZoneDEV/HBBO-EMU
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            string triggerdata = null;

            dbClient.SetQuery("SELECT trigger_data FROM wired_items WHERE trigger_id = @id");
            dbClient.AddParameter("id", this.item.Id);
            DataRow row = dbClient.GetRow();

            if (row != null)
            {
                triggerdata = row["trigger_data"].ToString();
            }

            if (string.IsNullOrEmpty(triggerdata))
            {
                return;
            }

            foreach (string score in triggerdata.Split(';'))
            {
                //:lucie:42
                string[] score2   = score.Split(':');
                int      ScoreNum = 0;
                int.TryParse(score2[score2.Count() - 1], out ScoreNum);
                string Pseudo = "";
                for (int i = 0; i < score2.Count() - 1; i++)
                {
                    if (i == 0)
                    {
                        Pseudo = score2[i];
                    }
                    else
                    {
                        Pseudo += ':' + score2[i];
                    }
                }

                //List<string> ListUsernameScore = new List<string>() { score2[0] };
                if (!this.item.Scores.ContainsKey(Pseudo))
                {
                    this.item.Scores.Add(Pseudo, ScoreNum);
                }
            }
        }