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 { } } }
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 ); }