[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/feed.php on line 173: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3842)
[phpBB Debug] PHP Warning: in file [ROOT]/feed.php on line 174: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3842)
JoinUO Forums A discussion forum for the Ultima Online freeshard community. 2011-12-09T19:47:55+00:00 https://forums.uo98.org/feed.php?f=32&t=1045 2011-12-09T19:47:55+00:00 2011-12-09T19:47:55+00:00 https://forums.uo98.org/viewtopic.php?t=1045&p=2378#p2378 <![CDATA[Re: About Packet 0x72 and 0x12.5C]]> Godclient have command ".fightstyle <text argument>"
when executed, client will send this packet to server with data entered after command itself
p.s. Godclient does send most of it commands with 0x12 sub-packets
p.s. It was not included to ruosi packet guide as I thought it was unnecessary

Statistics: Posted by Garret — Fri Dec 09, 2011 7:47 pm


]]>
2011-12-05T14:39:19+00:00 2011-12-05T14:39:19+00:00 https://forums.uo98.org/viewtopic.php?t=1045&p=2375#p2375 <![CDATA[About Packet 0x72 and 0x12.5C]]>
From RUOSI's Packet Guide we learn it's 5 bytes and besides the id only 2 bytes seem to be really used.


If you read my topic about UO's Packet History, then you learn that this packet is as old as client 1.23 and has always been 5 bytes.


Why is this packet 5 bytes and why has OSI never changed the packet to remove them?

Let's see if the Ultima Online Demo from 1998 can give an answer to that...

We start the investigation by looking at the packet handler for packet 0x72, it is found at 0x497F90. 4 bytes are extracted and stored in the stack. After the extraction a check is made for player flag 0x4000, the exact meaning of that flag is unknown but we know that Counselors and GM's have it set. Regular players don't have it set. If the flag is set then nothing is done. If not set, thus the packet comes from a normal player, then the request is passed to the Player Class.
Packet 72 - extract 3.PNG

Those 3 Unknown-variables are passed to the Player Class which in turns stores them in the Player Object but nothing else really happens with those variables. You can put any data in those variables and it looks like it's not really gonna matter:
Packet 72 - continue.PNG
Store in Mobile Object.PNG

But wait, why did I name the member variables on those screenshots fa, fs and fw? Because of code found in the Player::Save function:
fs fa fw - BuildSaveList.PNG

Also interesting is that the variables only seem to be used by Player Objects yet their declaration is at the lower Mobile Class (the base class of Player). Can this be because it is a remainder from Beta and back then OSI was still using the Mobile Class for players (without putting players in a seperate class)?

When the server answers back with packet 0x72 then we see that the same member variables of the Player Object are send back to the client:
Build Packet 72.PNG

The server also responds to the previously unknown TextCommand 0x5C (Packet 0x12.5C). It will extract the 3 member variables and store them in the Player Object as is. Maybe the answer to 0x12.5C can be found in the God Client...

I did a scan in the uodemo.exe and found only one more access to those 3 member variables which I cannot explain. I cannot explain it because it is found in unused code.
Unknown code.PNG
Sure, I can analyze that function, but that's for later, I've got other priorities at this moment.

Oh yeah, one more little detail: the server saves those 3 unknown variables (fa, fs and fw) but it never loads them! Go figure that!

Statistics: Posted by Batlin — Mon Dec 05, 2011 2:39 pm


]]>