Czarman
Well-known member
- Joined
- Apr 28, 2005
- RedCents
- 1,381¢
Updated this plugin I found lying around. If anyone wants to use it, or perhaps enhance it more here is the source and DLL. Not exactly sure where it is from, but is effective enough till we can actually find the nosummon offset. This only requres the WARP offset to work.
This will warp you immediately to the postion you were summoned from, so fast that you most likely wont even get hit.
Be careful when using this in a group with a mage that tries to summon you :P
** Will not compile using Visual C++, need .NET to make this.**
mq2nosummon
This will warp you immediately to the postion you were summoned from, so fast that you most likely wont even get hit.
Be careful when using this in a group with a mage that tries to summon you :P
** Will not compile using Visual C++, need .NET to make this.**
mq2nosummon
Rich (BB code):
// MQ2NoSummon.cpp : Defines the entry point for the DLL application
// Same offset as MQ2Warp
#define CDisplay__MoveLocalPlayerToSafeCoords 0x443249
#include "../MQ2Plugin.h"
float UnSummonY, UnSummonX, UnSummonZ;
PreSetup("MQ2NoSummon");
VOID UnSummonMe(PSPAWNINFO pChar);
PLUGIN_API VOID InitializePlugin(VOID)
{
DebugSpewAlways("Initializing MQ2NoSummon");
}
PLUGIN_API VOID ShutdownPlugin(VOID)
{
DebugSpewAlways("Shutting down MQ2NoSummon");
}
PLUGIN_API VOID OnPulse(VOID)
{
CHAR ABuffer[MAX_STRING] = {0};
PSPAWNINFO pChar = (PSPAWNINFO)pCharSpawn;
PSPAWNINFO Target = (PSPAWNINFO)pTarget;
if ( (pTarget) && (ppTarget) ) {
if ( ( (abs(Target->Y - pChar->Y)<2) && (abs(UnSummonY - pChar->Y)>4) ) || ( (abs(Target->X - pChar->X)<2) && (abs(UnSummonX - pChar->X)>4) ) ) {
if (pChar->SpawnID != Target->SpawnID) {
UnSummonMe(pChar);
}
} else {
UnSummonY = pChar->Y;
UnSummonX = pChar->X;
UnSummonZ = pChar->Z;
}
} else {
UnSummonY = pChar->Y;
UnSummonX = pChar->X;
UnSummonZ = pChar->Z;
}
}
VOID UnSummonMe(PSPAWNINFO pChar)
{
CHAR ABuffer[MAX_STRING] = {0};
PZONEINFO Zone = (PZONEINFO)pZoneInfo;
float SafeY = Zone->SafeYLoc;
float SafeX = Zone->SafeXLoc;
float SafeZ = Zone->SafeZLoc;
Zone->SafeYLoc = UnSummonY;
Zone->SafeXLoc = UnSummonX;
Zone->SafeZLoc = UnSummonZ;
DWORD MLPTSC = CDisplay__MoveLocalPlayerToSafeCoords;
__asm call dword ptr [MLPTSC];
Zone->SafeYLoc = SafeY;
Zone->SafeXLoc = SafeX;
Zone->SafeZLoc = SafeZ;
}
Last edited:





