• 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

Mq2UltraWarp

What do you think of plugin?


  • Total voters
    25
  • Poll closed .

shroomheadofmarbles

New member
Joined
Apr 5, 2005
RedCents
created by shroomhead with credit given to siddin for warp source
requires same fixes that rwarp does

commands
"/nokos"
"/fade"
"/warp"
"/zwarp"
"/exactloc"
"/zone"
"/gate"

Its warp zone fade and nokos all in one nokos is for times when warp isnt safe Enjoy it!

please post any comments and bugs if any :cool:

Due to high potential for abuse of nokos (like ghosting) I will not post open source
 
Last edited:
//all source but nokos
#include "../MQ2Plugin.h"



PreSetup("MQ2Ultrawarp");
#undef CDisplay__MoveLocalPlayerToSafeCoords
#define CDisplay__MoveLocalPlayerToSafeCoords 0x00447F4A
#undef ZoneBoundID
#undef fade
#undef ExactLocation
#undef exactloc
#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, PCHAR szLine);
VOID Fade(PSPAWNINFO pChar, PCHAR szLine);
VOID GateBind(PSPAWNINFO, PCHAR);
VOID ZoneShift(PSPAWNINFO pChar, PCHAR szLine);

VOID NoKos (PSPAWNINFO, PCHAR);

PLUGIN_API VOID InitializePlugin(VOID)
{
DebugSpewAlways("Initializing MQ2Ultrawarp");
AddCommand("/nokos",NoKos);
AddCommand("/fade",Fade);
AddCommand("/warp",Warp);
AddCommand("/zwarp",zWarp);
AddCommand("/exactloc",ExactLocation);
AddCommand("/zone",ZoneShift);
AddCommand("/gate",GateBind);

WriteChatColor("Ultrawarp with NoKos Enjoy!", CONCOLOR_GREEN);





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




RemoveCommand("/nokos");
WriteChatColor("Thanks for using Ultrawarp with NoKos", CONCOLOR_GREEN);
}

//Fade portion
VOID Fade(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;

}

//Warp portion
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
) {
WriteChatColor("Usage: /warp <succor|last|loc <y x z>|dir <dist>| target>", 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;
}
}
}


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;
}



// Zone portion
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;
}



//NoKOS
//source to this is nonpublic sorry :(
 
Just wondering, how does your nokos handle the packet that is believed to be used to detect hacking?
 
What exactly is nokos If I may ask. Never seen that one mentioned. I'll try this out when I get home.
 
hmmm i tired it i like it. only one suggestions tho as part of your nokos function could you add the ability to loot a corpse while nokos is active?
 
The original "nokos" hack involved changing your spawn id locally so that your movement packets registerred as invalid with the server and were tossed out, effictively holding you in place on the server while you moved on the client. Last I heard, SoE updated the code to disconnect you if you sent a movement packet with any id other than your own, so I am curious how this works. The only code I have seen that doesn't simply modify your spawn id is my code (or works based upon it), so I'm semi-suspicious.

Oh well, not like it matters.

cronic
 
Though I haven't tried this myself yet, I have a feeling that this nokos is just ghosting since you aren't able to loot (according to cybris).
 
I know that it has been beaten into the ground already, but for many of us no source = won't even try it out. I also know that many people don't care about being able to view the source. These are the same people that are relying on others to do the compiling, and wouldn't know what to do with the source if it were given to them*. Being that I am not one of those people and actually look over the source for all plugins that I use, I choose not to blindly trust that this or any pre-compiled plugin is kosh.

/rant off

*note: I am not trying to talk shit about people that can't compile for themselves. There are things that I do not know how to do, but would love to learn (*cough* macros). I do wish that these people would learn how to do things over having others do it for them. Untill then, I am always willing to give people any help they need if I know about it.
 
agentno4 said:
I know that it has been beaten into the ground already, but for many of us no source = won't even try it out. I also know that many people don't care about being able to view the source. These are the same people that are relying on others to do the compiling, and wouldn't know what to do with the source if it were given to them*. Being that I am not one of those people and actually look over the source for all plugins that I use, I choose not to blindly trust that this or any pre-compiled plugin is kosh.

/rant off

*note: I am not trying to talk shit about people that can't compile for themselves. There are things that I do not know how to do, but would love to learn (*cough* macros). I do wish that these people would learn how to do things over having others do it for them. Untill then, I am always willing to give people any help they need if I know about it.

HUH? Check your /babble filter off
 
Nokos, is kinda stanged to me. I got hit by a mob's AE and I tried to heal myself and It wouldnt let me. I died , and then it said something about me dueling myself. Is this the way the nokos plugin was intended ?


Anbody have an answer for this?????

Thanks
 
Last edited by a moderator:
Nokos, is kinda stanged to me. I got hit by a mob's AE and I tried to heal myself and It wouldnt let me. I died , and then it said something about me dueling myself. Is this the way the nokos plugin was intended ?


Anbody have an answer for this?????

Thanks

Hmmm, was this plugin updated with the new patch? If not, that might be your problem
 
Is there a new update for this ? I dont think I have seen that one come out yet?
 
Give an update for this please??????

Currently , when i load MQ2ultrawarp this is what happens.

I make myslelf /nokos and it works , BUT when i make myself mortal type /nokos again then try to make myself /nonkos again it does not work and says the following message "Making you mortal" . I think we need an update for this plugin. can someone please post it.
Thanks
 
temp said:
Nokos, is kinda stanged to me. I got hit by a mob's AE and I tried to heal myself and It wouldnt let me. I died , and then it said something about me dueling myself. Is this the way the nokos plugin was intended ?


Anbody have an answer for this?????

Thanks

nokos makes the zone think that ur at the loc u /nokos at.. meaning if u try to heal it will not work... you are, if u think about it, it 2 locations at once... when u are infact seperate from your body.. only nokos and denokos in safe locations
 
Mq2UltraWarp

Users who are viewing this thread

Back
Top
Cart