Results 1 to 8 of 8

Thread: Offsets 3/14/2018

  1. #1
    Registered User
    Join Date
    Aug 2002
    Posts
    29

    Offsets 3/14/2018

    I think I'm getting better at this...
    Code:
    [File Info]
    Patchdate=03/14/2018
    
    [Port]
    port=5555
    
    [Memory Offsets]
    ZoneAddr=0x0f360e8        
    SpawnHeaderAddr=0x0f287a8    
    CharInfo=0x0f25ef8           
    TargetAddr=0x0f25ef0         
    ItemsAddr=0x0f24c50          
    WorldAddr=0x0f26154          
    
    [WorldInfo Offsets]
    WorldHourOffset=4
    WorldMinuteOffset=5
    WorldDayOffset=6
    WorldMonthOffset=7
    WorldYearOffset=8
    
    [SpawnInfo Offsets]
    NextOffset=0x4
    PrevOffset=0x8
    LastnameOffset=0x38
    XOffset=0x64
    YOffset=0x68
    ZOffset=0x6c
    SpeedOffset=0x7c
    HeadingOffset=0x80
    NameOffset=0xa4
    TypeOffset=0x125
    SpawnIDOffset=0x148
    OwnerIDOffset=0x1dc       
    HideOffset=0x554          
    LevelOffset=0x1d4         
    ClassOffset=0xfa0         
    RaceOffset=0xf98          
    PrimaryOffset=0x10a8      
    OffhandOffset=0x10bc      
    
    [GroundItem Offsets]
    PrevOffset=0x00
    NextOffset=0x04
    IdOffset=0x08
    DropIdOffset=0x0c
    XOffset=0x70
    YOffset=0x74
    ZOffset=0x78
    NameOffset=0x1c

  2. #2
    Registered User
    Join Date
    May 2017
    Posts
    6

    Re: Offsets 3/14/2018

    Thanks! Only issue I ran into with it is when mounted, it uses that name as default for level con (lvl 30). Not sure if it's an offset issue or just general minor bug. Everything else seem to be working great!

  3. #3
    Registered User
    Join Date
    Sep 2015
    Posts
    30

    Re: Offsets 3/14/2018

    Quote Originally Posted by DerpSquad6 View Post
    Thanks! Only issue I ran into with it is when mounted, it uses that name as default for level con (lvl 30). Not sure if it's an offset issue or just general minor bug. Everything else seem to be working great!
    No, they seem to be working for me, however, if you select all his offsets, you see how a bunch of them have a lot of spaces after the offset? I removed all those before saving the file and everything on my end is working correctly. I didn't observe your issue, because I removed all those extra spaces before I saved the file the first time.

    Peter

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Like this:

    [File Info]
    Patchdate=03/14/2018

    [Port]
    port=5555

    [Memory Offsets]
    ZoneAddr=0x0f360e8
    SpawnHeaderAddr=0x0f287a8
    CharInfo=0x0f25ef8
    TargetAddr=0x0f25ef0
    ItemsAddr=0x0f24c50
    WorldAddr=0x0f26154

    [WorldInfo Offsets]
    WorldHourOffset=4
    WorldMinuteOffset=5
    WorldDayOffset=6
    WorldMonthOffset=7
    WorldYearOffset=8

    [SpawnInfo Offsets]
    NextOffset=0x4
    PrevOffset=0x8
    LastnameOffset=0x38
    XOffset=0x64
    YOffset=0x68
    ZOffset=0x6c
    SpeedOffset=0x7c
    HeadingOffset=0x80
    NameOffset=0xa4
    TypeOffset=0x125
    SpawnIDOffset=0x148
    OwnerIDOffset=0x1dc
    HideOffset=0x554
    LevelOffset=0x1d4
    ClassOffset=0xfa0
    RaceOffset=0xf98
    PrimaryOffset=0x10a8
    OffhandOffset=0x10bc

    [GroundItem Offsets]
    PrevOffset=0x00
    NextOffset=0x04
    IdOffset=0x08
    DropIdOffset=0x0c
    XOffset=0x70
    YOffset=0x74
    ZOffset=0x78
    NameOffset=0x1c

  4. #4
    Registered User
    Join Date
    Mar 2018
    Posts
    1

    Re: Offsets 3/14/2018

    Nice work man, thank you!

  5. #5
    Registered User
    Join Date
    Aug 2002
    Posts
    29

    Re: Offsets 3/14/2018

    Gah, yeah, the extra spaces were because I originally had the 2/21 offsets left on each line as comments so that I could see old vs. new as reference as I found each new one. Sorry about that.

    As for the odd behavior of the client treating your level as 30 when mounted...yeah, I noticed that, too, and I can only surmise that there's been a change to the game itself that causes the "self" pointer to point instead at your mount. If I'm not mounted, when I use the debugger "ft" command to search for my own player name, I get 3 sane hits when I target myself, and only 2 hits when I target another player or NPC, so the hit that disappeared must be TargetAddr, and of the two that are left, one is SpawnHeaderAddr, so the remaining one must be CharInfo. If I'm mounted, however, and I target another player or NPC and use "ft" to try and search for my own name, the only hit I get is for SpawnHeaderAddr, and if I target myself, I only get two sane hits, one of which is SpawnHeaderAddr, and one of which is TargetAddr.

    It might work to use the same value for CharInfo as SpawnHeaderAddr, but looking through the ShowEQ server code, I see comments that suggest that the first entry in the spawn list isn't always the player, so that seems dicey.

    edit: I've just been playing with this, and it looks like using the same value for CharInfo and SpawnHeaderAddr results in a fully populated spawn list and correctly-colored skittles, even while mounted, so I'm reasonably comfortable with the following:

    Code:
    [File Info]
    Patchdate=03/14/2018
    
    [Port]
    port=5555
    
    [Memory Offsets]
    ZoneAddr=0x0f360e8
    SpawnHeaderAddr=0x0f287a8
    CharInfo=0x0f287a8
    TargetAddr=0x0f25ef0
    ItemsAddr=0x0f24c50
    WorldAddr=0x0f26154
    
    [WorldInfo Offsets]
    WorldHourOffset=4
    WorldMinuteOffset=5
    WorldDayOffset=6
    WorldMonthOffset=7
    WorldYearOffset=8
    
    [SpawnInfo Offsets]
    NextOffset=0x4
    PrevOffset=0x8
    LastnameOffset=0x38
    XOffset=0x64
    YOffset=0x68
    ZOffset=0x6c
    SpeedOffset=0x7c
    HeadingOffset=0x80
    NameOffset=0xa4
    TypeOffset=0x125
    SpawnIDOffset=0x148
    OwnerIDOffset=0x1dc
    HideOffset=0x554
    LevelOffset=0x1d4
    ClassOffset=0xfa0
    RaceOffset=0xf98
    PrimaryOffset=0x10a8
    OffhandOffset=0x10bc
    
    [GroundItem Offsets]
    PrevOffset=0x00
    NextOffset=0x04
    IdOffset=0x08
    DropIdOffset=0x0c
    XOffset=0x70
    YOffset=0x74
    ZOffset=0x78
    NameOffset=0x1c
    Last edited by wxh; 03-15-2018 at 05:26 AM.

  6. #6
    Registered User
    Join Date
    Apr 2017
    Posts
    14

    Re: Offsets 3/14/2018

    Very nice. Here are the generated offsets for comparison.

    Code:
    #
    #       Copyright (C) 2006 - 2013  All developers at http://sourceforge.net/projects/seq
    #
    #       This program is free software; you can redistribute it and/or
    #       modify it under the terms of the GNU General Public License
    #       as published by the Free Software Foundation; either version 2
    #       of the License, or (at your option) any later version.
    #
    #       This program is distributed in the hope that it will be useful,
    #       but WITHOUT ANY WARRANTY; without even the implied warranty of
    #       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #       GNU General Public License for more details.
    #
    #       You should have received a copy of the GNU General Public License
    #       along with this program; if not, write to the Free Software
    #       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    #
    
    
    [File Info]
    PatchDate=3/13/2018
    
    
    [Port]
    port=5555
    
    
    [Memory Offsets]
    ZoneAddr=0xf360e8
    SpawnHeaderAddr=0xfbebc0
    CharInfo=0xf287a8
    TargetAddr=0xf25ef0
    ItemsAddr=0xf24c50
    WorldAddr=0xf26154
    
    
    [WorldInfo Offsets]
    WorldHourOffset=4
    WorldMinuteOffset=5
    WorldDayOffset=6
    WorldMonthOffset=7
    WorldYearOffset=8
    
    
    [SpawnInfo Offsets]
    NextOffset=0x4
    PrevOffset=0x8
    LastnameOffset=0x38
    XOffset=0x64
    YOffset=0x68
    ZOffset=0x6c
    SpeedOffset=0x7c
    HeadingOffset=0x80
    NameOffset=0xa4
    TypeOffset=0x125
    SpawnIDOffset=0x148
    OwnerIDOffset=0x1dc
    HideOffset=0x554
    LevelOffset=0x1d4
    ClassOffset=0xfa0
    RaceOffset=0xf98
    PrimaryOffset=0x10a8
    OffhandOffset=0x10bc
    
    
    [GroundItem Offsets]
    PrevOffset=0x00
    NextOffset=0x04
    IdOffset=0x08
    DropIdOffset=0x0c
    XOffset=0x70
    YOffset=0x74
    ZOffset=0x78
    NameOffset=0x1c
    
    
    # Using the new Debug CLI
    # =======================
    # To start the server in debug mode, run the server with the 'debug' argument:
    #
    #   myseqserver debug
    #
    # You will see the menu, which looks like this:
    #
    #        Debug Menu
    #  =======================
    #    d) display current offsets
    #    r) reload all offsets from INI file
    #  spo) set a primary offset   (index/name) (hex value)
    #  sso) set a secondary offset (index/name) (hex value)
    #   ez) examine raw data using pZone
    #   et) examine raw data using pTarget
    #   ew) examine raw data using pWorld
    #   fz) find zonename using pZone (zonename)
    #   ft) find spawnname using pTarget (spawnname)
    #   fs) find spawnname using pSelf (spawnname)
    #   ps) process a spawn entity using pSelf
    #   pt) process a spawn entity using pTarget
    #   sp) scan process names (process name)
    #  sft) scan for floating point using pTarget (X,Y,Z)
    #  sfa) scan for floating point using Address (X,Y,Z,Address)
    #  sfw) scan for world offsets using game date (mm/dd/yyyy)
    #   sg) scan for ground items
    #   ws) walk the spawnlist (reverse) using pSelf
    #   wt) walk the spawnlist (reverse) using pTarget
    #   vs) walk the spawnlist (forward) using pSelf
    #   vt) walk the spawnlist (forward) using pTarget
    #    x) exit
    #
    # >
    #
    #
    # To select a command, type it in and press Enter. Some commands require
    # arguments, which are indicated in parenthesis.
    #
    # If you are having troubling just accessing the EQ process, first try the 'scan process names' command:
    # > sp
    #
    # You can provide an optional process name to attempt to scan for and access, but if you do not provide
    # any arguments, then it will default to 'eqgame'. You will see a list of processes detected on your system
    # and if a match is found, it will try and access it, providing feedback on the results. Prior to server v1.19.1,
    # this was a case-sensitive match. For server v1.19.1 and higher, the check is case-insensitive. We had some
    # problems on a Win2K system regarding this.
    #
    # When new offsets are needed, you can start the server in debug mode and it will use the
    # old offsets as starting points to locate the new offsets.
    #
    # The first thing is to locate the zonename. Just enter a zone that you know the name of, like the Bazaar,
    # and use the "fz" command along with the appropriate shortname for the zone:
    # > fz Bazaar
    #
    # You should see a list of matches. Anyone of them could potentially be a valid pZone value. Select one and
    # place it in the INI file above under ZoneAddr. Now press 'r' to reload the INI file into the debug server.
    # Press 'd' to verify your change was actually loaded.
    #
    # Next we want to locate the pTarget value, stored above as TargetAddr. Inside the game, select any target NPC
    # or PC other than yourself. It is best to select a uniquely named NPC, like "Boss Hogg". Do not select an NPC
    # with a re-used name, like "a rat". Now you need to determine the hidden name of that NPC. To do this, replace
    # any spaces in the name with underscores, and stick a 00 on the end. So "Boss Hogg" becomes "Boss_Hogg00".
    # Use this hidden name as the sole argument to the 'ft' command:
    # > ft Boss_Hogg00
    #
    # You should see a list of matches. Anyone of them could potentially be a valid pTarget. Select one and
    # place it in the INI file above under TargetAddr. Press 'r' to reload the INI file.
    #
    # Next we want to locate the pSpawnlist value, stored above as SpawnHeaderAddr. This is very easy once you have
    # pTarget done above. Simply select any target in the game and use the 'wt' command:
    # > wt
    #
    # You should see a long list of spawn information dump out. At the end, we do an automatic scan looking for
    # where that entry point pointer lives. You should see a list of matches. Anyone of them could potentially be
    # a valid pSpawnlist. Select one and place it in the INI file above under SpawnHeaderAddr. Press 'r' to reload
    # the INI file.
    #
    # Next we want to locate the pSelf value, store above as CharInfo. Inside the game, select yourself as the
    # target (press F1) and use the 'ft' command along with your characters first name:
    # > ft Yourfirstname
    #
    # You should see a list of matches. Anyone of them could potentially be a valid pSelf. Select one and
    # place it in the INI file above under CharInfo. Press 'r' to reload the INI file.
    #
    # Last we want to locate the pGroundItems value, stored above as ItemsAddr. Just use the 'sg' command and
    # look for matched pointers that look like 'ITxxxxx_ACTORDEF', where xxxxx is any 3 or 5 digit number.
    # > sg
    # Scanning for 'IT' from 0x7d62c4 to 0x9d62c4
    # Pointer match found at 0x8d62c4. Full string is IT10805_ACTORDEF
    # Pointer match found at 0x9bc648. Full string is ITORTOKEN
    #
    # Of course the first one here looks good. Put it in the INI file above under ItemsAddr. Press 'r' to
    # reload the INI file.
    #
    # You can now exit the server (press 'x') and restart it in normal mode. Try attaching the client to it.
    # As long as none of the secondary offsets have changed, it should work. If it only works for a short time
    # and then stops working, repeat the above procedure, but this time make different selections in the match
    # lists.
    #
    # If the secondary offsets have changed, or the basic design of how they obtain spawn information, the server
    # may need to be updated. The other debug options can be used to aid in locating secondary offsets, but it
    # is so involved that it is probably best to use a full blown RAM editor. Please visit our forums to learn
    # how to help ( http://www.showeq.net/ and look for the MySEQ subforums).
    #
    # Notes:
    # - All string searches are case sensitive!
    # - As you get matches, write them all down! If a function works for a minute or so and then stops working, try the
    #   next match in the list.
    # - If you use the spo/sso functions, the changes are NOT made in the INI file. Once you exit, those changes are lost.
    # - Only reverse walks (wt/ws) will scan for entry point pointers. Forward walks will just show the spawns and return.

  7. #7
    Registered User
    Join Date
    Aug 2002
    Posts
    29

    Re: Offsets 3/14/2018

    Hmm. Even after modding the debugger's spawn scanner to extend far enough that it should've scanned offset 0xfbebc0, I still don't get a hit for SpawnHeaderAddr there.

  8. #8
    Registered User
    Join Date
    Apr 2017
    Posts
    14

    Re: Offsets 3/14/2018

    Quote Originally Posted by wxh View Post
    Hmm. Even after modding the debugger's spawn scanner to extend far enough that it should've scanned offset 0xfbebc0, I still don't get a hit for SpawnHeaderAddr there.
    What data do you see when you dump what is there?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

You may post new threads
You may post replies
You may post attachments
You may edit your posts
HTML code is Off
vB code is On
Smilies are On
[IMG] code is On