PDA

View Full Version : 10/21/2015 Offsets?



kelvanan
10-21-2015, 06:06 PM
anyone have these yet? i see the big MQ sites have their compiles released.

arkit
10-22-2015, 12:59 AM
So, not totally sure i know what i was doing, but these edits seem to work for me. I get a 'xx map file currently in use' when i start seq app, but seems to work fine after.


[Memory Offsets]
ZoneAddr=0xc2046c
SpawnHeaderAddr=0xfff560
CharInfo=0xfff560
TargetAddr=0xe17360
ItemsAddr=0xffbca8
WorldAddr=0xFF8E18

arkit
10-22-2015, 01:08 AM
Ok, i zoned a couple times. not quite accurate.

Blindaviator
10-22-2015, 02:20 AM
These offsets are working for me other than levels and class...

[Memory Offsets]
ZoneAddr=0x100cb34
SpawnHeaderAddr=0xfff560
CharInfo=0xfff560
TargetAddr=0xe17360
ItemsAddr=0xFF5590
WorldAddr=0xFF8E18

Blindaviator
10-22-2015, 02:35 AM
Well it was working at first... Now I cannot get any spawns to show

disco
10-22-2015, 10:12 AM
From using the debug tool, I got the following memory offsets#

[Memory Offsets]
ZoneAddr=0x100cb34
SpawnHeaderAddr=0xfff560
CharInfo=0xfff560
TargetAddr=0xe17360
ItemsAddr=0xffbca8
WorldAddr=0xFF8E18

The map loads correctly, I can see all the ground spawns, however I am getting no spawn information so I assume something is not right. I have no idea how to figure it out though :(

Wilye
10-22-2015, 10:47 AM
this seems to work but I think they changed the SpawnInfo Offsets somehow to



[Memory Offsets]
ZoneAddr=0x100cb34
SpawnHeaderAddr=0xfff560
CharInfo=0xfff560
TargetAddr=0xfff578
ItemsAddr=0xffbca8
WorldAddr=0xff8e18

kelvanan
10-22-2015, 11:19 AM
i am having no luck getting spawn info either.....sad sad day

Hidron
10-22-2015, 11:32 AM
In the Memory Offsets, the programs built in offset finder will find them all except the ZoneAddr & CharInfo which are easily findable using the instructions further down in the INI file.

After poking around for a while last night I gave up. All that will show on either the map or spawnlist is me (map only), corpses and groundspawns. The count the server is showing for PC's and NPC's appears to be correct though.

disco
10-22-2015, 12:00 PM
In the Memory Offsets, the programs built in offset finder will find them all except the ZoneAddr & CharInfo which are easily findable using the instructions further down in the INI file.

After poking around for a while last night I gave up. All that will show on either the map or spawnlist is me (map only), corpses and groundspawns. The count the server is showing for PC's and NPC's appears to be correct though.

This is the best I have got also with multiple tries, using both the inbuilt tool and the debug tool, I am guessing there has been a secondary offset change also but I have no idea how to use the memory reader tools to figure this out :(

Wilye
10-22-2015, 01:00 PM
Think I got it. The SpawnInfo was changed for this patch. Found the following:



[File Info]
PatchDate=21-10-2015

[Port]
port=5555

[Memory Offsets]
ZoneAddr=0x100cb34
SpawnHeaderAddr=0xfff560
CharInfo=0xfff574
TargetAddr=0xfff578
ItemsAddr=0xffbca8
WorldAddr=0xFFf530

[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
# DWORD pets has this merc dont MasterID
OwnerIDOffset=0x0560
# dword HideMode
HideOffset=0x039c
# BYTE Level
LevelOffset=0x0538
#BYTE Class
ClassOffset=0xF84
# dword Race = Class-8
RaceOffset=0x0f7C
# Equipment + 8c
PrimaryOffset=0x108c
# Offhand Offset DWORD
OffhandOffset=0x10a0

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


The only one I am unsertain for is CharInfo in Memory section

arkit
10-22-2015, 04:12 PM
Thank you Wilye!

pgoesinya
10-22-2015, 05:18 PM
Yep, many thanks. I have been trying to hash it out lately too, is a lot of trial and error, but you got to this before me. I'll keep working on the charinfo and see if I get it.

Thanks again!

Pete

eqmule
10-23-2015, 07:00 AM
Please don't remove the comments for the values when u post offsets others need them for future offset finding using the mq2 source.
Small tutorial for future reference:


I commented all the offsets with what their names are in the mq2 source so basically you just download that zip when I post it on patchdays and you can find all offsets in eqgame.h and the values in eqdata.h MasterID and so on. For example: /*0x02bc*/ DWORD MasterID; so you see its at 2bc, then that means OwnerIDOffset=0x2bc
With PrimaryOffset just take the /*xxx*/ value in front of Equipment in the typedef struct _SPAWNINFO and add 0x8c and u get the correct value...
Any more questions just text me on skype. Eq.mule

Teach a man to fish and all that...
Here are the ones I did:

#
# 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=10/21/2015

[Port]
port=5555

[Memory Offsets]
# pinstZoneAddr_x
ZoneAddr=0x100cb34
# pinstSpawnManager_x
SpawnHeaderAddr=0x10920c8
# pinstLocalPlayer_x
CharInfo=0xfff560
# pinstTarget_x
TargetAddr=0xfff578
# pinstEQItemList_x
ItemsAddr=0xffbca8
# pinstWorldData_x
WorldAddr=0xfff530

[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
# DWORD pets has this merc dont MasterID
OwnerIDOffset=0x2bc
# dword HideMode
HideOffset=0x39c
# BYTE Level
LevelOffset=0x538
# BYTE Class
ClassOffset=0xf84
# dword Race = Class-8
RaceOffset=0xf7c
# Equipment + 8c
PrimaryOffset=0x108c
# Offhand Offset DWORD
OffhandOffset=0x10a0

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

Blindaviator
10-26-2015, 08:02 AM
The only thing I have found not working is spawn points