PDA

View Full Version : Help finding offsets



cgbeq24
05-17-2023, 05:49 PM
Needing some help trying to find the latest offsets, as i'm not having any luck following the instructions in the myseqserver.ini file.

Going to quote the guide step-by-step, and hope people can provide insight.



# 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


Did this step, I believe successfully. Three addresses were given for the 5/16 patch as:
0x1408262e4
0x140862e86
0x140c05a88

Not sure which one is correct. The first two loaded up in the client with the map of the Bazaar, but zoning (or loading a different character) would not change the map. 3rd would not load the map in the client at all.



# 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.


Did this. I had the NPC "Gearo" targetted in the Bazaar, and he was found as Gearo00.
Two values:
0x140b31eb0
0x140bfe440

Not sure which to use, but have the values recorded at least so I can try each if the client isn't working properly...



# 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.


I tried this several times. While in the Bazaar I still had Gearo as my target. List that generated wasn't too long. No idea what to do with that information, or how this 'automatic scan looking for where that entry point pointer lives'.

I tried again in Abysmal Sea. Loooong list of targets. Again, no idea what to do. Tried manually looking for the 'lowest' value as a starting point. Found 0x1cd86629060 that was listed as 'Previous' [besides 0x0] as the lowest value, so plugged that in as a test. No dice.



# 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.


Did this, and found values:
0x140b31eb0
0x140bfe398
0x140bfe440

Not sure which to use, but recorded for later.



# 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
--snipped instructions for space--
# Put it in the INI file above under ItemsAddr. Press 'r' to
# reload the INI file.


I believe this was successful. Got only one address: 0x140bfcdf0
Works in the client.



# 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.


Aiight, so yeah, load up the client and I get a blank map with ground spawns. I'll try to futz with the values, but figured I'd ask for additional help on these first few steps and at least have the basics working...

Dippp
05-17-2023, 06:41 PM
I'm new to this, but for CharInfo I got the same three offsets, plus a fourth: 0x140bfe448

I'll keep messing around as I learn how finding offsets works.

Dippp
05-17-2023, 07:20 PM
I'm new to this, but for CharInfo I got the same three offsets, plus a fourth: 0x140bfe448

I'll keep messing around as I learn how finding offsets works.
For ZoneAddr i"ve got:

0x140861938
0x140c05a04
0x140c05b44
ox140c81a7c

nitroplr
05-17-2023, 07:43 PM
Follow the how to find offsets guide in the MySEQ Help Desk. That, however only has a chance of working for the first 5 steps now. Since 64 bit there is a good chance you will have a value that is out of range for the built in offset finder. 50/50 being able to get working offsets with it now. 0% chance as far as I know of getting them 100% complete since it doesn't scan far enough.

Dippp
05-17-2023, 08:12 PM
"Preparation:
To prepare to find your own offsets, you'll need to start with correct offsets the first time. Run thedebug version of the server, click the icon in the upper left of the server.exe window, and select "properties". Select the "Layout" tab, and in the "Screen Buffer Size" box, change "Height" to 3000.Use the "es" command to display info about yourself. Then, go through all of the secondary offsets andfind what values are stored at the indicated addresses (for example, the secondary offset "NameOffset" is0xa4, so at 0xa4, you should see your character's first name). Write down the values you find at eachof the secondary offsets listed below- this will help you know what to search for when trying to findyour own offsets later on. For HideOffset, do this with some form of invisibility on your character, andremember what form of invisibility you used.HideOffset (4 bytes): (invis type: )LevelOffset (1 byte):ClassOffset (2 bytes):RaceOffset (2 bytes):PrimaryOffset (4 bytes):OffhandOffset (4 bytes):Note that you can also target an NPC that always has the same items equipped in their main and off hand,and use the values you get from the "et" command to find all of the secondary offsets except OwnerID andHide. Also note that it might be useful to get some cheap items that you can keep in your bank andequip in your primary and off hands during offset search, since if you upgrade your equipment, the valuesyou'll need to search for will probably change."

Almost the entire preperation step doesn't make sense to me. I can get the es step and get the list of codes, but I feel it doesn't ELI5 what I'm looking for. So I'm looking for LevelOffset for example. It's one byte. So the hexcode would be all zeros except for one set of four numbers/letters? There are quite a few... So it could be any of them if I'm understanding correctly?

cgbeq24
05-18-2023, 12:36 AM
Almost the entire preperation step doesn't make sense to me. I can get the es step and get the list of codes, but I feel it doesn't ELI5 what I'm looking for. So I'm looking for LevelOffset for example. It's one byte. So the hexcode would be all zeros except for one set of four numbers/letters? There are quite a few... So it could be any of them if I'm understanding correctly?

I think that's the old way of finding offsets from years ago; the myseqserver.ini is up to date (as far as I'm aware). I've tried both methods and neither seem to work. I know there are people that have working offsets, but no idea how to get them myself, or where they are getting their information from... and they are not willing to share.

As for finding the values I did in my initial post, some of the steps were straight forward; the information took a long time to load though, because my poor laptop is shit, lol. The information is given to you in the form of "Pointer match found at 0x140b31eb0", for example.

The long list of data when doing the "wt" command, was more like (and just giving one line here. I'm using dashes to separate the columns of values, instead of spaces for formatting):

0x3c0) 00 41 00 00 -- 00 00 00 00 -- 00 00 00 00 -- 00 00 00 00 -- ................

And that output range I had to compare with another output range to get the LevelOffset, which didn't seem to work. Most likely because I had multiple matches but it's hard to see in a console command window and not able to be copied and pasted into, say, Excel to search and compare values easier. But the LevelOffset could have been any number of lines that had other data in it, you were just looking for the specific byte within that memory address.... (I just picked that one line as an example, since I was able to match character level and NPC level for the target I selected)

dirtyhalfling
05-19-2023, 09:33 AM
I think that's the old way of finding offsets from years ago; the myseqserver.ini is up to date (as far as I'm aware).

I don't think the instructions in myseqserver.ini have been updated since 2006/2007, so I'd recommend the sticky post from wxh as it's not quite as dated.


Did this step, I believe successfully. Three addresses were given for the 5/16 patch as:
0x1408262e4
0x140862e86
0x140c05a88

Try fz bazaar instead (string searches are case sensitive and the short zone names are lowercase afaik). In this case, you end up with:

Scanning for 'bazaar' from 0x7ff696270a4c to 0x7ff69e270a4c
Pointer match found at 0x1407fec09
Pointer match found at 0x14086095f
Pointer match found at 0x14086098b
Pointer match found at 0x1408613dc
Pointer match found at 0x140c05a04
Pointer match found at 0x140c05b44
Pointer match found at 0x140c81a7c

Bolded ones seem to work as they display the proper map and update when zoning (others work only for bazaar). I don't know if one is more correct than the others. I would save all 3 somewhere and if you encounter map problems later try switching addresses.

Other ones you found seem OK.

Choose one TargetAddr
Choose one for CharInfo that is not on the list you got for TargetAddr. Also use whatever you choose here for SpawnHeaderAddr. (Not sure how to find the actual offset for this, but this seems to work)

You may have to do a little trial and error until you find a set that works. A good starting set of values for TargetAddr and CharInfo are the addresses in your list that are closest to the old offsets.