• 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

MQ2RWarp 7/1/05

Riddlerr

New member
Joined
May 21, 2005
RedCents
30¢
After Testing by me and a few others. I am happy with the outcome of this.
And I feel i should post for others to use if they so wish. Much Credit of the code goes to siddin.
YOU MUST REPLACE/EDIT YOUR SOURCE CODE POSTED AFTER THE WARP CODE!!!!
Rich (BB code):
/// MQ2RWarp. Combination of Warp/Zone/Waypoint Plugins.
/// Created By Riddlerr 5/26/05. Much Credit Goes to Siddin.
/// 
#include "../MQ2Plugin.h" 

PreSetup("MQ2RWarp"); 
#undef ExactLocation
#undef zWarp
#undef DoWarp
#undef Warp
#undef SafeYLoc
#undef SafeXLoc
#undef SafeZLoc
#undef GateBind
#undef ZoneShift
#undef ZoneToGoTo
VOID DoWarp(float y, float x, float z); 
VOID Warp(PSPAWNINFO pChar, PCHAR szLine); 
VOID zWarp(PSPAWNINFO pChar, PCHAR szLine); 
VOID ExactLocation(PSPAWNINFO pChar);
VOID waypoint(PSPAWNINFO pChar, PCHAR szLine); 

VOID ExactLocation(PSPAWNINFO pChar, PCHAR szLine) 
{  CHAR LocMsg[MAX_STRING] = {0}; 
   sprintf(LocMsg, "Your location is %3.6f, %3.6f, %3.6f", pChar->Y, pChar->X, pChar->Z); 
   WriteChatColor(LocMsg); 
   return; 
} 

VOID zWarp(PSPAWNINFO pChar, PCHAR szLine) 
{   CHAR Z[MAX_STRING] = {0}; 
        GetArg(Z,szLine,1); 
        float MyY = pChar->Y; 
        float MyX = pChar->X; 


        if (Z[0]==0) { 
      WriteChatColor("Usage: /zwarp <dist>", CONCOLOR_RED); 
      return; 
        } 

        float NewZ = pChar->Z; 
        NewZ = NewZ + (FLOAT)atof(Z); 
        DoWarp(MyY, MyX, NewZ); 
        return; 
} 

