Esempio n. 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
				{
				}
			}
		}
Esempio n. 2
0
		public virtual void Deserialize( GenericReader reader )
		{
			int imax = 0;
			int version = reader.ReadInt();
			switch( version )
			{
				case 2:
					m_jailorAC = (AccessLevel)reader.ReadInt();
					goto case 1;
				case 1:
					freedBy = reader.ReadString().Trim();
					goto case 0;
				case 0:
					m_name = reader.ReadString().Trim();
					m_releaseTime = reader.ReadDateTime();

					imax = reader.ReadEncodedInt();
					for( int i = 0; i < imax; i++ )
					{
						releaseLoc rl = new releaseLoc();
						rl.map = reader.ReadMap();
						rl.location = reader.ReadPoint3D();
						rl.mobile = reader.ReadInt();
						rl.returnToPoint = reader.ReadBool();
						releasePoints.Add( rl.mobile, rl );
					}
					jailor = reader.ReadString().Trim();
					reason = reader.ReadString().Trim();
					break;
				default:
					break;
			}
			//Console.WriteLine( "Loaded Jail object:{0} releases:{1}", m_name, imax );
		}