protected internal override void Use(L2Player admin, string alias) { int id = int.Parse(alias.Split(' ')[1]); int count = 1; try { count = int.Parse(alias.Split(' ')[2]); } catch (Exception e) { _log.Error($"AdminSpawnItem: {e.Message}"); } admin.AddItem(id, count); }
public static void Process(L2Character character, L2Item item) { if (!(character is L2Player) || !Items.ContainsKey(item.Template.ItemId)) { return; } CapsuleItem caps = Items[item.Template.ItemId]; L2Player player = (L2Player)character; player.DestroyItem(item, 1); foreach (CapsuleItemReward rew in caps.Rewards.Where(rew => RandomThreadSafe.Instance.Next(100) <= rew.Rate)) { player.AddItem(rew.Id, RandomThreadSafe.Instance.Next(rew.Min, rew.Max)); } }
protected internal override void Use(L2Player admin, string alias) { //summon [id | name] [количество] -- призывает предмет\нпц [id] . Если количество не задано , призывает 1 int id = int.Parse(alias.Split(' ')[1]); int count = 1; try { count = int.Parse(alias.Split(' ')[2]); } catch (Exception e) { _log.Error($"AdminSpawnItem: {e.Message}"); } admin.AddItem(id, count); }
protected internal override async Task UseAsync(L2Player admin, string alias) { await Task.Run(() => { int id = int.Parse(alias.Split(' ')[1]); int count = 1; try { count = int.Parse(alias.Split(' ')[2]); } catch (Exception e) { Log.Error($"AdminSpawnItem: {e.Message}"); } admin.AddItem(id, count); }); }
public override void UsePlayer(L2Player player, L2Item item) { if (!Player) { base.UsePlayer(player, item); return; } if (Destroy) { player.DestroyItem(item, 1); } CalcSkill(player); CalcEffect(player); if (_exchangeItems != null) { foreach (int val in _exchangeItems.Keys) { player.AddItem(val, _exchangeItems[val]); } } if (PetId != -1) { player.PetSummon(item, PetId); } if (SummonId != -1) { player.PetSummon(item, SummonId, false); } if (SummonStaticId != -1) { //NpcTable.Instance.SpawnNpc(SummonStaticID, player.X, player.Y, player.Z, player.Heading); } }
public override void UsePlayer(L2Player player, L2Item item) { // TODO: Debug this code if (!Player) { base.UsePlayer(player, item); return; } if (Destroy) { player.DestroyItem(item, 1); } if (_exchangeItems != null) { foreach (int val in _exchangeItems.Keys) { player.AddItem(val, _exchangeItems[val]); } } if (PetId.HasValue) { player.PetSummon(item, PetId.Value); } if (SummonId.HasValue) { player.PetSummon(item, SummonId.Value, false); } if (SummonStaticId.HasValue) { //NpcTable.Instance.SpawnNpc(SummonStaticID.Value, player.X, player.Y, player.Z, player.Heading); } }
public override void RunImpl() { L2Player player = _client.CurrentPlayer; if (_count <= 0) { player.SendActionFailed(); return; } L2Npc trader = player.FolkNpc; if (trader == null) { player.SendSystemMessage(SystemMessage.SystemMessageId.TradeAttemptFailed); player.SendActionFailed(); return; } NDShop shop = NpcData.Instance.Shops[trader.Template.NpcId]; if (shop == null) { player.SendSystemMessage(SystemMessage.SystemMessageId.TradeAttemptFailed); player.SendActionFailed(); return; } NdShopList list = shop.Lists[(short)_listId]; if (list == null) { player.SendSystemMessage(SystemMessage.SystemMessageId.TradeAttemptFailed); player.SendActionFailed(); return; } int adena = 0; int slots = 0, weight = 0; for (int i = 0; i < _count; i++) { int itemId = _items[i * 2]; bool notfound = true; foreach (NDShopItem item in list.Items.Where(item => item.Item.ItemId == itemId)) { adena += item.Item.ReferencePrice * _items[(i * 2) + 1]; if (!item.Item.Stackable) { slots++; } //else //{ // if (!player.HasItem(item.item.ItemID)) // slots++; //} weight += item.Item.Weight * _items[(i * 2) + 1]; notfound = false; break; } if (!notfound) { continue; } player.SendSystemMessage(SystemMessage.SystemMessageId.TradeAttemptFailed); player.SendActionFailed(); return; } if (adena > player.GetAdena()) { player.SendSystemMessage(SystemMessage.SystemMessageId.YouNotEnoughAdena); return; } player.ReduceAdena(adena); for (int i = 0; i < _count; i++) { int itemId = _items[i * 2]; int count = _items[(i * 2) + 1]; player.AddItem(itemId, count); } player.SendPacket(new ExBuySellListClose()); }