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) { if (o is Mobile) { if (!squire.InRange(((Mobile)o), 2)) { from.SendLocalizedMessage(1060178); // You are too far away to perform that action! } else if (((Mobile)o) is BaseCreature && ((BaseCreature)o).IsAnimatedDead) { from.SendLocalizedMessage(1061654); // You cannot heal that which is not alive. } else if (((Mobile)o) is BaseCreature && ((BaseCreature)o).IsDeadBondedPet) { from.SendLocalizedMessage(1060177); // You cannot heal a creature that is already dead! } else if (((Mobile)o).Hits >= ((Mobile)o).HitsMax) { from.SendLocalizedMessage(500955); // That being is not damaged! } else if (((Mobile)o).Poisoned || Server.Items.MortalStrike.IsWounded(((Mobile)o))) { from.LocalOverheadMessage(MessageType.Regular, 0x3B2, (from == ((Mobile)o)) ? 1005000 : 1010398); } else { if (squire.Target != null) // Added 1.9.6.3 { squire.Target.Invoke(squire, o); } } } else { from.SendMessage("This cannot have its wounds closed."); } }
public static void DoOnTarget(Mobile from, object o, Squire squire) { if (DateTime.Now > squire.m_Delay) { if (o is BaseCreature) { BaseCreature wounded = ((BaseCreature)o); if (wounded.Hidden == false) { if (squire.InRange(wounded, Bandage.Range)) //Changed 1.8, from a range of 2 to call upon Bandage's Range for friendliness with PreAOS servers. { if (wounded.Alive == true && wounded.Poisoned) { Item item = squire.Backpack.FindItemByType(typeof(Bandage)); if (wounded.Body == 0x191 || wounded.Body == 0x190 || wounded.Body == 0x25D || wounded.Body == 0x25E) { if (squire.Skills.Healing.Value >= 60.0 && squire.Skills.Anatomy.Value >= 60.0 && null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCuresHumanoid, wounded, null); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4); } } else { if (squire.Skills.Veterinary.Value >= 60.0 && squire.Skills.AnimalLore.Value >= 60.0 && null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCuresAnimal, wounded, null); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4); } } } else if (wounded.Alive == true && wounded.Hits < wounded.HitsMax - 5) { Item item = squire.Backpack.FindItemByType(typeof(Bandage)); if (null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireHealsWounded, wounded, null); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4); } } else if (wounded.Alive == false) { Item item = squire.Backpack.FindItemByType(typeof(Bandage)); if (wounded.Body == 0x191 || wounded.Body == 0x190 || wounded.Body == 0x25D || wounded.Body == 0x25E) { if (squire.Skills.Healing.Value >= 80.0 && squire.Skills.Anatomy.Value >= 80.0 && null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireRezsHumanoid, wounded, null); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(9); } } else { if (squire.Skills.Veterinary.Value >= 80.0 && squire.Skills.AnimalLore.Value >= 80.0 && null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireRezsAnimal, wounded, null); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(9); } } } else if (wounded.Alive == false && squire.Skills.Healing.Value >= 79.9 && squire.Skills.Anatomy.Value <= 79.9) { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantRez, wounded, null); } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedIsNotHurtEnough, wounded, null); } } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedOutOfRange, wounded, null); } } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedInvisible, null, null); } } } else if (o is PlayerMobile) { PlayerMobile wounded = ((PlayerMobile)o); if (wounded == squire.ControlMaster && squire.Controlled == true && squire.ControlMaster != null) { if (wounded.Hidden == false) { if (squire.InRange(wounded, Bandage.Range)) { if (wounded.Alive == true && wounded.Poisoned) { Item item = squire.Backpack.FindItemByType(typeof(Bandage)); if (squire.Skills.Healing.Value >= 60.0 && squire.Skills.Anatomy.Value >= 60.0 && null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCuresMaster, null, null); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4); } } else if (wounded.Alive == true && wounded.Hits < wounded.HitsMax - 5) { Item item = squire.Backpack.FindItemByType(typeof(Bandage)); if (null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireHealsMaster, null, null); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4); } } else if (wounded.Alive == false) { Item item = squire.Backpack.FindItemByType(typeof(Bandage)); if (squire.Skills.Healing.Value >= 80.0 && squire.Skills.Anatomy.Value >= 80.0 && null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireRezsMaster, null, null); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(9); } } else if (wounded.Alive == false && squire.Skills.Healing.Value >= 79.9 && squire.Skills.Anatomy.Value <= 79.9) { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantRezPlayer, null, wounded); } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedPlayerIsNotHurtEnough, null, wounded); } } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedPlayerOutOfRange, null, wounded); } } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedInvisible, null, null); } } } else if (wounded.Hidden == false) { if (squire.InRange(wounded, Bandage.Range)) { if (wounded.Alive == true && wounded.Poisoned) { Item item = squire.Backpack.FindItemByType(typeof(Bandage)); if (squire.Skills.Healing.Value >= 60.0 && squire.Skills.Anatomy.Value >= 60.0 && null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCuresPlayer, null, wounded); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4); } } else if (wounded.Alive == true && wounded.Hits < wounded.HitsMax - 5) { Item item = squire.Backpack.FindItemByType(typeof(Bandage)); if (null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireHealsPlayer, null, wounded); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(4); } } else if (wounded.Alive == false) { Item item = squire.Backpack.FindItemByType(typeof(Bandage)); if (squire.Skills.Healing.Value >= 80.0 && squire.Skills.Anatomy.Value >= 80.0 && null != item && null != BandageContext.BeginHeal(squire, wounded)) { item.Consume(1); squire.RevealingAction(); if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireRezsPlayer, null, wounded); } squire.m_Delay = DateTime.Now + TimeSpan.FromSeconds(9); } } else if (wounded.Alive == false && squire.Skills.Healing.Value >= 79.9 && squire.Skills.Anatomy.Value <= 79.9) { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.SquireCantRezPlayer, null, wounded); } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedPlayerIsNotHurtEnough, null, wounded); } } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedPlayerOutOfRange, null, wounded); } } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.WoundedInvisible, null, wounded); } } } else { if (squire.m_SquireBeQuiet == false) { SquireDialog.DoSquireDialog(from, squire, SquireDialogTree.HealingTargetNotCreature, null, null); } } } else { if (squire.m_SquireBeQuiet == false) { squire.Say("Sorry, I'm still finishing healing my current target..."); } } }
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 ); } } }