• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

MQ2Zone Plugin

Machiavelli

New member
Joined
Nov 14, 2004
RedCents
10¢
ONLY WORKS ON ZONES ADJACENT TO YOU. The zones have to be connected to each other, and if they're not, you'll get disconnected from the server.

I've used this for weeks at a time, no gm complaints, no warnings for me. I believe it to be fairly safe.

/gate
(takes you to your bindpoint from any zone. Just like gate!)

/zone (zonename)

You have to use the short name of the zone, the one that appears on /who

Here is a good list of those short names:

http://www.eqemulator.net/zones.php

And here is the mq2zone plugin

Rich (BB code):
#include "../MQ2Plugin.h" 

PreSetup("MQ2Zone"); 

VOID GateBind(PSPAWNINFO, PCHAR); 
VOID ZoneShift(PSPAWNINFO pChar, PCHAR szLine); 

VOID ZoneShift(PSPAWNINFO pChar, PCHAR szLine) 
{ 
   CHAR szMsg[MAX_STRING] = {0};      
   DWORD ZoneToGoTo; 
   ZoneToGoTo = GetZoneID(szLine); 
   sprintf(szMsg,"Going to zone %s, id %d",szLine,ZoneToGoTo); 
   WriteChatColor(szMsg,USERCOLOR_DEFAULT); 
   GetCharInfo()->ZoneBoundId = ZoneToGoTo; 
   pChar->Type = SPAWN_CORPSE; 
} 

VOID GateBind(PSPAWNINFO pChar, PCHAR szLine) 
{       WriteChatColor ("Gating...",CONCOLOR_RED); 
       pChar->Type = SPAWN_CORPSE; 
} 

PLUGIN_API VOID InitializePlugin(VOID) 
{ 
        AddCommand("/zone",ZoneShift); 
   AddCommand("/gate",GateBind); 
} 


PLUGIN_API VOID ShutdownPlugin(VOID) 
{ 
   DebugSpewAlways("Shutting down MQ2Zone"); 
   RemoveCommand("/gate"); 
   RemoveCommand("/zone"); 
}
 
In order to add this plugin do we make a new .mac file or does everything have
to be recomplied?
 
when i use this i get kicked from eq to server select ...i was in dl and typed in frinona vie was spelled right cause just came from there and scrolled up to see and still kicked me to sever select and still at same spot...any help would be great ..thanks
 
The short name for Firiona Vie is:

firiona

so you'd type,
/zone firiona
while in dreadlands.
 
nm got list and stuff now wasnt working for me earlier working now ...
 
Last edited by a moderator:
so far i have noticed a prob with dawnshroud when /zone dawnshroud just after /zone netherbian so i use /warp loc -700 0 4 to go to DSP have not tried GE, ME or SS to DSP but from dsp to GE zone is /warp loc -1877 -877 104

also when warpin in zones you do not know watch if you start to fall endlessly hurry and try another or loss of corpse could be bad did it once and just kept /warp loc ..... till i found onw above ground also be fast to not take tons of damage from falls

have not tried keyed zones but should work no reason it should not the key activates zone so it should work

**NOTE** If you find a good camp in a zone plz post its good info as long as you include

Zone:
Loc to warp to:
Lvl's its good for:
and hunting hints

Like
GE
-1877 -877 104
lvs 24- 38 (slows down at 38 alot)
groups easy to find here i used a ranger and cleric combo and non stop pulls till i got bored
 
Read the other day that GMs can tell your using /zone and it flags your account. Not sure how accurate that info is. I also read(from RPGexpert.com) from someone claiming to be a former guide that they can only tell if your using MQ2 if you have it up while zoning? Any comments on this?
 
is the offset for this the same as mq2warp? cant seem to find an offset for "mq2zone"
 
yeah i looked at it a little closer and noticed that complied it and it works great
 
Easy_Moder said:
Read the other day that GMs can tell your using /zone and it flags your account. Not sure how accurate that info is. I also read(from RPGexpert.com) from someone claiming to be a former guide that they can only tell if your using MQ2 if you have it up while zoning? Any comments on this?

