• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Working MQ (12/10/2005) (1 Viewer)

pyronicide

New member
Joined
Nov 12, 2005
RedCents
Here's a quick vanilla pre-compile that I've got using the current MQ2 source. As far as I can tell everything is working.

Because of some changes in the code, it is going to be awhile until the normal plugins are working. I'll add them to this compile when I've got them working. Until then, enjoy.

edit: Got TLO working again. Added MQ2Twist.
 
Last edited:
Not everything is working but 99% of it. Normal plugins are working except for pActorInfo which you just get rid of and go straight to -> reference.
 
"Due to complete misuse of the String Top-Level Object, it has been removed."

What is this referring to, and why won't it go away?
 
Hotter said:
"Due to complete misuse of the String Top-Level Object, it has been removed."

What is this referring to, and why won't it go away?

Because you have to write your macros properly. Do a search tons of info on that topic.
 
I'm not using macro's. Is this from the HUD? I don't know much about this stuff, as everyone should know by now lol..
 
Lax nerfed the ${String} TLO a long time ago, crippling hundreds of macros and HUDs. The un-nerf is here:

Open up MQ2Data.cpp and find:

Rich (BB code):
TLO(dataString)
{
	WriteChatf("Due to complete misuse of the String Top-Level Object, it has been removed.");
	return false;
	/*
	if (!ISINDEX())
		return false;
	strcpy(DataTypeTemp,szIndex);
	Ret.Ptr=&DataTypeTemp[0];
	Ret.Type=pStringType;
	return true;
	/**/
}

...then change it to:

Rich (BB code):
TLO(dataString)
{
	if (!ISINDEX())
		return false;
	strcpy(DataTypeTemp,szIndex);
	Ret.Ptr=&DataTypeTemp[0];
	Ret.Type=pStringType;
	return true;
}

...and you're set. Hope this helps solve your problem, Hotter. Of course, you could wait for my compile. I'll even double-check the docrack window just for you. ;)

-CodeCaster
 
Interestingly the official MQ2 download has Zone->SafeYLoc (and X and Z) instead of the previously purposefully cryptic Zone->Unknown0x1ec[0:2].
 
They added a ton of blockers for the new SafeXYZLoc. You have to remove 4 defines for it to work.

Search for SafeXLoc = 0 etc.. it also forces a critical error during compile.
 
Cobalt said:
They added a ton of blockers for the new SafeXYZLoc. You have to remove 4 defines for it to work.

Search for SafeXLoc = 0 etc.. it also forces a critical error during compile.

Mine worked just fine without anything unusual.
 
My custom warp plugin was blocked until I tracked down the define 0's. If you change it from SafeXLoc to SafeX custom plugins compile (not sure if MQ2 will compile though).
 
No idea what you are talking about, there's no new code in MQ2 that has to do with warp.
 
Since this is the first time I'll have done this .....

To get warp to work, I need to find the current offset and make sure that SafeXLoc/SafeYLoc/SafeZloc are all defined, correct?
 
codecaster said:
Of course, you could wait for my compile. I'll even double-check the docrack window just for you. ;)

-CodeCaster
With an offer like that how can I resist? One day I'll be able to do all this on my own :)

For now, it helps to lessen my withdrawl a bit.
 
argh ya, I need and not sure hwoto get the corret warp / dothezone offsets.
Also having issues compileing moveutils. pActor not a member of _SPAWNINFO etc..

Have twist working weee..
 
Its the same things that have been blocking from all the previous Mq2 releases.
You need to
1. Adjust the MAX_ZONES number
2. Define your SAFEXYZLocs
3. Timestamp junk
4. The String TLO's.


Once you have those done, all plugins will be pretty much compatible, huds included. The warp and zone plugins will need some editing to reflect the new changes though.

You really dont need to delete all the anti-warp junk, if you define the warp and dothezone offsets at the beginning of your warp/zone plugs
 
Also just a small point you dont need to include the .exp .map .pdb or the .lib files they are only part of the compileing but they not needed to run mq once it is compiled


Rich (BB code):
Have to remove/replace the following part in the MQ2 Source
//////////////////////////////////////////////
eqdata.h and replace 
/*0x1ec*/   FLOAT   Unknown0x1ec[3];

with 

/*0x1ec*/   FLOAT SafeYLoc; 
/*0x1f0*/   FLOAT SafeXLoc; 
/*0x1f4*/   FLOAT SafeZLoc;
//////////////////////////////////////////////
MQ2Main.h
#define CDisplay__MoveLocalPlayerToSafeCoords 0
replace 0 with offset
0x043B0FA
(9/21 offset)
//////////////////////////////////////////////
mq2commandapi.cpp and remove

if (!stricmp(Command,"/warp"))
{
Function=0;
}
////////////////////////////////////////////////
MAX_ZONES in EQData.h to 0x171 
or you won't be able to get to DoD zones.
 
thenameless said:
Rich (BB code):
eqdata.h and replace 
/*0x1ec*/   FLOAT   Unknown0x1ec[3];

with 

/*0x1ec*/   FLOAT SafeYLoc; 
/*0x1f0*/   FLOAT SafeXLoc; 
/*0x1f4*/   FLOAT SafeZLoc;

This is not needed, someone made a mistake(?) and this is already in there for you.
 
Mochila said:
Goes to show the Dev's warp too :)

not at all :)
just dkaa spent a lot of time doing structs and you always put 'hidden' structs back while you are doing that so it makes sense, he just forgot to remove them once he was done. Also devs don't even play eq :)
 
Ahhh tear hehe... thats my old code. Glad to see someone still uses it. As for tracking down all the defines... just #undef it.... hell of alot better than tracking down 0's after each patch... re #define it how you want in the code. Much cleaner. The person that posted my old mq2allwarp code view the example of the #undef and #defines... will help you out alot. When ever I get around to it I'll go rewrite my warp source for you all, but I don't play EQ much anymore so it may be a couple days before i get around to it.
 
Cobalt said:
They added a ton of blockers for the new SafeXYZLoc. You have to remove 4 defines for it to work.

Search for SafeXLoc = 0 etc.. it also forces a critical error during compile.

This is verified. It didn't cause the error on my compile, but sure enough, the define = 0's are there and need to be removed for warp to work properly.

-CodeCaster
 
In EQUIStructs.h
Delete
Rich (BB code):
#define SafeXLoc 0

In EQClasses.h
Delete
Rich (BB code):
#define SafeYLoc 0

In EQClasses.h
Delete
Rich (BB code):
#define SafeZLoc 0

In MQ2DataVars.cpp
Delete
Rich (BB code):
#ifndef SafeXLoc
#error 1
#endif

That look right to ya code?
 
Yep, that's correct. But... for some reason, when I kill all that code, It won't compile the macroquest2.exe and I can't see why just yet. I am still searching. This will delay my precompile for an hour or two while I look at this stuff...

-CodeCaster

P.S. - Adding the #undef to your warp source really is the easier way to go... I wouldn't have put it that way, but it is true.
 
Compiled fine for me :) I did make the time stamp, string, warp offset etc changes too all at once also

Edit: Do I need to give you a pre-pre-compile? Lmao
 
Working MQ (12/10/2005)

Users who are viewing this thread

Back
Top