Example #1
0
		public void release( NetState ns )
		{
			try
			{
				if( autoReleasor != null )
				{
					if( autoReleasor.Running )
						autoReleasor.Stop();
					autoReleasor = null;
				}
				try
				{
					if( !( ns.Mobile.Region is Jail ) )
						return;
					ns.Mobile.SendLocalizedMessage( 501659 );
				}
				catch( Exception err )
				{
					Console.WriteLine( "{0}: {1} Mobile not released", JSName, err );
					return;
				}
				releaseLoc rl;
				try
				{
					rl = releasePoints[ns.Mobile.Serial.Value];
				}
				catch
				{
					rl = new releaseLoc();
					rl.mobile = ns.Mobile.Serial.Value;
					releasePoints.Add( ns.Mobile.Serial.Value, rl );
				}
				if( rl.release( freedBy ) )
					releasePoints.Remove( ns.Mobile.Serial.Value );
			}
			catch( Exception err )
			{
				Console.WriteLine( "{0}: {1}", JSName, err );
			}
			if( releasePoints.Count == 0 )
			{
				Console.WriteLine( "Jailing removed for account {0}", Name );
				try
				{
					list.Remove( ID );
				}
				catch
				{
				}
			}
		}
Example #2
0
		public void StartTimer()
		{
			if( autoReleasor != null )
			{
				if( autoReleasor.Running )
					autoReleasor.Stop();
				autoReleasor = null;
			}
			if( !jailed )
			{
				release();
				return;
			}
			autoReleasor = new JailingTimer( this );
			autoReleasor.Start();
		}