VOID Warp(PSPAWNINFO pChar, PCHAR szLine) 
{ 
   static float LastY; 
   static float LastX; 
   static float LastZ; 
   bRunNextCommand = TRUE; 
   PSPAWNINFO psTarget = NULL; 
   PZONEINFO Zone = (PZONEINFO)pZoneInfo; 
    CHAR command[MAX_STRING]; GetArg(command,szLine,1); 
   CHAR Y[MAX_STRING]; GetArg(Y,szLine,2); 
   CHAR X[MAX_STRING]; GetArg(X,szLine,3); 
   CHAR Z[MAX_STRING]; GetArg(Z,szLine,4); 
   if ( 
      stricmp(command, "succor") != 0 && 
      stricmp(command, "loc") != 0 && 
      stricmp(command, "last") != 0 && 
      stricmp(command, "target") != 0 && 
      stricmp(command, "dir") != 0 &&
      stricmp(command, "wp") != 0
   ) { 
      WriteChatColor("Usage: /warp <succor|last|loc <y x z>|dir <dist>| target|wp name>", CONCOLOR_RED); 
      return; 
      } else { 
      if (!stricmp(command,"target"))  { 
         if (ppTarget && pTarget) { 
         psTarget = (PSPAWNINFO)pTarget; 
         } 
         if (!psTarget) { 
            WriteChatColor("You must have a target for /warp target.", CONCOLOR_RED); 
            return; 
         } 
         float TargetZ = float (psTarget->Z); 
         float TargetY = float (psTarget->Y); 
         float TargetX = float (psTarget->X); 
                        LastY = TargetY; 
         LastX = TargetX; 
         LastZ = TargetZ; 
         DoWarp(TargetY, TargetX, TargetZ); 
      } else if (!stricmp(command,"succor"))  { 
         static float north = 0; 
         ((PSPAWNINFO)pCharSpawn)->Heading = north; 
         DWORD MLPTSC = CDisplay__MoveLocalPlayerToSafeCoords; 
         __asm call dword ptr [MLPTSC]; 
         return; 
      } else if (!stricmp(command,"loc")) { 
      if ((Y[0] == 0) || (X[0] == 0) || (Z[0] == 0)) 
      { 
         WriteChatColor("You must provide <y> <x> <z> if going to a location.", CONCOLOR_RED); 
         return; 
      } 
         LastY = (float)atof(Y); 
         LastX = (float)atof(X); 
         LastZ = (float)atof(Z); 
      DoWarp((float)atof(Y), (float)atof(X), (float)atof(Z)); 
      return; 
      } else if (!stricmp(command,"last")) { 
      if ((LastY==0) || (LastX==0) || (LastZ==0)) 
      { 
         WriteChatColor("You must have warped before to use this command!.", CONCOLOR_RED); 
         return; 
      } 
      DoWarp(LastY, LastX, LastZ); 
      return; 
      } else if (!stricmp(command,"dir")) { 
      if (Y[0]==0) { 
         WriteChatColor("You MUST provide <dist> if going in your current direction.", CONCOLOR_RED); 
         return; 
      } 
      FLOAT angle = (FLOAT)((pChar->Heading)*0.0123); 
      FLOAT dissafegoto = (FLOAT)atof(Y); 
      DoWarp(pChar->Y + (FLOAT)(dissafegoto * cos(angle)), pChar->X + (FLOAT)(dissafegoto * sin(angle)), pChar->Z); 
      return; 
                } 
//////Waypoint//////////
   { 
      char szLoc[MAX_STRING] = {0}; 
      char szName[MAX_STRING] = {0}; 
      char WaypointsINI[MAX_STRING] = {0}; 
      char szBuf[MAX_STRING] = {0};
      char szHeading[MAX_STRING] = {0};
      char szDestWarpX[MAX_STRING] = {0}; 
      char szDestWarpY[MAX_STRING] = {0}; 
      char szDestWarpZ[MAX_STRING] = {0}; 
      char szMsg[MAX_STRING] = {0}; 


      sprintf(WaypointsINI,"%s\\waypoints.ini",gszINIPath); 
      GetArg(szName, szLine, 2); 

      if(!strnicmp(szName, "", 1)) 
      { 
         WriteChatColor("You didn't specify a waypoint.", COLOR_LIGHTGREY); 
      } 
      else 
      { 
         GetPrivateProfileString(Zone->ShortName,szName,"",szLoc,MAX_STRING,WaypointsINI); 
          
         if (!strnicmp(szLoc, "", 1)) 
         { 
            sprintf(szMsg, "Waypoint \'%s\' does not exist.", szName); 
            WriteChatColor(szMsg, COLOR_LIGHTGREY); 
         } 
         else 
         { 
            // get destination locs 
            GetArg(szDestWarpX, szLoc, 2); 
            GetArg(szDestWarpY, szLoc, 1); 
            GetArg(szDestWarpZ, szLoc, 3); 
             
            // get heading 
            GetArg(szBuf, szLoc, 4); 
            GetArg(szHeading,szBuf,1,0,0,0,':'); 
			DoWarp((float)atof(szDestWarpY), (float)atof(szDestWarpX), (float)atof(szDestWarpZ));
            } 
			}
         } 
//////Waypoint end/////////
   } 
} 


