Author Topic: EUO Updtr - "new" client support  (Read 5080 times)

0 Members and 1 Guest are viewing this topic.

Offline XeerTopic starter

  • Newbie
  • *
  • Posts: 5
  • Activity:
    0%
  • Reputation Power: 1
  • Xeer has no influence.
  • Respect: 0
  • Referrals: 0
    • View Profile
EUO Updtr - "new" client support
« on: April 17, 2016, 04:26:46 AM »
0
Hello everyone, i was kinda bored with all these "new MMOs" so im back to UO :)
First thing, im not sure in which section this question belongs to, so feel free to move it thanks!

So im playing with these source files which Cheffe released, i want to do only one thing, trying to add support for old client 3.0.6m, shard where im playing only works with 3.0.0c and this 3.0.6m.

first i tried it with ALREADY supported client 3.0.0c so i could compare it if im doing it right, BUT...
problem is, im getting lot of N/A values when im using strings from "EUO Updtr Strings 200 - 6061.txt" which are

Code: [Select]
E8111111116811111111881D111111116A08897D               ; 11; +12; C ; +00; {CLILOGGED}
8B0D111111112BCF03CE5153E81111111183C410               ; 11; +02; C ; +00; {CLIXRES}
8B44300550E811111111A3                                 ; 11; +11; C ; +00; {ENEMYID}
  8B85111111118B15111111113BD075                       ; 11; +08; C ; +00; {ENEMYID}
881D11111111881D                                       ; 11; +02; C ; +00; {SHARDPOS}
03C18915111111118B542430A3                             ; 11; +04; C ; +00; {NEXTCPOS}
75118B0D111111115E85C974108B016A01FF10                 ; 11; +04; C ; +00; {SYSMSG}
C6467301A1111111116A0150                               ; 11; +05; C ; +00; {CONTPOS}
0200000064890D0000000083C410C3                         ; 11; -25; C ; +00; {ENEMYHITS}
  020000008B4C240464890D000000005E83C40CC3             ; 11; -10; C ; +00; {ENEMYHITS}
C7051111111101000000E911111111A1                       ; 11; +16; C ; +08; {LHANDID}
7E11B9111111118944241C8B410485C075                     ; 11; +03; C ; +00; {CHARDIR}
891D11111111881D11111111881D11111111E811111111B9       ; 11; -04; C ; +00; {TARGETCNT}
EB118A442416A21111111133C98A0D                         ; 11; +07; C ; +00; {CURSORKIND}
  568B351111111181E6FF0000007C0583FE117E0E             ; 11; +03; C ; +00; {CURSORKIND}
C20400A1111111118B0D1111111185C075                     ; 11; +04; C ; +00; {TARGETCURS}
2BD083C404895638A11111111103C8894E348B                 ; 11; +09; C ; +00; {CLILEFT}
0FBF4E118B151111111103C10FBF4A1183C105                 ; 11; +06; C ; +00; {CHARPTR}
668B0D111111118B151111111151528BC8E8                   ; 11; +09; C ; +00; {LLIFTEDID}
668B14418915111111118B35                               ; 11; +06; C ; +00; {LSHARD}
C605111111110085C07411A1                               ; 11; +12; C ; +00; {POPUPID}
8B15111111118BC28996                                   ; 11; +02; C ; +00; {JOURNALPTR}
8A4C240F8888111111118B0D1111111166891445               ; 11; +35; C ; +00; {SKILLCAPS}
8A4C240F8888111111118B0D1111111166891445               ; 11; +06; C ; +00; {SKILLLOCK}
8A4C240F8888111111118B0D1111111166891445               ; 11; +20; C ; +00; {SKILLPOS}

