From 7f191c3b80438c5de26d7ae72f2ea36cf9c10d7e Mon Sep 17 00:00:00 2001 From: xavier Date: Fri, 10 Dec 2010 17:43:58 +0000 Subject: [PATCH] blessed/insurance items shouldnt drop to corpse with the containers they are in. --- Scripts/Mobiles/PlayerMobile.cs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Scripts/Mobiles/PlayerMobile.cs b/Scripts/Mobiles/PlayerMobile.cs index e97228dd5..412b7661d 100644 --- a/Scripts/Mobiles/PlayerMobile.cs +++ b/Scripts/Mobiles/PlayerMobile.cs @@ -2080,8 +2080,35 @@ namespace Server.Mobiles private int m_InsuranceCost; private int m_InsuranceBonus; + private bool FindItems_Callback(Item item) + { + if (!item.Deleted && (item.LootType == LootType.Blessed || item.Insured == true)) + { + if (this.Backpack != item.ParentEntity) + { + return true; + } + } + return false; + } + public override bool OnBeforeDeath() { + NetState state = NetState; + state.CancelAllTrades(); + + DropHolding(); + + if (Backpack != null && !Backpack.Deleted) + { + List ilist = Backpack.FindItemsByType(FindItems_Callback); + + for (int i = 0; i < ilist.Count; i++) + { + Backpack.AddItem(ilist[i]); + } + } + m_NonAutoreinsuredItems = 0; m_InsuranceCost = 0; m_InsuranceAward = base.FindMostRecentDamager( false );