hiphopototomis
New member
- Joined
- Sep 12, 2004
- RedCents
- 0¢
Hey all i have a working mq2 for it but anyone ahve cool plugs or docrack ini sutff?
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.

#include "../MQ2Plugin.h"
PreSetup("MQ2Warp");
VOID Warp(PSPAWNINFO pChar,PCHAR szLine)
{
DWORD SuccorFunc = 0x0043437B;
CHAR szBuffer[MAX_STRING] = {0};
CHAR Arg1[MAX_STRING] = {0};
CHAR Arg2[MAX_STRING] = {0};
CHAR Arg3[MAX_STRING] = {0};
PZONEINFO ZoneInfo = (PZONEINFO)pZoneInfo;
FLOAT SaveSafeX = ZoneInfo->SafeXLoc;
FLOAT SaveSafeY = ZoneInfo->SafeYLoc;
FLOAT SaveSafeZ = ZoneInfo->SafeZLoc;
PSPAWNINFO MyTarget = NULL;
bool WARPREADY = 0;
if (szLine[0] == 0) {
WriteChatColor("Usage: /warp t(arget) (n|s|e|w) (distance) || s(afepoint) || g(ate) || x y z",USERCOLOR_DEFAULT);
return;
}
GetArg(Arg1,szLine,1,false);
GetArg(Arg2,szLine,2,false);
GetArg(Arg3,szLine,3,false);
if(*Arg1 || (*Arg1 && *Arg2 && *Arg3)) {
if(!strcmp(Arg1,"g") || !strcmp(Arg1,"gate")) {
WriteChatColor ("Gating...",CONCOLOR_RED);
pChar->Type = 3;
}
if(!strcmp(Arg1,"t") || !strcmp(Arg1,"target")) {
// marker
// if (ppTarget && pTarget) {
// (PSPAWNINFO)pTarget = ppTarget;
// }
if (!pTarget) {
WriteChatColor("You must have a target selected for /warp t(arget) to work.",CONCOLOR_RED);
return;
}
if (!*Arg2 && !*Arg3) {
ZoneInfo->SafeXLoc = ((PSPAWNINFO)pTarget)->X;
ZoneInfo->SafeYLoc = ((PSPAWNINFO)pTarget)->Y;
ZoneInfo->SafeZLoc = ((PSPAWNINFO)pTarget)->Z;
sprintf(szBuffer,"Warping to %s, %.2f, %.2f, %.2f",((PSPAWNINFO)pTarget)->Name,((PSPAWNINFO)pTarget)->X,((PSPAWNINFO)pTarget)->Y,((PSPAWNINFO)pTarget)->Z);
WriteChatColor(szBuffer,CONCOLOR_RED);
WARPREADY=1;
}
if (!strcmp(Arg2,"w") && *Arg3) {
ZoneInfo->SafeXLoc = (((PSPAWNINFO)pTarget)->X + (float)atof(Arg3));
ZoneInfo->SafeYLoc = ((PSPAWNINFO)pTarget)->Y;
ZoneInfo->SafeZLoc = ((PSPAWNINFO)pTarget)->Z;
sprintf(szBuffer,"Warping to %s, %.2f, %.2f, %.2f",((PSPAWNINFO)pTarget)->Name,(((PSPAWNINFO)pTarget)->X + (float)atof(Arg3)),((PSPAWNINFO)pTarget)->Y,((PSPAWNINFO)pTarget)->Z);
WriteChatColor(szBuffer,CONCOLOR_RED);
WARPREADY=1;
}
if (!strcmp(Arg2,"e") && *Arg3) {
ZoneInfo->SafeXLoc = (((PSPAWNINFO)pTarget)->X - (float)atof(Arg3));
ZoneInfo->SafeYLoc = ((PSPAWNINFO)pTarget)->Y;
ZoneInfo->SafeZLoc = ((PSPAWNINFO)pTarget)->Z;
sprintf(szBuffer,"Warping to %s, %.2f, %.2f, %.2f",((PSPAWNINFO)pTarget)->Name,(((PSPAWNINFO)pTarget)->X - (float)atof(Arg3)),((PSPAWNINFO)pTarget)->Y,((PSPAWNINFO)pTarget)->Z);
WriteChatColor(szBuffer,CONCOLOR_RED);
WARPREADY=1;
}
if (!strcmp(Arg2,"n") && *Arg3) {
ZoneInfo->SafeXLoc = ((PSPAWNINFO)pTarget)->X;
ZoneInfo->SafeYLoc = (((PSPAWNINFO)pTarget)->Y + (float)atof(Arg3));
ZoneInfo->SafeZLoc = ((PSPAWNINFO)pTarget)->Z;
sprintf(szBuffer,"Warping to %s, %.2f, %.2f, %.2f",((PSPAWNINFO)pTarget)->Name,((PSPAWNINFO)pTarget)->X,(((PSPAWNINFO)pTarget)->Y + (float)atof(Arg3)),((PSPAWNINFO)pTarget)->Z);
WriteChatColor(szBuffer,CONCOLOR_RED);
WARPREADY=1;
}
if (!strcmp(Arg2,"s") && *Arg3) {
ZoneInfo->SafeXLoc = ((PSPAWNINFO)pTarget)->X;
ZoneInfo->SafeYLoc = (((PSPAWNINFO)pTarget)->Y - (float)atof(Arg3));
ZoneInfo->SafeZLoc = ((PSPAWNINFO)pTarget)->Z;
sprintf(szBuffer,"Warping to %s, %.2f, %.2f, %.2f",((PSPAWNINFO)pTarget)->Name,((PSPAWNINFO)pTarget)->X,(((PSPAWNINFO)pTarget)->Y - (float)atof(Arg3)),((PSPAWNINFO)pTarget)->Z);
WriteChatColor(szBuffer,CONCOLOR_RED);
WARPREADY=1;
}
}
if(!strcmp(Arg1,"s") || !strcmp(Arg1,"safepoint")) {
sprintf(szBuffer,"Warping to safepoint, %.2f, %.2f, %.2f",SaveSafeX,SaveSafeY,SaveSafeZ);
WARPREADY=1;
}
if(*Arg1 && *Arg2 && *Arg3 && !WARPREADY) {
ZoneInfo->SafeXLoc = (float)atof(Arg1);
ZoneInfo->SafeYLoc = (float)atof(Arg2);
ZoneInfo->SafeZLoc = (float)atof(Arg3);
sprintf(szBuffer,"Warping to %.2f, %.2f, %.2f",ZoneInfo->SafeXLoc,ZoneInfo->SafeYLoc,ZoneInfo->SafeZLoc);
WriteChatColor(szBuffer,CONCOLOR_RED);
WARPREADY=1;
}
if(WARPREADY) {
__asm {
call dword ptr [SuccorFunc];
}
ZoneInfo->SafeXLoc = SaveSafeX;
ZoneInfo->SafeYLoc = SaveSafeY;
ZoneInfo->SafeZLoc = SaveSafeZ;
}
} else {
WriteChatColor("Usage: /warp t(arget) (n|s|e|w) (distance) || s(afepoint) || g(ate) || x y z",USERCOLOR_DEFAULT);
return;
}
}
PLUGIN_API VOID InitializePlugin(VOID)
{
DebugSpewAlways("Initializing MQ2Warp");
AddCommand("/warp",Warp);
}
PLUGIN_API VOID ShutdownPlugin(VOID)
{
DebugSpewAlways("Shutting down MQ2Warp");
RemoveCommand("/warp");
}