VOID DoWarp(float y, float x, float z) 
{ 

        PZONEINFO Zone = (PZONEINFO)pZoneInfo; 
   float SafeY = Zone->SafeYLoc; 
   float SafeX = Zone->SafeXLoc; 
   float SafeZ = Zone->SafeZLoc; 

   Zone->SafeYLoc = y; 
   Zone->SafeXLoc = x; 
   Zone->SafeZLoc = z; 

   CHAR szMsg[MAX_STRING] = {0}; 
   sprintf(szMsg, "Warping to: %3.2f, %3.2f, %3.2f.", Zone->SafeYLoc, Zone->SafeXLoc, Zone->SafeZLoc); 
   WriteChatColor(szMsg, COLOR_PURPLE); 

   DWORD MLPTSC = CDisplay__MoveLocalPlayerToSafeCoords; 
   __asm call dword ptr [MLPTSC]; 

   Zone->SafeYLoc = SafeY; 
   Zone->SafeXLoc = SafeX; 
   Zone->SafeZLoc = SafeZ; 
} 
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; 
} 

VOID doFade(PSPAWNINFO pChar, PCHAR szLine) {
	
	PCHARINFO pCharInfo = GetCharInfo();
	PZONEINFO Zone = (PZONEINFO)pZoneInfo; 
	int nZoneID = 0;
	nZoneID = GetZoneID(Zone->ShortName);
	
	pCharInfo->ZoneBoundId = nZoneID;
    pChar->pCharInfo->ZoneBoundY = 0;
	pChar->pCharInfo->ZoneBoundX = 0;
	pChar->pCharInfo->ZoneBoundZ = 0; 
    WriteChatColor("Fading Memories.", 
COLOR_PURPLE);
	
	
    pChar->Type = SPAWN_CORPSE;

}
VOID waypoint(PSPAWNINFO pChar, PCHAR szLine) 
{ 
   PZONEINFO Zone = (PZONEINFO)pZoneInfo; 
   CHAR WaypointsINI[MAX_STRING] = {0}; 
   CHAR szTemp[10] = {0}; 
   CHAR szData[MAX_STRING] = {0}; 
   CHAR szDesc[MAX_STRING] = {0}; 
   CHAR szName[MAX_STRING] = {0}; 
   CHAR szCommand[MAX_STRING] = {0}; 
   CHAR szBuffer[MAX_STRING] = {0}; 
   CHAR szMsg[MAX_STRING] = {0}; 
   CHAR WaypointList[MAX_STRING*10] = {0}; 
   PCHAR pWaypointList = WaypointList; 
   CHAR szKey[MAX_STRING] = {0}; 
   CHAR szValue[MAX_STRING] = {0}; 

   sprintf(WaypointsINI,"%s\\waypoints.ini",gszINIPath); 
    
   GetArg(szCommand, szLine, 1); 

   if (!strnicmp(szCommand, "add", 3)) 
   { 
      GetArg(szName, szLine, 2); 
       
      if(!strnicmp(szName, "", 1)) 
      { 
         WriteChatColor("You didn't specify a name for the waypoint.", COLOR_LIGHTGREY); 
      }          
      else 
      { 
         GetPrivateProfileString(Zone->ShortName,szName,"",szBuffer,MAX_STRING,WaypointsINI); 

         if (!strnicmp(szBuffer, "", 1)) 
         { 
            GetArg(szDesc, szLine, 3); 
             
            sprintf(szData, "%1.2f %1.2f %1.2f %1.2f:%s", pChar->Y, pChar->X, pChar->Z, (float)pChar->Heading*0.703125f, szDesc); 
            WritePrivateProfileString(Zone->ShortName,szName,szData,WaypointsINI); 
            sprintf(szMsg, "Waypoint \'%s\' added.", szName); 
            WriteChatColor(szMsg, COLOR_LIGHTGREY); 
         } 
         else 
         { 
            sprintf(szMsg, "Waypoint \'%s\' already exists.", szName); 
            WriteChatColor(szMsg, COLOR_LIGHTGREY); 
         } 
      } 
   } 
   else if (!strnicmp(szCommand, "delete", 6)) 
   { 
      GetArg(szName, szLine, 2); 
       
      if(!strnicmp(szName, "", 1)) 
      { 
         WriteChatColor("You didn't specify a waypoint to delete.", COLOR_LIGHTGREY); 
      }          
      else 
      { 
         GetPrivateProfileString(Zone->ShortName,szName,"",szBuffer,MAX_STRING,WaypointsINI); 

         if (!strnicmp(szBuffer, "", 1)) 
         { 
            sprintf(szMsg, "Waypoint \'%s\' does not exist.", szName); 
            WriteChatColor(szMsg, COLOR_LIGHTGREY); 
         } 
         else 
         { 
            WritePrivateProfileString(Zone->ShortName,szName,"",WaypointsINI); 
          
            // rewrite the section minus the deleted waypoint 
            GetPrivateProfileSection(Zone->ShortName,WaypointList,MAX_STRING*10,WaypointsINI)    ; 
            WritePrivateProfileSection(Zone->ShortName,"",WaypointsINI); 
            pWaypointList = WaypointList; 
                         
            while (pWaypointList[0]!=0) 
            { 
               GetArg(szKey,pWaypointList,1,0,0,0,'='); 
               GetArg(szValue,pWaypointList,2,0,0,0,'='); 
               if (strnicmp(szValue, "", 1)) 
               { 
                  WritePrivateProfileString(Zone->ShortName,szKey,szValue,WaypointsINI); 
               } 
               pWaypointList+=strlen(pWaypointList)+1; 
            } 

            sprintf(szMsg, "Waypoint \'%s\' deleted.", szName); 
            WriteChatColor(szMsg, COLOR_LIGHTGREY); 
         } 
      } 
   } 
   else if (!strnicmp(szCommand, "list", 4)) 
   { 
      GetPrivateProfileSection(Zone->ShortName,WaypointList,MAX_STRING*10,WaypointsINI)    ; 
      pWaypointList = WaypointList; 

      sprintf(szMsg, "Waypoints for %s", Zone->LongName); 
      WriteChatColor(szMsg, CONCOLOR_YELLOW); 
       
      while (pWaypointList[0]!=0) 
      { 
         GetArg(szName,pWaypointList,1,0,0,0,'='); 
         GetArg(szData,pWaypointList,2,0,0,0,'='); 
         GetArg(szDesc,szData,2,0,0,0,':'); 
          
         if (strnicmp(szDesc,"",1)) 
         { 
            sprintf(szMsg, "- %s   ( %s )", szName, szDesc); 
         } 
         else 
         { 
            sprintf(szMsg, "- %s", szName); 
         } 
         WriteChatColor(szMsg, COLOR_LIGHTGREY); 
         pWaypointList+=strlen(pWaypointList)+1; 
      } 
   } 
   else 
   { 
      WriteChatColor("Invalid syntax.  Usage:", COLOR_LIGHTGREY); 
      WriteChatColor("/waypoint add name", COLOR_LIGHTGREY); 
      WriteChatColor("/waypoint delete name", COLOR_LIGHTGREY); 
      WriteChatColor("/waypoint list", COLOR_LIGHTGREY); 
   } 
} 
PLUGIN_API VOID InitializePlugin(VOID) 
{ 
   AddCommand("/warp",Warp); 
   AddCommand("/zwarp",zWarp); 
   AddCommand("/exactloc",ExactLocation);
   AddCommand("/zone",ZoneShift); 
   AddCommand("/gate",GateBind); 
   AddCommand("/fade",doFade);
   AddCommand("/waypoint", waypoint);
} 


