Example #1
0
		public override bool ValidateUse( Mobile m, bool message )
		{
			if ( !base.ValidateUse( m, message ) || !ValidPlayer( m ) )
				return false;

			bool player = m.AccessLevel == AccessLevel.Player;

			if ( player && !Active )
				return false;

			if ( !player && StaffOverride )
				return true;

			PlayerMobile pm = (PlayerMobile)m;
			if ( RemoveGameRobe || GiveGameRobe )
				RemoveRobe( pm ); //Remove the robe before we check nakedness
			//bool donator = pm.HasDonated;
			bool naked = !m.HasItemsNoBankBox();

			if ( player && StaffOnly )
				m.SendMessage("Players are not allowed to enter this gate.");
			else if ( m.HasTrade )
				m.SendMessage("You cannot enter this gate with a trade pending." );
			else if ( CannotFleeFromBattle && ( SpellHelper.CheckCombat( m ) || CheckCombat( m ) ) )
				m.SendLocalizedMessage( 1005564, "", 0x22 ); // Wouldst thou flee during the heat of battle??
			else if ( GetRestFlag( EGRFlags.No_Ghosts ) && !m.Alive )
				m.SendMessage( "This moongate does not allow the dead to pass." );
			else if ( GetRestFlag( EGRFlags.No_Living ) && m.Alive )
				m.SendMessage( "This moongate does not allow the living to pass." );
			else if ( GetRestFlag( EGRFlags.No_Mounted ) && m.Mounted )
				m.SendMessage( "You must be unmounted to enter this gate.." );
			else if ( GetRestFlag( EGRFlags.No_OnFoot ) && !m.Mounted )
				m.SendMessage( "You must be mounted to enter this gate." );
			else	if ( m.Spell != null )
				m.SendLocalizedMessage( 1049616 );
			else if ( Server.Factions.Sigil.ExistsOn( m ) )
				m.SendLocalizedMessage( 1061632 );
			//else if ( ( GetRestFlag( EGRFlags.No_Donators ) && donator ) || ( GetRestFlag( EGRFlags.No_NonDonators ) && !donator ) )
			//	m.SendMessage( "This moongate does not allow your donation status to pass." );
			else if ( ( No_Murderer && m.Kills > 5 ) || ( No_BlueKarma && m.Karma > m_KarmaThreshold ) || ( No_GrayKarma && m.Karma <= m_KarmaThreshold ) || ( No_Criminal && m.Criminal ) )
				m.SendMessage( "This moongate does not allows your notoriety to pass." );
			else if ( ( GetRestFlag( EGRFlags.No_Female ) && m.Female ) || ( GetRestFlag( EGRFlags.No_Male ) && !m.Female ) )
				m.SendMessage( "This moongate does not allow your gender to pass." );
			else if ( ( GetRestFlag( EGRFlags.No_Young ) && pm.Young ) || ( GetRestFlag( EGRFlags.No_Veteran ) && !(pm.Young || pm.Companion) ) )
				m.SendMessage("This moongate does not allow your age status to pass.");
			else if ( InvalidNPCGuild( pm ) )
			{ //message in function
			}
			else if ( InvalidGuild( m ) )
			{ //message in function
			}
			else if ( InvalidFaction( m ) )
			{ //message in function
			}
			else if ( InvalidSkill( m ) )
			{ //message in function
			}
			else if ( MissingGMSkills( m ) )
				m.SendMessage( "You must have a minimum of {0} GM skills to enter this gate.", m_GMsNeeded );
			else if ( InvalidStats( m ) )
			{ //message in function
			}
			else if ( ( GetRestFlag( EGRFlags.No_Naked ) && naked ) || ( GetRestFlag( EGRFlags.No_Clothed ) && !naked ) )
				m.SendMessage( "You must be {0} to enter this gate.", naked ? "clothed" : "naked" );
			else
				return true;

			return false;
		}