6A01535350E8111111115368E80300005250E8                 ; 11; +05; X ; +00; {REDIR}
6A01535350E8111111115368E80300005250E8                 ; 11; +06; CB; +00; {OLDDIR}
50506A03506811111111E8                                 ; 11; +11; CB; +00; {EXMSGADDR}
8BCFC644242002891D1111111189                           ; 11; +09; C ; +00; {ITEMPROPID}
8D44242853508BCEE8111111116A01538BC8C68424             ; 11; +09; CB; +00; {ITEMNAMEADDR}
241CE8111111118B8611111111899C24                       ; 11; +03; CB; +00; {ITEMPROPADDR}
85C074028BE855E8                                       ; 11; +08; CB; +00; {ITEMCHECKADDR}
C40484C0740955E8                                       ; 11; +08; CB; +00; {ITEMREQADDR}
0FBF40288B35                                           ; 11; -08; X ; +00; {PATHFINDADDR}
0483F8147F096A00FF15                                   ; 11; +10; C ; +00; {SLEEPADDR}
C0751C5356E81111111183C408899F                         ; 11; +06; CB; +00; {DRAGADDR}
6A0350E81111111183C40C5F5E5D                           ; 11; +04; CB; +00; {SYSMSGADDR}
  64A1000000006AFF68111111115064892500000000568B742418 ; 11; +00; X ; +00; {SYSMSGADDR}
5051E81111111183C40885C07408FF05                       ; 11; +03; CB; +00; {MACROADDR}
E81111111183C4115F5E5DB8010000005B81C411110000C20800   ; 11; +01; CB; +00; {SENDPACKET}
  E8111111115F5E5DB8010000005B81C411110000C20800       ; 11; +01; CB; +00; {SENDPACKET}

i should get these values for 3.0.0c, took this directly from "uoclidata.pas"

Code: [Select]
////////////////////////////////////////////////////////////////////////////////
  SysVar300c : array[0..61] of TSysVarList = (
    /// VARIABLES /////////
    (Expr: C_CLILOGGED     ; Val: $005211CC),
    (Expr: C_CLIXRES       ; Val: $005239C8),
    (Expr: C_ENEMYID       ; Val: $0063591C),
    (Expr: C_SHARDPOS      ; Val: $00635A4C),
    (Expr: C_NEXTCPOS      ; Val: $0080A730),
    (Expr: C_SYSMSG        ; Val: $0080B180),
    (Expr: C_CONTPOS       ; Val: $0080B19C),
    (Expr: C_ENEMYHITS     ; Val: $008D2B10),
    (Expr: C_LHANDID       ; Val: $00CD7A34),
    (Expr: C_CHARDIR       ; Val: $00CDB4B8),
    (Expr: C_CURSORKIND    ; Val: $00CDE6B0),
    (Expr: C_TARGETCURS    ; Val: $00CDE6C8),
    (Expr: C_CLILEFT       ; Val: $00CDE6F8),
    (Expr: C_CHARPTR       ; Val: $00CDEC8C),
    (Expr: C_LLIFTEDID     ; Val: $00CDECD8),
    (Expr: C_JOURNALPTR    ; Val: $00D2D1DC),
    (Expr: C_SKILLLOCK     ; Val: $00D6EDD4),
    (Expr: C_SKILLSPOS     ; Val: $00D6EE08),
    /// BASE CONSTANTS ////
    (Expr: B_TARGPROC      ; Val: $00000010),
    (Expr: B_CHARSTATUS    ; Val: $00000020),
    (Expr: B_ITEMID        ; Val: $00000080),
    (Expr: B_ITEMTYPE      ; Val: $0000003C),
    (Expr: B_ITEMSTACK     ; Val: $00000042),
    (Expr: B_STATNAME      ; Val: $000000A4),
    (Expr: B_STATWEIGHT    ; Val: $0000003A),
    (Expr: B_STATAR        ; Val: $00000038),
    (Expr: B_CONTSIZEX     ; Val: $00000020),
    (Expr: B_CONTX         ; Val: $00000030),
    (Expr: B_CONTITEM      ; Val: $00000038),
    (Expr: B_CONTNEXT      ; Val: $00000040),
    (Expr: B_ENEMYHPVAL    ; Val: $000000A4),
    (Expr: B_SHOPCURRENT   ; Val: $000000AC),
    (Expr: B_SHOPNEXT      ; Val: $00000048),
    (Expr: B_BILLFIRST     ; Val: $000000BC),
    (Expr: B_SKILLDIST     ; Val: $00000064),
    (Expr: B_SYSMSGSTR     ; Val: $000000E0),
    (Expr: B_EVSKILLPAR    ; Val: $000000B8),
    (Expr: B_LLIFTEDTYPE   ; Val: $00000006),
    (Expr: B_LLIFTEDKIND   ; Val: $00000030),
    (Expr: B_LANG          ; Val: $00000158),
    (Expr: B_FINDREP       ; Val: $00000160),
    (Expr: B_SHOPPRICE     ; Val: $0000002C),
    (Expr: B_GUMPPTR       ; Val: $00000034),
    (Expr: B_ITEMSLOT      ; Val: $00000021),
    (Expr: B_MEMBASE       ; Val: $00830000),
    (Expr: B_LTARGTILE     ; Val: $00000028),
    (Expr: B_LTARGX        ; Val: $00000020),
    /// EVENTS ////////////
    (Expr: E_REDIR         ; Val: $004CA226),
    (Expr: E_OLDDIR        ; Val: $0049B060),
    (Expr: E_EXMSGADDR     ; Val: $004C5CD0),
    (Expr: E_PATHFINDADDR  ; Val: $0047B97B),
    (Expr: E_SLEEPADDR     ; Val: $005001EC),
    (Expr: E_DRAGADDR      ; Val: $004CA5E0),
    (Expr: E_SYSMSGADDR    ; Val: $004D4D10),
    (Expr: E_MACROADDR     ; Val: $004B4B50),
    (Expr: E_SENDPACKET    ; Val: $0042EFF0),
    (Expr: E_SENDLEN       ; Val: $00635978),
    (Expr: E_SENDECX       ; Val: $00CDE690),
    /// FEATURES //////////
    (Expr: F_EXTSTAT       ; Val: $00000000),
    (Expr: F_EVPROPERTY    ; Val: $00000000),
    (Expr: F_MACROMAP      ; Val: $00000000),
    /// END ///////////////
    (Expr: LISTEND         ; Val: $00000000)
  );

