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!

Client Patch Warning

Joeku

Lord
Well, I figure that if I add this line:
Code:
while( m.ClientVersion == null ){}
It'll work :D Again, haven't gotten to test it yet.
 

Kamron

Knight
You did that with the m_Netstate before and I posted my script on purpose to show you that its bad to do that. First off if they NEVER were to send the client version packet, then the shard may freeze, or the timer would never expire. If your shard is large, its bad to have alot of timers going off at once.

I think if its null, you should make it the default value ( new ClientVersion() or new ClientVersion( "0.0.0" ) ).
 

Kamron

Knight
Using my previous script, I made a few changes, but besides that, this is what I used to fix it.

Code:
					if ( currentversion == null )
					{
						m_From.Blessed = true;
						m_From.CantWalk = true;
						m_From.NetState.Send( new ClientVersionReq() );
						return;
					}
 

Kamron

Knight
Updates:
- Consolidated the gumps into 1 gump
- Consolidated the gump display
- Optimized the version checks
- Fixed the null Client Version bug
- Fixed an exploit to defeat the gump
- Fixed a timer bug keeping the timer alive indefinately
- Fixed a timer bug making the gumps keep reappearing
- 'bad client version' is now written to the console
- Fixed a bug with freezing/blessing not being taken off
- Removed the Try/Catch and added a Mobile check (jic?)
- Fixed the spacing on the buttons to be standard for all gump variants
- Edited the messages that are sent to the client
- Suggested patching no longer blesses/freezes you

When using this please make sure to set ClientVersion.Required to null. This is done in Scripts\Misc\ClientVerification.cs

Known Bugs:
- While saving, if the gump is up, the Blessed/CantWalk settings will be saved as well. I am looking for a way around this since the OnSave event doesn't work because the mobile is saved by then.
 

Attachments

  • ClientPatchWarning.cs
    6.4 KB · Views: 15

Erica

Knight
XxSP1DERxX said:
Updates:
- Consolidated the gumps into 1 gump
- Consolidated the gump display
- Optimized the version checks
- Fixed the null Client Version bug
- Fixed an exploit to defeat the gump
- Fixed a timer bug keeping the timer alive indefinately
- Fixed a timer bug making the gumps keep reappearing
- 'bad client version' is now written to the console
- Fixed a bug with walking/blessing not being taken off
- Removed the Try/Catch and added a Mobile check (jic?)
- Fixed the spacing on the buttons to be standard for all gump variants
- Edited the messages that are sent to the client

When using this please make sure to set ClientVersion.Required to null. This is done in Scripts\Misc\ClientVerification.cs

Known Bugs:
- While saving, if the gump is up, the Blessed/CantWalk settings will be saved as well. I am looking for a way around this since the OnSave event doesn't work because the mobile is saved by then.
Tryed this one but when your Admin logs on and hes immortal he stays frozen cant move him.
 

Kamron

Knight
I am thinking of removing the cantwalk/blessing because it is exploitable on many shards. As I have heard from admins, a player who wants to escape their enemies can log out and log in with a downgraded client.

I am thinking a better solution would be to enable ClientVerification with a large kick delay (30 seconds), and set the ClientVerification.Required to the same as ClientPatchWarning.Required. This way instead of freezing/blessing them, they are disconnected after notification.
 

Erica

Knight
XxSP1DERxX said:
I am thinking of removing the cantwalk/blessing because it is exploitable on many shards. As I have heard from admins, a player who wants to escape their enemies can log out and log in with a downgraded client.

I am thinking a better solution would be to enable ClientVerification with a large kick delay (30 seconds), and set the ClientVerification.Required to the same as ClientPatchWarning.Required. This way instead of freezing/blessing them, they are disconnected after notification.
Great idea think would be best.
 
I added a check in my PlayerMobile that will check Players to see if they are blessed (on login), and if so.... set back to mortal. It is prolly better that way cause then it eliminates all possibilities for an exploit, and in all scripts (rez kill has same issue).
 

Kamron

Knight
This is true however the original argument was, if a staff wants to be immortal, they should be able to. So did you do an accesslevel check as well?
 

Joeku

Lord
Okay!

After being temporarily banned for a reason that I inquired about and still do not understand because I never got a reply (hence it does me no good), I am going to start work on this again. I have ideas for the preferences of everyone, and with XxSP1DERxX's method they can all be put into action. You should see a new release shortly...
 

Kamron

Knight
Released Version 1.45
- Removed the Blessing/CantWalk crap due to bugs
- Added Enforce Client Verification so that you can enforce Required clients to go through the client verification as a normal RunUO server would.

Next I will adding simple organized logging with an ingame viewer.
 

Attachments

  • ClientPatchWarning.cs
    6.3 KB · Views: 22

Kamron

Knight
Joeku said:
Okay!

After being temporarily banned for a reason that I inquired about and still do not understand because I never got a reply (hence it does me no good), I am going to start work on this again. I have ideas for the preferences of everyone, and with XxSP1DERxX's method they can all be put into action. You should see a new release shortly...

From what i was told you were banned due to your logo or title (it was considered illegal advertisement?) I am not sure if thats true or not, I didn't see your information before your banning.
 

Joeku

Lord
I didn't advertise, I asked for evaluation on my new logo. I didn't even mention anything about my shard, I asked for thoughts and suggestions on improving my graphic capability. I'd like not to discuss this issue in a public topic anymore...

The new release looks nice. I have a few ideas to add to it, I'll go ahead and do that.

***EDIT***
First post updated with XxSP1DERxX's total revamp. All credit goes where credit is due. Big thanks to XxSP1DERxX's special interest in this project!
 

Erica

Knight
Hello was wondering if i set this line like this --->public static bool EnforceClientVerification = true;
Would that make it where they cant play till they get latest patch.Reason i ask cause i am having problems with some players most of them are fully patched to latest patch of osi but some just don't seem to listen to get latest patch of osi so was wondering if i set that part up there that i showed you to make them not be able to play till they get latest patch Thank You.
 

Joeku

Lord
Yes, that will prevent low-patched players from playing. It doesn't let them proceed, and it also kicks the player after a certain amount of time. You can customize how long it takes to kick the player in this line:
Code:
		public static TimeSpan KickDelay = TimeSpan.FromSeconds( [COLOR="Red"]30.0[/COLOR] );
and modifying the line in red. As you can see, the default is 30 seconds.
 

Erica

Knight
Joeku i did what you said i set this line like this

Code:
public static bool EnforceClientVerification = true;
                public static ClientVersion Required = new ClientVersion( "5.0.1h" );
		public static ClientVersion Suggested = new ClientVersion( "5.0.1j" );
and players dont lose connection they are still able to play and this guy is running a version client 4.0.11f and i see others dont get kicked on other clients like 5.0.1a, 4.0.11e, 5.0.1c ect ect ect ect and in console of runuo i see this ---> 12/03-11:51 Client: 66.143.217.228: Warning, bad version 4.0.11f
but doesnt kick them out.
 
Top