public static void DoOnTarget(Mobile from, object o, Squire squire) { ArrayList items = new ArrayList(); bool rejected = false; bool lootAdded = false; if (o is Item) { Item item = (Item)o; if (squire.InRange(item, 2)) { if (item.Movable) { items.Add(item); if (squire.m_SquireBeQuiet == false) squire.Emote("*Picks the item off of the ground.*"); } else if (item is Corpse) { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantLiftCorpse, null, null); } } foreach (Item i in items) { if (!squire.Backpack.CheckHold(squire, i, false, true)) rejected = true; else { bool isRejected; LRReason reason; squire.NextActionTime = 5; squire.Lift(i, i.Amount, out isRejected, out reason); if (!isRejected) { squire.Drop(squire, Point3D.Zero); lootAdded = true; } else { rejected = true; } } } if (lootAdded) { squire.PlaySound(0x2E6); //drop gold sound } if (rejected) { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantLiftItem, null, null); } } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantReach, null, null); } } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantLiftNotItem, null, null); } } }
public static void DoOnTarget( Mobile from, object o, Squire squire ) { ArrayList items = new ArrayList(); ArrayList myitems = new ArrayList(); // Added 1.9.1 bool rejected = false; bool lootAdded = false; if ( o is Item ) { Item item = ( Item )o; if ( squire.InRange( item, 2 ) ) { if ( item.Movable ) { if( squire.m_SquireBeQuiet == false ) { SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.ItemIsNotCorpse, null, null ); } } else if ( item is Corpse ) { if( ((Corpse)item).Owner != null && ((Corpse)item).Owner.Player ) // Added check for non-null to avoid crashing. 1.9.1 { if( squire.m_SquireBeQuiet == false ) { SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.RefusesToLootPlayers, null, null ); } } else if ( ((Corpse)item).Owner != null && ((Corpse)item).Owner == squire ) // Added 1.9.1 { if( squire.m_SquireBeQuiet == false ) { squire.Emote( "*Rummages through items in a corpse.*" ); } foreach ( Item corpseItem in ((Corpse)item).Items ) myitems.Add( corpseItem ); } else { if( squire.m_SquireBeQuiet == false ) { squire.Emote( "*Rummages through items in a corpse.*" ); } foreach ( Item corpseItem in ((Corpse)item).Items ) { items.Add( corpseItem ); } } } foreach ( Item i in items ) { if ( !squire.Backpack.CheckHold( squire, i, false, true ) ) rejected = true; else { bool isRejected; LRReason reason; squire.NextActionTime = 5; squire.Lift( i, i.Amount, out isRejected, out reason ); if ( !isRejected ) { if ( squire.AutoEquipLoot == false ) { // squire.Drop( squire.Backpack, new Point3D ( Utility.Random( 29, 108 ), Utility.Random( 34, 94 ), 0 ) ); byte gridloc; //Randomly set them in their pack. } else { squire.Drop( squire, Point3D.Zero ); } lootAdded = true; } else { rejected = true; } } } foreach ( Item myitem in myitems ) // Added 1.9.1 { if ( !squire.Backpack.CheckHold( squire, myitem, false, true ) ) rejected = true; else { bool isRejected; LRReason reason; squire.NextActionTime = 5; squire.Lift( myitem, myitem.Amount, out isRejected, out reason ); if ( !isRejected ) { squire.Drop( squire, Point3D.Zero ); lootAdded = true; } else { rejected = true; } } } if ( lootAdded ) { squire.PlaySound( 0x2E6 ); //drop gold sound } if ( rejected ) { if( squire.m_SquireBeQuiet == false ) { SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.SquireCantLootAllItems, null, null ); } } } else { if( squire.m_SquireBeQuiet == false ) { SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.SquireCantReach, null, null ); } } } else { if( squire.m_SquireBeQuiet == false ) { SquireDialog.DoSquireDialog( from, squire, SquireDialogTree.SquireCantLootNotCorpse, null, null ); } } }