RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Fix for 6.0.14.2 and older clients will work

Erica

Knight
Fix for 6.0.14.2 and older clients will work

Core Modification Donot change core if you dont know how to just a warning.

Ok heres a fix for latest client and this fix will work for older client as well.

Open Mobile.cs
change this around line 6779

Code:
Send( SupportedFeatures.Instantiate( ns.Account ) );

To this

Code:
Send( SupportedFeatures.Instantiate( ns ) );


then around line 8827
change this

Code:
Send( SupportedFeatures.Instantiate( ns.Account ) );

To this

Code:
Send( SupportedFeatures.Instantiate( ns ) );


Then open NetState.cs

And around line 207 add this

Code:
m_ExtendedSupportedFeatures = value >= m_Version60142;


Then around line 227 add this

Code:
private static ClientVersion m_Version60142 = new ClientVersion( "6.0.14.2" );

private bool m_ExtendedSupportedFeatures;

public bool ExtendedSupportedFeatures
{
    get
    {
	return m_ExtendedSupportedFeatures;
    }
}


Now Open PacketHandlers.cs
change this around line 1955


Code:
state.Send( SupportedFeatures.Instantiate( state.Account ) );

To this

Code:
state.Send( SupportedFeatures.Instantiate( state ) );

And around line 1972 change this

Code:
state.Send( SupportedFeatures.Instantiate( state.Account ) );

to this

Code:
state.Send( SupportedFeatures.Instantiate( state ) );

And line 2204 change this

Code:
state.Send( SupportedFeatures.Instantiate( state.Account ) );

To this

Code:
state.Send( SupportedFeatures.Instantiate( state ) );


Now open Packets.cs

Around Line 2502 change this


Code:
public static SupportedFeatures Instantiate( IAccount account )
{
    return new SupportedFeatures( account );
}

public SupportedFeatures( IAccount acct ) : base( 0xB9, 5 )

To this


Code:
public static SupportedFeatures Instantiate( NetState state )
{
    return new SupportedFeatures( state );
}

public SupportedFeatures( NetState state ) : base( 0xB9, state.ExtendedSupportedFeatures ? 5 : 3 )

Then around line 2522 change this

Code:
if ( acct != null && acct.Limit >= 6 )
{
    flags |= 0x8020;
    flags &= ~0x004;
}

m_Stream.Write( (ushort) flags );

To this

Code:
if ( state.Account != null && state.Account.Limit >= 6 )
{
    flags |= 0x8020;
    flags &= ~0x004;
}

m_Stream.Write( (ushort) flags );

And now Complie your changes and you should be good to go.

I tested it with razor and can log on old clients and the new Client 6.0.14.2

If RunUO Team has a better solution then they will add the fix when there ready but i did test it on razor with old client and latest client and can log on with no problems.
 

Semerkhet

Sorceror
I won't work on productions shards where login ips are different than localhost: On those servers login steps are fragmented, and game server doesn't now about any version requested on login server step, since they are actually different netstates.
 

nevar2006

Sorceror
Erica;806296 said:
Core Modification Donot change core if you dont know how to just a warning.

Ok heres a fix for latest client and this fix will work for older client as well.

Open Mobile.cs
change this around line 6779

Code:
Send( SupportedFeatures.Instantiate( ns.Account ) );

To this

Code:
Send( SupportedFeatures.Instantiate( ns ) );


then around line 8827
change this

Code:
Send( SupportedFeatures.Instantiate( ns.Account ) );

To this

Code:
Send( SupportedFeatures.Instantiate( ns ) );


Then open NetState.cs

And around line 207 add this

Code:
m_ExtendedSupportedFeatures = value >= m_Version60142;


Then around line 227 add this

Code:
private static ClientVersion m_Version60142 = new ClientVersion( "6.0.14.2" );

private bool m_ExtendedSupportedFeatures;

public bool ExtendedSupportedFeatures
{
    get
    {
	return m_ExtendedSupportedFeatures;
    }
}


Now Open PacketHandlers.cs
change this around line 1955


Code:
state.Send( SupportedFeatures.Instantiate( state.Account ) );

To this

Code:
state.Send( SupportedFeatures.Instantiate( state ) );

And around line 1972 change this

Code:
state.Send( SupportedFeatures.Instantiate( state.Account ) );

to this

Code:
state.Send( SupportedFeatures.Instantiate( state ) );

And line 2204 change this

Code:
state.Send( SupportedFeatures.Instantiate( state.Account ) );

To this

Code:
state.Send( SupportedFeatures.Instantiate( state ) );


Now open Packets.cs

Around Line 2502 change this


Code:
public static SupportedFeatures Instantiate( IAccount account )
{
    return new SupportedFeatures( account );
}

public SupportedFeatures( IAccount acct ) : base( 0xB9, 5 )

