• 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 --->

nokos version of Ghost? (1 Viewer)

Cybris

Old Timer
Joined
Jun 23, 2005
RedCents
2,587¢
anyone have the source for a working version of the nokos version of ghost?
tried fixing an older version i had but all it did was rubberband me back to strating point.
 
The way to fix it is you have to send the starting loc packet (The loc from where you started /ghost on) every 10 seconds or so or it will bounce you back. and just keep the current player loc from being sent to the server.
 
here is the code that i have but i'm not sure what changes to make to get it to work right.

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

PreSetup("MQ2NoKos"); 
#undef SafeYLoc
#undef SafeXLoc
#undef SafeZLoc
#define CDisplay__MoveLocalPlayerToSafeCoords 0x45ED20
VOID GhostCommand(PSPAWNINFO pChar, PCHAR szLine);
VOID GhostReturn(float y, float x, float z);

float GhostReturnY;
float GhostReturnX;
float GhostReturnZ;
bool IsGhosting;

VOID GhostCommand(PSPAWNINFO pChar, PCHAR szLine)
{
	static DWORD SpawnID;
	if((!strcmp(szLine,"on")) && (GetCharInfo()->pSpawn->SpawnID != 0))
	{
		GhostReturnY = GetCharInfo()->pSpawn->Y;
		GhostReturnX = GetCharInfo()->pSpawn->X;
		GhostReturnZ = GetCharInfo()->pSpawn->Z;
		pTarget = NULL;
		SpawnID = GetCharInfo()->pSpawn->SpawnID;
		GetCharInfo()->pSpawn->SpawnID = 0;
		WriteChatColor("You are now ghosting.",COLOR_PURPLE);
	       IsGhosting = true;
         }
	if(!strcmp(szLine,"off"))
	{
		pTarget = NULL;
		GetCharInfo()->pSpawn->SpawnID = SpawnID;
		WriteChatColor("You are no longer ghosting.",COLOR_PURPLE);
	        IsGhosting = false;
        }
    if(!strcmp(szLine,"return"))
    {
    
	pTarget = NULL;
	GetCharInfo()->pSpawn->SpawnID = SpawnID;
	GhostReturn(GhostReturnY, GhostReturnX, GhostReturnZ);
	IsGhosting = false;
        }
	
        if((!strcmp(szLine,"on")) && (IsGhosting = true))
	{
		WriteChatColor("You are already ghosting!",CONCOLOR_YELLOW);
	}
     }

VOID GhostReturn(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, "Returning back to: %3.2f, %3.2f, %3.2f.", Zone->SafeYLoc, Zone->SafeXLoc, Zone->SafeZLoc); 
   WriteChatColor(szMsg, CONCOLOR_YELLOW); 

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

   Zone->SafeYLoc = SafeY; 
   Zone->SafeXLoc = SafeX; 
   Zone->SafeZLoc = SafeZ; 
}
PLUGIN_API VOID InitializePlugin(VOID) 
{ 
 AddCommand("/ghost",GhostCommand);
}

PLUGIN_API VOID ShutdownPlugin(VOID) 
{ 
 RemoveCommand("/ghost");
}
 
Requirements:

Making sure that "SafeXLoc (Y & Z included)" are changed to the unknown so that its one less speedbump to fix.
Making sure that you're returning correctly to where you ghosted.
Making sure that you're monitoring the movement packets correctly so that you don't trigger a flag.
Include Heading.
 
nokos version of Ghost?

Users who are viewing this thread

Back
Top