PLUGIN_API VOID ShutdownPlugin(VOID) 
{ 
   DebugSpewAlways("Shutting down MQ2RWarp"); 
   RemoveCommand("/warp"); 
   RemoveCommand("/exactloc"); 
   RemoveCommand("/zwarp");
   RemoveCommand("/gate"); 
   RemoveCommand("/zone");
   RemoveCommand("/fade");
   RemoveCommand("/waypoint");
}

//////////////////////////////////////////////
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
0x447F4A 6/29

//////////////////////////////////////////////
in eqdata.h replace
/* 0x12e0 */ BYTE Unknown0x12e0[0x14ec-0x12e0];
with
/* 0x12e0 */ BYTE Unknown0xfd8[0x200];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];
/////////////////////////////////^^^^^This offset always the same?^^^^

mq2commandapi.cpp and remove

if (!stricmp(Command,"/warp"))
{
Function=0;
}
/////////////////////////////////////////////////////
 
Last edited:
Re: MQ2RWarp 6/1/05

what are the commands for rwarp /warp target does not work for me
 
Re: MQ2RWarp 6/1/05

Usage: /warp <succor|last|loc <y x z>|dir <dist>| target|wp name>

Be sure to remove this section of code in the MQ2Commandapi.h

Rich (BB code):
if (!stricmp(Command,"/warp"))
{
Function=0;
}
 