but as you can see here, there are lot of N/A, when im trying to scan client 3.0.0c by myself

Code: [Select]
$005211CC {CLILOGGED}
$005239C8 {CLIXRES}
$00CDEC88 {ENEMYID}
$0080B11D {SHARDPOS}
$0080A730 {NEXTCPOS}
N/A {SYSMSG}
N/A {CONTPOS}
$008D2B10 {ENEMYHITS}
$00CD7A34 {LHANDID}
$00CDB4B8 {CHARDIR}
$00CDC4B0 {TARGETCNT}
N/A {CURSORKIND}
$00CDE6C8 {TARGETCURS}
N/A {CLILEFT}
$00CDEC8C {CHARPTR}
$00CD78F4 {LLIFTEDID}
$00CE2C64 {LSHARD}
N/A {POPUPID}
$00D2D1DC {JOURNALPTR}
N/A {SKILLCAPS}
N/A {SKILLLOCK}
N/A {SKILLPOS}

N/A {REDIR}
N/A {OLDDIR}
$004C5CD0 {EXMSGADDR}
N/A {ITEMPROPID}
N/A {ITEMNAMEADDR}
N/A {ITEMPROPADDR}
N/A {ITEMCHECKADDR}
N/A {ITEMREQADDR}
$0047B97B {PATHFINDADDR}
$005001EC {SLEEPADDR}
N/A {DRAGADDR}
$004D4D10 {SYSMSGADDR}
$004B4B50 {MACROADDR}
$0042EFF0 {SENDPACKET}

anyone can tell me what im doing wrong? how can i get these values?

Thanks!

