public static BaseInstrument GetInstrument(Mobile from) { PlayerMobile pm_From = from as PlayerMobile; if (pm_From == null) { return(null); } BaseInstrument item = pm_From.LastInstrument; if (item == null) { return(null); } if (item.Deleted) { return(null); } if (!item.IsChildOf(from.Backpack)) { return(null); } return(item); }
public static BaseInstrument GetInstrument(Mobile from) { BaseInstrument item = m_Instruments[from] as BaseInstrument; if (item == null) { return(null); } if (!item.IsChildOf(from.Backpack)) { m_Instruments.Remove(from); return(null); } return(item); }
public static void OnPickedInstrument( Mobile from, BaseInstrument instrument ) { //from.RevealingAction(); //from.SendLocalizedMessage( 1049525 ); // Whom do you wish to calm? //from.Target = new InternalTarget( from, instrument ); //from.NextSkillTime = DateTime.Now + TimeSpan.FromHours( 6.0 ); from.RevealingAction(); if ( !instrument.IsChildOf( from.Backpack ) ) { from.SendLocalizedMessage( 1062488 ); // The instrument you are trying to play is no longer in your backpack! } else { //m_SetSkillTime = false; from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 10.0 ); if ( !BaseInstrument.CheckMusicianship( from ) ) { from.SendLocalizedMessage( 500612 ); // You play poorly, and there is no effect. instrument.PlayInstrumentBadly( from ); instrument.ConsumeUse( from ); } else if ( !from.CheckSkill( SkillName.Peacemaking, 0.0, 100.0 ) ) { from.SendLocalizedMessage( 500613 ); // You attempt to calm everyone, but fail. instrument.PlayInstrumentBadly( from ); instrument.ConsumeUse( from ); } else { from.NextSkillTime = DateTime.Now + TimeSpan.FromSeconds( 5.0 ); instrument.PlayInstrumentWell( from ); instrument.ConsumeUse( from ); Map map = from.Map; if ( map != null ) { int range = BaseInstrument.GetBardRange( from, SkillName.Peacemaking ); bool calmed = false; foreach ( Mobile m in from.GetMobilesInRange( range ) ) { if ( (m is BaseCreature && ((BaseCreature)m).Uncalmable) || m == from || !from.CanBeHarmful( m, false ) ) continue; calmed = true; m.SendLocalizedMessage( 500616 ); // You hear lovely music, and forget to continue battling! m.Combatant = null; m.Warmode = false; if ( m is BaseCreature && !((BaseCreature)m).BardPacified ) ((BaseCreature)m).Pacify( from, DateTime.Now + TimeSpan.FromSeconds( 1.0 ) ); } if ( !calmed ) from.SendLocalizedMessage( 1049648 ); // You play hypnotic music, but there is nothing in range for you to calm. else from.SendLocalizedMessage( 500615 ); // You play your hypnotic music, stopping the battle. } } } }
public static void OnPickedInstrument(Mobile from, BaseInstrument instrument) { PlayerMobile pm = (PlayerMobile)from; if (!instrument.IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1042001); //This must be in your backpack } else if (instrument is Drums || instrument is Tambourine || instrument is TambourineTassel) { from.SendMessage("You cannot play a tune on that instrument."); BaseInstrument.SetInstrument(from, null); } else if (!pm.Playing) // If this is a new tune, create a new timer and start it. { from.Emote("*plays a tune*"); // Player emotes to indicate they are playing pm.Playing = true; PlayTimer pt = new PlayTimer(pm); pt.Start(); } }