Re: MQ2RWarp 6/1/05

u got a compiled version of mq2 already? if so u can just ask someone to compile just the plugin =)
 
Re: MQ2RWarp 6/1/05

Just wanted to say Great job on this Riddlerr ;)

I am currently offering your first MQ2Rwarp version but with my next compile I will be moving this one.
 
Re: MQ2RWarp 6/1/05

just curious, but what is the difference, or what are the differences from this warp and the one that is copiled with the mq2 i got from here with my auth codes? Just wondering cause the warp I have is working good.
 
Re: MQ2RWarp 6/1/05

this plugin has warp, zone and fade 3 very nice plugins all in one
 
Re: MQ2RWarp 6/1/05

Yes, i personally like have everything in one. make complieing alot easyer. less crap you have to do etc. Iam glad to hear that you will be using mine soul. nice that its getting used. I basiclly just took siddin's code. changed a little bit of stuff. added the fade and waypoint to the zone/warp part that i had before and this is the final outcome.

this plugin is really no differance than any of the other warp plugins that are out there now. it removes most if not all ( that can be done inside the plugin) of the crap code the devs put in.
only thing that iam not to sure about is the offset that is in
in eqdata.h replace
/* 0x12e0 */ BYTE Unknown0x12e0[0x14ec-0x12e0];
with
/* 0x */ BYTE Unknown0xfd8[0x1f8];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];
iam not to good will offsets and not sure how to find and replace them for the next eqgame.exe. hopeing that siddin will update his and that can be used in this code. or anyone willing to explain via email/pm let me know and ill update this :) but other than that. i feel this is damn near perfect as it is. Props go to siddin for the orginal code of his warp/zone plugins.
 
Re: MQ2RWarp 6/1/05

////////////////////////////////////////////// in eqdata.h replace /* 0x12e0 */ BYTE Unknown0x12e0[0x14ec-0x12e0 said:
;
with
/* 0x */ BYTE Unknown0xfd8[0x1f8];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];
]
 
Re: MQ2RWarp 6/1/05

riddler said:
in eqdata.h replace
/* 0x12e0 */ BYTE Unknown0x12e0[0x14ec-0x12e0];
with
/* 0x */ BYTE Unknown0xfd8[0x1f8];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];

think this offset is wrong warp works fine but the /zone functions /fade functions either gate you or ctd. I am using a unofficial version of mq2 with all the def and antiwarp/zoneing coding removed have been using a similar plugin since the 5/21 mq2 release worked fine with that one untill the 5/26 came out then those above mentioned features were busted. /gate gates you to bind so im assuming that zonebound id loc moved slightly from 0x14d8 in the struct. Hopefully sid soul tone red or cronic can help update.
 
Re: MQ2RWarp 6/1/05

I will try my best to learn how to find atleast these 3 offsets. but haveing learned codeing only from mq i will be the first to admit to being a noob.
i currently still use the 5/25 release, and everthing works perfectly fine. going to download 5/26 my self here now and see what i come up with.
 
Re: MQ2RWarp 6/1/05

I currently use the 5/25 Release and everything works fine. saw no reason to update to 5/26 but ill look into it
 
Re: MQ2RWarp 6/1/05

Ok just tested with the offical release of 5/26 with RWarp the only plugin other than what comes with it. and everything is working...

