private void addTarget(bool location, Serial serial, Point3D p, ushort gfxid) { Mobile mobile = World.FindMobile(serial); if (mobile != null && !string.IsNullOrEmpty(mobile.Name)) { CorpseItem corpse = new CorpseItem(mobile.Body, mobile.Name); if (items.Find(c => c.ItemID == corpse.ItemID) == null) { items.Add(corpse); listBox.Items.Add(corpse); XElement parent = ConfigEx.GetXElement(true, "Carving"); parent.RemoveAll(); parent.SetAttributeValue("enabled", enabled); foreach (CorpseItem item in items) { parent.Add(new XElement("Corpse", new XAttribute("itemID", item.ItemID.Value.ToString("X4")), item.Name)); } } } else { WorldEx.SendMessage("Invalid target"); } }
private void ServerCharacter_HealthChanged(Character character, StatChangedEventArgs e) //private void ServerCharacter_HealthChanged(object sender, Character.HealthChangedEventArgs e) { if (e.Value != e.PreviousValue) //Why does not this get called? { ServerCharacter servCharacter = (ServerCharacter)character; this.SendStatChangeToMapCharacters(servCharacter); if (e.Value <= 0 && e.PreviousValue > 0) { CorpseItem corpse = (CorpseItem)this.CreateNewItem(ItemIdentity.Corpse, character.CurrentMapId, servCharacter.Position, character.Id); //corpse.CharacterID = character.Id; //corpse.MoveTo(character.CurrentMapId, servCharacter.Position); //CorpseItem corpse = new CorpseItem(); //corpse.Data = new ItemModel(); //corpse.Data.Identity = ItemIdentity.Corpse; //corpse.Data = dataContext.SaveItem(corpse.Data); if (corpse.Id != 0) { this.AddItem(corpse); foreach (var item in servCharacter.Inventory.Items) { servCharacter.MoveItem(item, corpse); } foreach (int charID in this.maptoCharacterRelations[character.CurrentMapId]) { ServerCharacter informChar = (ServerCharacter)this.GetCharacter(charID); informChar.Owner.Send(new NewItemPacket(corpse.Id)); foreach (var item in corpse.Items) { informChar.Owner.Send(new MoveItemPacket(servCharacter.Inventory.Id, corpse.Id)); } } //servCharacter.MoveItem(servCharacter.Inventory, corpse); // item.Data.MoveTo(corpse.Data); //dataContext.SaveItem(servCharacter.Inventory.Data); } //this.SendStatChangeToMapCharacters(servCharacter); } //else if (e.Value > 0 && e.PreviousValue <= 0) //{ // BagItem newInventory = new BagItem(); // newInventory.Data = new ItemData(); // newInventory.Data.Identity = ItemIdentity.Bag; // newInventory.Data = dataContext.SaveItem(newInventory.Data); // if (newInventory.Data.ItemDataID != 0) // { // this.AddItem(newInventory); // servCharacter.Inventory = newInventory; // servCharacter.LatestData.InventoryID = newInventory.Data.ItemDataID; // dataContext.SaveCharacter(servCharacter.GetData()); // } //} } }
public override void OnButtonPress(int num) { if (num == 1) { Targeting.OneTimeTarget(addTarget); } else if (num == 2) { CorpseItem corpse = listBox.SelectedItem as CorpseItem; items.Remove(corpse); listBox.Items.Remove(listBox.SelectedItem); } else if (num == 3) { enabled = !enabled; button.Text = enabled ? "Enabled" : "Disabled"; onChange(); } }