To be safe, take your char to the zone you will be hunting/macroing, then restart EQ w/MQ2 and use it. But i dont see how/why they are able to do that only while you zone. It checks everyones client settings everytime someone zones? thats a lot of checking/seconds.
 
if you look in the macroquest2 forums, they laugh about that theory all day and night :) especially the devs.
 
removing this post, code was wrong
 
Last edited:
has anyone used this to get into a pop zone your not flagged for without using the mq2docrack no3min? just wondering as i dont feel like using mq2docrack but its no prob to compile and use this plugin.
 
if you don't have the flag it'll kick you back out to the succor point of the zone you were trying to get in from. thats why we need the unflagged offset to get into zones that you don't have the flag for, but who knows, it might be serverside now.
 
ok, here we go. a new mq2zone plugin (not really, just about 3-4 lines of code lol) it'll reject any zone shortname that does not exist.

Rich (BB code):
#include "../MQ2Plugin.h" 

PreSetup("MQ2Zone"); 

VOID GateBind(PSPAWNINFO, PCHAR); 
VOID ZoneShift(PSPAWNINFO pChar, PCHAR szLine); 

VOID ZoneShift(PSPAWNINFO pChar, PCHAR szLine) 
{ 
   CHAR szMsg[MAX_STRING] = {0};      
   DWORD ZoneToGoTo; 
   ZoneToGoTo = GetZoneID(szLine);
   if (ZoneToGoTo == -1) {
	   WriteChatColor("Wrong Zone.ShortName, aborting!!",CONCOLOR_RED);
	   return;
   }

   sprintf(szMsg,"Going to zone %s, id %d",szLine,ZoneToGoTo); 
   WriteChatColor(szMsg,USERCOLOR_DEFAULT); 
   GetCharInfo()->ZoneBoundId = ZoneToGoTo; 
   pChar->Type = SPAWN_CORPSE; 
} 

VOID GateBind(PSPAWNINFO pChar, PCHAR szLine) 
{       WriteChatColor ("Gating...",CONCOLOR_RED); 
       pChar->Type = SPAWN_CORPSE; 
} 

PLUGIN_API VOID InitializePlugin(VOID) 
{ 
        AddCommand("/zone",ZoneShift); 
   AddCommand("/gate",GateBind); 
} 


PLUGIN_API VOID ShutdownPlugin(VOID) 
{ 
   DebugSpewAlways("Shutting down MQ2Zone"); 
   RemoveCommand("/gate"); 
   RemoveCommand("/zone"); 
}
 
Bah i can't get it working but siddin yours doesn't it needs a else so the actull zoning happens
 
Last edited:
MQ2Zone Can't Compile after MQ2-20050515.zip

error C2143:syntax error:missing ';' befor 'constant'

hehe ..
 
same problem here. anyone know what was changed or what needs to be changed to fix it?
 
Yea u need the new "offsets" for this i am sure someone will post it with in the next day or so now that the updated zip came out
 
I got /zone to work kinda... but when ever I do /gate it gates me.. /zone gates me as well lol
 
that was happening in the early release of the last patch zip so hopefully these can all be resolved
 
any update on this plugin? my old warp had /fade /warp /zone all in one. so trying to find a new zone plugin :)
 
okay, when they updated MQ2 for the may 15 patch, they added some constants to the compile, a constant is a word, like ZoneToGo that has a value assigned. unlike variables constants can't change so when you complie or try to use this plugin MQ2 gets an error. all you have to do to fix it is change the name of the variable being used, so change ZoneToGo to some thing else like ZoneId or something. then recompile it will work
 
would it be possible for someone to rewrite the code with what LordMage is talking about.... i tried to do it but it won compile with the changes I made /shrug. I'll use the version Siddin posted for now since all I really need it for is gate anyways. But it would be nice to have it working correctly for emergencies.

hmmm nm i guess... i tried to compile the one siddin posted but it still doesnt compile. not sure why...this is the error I get hen trying to compile it.



MQ2Zone.cpp(6) : warning C4091: '' : ignored on left of 'void' when no variable
is declared
MQ2Zone.cpp(6) : error C2143: syntax error : missing ';' before 'constant'
MQ2Zone.cpp(6) : fatal error C1004: unexpected end of file found
NMAKE : fatal error U1077: 'cl.exe' : return code '0x2'
Stop.