Iam really not sure what your problems are :(. saying its not working is not much help.. be sure to do the following..

//////////////////////////////////////////////
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
0x444C21 5/17

//////////////////////////////////////////////
in eqdata.h replace
/* 0x12e0 */ BYTE Unknown0x12e0[0x14ec-0x12e0];
with
/* 0x */ BYTE Unknown0xfd8[0x1f8];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];
/////////////////////////////////^^^^^This offset always the same?^^^^

mq2commandapi.cpp and remove

if (!stricmp(Command,"/warp"))
{
Function=0;
}
/////////////////////////////////////////////////////


if you do not do this. then it will NOT work. there is nothing else you have to change but that..
 
Re: MQ2RWarp 6/1/05

EQData.h should look like..
Rich (BB code):
/*0x1e8*/   FLOAT   ZoneExpModifier;    //This has been nerfed ..now reads 1.0 for all zones
/*0x1ec*/   FLOAT SafeYLoc; 
/*0x1f0*/   FLOAT SafeXLoc; 
/*0x1f4*/   FLOAT SafeZLoc;
/*0x1f8*/   FLOAT   Ceiling;
and
Rich (BB code):
/* 0x1024 */   SPELLBUFF  ShortBuff[0x23];
/* 0x */       BYTE       Unknown0xfd8[0x1f8]; 
/* 0x14d8 */   DWORD      ZoneBoundId; 
/* 0x14dc */   BYTE       field_0x14dc[0x10];  
/* 0x14ec */   FLOAT      ZoneBoundY;   
/* 0x14f0 */   BYTE       field_0x14f0[0x10];
MQ2Main.h should look like..
Rich (BB code):
//EQLIB_API VOID        SuperWhoDisplay         (PSPAWNINFO pChar, PSEARCHSPAWN pFilter, PSPAWNINFO psTarget, WORD Padding = 0, DWORD Color = 0);
#define CDisplay__MoveLocalPlayerToSafeCoords 0x444C21
EQLIB_API FLOAT       DistanceToSpawn3D       (PSPAWNINFO pChar, PSPAWNINFO pSpawn);

MQ2CommandAPI.cpp should look like
Rich (BB code):
	pCommand->EQ=EQ;
	pCommand->Parse=Parse;
	pCommand->Function=Function;
	pCommand->InGameOnly=InGame;

this is what they should all look like after you take out/replace the code posted on my post above
 
Re: MQ2RWarp 6/1/05

think this offset is wrong warp works fine but the /zone functions /fade functions either gate you or ctd. I am using a unofficial version of mq2 with all the def and antiwarp/zoneing coding removed have been using a similar plugin since the 5/21 mq2 release worked fine with that one untill the 5/26 came out then those above mentioned features were busted. /gate gates you to bind so im assuming that zonebound id loc moved slightly from 0x14d8 in the struct. Hopefully sid soul tone red or cronic can help update.
this is not designed for the modified source code. everything is either in the plugin itself. or the 4 things you have to change yourself. so use the offical release and JUST do the changes that i have posted..
 
Re: MQ2RWarp 6/1/05

Compiling...
MQ2Rwarp.cpp
EQLIB_IMPORTS
MQ2Rwarp.cpp(173) : error C2039: 'SafeYLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(174) : error C2039: 'SafeXLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(175) : error C2039: 'SafeZLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(177) : error C2039: 'SafeYLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(178) : error C2039: 'SafeXLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(179) : error C2039: 'SafeZLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(182) : error C2039: 'SafeYLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(182) : error C2039: 'SafeXLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(182) : error C2039: 'SafeZLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(188) : error C2039: 'SafeYLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(189) : error C2039: 'SafeXLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(190) : error C2039: 'SafeZLoc' : is not a member of 'EQData::_ZONEINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(1198) : see declaration of 'EQData::_ZONEINFO'
MQ2Rwarp.cpp(207) : error C2039: 'ZoneBoundId' : is not a member of 'EQData::_CHARINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(602) : see declaration of 'EQData::_CHARINFO'
MQ2Rwarp.cpp(223) : error C2039: 'ZoneBoundId' : is not a member of 'EQData::_CHARINFO'
c:\Documents and Settings\HAROLD SHERIDAN\My Documents\macroquest\MQ2Main\EQData.h(602) : see declaration of 'EQData::_CHARINFO'

