using System.Xml.Linq; public class MinEventActionAddItemRebirth : MinEventActionRemoveBuff { private int numItems = 1; private int numLocation = 0; private int numQuality = 0; private string itemName = ""; public override void Execute(MinEventParams _params) { if (GameManager.IsDedicatedServer) { //Log.Out("MinEventActionAddItemRebirth-Execute IS SERVER"); return; } //Log.Out("MinEventActionAddItemRebirth-Execute IS CLIENT"); EntityPlayerLocal player = _params.Self as EntityPlayerLocal; if (player == null) { //Log.Out("MinEventActionAddItemRebirth-Execute NO Player"); return; } ItemValue item = ItemClass.GetItem(itemName, false); ItemValue itemValue = new ItemValue(ItemClass.GetItem(itemName, false).type, true); int num = numItems; if (itemValue.HasQuality) { //Log.Out("MinEventActionAddItemRebirth-Execute 1"); num = 1; } //Log.Out("Item: " + itemName); //Log.Out("Number: " + num); //Log.Out("Item Value: " + itemValue.ToString()); //Log.Out("Item Type: " + itemValue.type.ToString()); //Log.Out("Item GetItemId: " + itemValue.GetItemId()); //Log.Out("Item GetType: " + itemValue.GetType()); ItemStack myStack = new ItemStack(itemValue, num); if (numQuality > 0) { //Log.Out("MinEventActionAddItemRebirth-Execute 2"); myStack.itemValue.Quality = (ushort)numQuality; } if (numLocation == 1) { //Log.Out("MinEventActionAddItemRebirth-Execute 3"); if (!player.inventory.AddItem(myStack)) { //Log.Out("MinEventActionAddItemRebirth-Execute 4"); if (!player.bag.AddItem(myStack)) { //Log.Out("MinEventActionAddItemRebirth-Execute 5"); player.world.gameManager.ItemDropServer(new ItemStack(itemValue, num), player.GetPosition(), Vector3.zero); } } } else { //Log.Out("MinEventActionAddItemRebirth-Execute 6"); if (!player.bag.AddItem(myStack)) { //Log.Out("MinEventActionAddItemRebirth-Execute 7"); player.world.gameManager.ItemDropServer(new ItemStack(itemValue, num), player.GetPosition(), Vector3.zero); } } } public override bool ParseXmlAttribute(XAttribute _attribute) { var flag = base.ParseXmlAttribute(_attribute); if (flag) return true; var name = _attribute.Name; if (name == null) { return flag; } else if (name == "numItems") { numItems = Int32.Parse(_attribute.Value); return true; } else if (name == "itemName") { itemName = _attribute.Value; return true; } else if (name == "location") { numLocation = Int32.Parse(_attribute.Value); return true; } else if (name == "quality") { numQuality = Int32.Parse(_attribute.Value); return true; } else { return false; } } }