To this


Code:
public static SupportedFeatures Instantiate( NetState state )
{
    return new SupportedFeatures( state );
}

public SupportedFeatures( NetState state ) : base( 0xB9, state.ExtendedSupportedFeatures ? 5 : 3 )

Then around line 2522 change this

Code:
if ( acct != null && acct.Limit >= 6 )
{
    flags |= 0x8020;
    flags &= ~0x004;
}

m_Stream.Write( (ushort) flags );

To this

Code:
if ( state.Account != null && state.Account.Limit >= 6 )
{
    flags |= 0x8020;
    flags &= ~0x004;
}

m_Stream.Write( (ushort) flags );

And now Complie your changes and you should be good to go.

I tested it with razor and can log on old clients and the new Client 6.0.14.2

If RunUO Team has a better solution then they will add the fix when there ready but i did test it on razor with old client and latest client and can log on with no problems.

This still doesnt work for me. this will alow me to log in with the new client, but not with a old client.
And, the fixes the Kegmister and Ceo wrote, will alow me to log in with and old client but not a new client.
I have tried this on servers running 6.0.14.2 and 6.0.14.1 so i dont know where something is getting messed up, but i cant seem to get any of these fixes to work, oh and that includes jeffs fix also.
 

Koksi

Sorceror
this:
Code:
if ( state.Account != null && state.Account.Limit >= 6 )
{
    flags |= 0x8020;
    flags &= ~0x004;
}

m_Stream.Write( (ushort) flags );
need to be:
Code:
if ( state.Account != null && state.Account.Limit >= 6 )
{
    flags |= 0x8020;
    flags &= ~0x004;
}

m_Stream.Write( (int) flags );
 

nevar2006

Sorceror
Koksi;806404 said:
this:
Code:
if ( state.Account != null && state.Account.Limit >= 6 )
{
    flags |= 0x8020;
    flags &= ~0x004;
}

m_Stream.Write( (ushort) flags );
need to be:
Code:
if ( state.Account != null && state.Account.Limit >= 6 )
{
    flags |= 0x8020;
    flags &= ~0x004;
}

m_Stream.Write( (int) flags );

Nope, still doesn't work.
If my server is running 6.0.14.1 and i try to log in with 6.0.14.1 "it says there is a problem connecting please try again", but if i use 6.0.14.2 to log in it will let me log in.

If my server is running 6.0.14.2 and i try to log in with 6.0.14.1,"it says there is a problem connecting please try again", and says this in the console window,Packet: 0xB9: Bad packet length! (+2 bytes).
if i try to log in with 6.0.14.2, it will let me log in and play, but also says this in console on disconnect Packet: 0xB9: Bad packet length! (+2 bytes).

So no matter what server client im running, with this fix, im forcing my players to upgrade to 6.0.14.2

And i don't think that's gonna happen, as most play other servers as well as mine.
 

Koksi

Sorceror
try only this
public SupportedFeatures( NetState state ) : base( 0xB9, 5 )

You can edit NetState each NetState have Sesion you can store sesion and version :) and you will know Client Version
 

Thilgon

Sorceror
no need to apply this mod by yourself, just get the latest svn, compile the core and you are done.

howevere, you won't find server core files on RC2, just svn.
 

Darktanion

Wanderer
Is this refering to PlayerMobile.cs lol

Open Mobile.cs
change this around line 6779

Because this does not exist in my scripts lol all I seem to have is PlayerMobile.cs, any ideas what folder that is suppose to be under cause i did a search ontop of the whole folder and only 3 files popped up and not just a single Mobile.cs??

Also I take it if your talking about PlayerMobile.cs, then someone with a fresh script downloaded does not have a line 6k or higher actually it only goes upto 4k something. Just FYI

NM plz delete this post, I realized I have to do a bunch of configuring and adding of scripts to my new downloaded RUNUO program lol thanks man its been so long my brain is like where do I start yet again.
 

EvilPounder420

Sorceror
Big Problem...

Ok, so i've done everything it says here... Everything works fine connecting the newer clients, But someone tried logging on at client version 5.0.6e, and it is giving him a "Problem Connecting To Origin" error, and not even letting him reach the character menu.

Also, i would like to note that i have tried changing this:

Code:
m_Stream.Write( (int) flags );

To this:

Code:
m_Stream.Write( ([COLOR="Red"]u[/COLOR]int) flags );

and i've also tried changing this:

Code:
public SupportedFeatures( NetState state ) : base( 0xB9, state.ExtendedSupportedFeatures ? 5 : 3 )

To this:

Code:
public SupportedFeatures( IAccount acct ) : base( [COLOR="Red"]0xB9, 5[/COLOR] )

Nothing will let the older client versions connect.

Any ideas?
Please and Thank You.
 
Top