using the source code from mq2 ad thisd is what i get when i try to compile rwar
 
Re: MQ2RWarp 6/1/05

looks like you forgot to make the changes that are needed in the EQdata.h file
 
Re: MQ2RWarp 6/1/05

Umm I didn't know what fade did and gave it a try like a dumb ass hehe :-P
then i remembered fading memories aa. It just sent me back to the spot i was at. Maybe it wont let you do it if your not the right level to get the aa. Hope my account doesnt get banned. Will let you know if it does. Warp worked havent tried zone or gate yet, too parinoid hehe :-P
 
Re: MQ2RWarp 6/1/05

Fade acts as. ( best way i can describ it) as a dru/wiz succor that does not take you to safe point of the zone. it zone you in the same spot that you hit it. usefull say if you have agro and dont want to train someone, raid is about to wipe and you can get to a safe spot and /fade and it will zone you in the same spot. just clears you of the agro. be sure to NOT use this in an instanced zone. it will crash you to server select.
 
Re: MQ2RWarp 6/1/05

How this good plugin work in MQ2-20050702
THX sooooooooooooooo much for fix this plugin .. /bow
 
Re: MQ2RWarp 6/1/05

New version released today, cant wait fir the mass compile so i can star 3 boxing again 8)
 
Re: MQ2RWarp 6/1/05

Updated MQMain.h with the new offset 0x00447F4A, made all chages listed above. Double checked EQData.H for addition of:
/* 0x */ BYTE Unknown0xfd8[0x1f8];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];

Tested in game,
Warp Target (WORKS)
Warp Loc (WORKS)
Warp WP (WORKS)
WARP SUCCOR (WORKS)
WARP DIR (WORKS)
GATE (WORKS)
WAYPOINT LIST | ADD | DELETE (WORKS)

EAXACTLOC (UNTESTED)
ZWARP (UNTESTED)

FADE (BROKEN) takes you to bind
ZONE (BROKEN) takes you to bind

Any sugesstions for getting ZONE and FADE working?
 
Re: MQ2RWarp 6/1/05

/* 0x */ BYTE Unknown0xfd8[0x1f8];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];

needs to be updated to

/* 0x12e0 */ BYTE Unknown0xfd8[0x200];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];
 
Re: MQ2RWarp 6/1/05

I get the following Errors When Compiling a Batch Build with the rest of my Macroquest Plugins.

Any ideas how to sort it? :-) Cheers in Advance.

Rich (BB code):
Compiling...
MQ2Rwarp.cpp
C:\MacroQuest\MQ2Rwarp\MQ2Rwarp.cpp(89) : error C2143: syntax error : missing ';' before 'constant'
C:\MacroQuest\MQ2Rwarp\MQ2Rwarp.cpp(185) : error C2143: syntax error : missing ';' before 'constant'
Error executing cl.exe.
 
Thanks Riddlerr,
Thats what I was missing, works great now. No problems with the compile using the supplied instructions above and the MQ2 dev release dated 7-2-05.
 
what does this message mean when building? ive gotten these things working before, when i did it last time, but im definitely new. I remember seeing this before and dont remember how i got around it

LINK : fatal error LNK1104: cannot open file "detours.lib"
Error executing link.exe.
 
doctabooboo said:
what does this message mean when building? ive gotten these things working before, when i did it last time, but im definitely new. I remember seeing this before and dont remember how i got around it

LINK : fatal error LNK1104: cannot open file "detours.lib"
Error executing link.exe.

I had that problem on a plugin awhile back when I was trying to compile with alot of modified files in my MQ2 folder. What worked for me was just downloading and extracting MQ2 to a fresh folder, then compiling MQ2 then plugin without changing anything.
Well guess for this plugin have to do some of the warp changes to MQ2main and what not, but might wanna try using a new MQ2 Folder, some modified files or old files might be fucking with ya.
 
