Exemple #1
0
        public async Task <IActionResult> getformitems(int serviceid)
        {
            List <FormItem> formitems = null;
            ItemError       e         = new ItemError();

            CancellationTokenSource cts;

            cts = new CancellationTokenSource();
            cts.CancelAfter(settings.Value.redisCancellationToken);

            Redis  redis = new Redis(settings, cache);
            string key   = "formitems_" + serviceid;

            //check redis cache for details
            try
            {
                formitems = await redis.getformitems(key, cts.Token);

                if (formitems != null && formitems.Count > 0)
                {
                    return(CreatedAtAction("getformitems", formitems));
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }

            //Get cost items from Sql
            try
            {
                formitems = await serviceSqlRepo.GetFormItems(serviceid);
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }

            //Write to Redis
            try
            {
                if (formitems != null && formitems.Count > 0)
                {
                    await redis.setformitems(key, formitems, cts.Token);
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
            return(CreatedAtAction("getformitems", formitems));
        }
Exemple #2
0
 public void TakeLoot(Player Plr, byte Id)
 {
     if (Id >= Loots.Length || Loots[Id] == null)
         Plr.SendLocalizeString("", GameData.Localized_text.TEXT_CANT_LOOT_THAT);
     else
     {
         ItemError Error = Plr.ItmInterface.CreateItem(Loots[Id].Item, 1);
         if (Error == ItemError.RESULT_OK)
             Loots[Id] = null;
         else
             Plr.SendLocalizeString("", GameData.Localized_text.TEXT_OVERAGE_CANT_LOOT);
     }
 }
Exemple #3
0
        static public void BuyItemVendor(Player Plr, InteractMenu Menu, uint Entry)
        {
            int    Num   = (Menu.Page * MAX_ITEM_PAGE) + Menu.Num;
            ushort Count = (ushort)(Menu.Count > 0 ? Menu.Count : 1);
            List <Creature_vendor> Vendors = GetVendorItems(Entry);

            Log.Success("BuyItemVendor", "Count=" + Count + ",Num=" + Num + ",Size=" + Vendors.Count);

            if (Vendors.Count <= Num)
            {
                return;
            }

            if (!Plr.HaveMoney((Vendors[Num].Price) * Count))
            {
                Plr.SendLocalizeString("", GameData.Localized_text.TEXT_MERCHANT_INSUFFICIENT_MONEY_TO_BUY);
                return;
            }

            foreach (KeyValuePair <UInt16, Item_Info> Kp in Vendors[Num].ItemsReqInfo)
            {
                if (!Plr.ItmInterface.HasItemCount(Kp.Value.Entry, Kp.Key))
                {
                    Plr.SendLocalizeString("", GameData.Localized_text.TEXT_MERCHANT_FAIL_PURCHASE_REQUIREMENT);
                    return;
                }
            }

            ItemError Error = Plr.ItmInterface.CreateItem(Vendors[Num].Info, Count);

            if (Error == ItemError.RESULT_OK)
            {
                Plr.RemoveMoney((Vendors[Num].Price) * Count);
                foreach (KeyValuePair <UInt16, Item_Info> Kp in Vendors[Num].ItemsReqInfo)
                {
                    Plr.ItmInterface.RemoveItem(Kp.Value.Entry, Kp.Key);
                }
            }
            else if (Error == ItemError.RESULT_MAX_BAG)
            {
                Plr.SendLocalizeString("", GameData.Localized_text.TEXT_MERCHANT_INSUFFICIENT_SPACE_TO_BUY);
            }
            else if (Error == ItemError.RESULT_ITEMID_INVALID)
            {
            }
        }
Exemple #4
0
        public ItemError Use(Connection c)
        {
            ItemError err = ItemError.None;

            if (c.Character.CanUseItemNow(this))
            {
                switch (_template.ItemFunction)
                {
                case ItemTemplate.ItemUseFunction.GainHealth:
                    if (c.Character.CurHP < c.Character.MaxHP)
                    {
                        _durability--;

                        // Adjust character health
                        c.Character.TakeDamage(-_template.ItemFunctionParam);

                        // Send health change to client
                        c.SendPacket(new HealthChangePacket(c.Character.CurHP));
                    }
                    else
                    {
                        err = ItemError.UnableToUseItem;
                    }
                    break;

                default:
                case ItemTemplate.ItemUseFunction.None:
                    break;
                }
            }
            else
            {
                err = ItemError.YouCanUseItAfterTheCooldownTimeRunsOut;
            }
            return(err);
        }
Exemple #5
0
 public PostBoardWebhookRequest(string boardId, WebhookTypes webhookType, WebhookCodes webhookCode, string itemId, int newTransactions, ItemError error = null)
 {
     BoardId         = boardId;
     WebhookType     = webhookType;
     WebhookCode     = webhookCode;
     ItemId          = itemId;
     NewTransactions = newTransactions;
     Error           = error;
 }