Example #1
0
        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");
            }
        }
Example #2
0
        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());
                //    }
                //}
            }
        }
Example #3
0
 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();
     }
 }