My guess woulld be that you deleted all the compiled crap files from your release and added that with it.. ive done this before also. So just download a fresh MQ2 702c atm. and start over.
 
I had probs getting this working. I had compiled mq2splooge before and got that working fine in the past. Ever since this patch i just cant get warp to work. I finally downloaded the multiuser compile with auth check removed. MQ2 works great then, straight off download, but if i try to warp (after /plugin mq2rwarp) my HD just churns a whole lot and drops me to desktop. So, i tried a couple more times to recompile a working /warp without success. So, what i tried last is to use the working mq2 i had downloaded and take the mq2rwarp.dll from soultakers file and use that....drops me to desktop. Why am i having this problem? Both computers have the same problem so is there a setting in EQ that i have to set? I changed those files that were needed to change pre-compile...and those shouldnt even be relevant for the no auth download that seems to work. Damn this last patch to hell.

Thanks in advance for any ideas.
Doc
 
you have used the precomiled ones with my warp in it, and it still does not work?
 
post the compiles error that you get. just saying its not working, does not help me out :(.
 
ok, trying to use precompile. Download> load eq > run mq2 > /tar anymob > /warp target.....computer churns and crash to desktop.

replace mq2rwarp.dll with the one that someone else linked a couple times (precompiled dll). plugin mq2rwarp.dll...plugin loads fine (same as above) and same as above, crashes to desktop.

Follow instructions on cadawens instructions to make a plugin (very helpful ty btw). plugin made (before compiling and on brand new freshly downloaded and unzipped and after altering those 3 files per the first post). Add plugin to project and batch build the entire thing. builds great, but never gives option to compile. So, i assume that since it built and will execute without errors it is fine. It loads in eq in its own little normal chat window. /plugin mq2rwarp loads, but crashes to the desktop when /tar anymob, /warp target.

ok, so now i take the precompiled (other person's compile that people download here) and replace the mq2rwarp.dll that comes with it with my own mq2rwarp.dll. same deal.

when i changed those first files pre-vs6 opening on the latest downloads of it, a few of those numbers were different in one of the files...not the first number *01Xblahblah* but the value after that. and it was only slightly off. I looked for other strings that matched up perfectly but they werent matching to what you had. could that be it? when it all matched up great the first day that you guys had this up it didnt work for me then either.

this is how i understand how to do this. download mq2 source. hit mq2auth.exe. change files for warp to work (eqdata.h etc). make plugin through dos and replace the dll with source dll for warp in windows notepad. add to project and build all together in batch build? mq2 loads and runs for everything i need except warp creating in this manner. What am i messing up?

thanks for any help. I really have learned a lot, at least, trying to get this working...thanks again.

DOC
 
OK, so i used smokinhot's 16 plugin download and it works fine for me. I am still very interested in what im doing wrong. When i was old enough to hold my own dick and aim at the toilet without help it was much better. I'd love to be able to do this stuff without waiting for others and experiment until i figure it out. If you could just give me a clue or general direction to what i was doing wrong i'd appreciate it.

DOC
 
//////////////////////////////////////////////
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
0x444C21 5/17

//////////////////////////////////////////////
in eqdata.h replace
/* 0x12e0 */ BYTE Unknown0x12e0[0x14ec-0x12e0];
with
/* 0x12e0 */ BYTE Unknown0xfd8[0x200];
/* 0x14d8 */ DWORD ZoneBoundId;
/* 0x14dc */ BYTE field_0x14dc[0x10];
/////////////////////////////////^^^^^This offset always the same?^^^^

mq2commandapi.cpp and remove

if (!stricmp(Command,"/warp"))
{
Function=0;
}
/////////////////////////////////////////////////////

You did this correct? not JUST the eqdata.h part. of course use the new offset its posted here
 
MQ2RWarp 7/1/05

Users who are viewing this thread

Back
Top
Cart