Packet Bazaar

12/04/2019 19:33 Ritahxyel#1
to close I found
12/04/2019 20:16 Limoo#2
I think they fixed it. Now you have to be on the map to be able to use it.
12/04/2019 22:49 Nortank#3
They fixed it
packet was wopen 32 0 0
12/07/2019 06:09 Ritahxyel#4
it's good I found I was talking about the Cmod package that had to be added

Code:
        /// <summary>
        /// c_mod packet
        /// </summary>
        /// <param name="cModPacket"></param>
        public void ModPriceBazaar(CModPacket cModPacket)
        {
            if (Session.Account.IsLimited)
            {
                Session.SendPacket(UserInterfaceHelper.GenerateInfo(Language.Instance.GetMessageFromKey("LIMITED_ACCOUNT")));
                return;
            }

            if (!Session.Character.CanUseNosBazaar())
            {
                Session.SendPacket(UserInterfaceHelper.GenerateInfo(Language.Instance.GetMessageFromKey("INFO_BAZAAR")));
                return;
            }

            BazaarItemDTO bz = DAOFactory.BazaarItemDAO.LoadById(cModPacket.BazaarId);
            if (bz != null)
            {
                if (bz.SellerId != Session.Character.CharacterId)
                {
                    return;
                }

                ItemInstance itemInstance = new ItemInstance(DAOFactory.IteminstanceDAO.LoadById(bz.ItemInstanceId));
                if (itemInstance == null || bz.Amount != itemInstance.Amount)
                {
                    return;
                }

                if ((bz.DateStart.AddHours(bz.Duration).AddDays(bz.MedalUsed ? 30 : 7) - DateTime.Now).TotalMinutes <= 0)
                {
                    return;
                }

                if (cModPacket.Price <= 0)
                {
                    return;
                }

                StaticBonusDTO medal = Session.Character.StaticBonusList.Find(s =>
                    s.StaticBonusType == StaticBonusType.BazaarMedalGold
                    || s.StaticBonusType == StaticBonusType.BazaarMedalSilver);
                if (cModPacket.Price >= (medal == null ? 1000000 : ServerManager.Instance.Configuration.MaxGold))
                {
                    Session.SendPacket(
                        UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("PRICE_EXCEEDED"), 0));
                    return;
                }

                bz.Price = cModPacket.Price;

                DAOFactory.BazaarItemDAO.InsertOrUpdate(ref bz);
                ServerManager.Instance.BazaarRefresh(bz.BazaarItemId);

                Session.SendPacket(Session.Character.GenerateSay(string.Format(Language.Instance.GetMessageFromKey("OBJECT_MOD_IN_BAZAAR"), bz.Price),
                    10));
                Session.SendPacket(UserInterfaceHelper.GenerateMsg(string.Format(Language.Instance.GetMessageFromKey("OBJECT_MOD_IN_BAZAAR"), bz.Price),
                    0));

                Logger.LogUserEvent("BAZAAR_MOD", Session.GenerateIdentity(),
                    $"BazaarId: {bz.BazaarItemId}, IIId: {bz.ItemInstanceId} VNum: {itemInstance.ItemVNum} Amount: {bz.Amount} Price: {bz.Price} Time: {bz.Duration}");

                RefreshPersonalBazarList(new CSListPacket());
            }
        }