more 7.0.9.x support

This commit is contained in:
mark 2010-10-15 03:54:16 +00:00
parent 7553b70fd7
commit 40ee26c6ed
5 changed files with 27 additions and 22 deletions

View file

@ -2730,25 +2730,9 @@ namespace Server
m_Target = newTarget;
if( newTarget != null && m_NetState != null && !m_TargetLocked )
m_NetState.Send( newTarget.GetPacket() );
m_NetState.Send( newTarget.GetPacketFor( m_NetState ) );
OnTargetChange();
/*if ( m_Target != value )
{
if ( m_Target != null && value != null )
m_Target.Cancel( this, TargetCancelType.Overriden );
m_Target = value;
if ( m_Target != null && m_NetState != null && !m_TargetLocked )
m_NetState.Send( m_Target.GetPacket() );
//m_NetState.Send( new TargetReq( m_Target ) );
OnTargetChange();
}*/
}
}

View file

@ -2114,6 +2114,24 @@ namespace Server.Network
}
}
public sealed class MultiTargetReqHS : Packet
{
public MultiTargetReq( MultiTarget t ) : base( 0x99, 30 )
{
m_Stream.Write( (bool) t.AllowGround );
m_Stream.Write( (int) t.TargetID );
m_Stream.Write( (byte) t.Flags );
m_Stream.Fill();
m_Stream.Seek( 18, SeekOrigin.Begin );
m_Stream.Write( (short) t.MultiID );
m_Stream.Write( (short) t.Offset.X );
m_Stream.Write( (short) t.Offset.Y );
m_Stream.Write( (short) t.Offset.Z );
}
}
public sealed class MultiTargetReq : Packet
{
public MultiTargetReq( MultiTarget t ) : base( 0x99, 26 )

View file

@ -63,9 +63,12 @@ namespace Server.Targeting
m_Offset = offset;
}
public override Packet GetPacket()
public override Packet GetPacketFor( NetState ns )
{
return new MultiTargetReq( this );
if ( ns.HighSeas )
return new MultiTargetReqHS( this );
else
return new MultiTargetReq( this );
}
}
}

View file

@ -168,7 +168,7 @@ namespace Server.Targeting
}
}
public virtual Packet GetPacket()
public virtual Packet GetPacketFor( NetState ns )
{
return new TargetReq( this );
}

View file

@ -257,9 +257,9 @@ namespace Server
m_LandData[i] = new LandData( ReadNameString( bin ), flags );
}
m_ItemData = new ItemData[0x8000];
m_ItemData = new ItemData[0x10000];
for ( int i = 0; i < 0x8000; ++i )
for ( int i = 0; i < 0x10000; ++i )
{
if ( (i & 0x1F) == 0 )
{