struct for current zone (help fill in unknowns)

A forum for feature requests/discussions and user submitted patches that improve MQ2

Moderator: MacroQuest Developers

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

struct for current zone (help fill in unknowns)

Post by Lax » Tue Jan 28, 2003 9:45 pm

typedef struct _ZONEINFO {
char CharacterName[64];
char ZoneNameShort[32];
char ZoneNameLong[128];
char something[150];
unsigned char UnknownByte1;
unsigned char UnknownByte2;
char Unused1[3];
unsigned char UnknownByte3;
char Unused2[3];
unsigned char UnknownByte4;
char Unused3[4];
int UnknownInt1;
char Unused4[12];
float UnknownFloat1;
char Unused5[12];
float UnknownFloat2;
unsigned char UnknownByte5;
char Unused6[49];
unsigned char UnknownByte6;
char Unused7;
int UnknownInt2;
int UnknownInt3;
int UnknownInt4;
float ZoneExpModifier; // exp modifier
int UnknownInt5;
int UnknownInt6;
int UnknownInt7;
int UnknownInt8;
float UnknownFloat4;
float UnknownFloat5;
float UnknownFloat6;
char Unused8[24];
int UnknownInt9;
char Unused9[27];
} ZONEINFO, *PZONEINFO;


The struct is basically complete, types determined by usage of that position in memory. The Unused spots are not used by the client, although they may contain data used by the server. Yes the character name is your character. The exp modifier display using %.2f .. 0.75 is base, anything higher is bonus (0.80 would be 5% bonus, 0.85 would be 10% bonus, etc) and anything lower is a penalty (0.70 is 5% penalty, etc).

Anyway, I spent very little time figuring out unknowns but this is the basic structure, I figure if anyone really wants to use it they can help too =)

Current memory location of this struct is 0x7D467C as of Jan 28, use any time after zoning.
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

lifewolf
a ghoul
a ghoul
Posts: 143
Joined: Fri Oct 18, 2002 6:29 pm

Post by lifewolf » Fri Jan 31, 2003 10:58 am

Having normal people with winhack, a brain, a calculator for adding to that offset, that would be kind enough to grab one of the unknowns and zone several times, posting zone/value would be helpful.

If theres a Uint that is generally in the thousends in that, it may be something like total surfaces, adjoins, 3d actors (some druid rings, trees..), etc... If its not handled by the DX renderer... I take it most all are unique to a zone.

ooh umm look for that haze effect thing that they did that time in EK with the green fog... remember? yeah that!... it may be what

float UnknownFloat4;
float UnknownFloat5;
float UnknownFloat6;

or a couple other bytes in there are..

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Mon Feb 03, 2003 8:46 pm

3 floats in a row could possibly have to do with the zone's "safe spot", and one of them may be the z plane for the good ole "Player is under the world, moving to safe spot" teleporter. Those were in the "old" structure anyway before it increased in size, etc.
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0