any suggestions?
 
I actually did rewrite the code, I had it working but with the updated MQ2 the took out ZoneBoundID, I have to find out what it was and recompile it then I will post my fixes
 
this seems to work.

Rich (BB code):
#include "../MQ2Plugin.h" 

PreSetup("MQ2Zone"); 

VOID GoHome(PSPAWNINFO, PCHAR); 
VOID GoTozone(PSPAWNINFO pChar, PCHAR szLine); 

VOID GoTozone(PSPAWNINFO pChar, PCHAR szLine) 
{ 
   CHAR szMsg[MAX_STRING] = {0};      
   DWORD ZoneToGoTo; 
   ZoneToGoTo = GetZoneID(szLine); 
   sprintf(szMsg,"Going to zone %s, id %d",szLine,ZoneToGoTo); 
   WriteChatColor(szMsg,USERCOLOR_DEFAULT); 
   GetCharInfo()->ZoneBoundId = ZoneToGoTo; 
   pChar->Type = SPAWN_CORPSE; 
} 

VOID GoHome(PSPAWNINFO pChar, PCHAR szLine) 
{       WriteChatColor ("Gating...",CONCOLOR_RED); 
       pChar->Type = SPAWN_CORPSE; 
} 

PLUGIN_API VOID InitializePlugin(VOID) 
{ 
        AddCommand("/gotozone",GoTozone); 
   AddCommand("/gohome",GoHome); 
} 


PLUGIN_API VOID ShutdownPlugin(VOID) 
{ 
   DebugSpewAlways("Shutting down MQ2goto"); 
   RemoveCommand("/gotozone"); 
   RemoveCommand("/gohome"); 
}
 
in eqdata.h replace
/* 0x12e0 */ BYTE Unknown0x12e0[0x14ec-0x12e0];
with
/* 0x */ BYTE Unknown0xfd8[0x1f8];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];
 
Rich (BB code):
#include "../MQ2Plugin.h" 

PreSetup("MQ2Zone"); 
#undef GateBind
#undef ZoneShift
#undef ZoneToGoTo
VOID GateBind(PSPAWNINFO, PCHAR); 
VOID ZoneShift(PSPAWNINFO pChar, PCHAR szLine); 

VOID ZoneShift(PSPAWNINFO pChar, PCHAR szLine) 
{ 
   CHAR szMsg[MAX_STRING] = {0};      
   DWORD ZoneToGoTo; 
   ZoneToGoTo = GetZoneID(szLine);
   if (ZoneToGoTo == -1) {
	   WriteChatColor("Wrong Zone.ShortName, aborting!!",CONCOLOR_RED);
	   return;
   }

   sprintf(szMsg,"Going to zone %s, id %d",szLine,ZoneToGoTo); 
   WriteChatColor(szMsg,USERCOLOR_DEFAULT); 
   GetCharInfo()->ZoneBoundId = ZoneToGoTo; 
   pChar->Type = SPAWN_CORPSE; 
} 

VOID GateBind(PSPAWNINFO pChar, PCHAR szLine) 
{       WriteChatColor ("Gating...",CONCOLOR_RED); 
       pChar->Type = SPAWN_CORPSE; 
} 

PLUGIN_API VOID InitializePlugin(VOID) 
{ 
        AddCommand("/zone",ZoneShift); 
   AddCommand("/gate",GateBind); 
} 


PLUGIN_API VOID ShutdownPlugin(VOID) 
{ 
   DebugSpewAlways("Shutting down MQ2Zone"); 
   RemoveCommand("/gate"); 
   RemoveCommand("/zone"); 
}
 
Using the code right above that Sidden posted, I am being /gated to my bind point when I use the /zone command instead of the zone I was trying to get to. Any ideas what causes that?
 
I don't feel safe using pre-compiled .dll files. I feel better if I compile my own. I don't suppose you could post the source that Tone used?
 
Hmm nope guess u should ask him since he was the one that compiled it, whats the world coming to lol peeps are scared to use a dll =P
 
MQ2Zone Plugin

Users who are viewing this thread

Back
Top
Cart