Offline Crome969

  • Elite
  • *
  • *
  • Posts: 2098
  • Activity:
    0%
  • Reputation Power: 25
  • Crome969 is on the verge of being accepted.Crome969 is on the verge of being accepted.Crome969 is on the verge of being accepted.Crome969 is on the verge of being accepted.Crome969 is on the verge of being accepted.
  • Gender: Male
  • UO Enthusiast
  • Respect: +211
  • Referrals: 10
    • View Profile
    • ScriptSDK
Re: EUO Updtr - "new" client support
« Reply #1 on: April 17, 2016, 05:39:12 AM »
0
The offset algorythm changed a bit the last years so the current implemented logic may not work to aquire older clients.
My personal guess is, that the old client versions are remaining there for historical usage, but the implementation of current "updater" no longer is able to
detect old clients.

If you want to support older clients you need to break that code and find a way to adapt the old logic. You also could asked cheffe if he has an old build
of source which allows you to get those data. I fear you will be unlucky because cheffe wont had that thing coded when he started euo.

Offline XeerTopic starter

  • Newbie
  • *
  • Posts: 5
  • Activity:
    0%
  • Reputation Power: 1
  • Xeer has no influence.
  • Respect: 0
  • Referrals: 0
    • View Profile
Re: EUO Updtr - "new" client support
« Reply #2 on: April 17, 2016, 03:10:21 PM »
0
The offset algorythm changed a bit the last years so the current implemented logic may not work to aquire older clients.
My personal guess is, that the old client versions are remaining there for historical usage, but the implementation of current "updater" no longer is able to
detect old clients.

If you want to support older clients you need to break that code and find a way to adapt the old logic. You also could asked cheffe if he has an old build
of source which allows you to get those data. I fear you will be unlucky because cheffe wont had that thing coded when he started euo.

yea that sux, so i went and wrote PM to Cheffe @easyuo
and got this reply from him

Quote
The updater tool is mostly for convenience. If you get N/A values, you will have to find the values yourself. The easiest way is to get a copy of client 3.0.0 and using a disassembler like ollydbg or ida pro. Look at the places in memory and code where these values reside. Then open your preferred client and try to find those places in there. Usually, code does not shift around too much so you should be able to find them if you compare with your findings from 3.0.0.


i had to play with disassembler anyway so i found its easier if i just edit already supported 3.0.0c client and add stuffs like custom gamewindow resolution and other things which i was not able to enable with uosteam/razor (their change resolution does not work with old clients for some strange reason:P)

so now im running modified client 3.0.0c + uosteam + easyuo, autoloot and pvp scripts are really fast and accurate via UOS for everything else EUO  ;)

now only thing what im missing is how to increase render range of static objects (which is hardcoded in client for 24*24 i think?) like
normal range

 increased


kinda cant find right code inside client for it ... but thats reallllllly big offtopic lol :P




Offline Crome969

  • Elite
  • *
  • *
  • Posts: 2098
  • Activity:
    0%
  • Reputation Power: 25
  • Crome969 is on the verge of being accepted.Crome969 is on the verge of being accepted.Crome969 is on the verge of being accepted.Crome969 is on the verge of being accepted.Crome969 is on the verge of being accepted.
  • Gender: Male
  • UO Enthusiast
  • Respect: +211
  • Referrals: 10
    • View Profile
    • ScriptSDK
Re: EUO Updtr - "new" client support
« Reply #3 on: April 17, 2016, 11:03:38 PM »
0
Renderrange wont help you, if server not send enough packets to build it. All you will see is empty landmass

Offline XeerTopic starter

  • Newbie
  • *
  • Posts: 5
  • Activity:
    0%
  • Reputation Power: 1
  • Xeer has no influence.
  • Respect: 0
  • Referrals: 0
    • View Profile
Re: EUO Updtr - "new" client support
« Reply #4 on: April 18, 2016, 01:23:17 AM »
0
Renderrange wont help you, if server not send enough packets to build it. All you will see is empty landmass

yea i heard about it but i think it would be still better than just black squares of nothing :D

Tags: