public static void OnUse(GS.Players.Player player, Item sellItem) { int sellValue = sellItem.ItemDefinition.BaseGoldValue; // TODO: calculate correct sell value for magic items player.Inventory.AddGoldAmount(sellValue); // TODO: instead of destroying item, it should be moved to merchants inventory for rebuy. player.Inventory.DestroyInventoryItem(sellItem); }
public override void OnRequestUse(GS.Players.Player player, Item target, int actionId, Net.GS.Message.Fields.WorldPlace worldPlace) { if (player.Attributes[GameAttribute.Hitpoints_Cur] == player.Attributes[GameAttribute.Hitpoints_Max_Total]) { return; // TODO Error msg? /fasbat } player.Attributes[GameAttribute.Hitpoints_Cur] = player.Attributes[GameAttribute.Hitpoints_Cur] + this.Attributes[GameAttribute.Hitpoints_Granted]; player.Attributes.BroadcastChangedIfRevealed(); if (this.Attributes[GameAttribute.ItemStackQuantityLo] <= 1) { player.Inventory.DestroyInventoryItem(this); // No more potions! } else { this.Attributes[GameAttribute.ItemStackQuantityLo]--; // Just remove one this.Attributes.SendChangedMessage(player.InGameClient); } }
public static void OnUse(GS.Players.Player player, Item salvageItem) { if (salvageItem == null) { return; } player.Inventory.DestroyInventoryItem(salvageItem); List <Item> craftingMaterials = TreasureClassManager.CreateLoot(player, salvageItem.ItemDefinition.SNOComponentTreasureClass); if (salvageItem.Attributes[GameAttribute.Item_Quality_Level] >= (int)ItemTable.ItemQuality.Magic1) { craftingMaterials.AddRange(TreasureClassManager.CreateLoot(player, salvageItem.ItemDefinition.SNOComponentTreasureClassMagic)); } if (salvageItem.Attributes[GameAttribute.Item_Quality_Level] >= (int)ItemTable.ItemQuality.Rare4) { craftingMaterials.AddRange(TreasureClassManager.CreateLoot(player, salvageItem.ItemDefinition.SNOComponentTreasureClassRare)); } List <int> craftigItemsGbids = new List <int>(); foreach (Item crafingItem in craftingMaterials) { craftigItemsGbids.Add(crafingItem.GBHandle.GBID); // reveal new item to player player.Inventory.PickUp(crafingItem); } // TODO: This Message doesn't work. I think i should produce an entry in the chat window like "Salvaging Gloves gave you Common scrap!" - angerwin //SalvageResultsMessage message = new SalvageResultsMessage //{ // gbidNewItems = craftigItemsGbids.ToArray(), // gbidOriginalItem = salvageItem.GBHandle.GBID, // Field1 = 0, // Unkown // Field2 = 0, // Unkown //}; //player.InGameClient.SendMessage(message); }