

Basics!!!
Description
The basics
Instructions
First off if your going to do hacks done use a CE is my personal opinion.. Spend the time to create your own external app. Hence why you will have to learn C++!!!! MUST!!!
Tools :
XVI32 (Hex editor)
90 Day Trial VS2008
C++ TRAINING!
Then in a sure basis effort you can create a external application that works through cmd.
Allowing you to attach plugins such as this for Speed that i use for MQ2 for the Everquest hacks.
//#include "../SourceLib.h"
PreSetup("MQ2MMOSpeed");
bool found=false;
int loadcount=0;
bool bLockSpeed = false;
float CurrentSpeed;
float SetSpeed;
class LockSpeed
{
public:
float LockSpeed_trampoline(float);
float LockSpeed_detour(float speed)
{
PSPAWNINFO pMe = GetCharInfo()->pSpawn;
float CurrentSpeed = pMe->RunSpeed;
bool Rooted = false;
for (int nBuff=0 ; nBuff < 25 ; nBuff++)
{
if (PSPELL pSpell=GetSpellByID(GetCharInfo2()->Buff[nBuff].SpellID))
{
if (pSpell->Attrib[1]==99)
{
Rooted = true;
}
}
}
if (bLockSpeed && ( (CurrentSpeed < SetSpeed) || Rooted ) ) return 4;
else return LockSpeed_trampoline(speed);
}
};
DETOUR_TRAMPOLINE_EMPTY(float LockSpeed::LockSpeed_trampoline(float));
PLUGIN_API BOOL OnSendPacket(DWORD Type, DWORD Packet, DWORD Size)
{
if(Type == pktMOVE)
{
MovePkt *movepkt = (MovePkt *)Packet;
if(movepkt->Animation > 27)
{
movepkt->Animation = 27;
}
}
return true;
}
VOID SpeedCmd(PSPAWNINFO pChar, PCHAR szLine)
{
PCHARINFO pCharInfo = GetCharInfo();
CHAR src_Msg[MAX_STRING] = {0};
CHAR src_Arg[MAX_STRING] = {0};
GetArg(src_Arg,szLine,1);
if(!stricmp(src_Arg,""))
{
WriteChatColor("No speed specified setting speed to default .7");
pCharInfo->pSpawn->RunSpeed = (float).7;
return;
}
if(IsNumber(src_Arg))
{
pCharInfo->pSpawn->RunSpeed = (float)atof(src_Arg);
sprintf(src_Msg,"Run speed set to: %.2f", pCharInfo->pSpawn->RunSpeed);
WriteChatColor(src_Msg);
}
}
VOID LockCmd(PSPAWNINFO pChar, PCHAR szLine)
{
CHAR szArg1[MAX_STRING];
GetArg(szArg1, szLine, 1);
if(!stricmp(szArg1, "on"))
{
bLockSpeed = true;
PSPAWNINFO pMe = GetCharInfo()->pSpawn;
float SetSpeed = pMe->RunSpeed;
WriteChatf("Speed Locked at %f", SetSpeed);
}
else if(!stricmp(szArg1, "off"))
{
bLockSpeed = false;
WriteChatf("Speed Unlocked");
}
else WriteChatf("Syntax: /locks <on/off>");
}
PLUGIN_API VOID InitializePlugin(VOID)
{
AddCommand("/speed", SpeedCmd);
AddCommand("/locks", LockCmd);
EzDetour(SpeedFunc, &LockSpeed::LockSpeed_detour, &LockSpeed::LockSpeed_trampoline);
}
PLUGIN_API VOID ShutdownPlugin(VOID)
{
RemoveCommand("/speed");
RemoveCommand("/locks");
RemoveDetour(SpeedFunc);
}
This is a begin to the end... once you get started and if you get through all the learnc++ and you want to continue feel free to message me on aim Nuegenx and I will help you through out all the issues you might come up with.. Or Email me @ [email protected]