hey everyone!

im kinda a bit stuck my friend is a mega coder in the 'gunz' (gaming) world and he has just made some thing.

ohh he also said i need to do it in dev c++ (if that any use to any one) lol

he sent me 3 files, and i have no clue what to do with them,

its hope-less :/

the 3 files contain this:

main:

//get some functions from other headers.
#include <windows.h>
#include <stdio.h>

#include "addresses.h"
#include "peerlist.h"

typedef void(__cdecl *ZChatOutputType)(const char*,int,int,DWORD);
ZChatOutputType ZChatOutput = (ZChatOutputType)ZChatOutputADDR;

typedef void(__cdecl *ZPostPeerChatType)(const char*,int);
ZPostPeerChatType ZPostPeerChat = (ZPostPeerChatType)ZPostPeerChatADDR;

typedef DWORD(__cdecl *ZGetGameClientType)();
ZGetGameClientType ZGetGameClient = (ZGetGameClientType)ZGetGameClientADDR;

typedef DWORD(__cdecl *ZGetGameInterfaceType)();
ZGetGameInterfaceType ZGetGameInterface = (ZGetGameInterfaceType)ZGetGameInterfaceADDR;

DWORD *pGame = (DWORD*)0x00672F68;

DWORD pChar()
{
if (pGame!=NULL && *pGame!=NULL){return *(DWORD*)(*pGame + 0x50);}
return NULL;
}

//This is the "UID" structure. This is needed for some functions
//UIDs consists of a Low and High IDs.
struct MUID
{
unsigned long LowID;
unsigned long HighID;
};

struct GameData {
int x1;
int x2;
char MapName[32];
int x3;
unsigned int GameType;
unsigned int NoOfRound;
unsigned int TimeInMinute;
unsigned int GapLevel;
signed char NoOfPlayer;
bool mode1;
bool mode2;
bool mode3;
bool TeamKill;
bool mode4;
bool LateJoin;
bool TeamBalance;
};

GameData *Settings = new GameData();
//Set up a convention to an internal function using Typedef and creating a variable and typecast the address to the type!
typedef void(__cdecl *ZPostRequestSpawnWorldItemType)(MUID*,int,float*);
ZPostRequestSpawnWorldItemType ZPostRequestSpawnWorldItem = (ZPostRequestSpawnWorldItemType)ZPostRequestSpawnWorldItemADDR;


typedef void(__cdecl *ZPostCreateMyCharType)(MUID*,int,const char*,int,int,int,int);
ZPostCreateMyCharType ZPostCreateMyChar = (ZPostCreateMyCharType)ZPostCreateMyCharADDR;


typedef VOID (__cdecl *ZPostGameKillType)(MUID*);
ZPostGameKillType ZPostGameKill = (ZPostGameKillType)ZPostGameKillADDR;

typedef VOID (__cdecl *ZPostSkillType)(int,int);
ZPostSkillType ZPostSkill = (ZPostSkillType)ZPostSkillADDR;

typedef VOID (__cdecl *ZPostStageChatType)(MUID*,MUID*,const char*);
ZPostStageChatType ZPostStageChat = (ZPostStageChatType)ZPostStageChatADDR;

typedef VOID (__cdecl *ZPostShotType)(float*,float*,int,int);
ZPostShotType ZPostShot = (ZPostShotType)ZPostShotADDR;
// type = 1  ; sel_type = 2 -- Remove timer
// type = 7  ; sel_type = 7 -- Melee Weapon Shot
// type = 8  ; sel_type = 7 -- First Gun shot
// type = 9  ; sel_type = 7 -- Second Gun Shot
// type = 10 ; sel_type = 7 -- First Equipt Shot
// type = 11 ; sel_type = 7 -- Second Equipt Shot



typedef VOID (__cdecl *ZPostShotMeleeType)(float*,int);
ZPostShotMeleeType ZPostShotMelee = (ZPostShotMeleeType)ZPostShotMeleeADDR;

typedef void (__cdecl *ZPostRequestSpawnFunc)(const MUID* uidChar, float*, float*);
ZPostRequestSpawnFunc ZPostRequestSpawn = (ZPostRequestSpawnFunc)ZPostRequestSpawnADDR;

typedef VOID (__cdecl *ZPostSpMotionType)(int);
ZPostSpMotionType ZPostSpMotion = (ZPostSpMotionType)ZPostSpMotionADDR;

typedef VOID (__cdecl *ZPostRequestExpelClanMemberType)(MUID*,char*);
ZPostRequestExpelClanMemberType ZPostRequestExpelClanMember = (ZPostRequestExpelClanMemberType)ZPostRequestExpelClanMemberADDR;

//Set up a pointer to MUID.
MUID *NewCHAR = new MUID();
MUID *NewCHAN = new MUID();
MUID *NewSTAG = new MUID();
MUID *NewCHAR2 = new MUID();

typedef void(__cdecl *ZPostChannelChatType)(MUID*,MUID*,const char*);
ZPostChannelChatType ZPostChannelChat = (ZPostChannelChatType)ZPostChannelChatADDR;

/******************************************************************************/

typedef void(__cdecl *ZPostStageEnterBattleType)(MUID*,MUID*);
ZPostStageEnterBattleType ZPostStageEnterBattle = (ZPostStageEnterBattleType)ZPostStageEnterBattleADDR;

typedef void(__cdecl *ZPostStageLeaveBattleType)(MUID*,MUID*);
ZPostStageLeaveBattleType ZPostStageLeaveBattle = (ZPostStageLeaveBattleType)ZPostStageLeaveBattleADDR;

typedef void(__cdecl *ZPostStageSettingType)(MUID*,MUID*,GameData*);
ZPostStageSettingType ZPostStageSetting = (ZPostStageSettingType)ZPostStageSettingADDR;

typedef void(__cdecl *ZPostStageTeamType)(MUID*,MUID*,int);
ZPostStageTeamType ZPostStageTeam = (ZPostStageTeamType)ZPostStageTeamADDR;

/******************************************************************************/
typedef void(__cdecl *ZPostQuestRequestNPCDeadType)(MUID*,MUID*,float*);
ZPostQuestRequestNPCDeadType ZPostQuestRequestNPCDead = (ZPostQuestRequestNPCDeadType)ZPostQuestRequestNPCDeadADDR;

typedef void(__cdecl *ZPostStageStartType)(MUID*,MUID*);
ZPostStageStartType ZPostStageStart = (ZPostStageStartType)ZPostStageStartADDR;

typedef void(__cdecl *ZPostQuestReadyToNewSectorType)(MUID*);
ZPostQuestReadyToNewSectorType ZPostQuestReadyToNewSector  = (ZPostQuestReadyToNewSectorType)ZPostQuestReadyToNewSectorADDR;
/******************************************************************************/


typedef void(__cdecl *ZPostAdminHaltType)(MUID*);
ZPostAdminHaltType ZPostAdminHalt = (ZPostAdminHaltType)ZPostAdminHaltADDR;

typedef void(__cdecl *ZPostAdminAnnouncType)(MUID*,const char*,int);
ZPostAdminAnnouncType ZPostAdminAnnounc = (ZPostAdminAnnouncType)ZPostAdminAnnouncADDR;

typedef void(__cdecl *ZPostAdminRequestJjangType)(char*); //ioneZ22
ZPostAdminRequestJjangType ZPostAdminRequestJjang = (ZPostAdminRequestJjangType)ZPostAdminRequestJjangADDR;

typedef void(__cdecl *ZPostRequestChannelJoinType)(MUID*,MUID*);
ZPostRequestChannelJoinType ZPostRequestChannelJoin = (ZPostRequestChannelJoinType)ZPostRequestChannelJoinADDR;

typedef void(__cdecl *ZPostWhisperType)(char* sender,char* target,char* message);
ZPostWhisperType ZPostWhisper = (ZPostWhisperType)ZPostWhisperADDR;

typedef void(__cdecl *ZPostWhereType)(char*);
ZPostWhereType ZPostWhere = (ZPostWhereType)ZPostWhereADDR;


float *GetDir(DWORD ZChar)
{
return (float*)(DWORD)(ZChar + 0x5C);
}






//Get the position of the character specified
float *GetPos(DWORD ZChar)
{
DWORD ECX = ZChar; 
DWORD EAX = *(DWORD*)(ECX + 0x58);
ECX = *(DWORD*)(EAX + 0x20);
DWORD EDX = *(DWORD*)(EAX + 0xC);
EAX = *(DWORD*)(EDX + ECX * 0x4);
return (float*)EAX;
}

//Set the position of our character
void SetPos(float *AllPos){
float *XYZPosition = GetPos(pChar());
XYZPosition[0] = AllPos[0];
XYZPosition[1] = AllPos[1];
XYZPosition[2] = AllPos[2];
//Does not require you to copy the bytes into the memory
}
      

//Get the character ID!
unsigned long GetMe()
{
return *(DWORD*)(ZGetGameClient() + 0x1A4); //Retreive the value of the pointer at "ZGetGameClient + 0x1A4" this is our Character's HighID returned
}

//Get our channel ID
unsigned long GetChannel()
{
return *(DWORD*)(ZGetGameClient() + 0x1AC); //Retreive the value of the pointer at "ZGetGameClient + 0x1AC" this is our Channel's HighID returned
}

//Get our Stage ID!
unsigned long GetStage()
{
return *(DWORD*)(ZGetGameClient() + 0x1B4); //Retreive the value of the pointer at "ZGetGameClient + 0x1B4" this is our Stage's HighID returned
}

//Get The last string input.
char *LastInput()
{
return (char*)(ZGetGameInterface() + 0x3A8); //Retreive the value of the pointer at "ZGetGameInterface + 0x3A8" this is our LastInput
}


int Attacker = 0;
bool plvl = 0;

//Get our attacker's ID!
unsigned long GetAttacker()
{if (pChar()){ //Check if you're ingame
DWORD ECX = pChar(); //Make a variable named ECX with the contents of our Characters address
DWORD EAX = *(DWORD*)(ECX + 0x32C); //Retreive the value of the pointer at "ECX + 0x32C". This will be our character's variable watch
EAX = *(DWORD*)(EAX + 0x20); //Retreive the value of the pointer at "EAX + 0x20". The value retreived is our Character's attacker!
return (long)EAX; //Typecast / convert the value of "EAX" into a long / double / integer / real number. And OUT / return the value
}
return NULL;
}


int ARG;
DWORD ZChar;

//Set up the internal function to ZCharacter::SetHP found in gunz!
void SetHP(int hp)
{
ZChar = pChar();
ARG = hp;
__asm(
"MOVL _ZChar,%ECX\n\t" //Namespace will be the Address of our char. Constructors in GunZ will always be in the ECX register
"MOVL _SetHPADDR,%EAX\n\t" //Store the address of SetHP to the eax register!
"PUSH _ARG\n\t" //PUSH the specified HP to the stack. This will be our parameter for SetHP
"CALL *%EAX\n\t" //Execute the procedure at the address stored in EAX register
);
}

//Set up the internal function to ZCharacter::SetAP found in gunz!
void SetAP(int ap)
{
ZChar = pChar();
ARG = ap;
__asm(
"MOVL _ZChar,%ECX\n\t" //Namespace will be the Address of our char. Constructors in GunZ will always be in the ECX register
"MOVL _SetAPADDR,%EAX\n\t" //Store the address of SetAP to the eax register!
"PUSH _ARG\n\t" //PUSH the specified AP to the stack. This will be our parameter for SetAP
"CALL *%EAX\n\t" //Execute the procedure at the address stored in EAX register
);

}

char BUFFER[1024];

bool godmode = 0;
bool flip = 0;
bool mass = 0;
bool lawn = 0;
bool botlastattacker = 0;
bool shotspam = 0;
bool tofu = 0;

bool invisiblespawn = 0;

int fakehackerwho = 0;
int fakehacker   = 0;

bool speedhack = 0;

bool airwalk = 0;
bool prevent = 0;
bool wallhack = 0;

bool qplvl = 0;

float D3DXVECTOR[3];
float D3DXVECTOR1[3];
float D3DXVECTOR2[3];


float Empty[] = {0,0,0,0};
MUID *NewMUID = new MUID();

DWORD result;
long LOW;
long HIGH;

bool chanspam = 0;
bool roomspam = 0;
bool roombot = 0;

//This function gets the Namespace of the character specified. Will return / OUT a hexidecimal

//ZCharacterManager                           Namespace
//ZCharacterManager::Find(long low,long high) Function!
DWORD GetZChar(long character)
{
LOW = 0;
HIGH = character;
result = 0;
__asm
(
"MOVL _LOW,%EDX\n\t"
"MOVL _HIGH,%EBX\n\t"
"MOVL _ZCharacterManager,%EAX\n\t"
"CALL *%EAX\n\t"
"MOVL %EAX,%ECX\n\t"
"PUSH %EBX\n\t"
"PUSH %EDX\n\t"
"MOVL _ZCharacterManagerFind,%EAX\n\t"
"CALL *%EAX\n\t"
"MOVL %EAX,_result\n\t"
);
return result;
}

float D3DXVECTORS[3];


void Spam()
{while(1){
          
//SPAM!!!
if (roomspam)
{
NewCHAR->LowID=0;
NewCHAN->LowID=0;
NewCHAR->HighID=GetMe();
NewCHAN->HighID=GetChannel();
NewSTAG->LowID = 0;
NewSTAG->HighID = GetStage();
unsigned long ID = GetChannel();
char spamX[128];
FILE * f = fopen("spam.txt","r");

while(!feof(f))
{
fgets(spamX,128,f);
NewCHAN->HighID=ID;ZPostChannelChat(NewCHAR,NewCHAN,spamX);
ZPostPeerChat(spamX,0);
ZPostStageChat(NewCHAR,NewSTAG,spamX);
for(int i = 1;i<=17;i++){if (i!=ID){NewCHAN->HighID=i;ZPostChannelChat(NewCHAR,NewCHAN,spamX);}}
Sleep(50);
}
fclose(f);
}


if (chanspam)
{
NewCHAR->LowID=0;
NewCHAN->LowID=0;
NewCHAR->HighID=GetMe();
NewCHAN->HighID=GetChannel();
NewSTAG->LowID = 0;
NewSTAG->HighID=GetStage();
char spamX[128];
FILE * f = fopen("spam.txt","r");
while(!feof(f))
{
fgets(spamX,128,f);
ZPostChannelChat(NewCHAR,NewCHAN,spamX);
ZPostPeerChat(spamX,0);
ZPostStageChat(NewCHAR,NewSTAG,spamX);
}
fclose(f);
}


Sleep(20);}}


void MegaStage(char map[],int type,int rounds)
{
    Settings->GameType = type;
	Settings->GapLevel = 0;
	Settings->LateJoin = true;
	Settings->mode1 = false;
	Settings->mode2 = false;
	Settings->mode3 = false;
	Settings->mode4 = false;
	Settings->NoOfPlayer = 120;
	Settings->NoOfRound = rounds;
	Settings->TeamBalance = false;
	Settings->TeamKill = false;
	Settings->TimeInMinute = -1;
	Settings->x1 = 0;
	Settings->x2 = 0;
	Settings->x3 = 0;
	for(int i=0;i<=32;i++)Settings->MapName[i] = map[i];
	NewCHAR->LowID=0;
	NewSTAG->LowID=0;
	NewCHAR->HighID=GetMe();
	NewSTAG->HighID=GetStage();
	ZPostStageSetting(NewCHAR,NewSTAG,Settings);
}




//Auto questing!
int isKilling = 0;
void Questing()
{
 while(1)
 {
  if (qplvl)
  {
  isKilling = 0;
  NewCHAR->LowID = 0;NewCHAR->HighID = GetMe();
  NewSTAG->LowID = 0;NewSTAG->HighID = GetStage();
            
  ZPostStageStart(NewCHAR,NewSTAG);
   for(int i=GetAttacker()-300;i<=GetAttacker()+300;i++)
   {
     NewCHAR->LowID = 0;
     NewCHAN->LowID = 0;
     NewCHAR->HighID = GetMe();
     NewCHAN->HighID = i;
     if (GetAttacker()){float *GetMyPosition = GetPos(pChar());GetMyPosition[0] = 5000;GetMyPosition[1] = 5000;GetMyPosition[2] = 5000;SetHP(200);SetAP(200);}
     if (pChar() && GetAttacker()){isKilling = 1;/*sprintf(BUFFER,"Request %d NPC Dead!",NewCHAN->HighID);ZPostPeerChat(BUFFER,0);*/ZPostQuestRequestNPCDead(NewCHAR,NewCHAN,GetPos(pChar()));}
     Sleep(12);
   }
   if (isKilling){ZPostQuestReadyToNewSector(NewCHAR);isKilling = 0;}
  }
  
  Sleep(500);
 }
}

void ShotSpam2()
{while(1){

if (pChar() && fakehacker)
{
 if (GetZChar(fakehackerwho))
 {
  if (fakehacker==2)
  {
   ZChatOutput("Your attacker came back! Spamming meds now!",1,0,0xFFFFFFFF);fakehacker = 1;
  }
  NewCHAR->LowID = 0;
  NewCHAR->HighID = fakehackerwho;
  ZPostRequestSpawnWorldItem(NewCHAR,111,GetPos(GetZChar(fakehackerwho)));
  ZPostRequestSpawnWorldItem(NewCHAR,120,GetPos(GetZChar(fakehackerwho)));
  ZPostRequestSpawnWorldItem(NewCHAR,130,GetPos(GetZChar(fakehackerwho)));
  ZPostRequestSpawnWorldItem(NewCHAR,131,GetPos(GetZChar(fakehackerwho)));
  //ZPostRequestSpawnWorldItem(NewCHAR,201,GetPos(GetZChar(fakehackerwho)));
 }
 else
 {
  if (fakehacker!=2)
  {
   fakehacker = 2;ZChatOutput("Apparently, your attacker has left! Leaving it on incase they come back!",1,0,0xFFFFFFFF);
  }
 }

}
          
if (shotspam && pChar()){
ZPostRequestSpawnWorldItem(NewCHAR,111,GetPos(pChar()));}
Sleep(250);}}

int Team = -1;

void ShotSpam1()
{while(1){
          
          
//PLVL
if (plvl && pChar())
{
NewCHAR->LowID = 0;    
NewCHAR->HighID = Attacker;
ZPostGameKill(NewCHAR);/*Sleep(250);*/
SetHP(0);SetAP(0);
Sleep(100);
}
                  
if (shotspam && pChar()){
NewCHAR->LowID = 0;
NewCHAR->HighID = GetMe();

for(int i = 7 ;i<=11;i++){if (pChar()){
ZPostShot(GetPos(pChar()),Empty,i,7);Sleep(2);ZPostShot(GetPos(pChar()),Empty,1,2);Sleep(2);for(int i=0;i<15;i++)ZPostSpMotion(i);}}
}

Sleep(20);}}



void MainCheck()
{while(1){
          
if (GetAsyncKeyState(VK_RETURN)&0x8000)
{
                                       
Sleep(50);

			if (memcmp(LastInput(),"@admin_wall ",12)==0)
			{
			
				
				char szMessage[1024];
			
				for(int i = 12;i<=128;i++)
				{
					szMessage[i-12]=LastInput()[i];
				}
			 
             NewCHAR->LowID = 0;
             NewSTAG->LowID = 0;
             NewCHAN->LowID = 0;
             
             NewCHAR->HighID = GetMe();
             NewSTAG->HighID = GetStage();
             NewCHAN->HighID = GetChannel();
             
             //sprintf(szMessage,"^2%s",szMessage);             
             ZPostPeerChat(szMessage,0);
			 ZPostStageChat(NewCHAR,NewSTAG,szMessage);
			 ZPostChannelChat(NewCHAR,NewCHAN,szMessage);
			 
			 long ID = GetChannel();
			 
			 for(int i = 1;i<=17;i++)
			 {
             if (i!=ID){NewCHAN->HighID = i;ZPostChannelChat(NewCHAR,NewCHAN,szMessage);}
             }
			 
		 	 Sleep(2000);
			}

			if (memcmp(LastInput(),"@male ",6)==0)
			{
				//Copy our string from offset 12
				char MEMCMPSTR4[12];
				for(int i = 6;i<=18;i++)

				{
					int Str = 0;

					if (LastInput()[i] == ''){MEMCMPSTR4[i-6] = '\n';Str = 1;} //Alt + 0141  ; New Line
					if (LastInput()[i] == ' '){MEMCMPSTR4[i-6] = '\t';Str = 1;} //Alt + 0160 ; Tab
					//Alt + 255 also = space

					if (Str == 0){MEMCMPSTR4[i-6] = LastInput()[i];}
				}

				NewCHAR->LowID = 0;
				NewCHAR->HighID = GetMe();
				for(int a = 0;a<=4;a++)ZPostCreateMyChar(NewCHAR,a,MEMCMPSTR4,0,4,0,1); //female = 1 ; male = 0 ; Male is first :( SEXIST!!!!

				Sleep(1200);
			}
			
            if (memcmp(LastInput(),"@friend ",8)==0)
			{
				//Copy our string from offset 12
				char MEMCMPSTR5[12];
				for(int i = 8;i<=20;i++)

				{
					int Str = 0;

					if (LastInput()[i] == ''){MEMCMPSTR5[i-8] = '\n';Str = 1;} //Alt + 0141  ; New Line
					if (LastInput()[i] == ' '){MEMCMPSTR5[i-8] = '\t';Str = 1;} //Alt + 0160 ; Tab
					//Alt + 255 also = space

					if (Str == 0){MEMCMPSTR5[i-8] = LastInput()[i];}
				}

				NewCHAR->LowID = 0;
				NewCHAR->HighID = GetMe();
				ZPostWhere(MEMCMPSTR5);
				Sleep(1200);
			}




			if (memcmp(LastInput(),"@female ",8)==0)
			{
				//Copy our string from offset 12
				char MEMCMPSTR5[12];
				for(int i = 8;i<=20;i++)

				{
					int Str = 0;

					if (LastInput()[i] == ''){MEMCMPSTR5[i-8] = '\n';Str = 1;} //Alt + 0141  ; New Line
					if (LastInput()[i] == ' '){MEMCMPSTR5[i-8] = '\t';Str = 1;} //Alt + 0160 ; Tab
					//Alt + 255 also = space

					if (Str == 0){MEMCMPSTR5[i-8] = LastInput()[i];}
				}

				NewCHAR->LowID = 0;
				NewCHAR->HighID = GetMe();
				for(int a = 0;a<=4;a++)ZPostCreateMyChar(NewCHAR,a,MEMCMPSTR5,1,4,0,1); //female = 1 ; male = 0 ; Male is first :( SEXIST!!!!

				Sleep(1200);
			}



}
          
//Random ZPostShot functions o.O
if (GetAsyncKeyState(VK_NUMPAD1)&0x8000 && pChar()){ZPostShot(GetPos(pChar()),Empty,7,7);}
if (GetAsyncKeyState(VK_NUMPAD2)&0x8000 && pChar()){ZPostShot(GetPos(pChar()),Empty,8,7);}
if (GetAsyncKeyState(VK_NUMPAD3)&0x8000 && pChar()){ZPostShot(GetPos(pChar()),Empty,9,7);}
if (GetAsyncKeyState(VK_NUMPAD4)&0x8000 && pChar()){ZPostShot(GetPos(pChar()),Empty,10,7);}
if (GetAsyncKeyState(VK_NUMPAD5)&0x8000 && pChar()){ZPostShot(GetPos(pChar()),Empty,11,7);}
if (GetAsyncKeyState(VK_NUMPAD6)&0x8000 && pChar()){ZPostShot(GetPos(pChar()),Empty,1,2);}



//Teleport SideDirection - 150
          
if (GetAsyncKeyState(VK_LEFT)&0x8000 && pChar())
{
float *CharPos = GetPos(pChar());
CharPos[0] += GetDir(pChar())[1]*150;
CharPos[1] -= GetDir(pChar())[0]*150;
}

//Teleport SideDirection + 150

if (GetAsyncKeyState(VK_RIGHT)&0x8000 && pChar())
{
float *CharPos = GetPos(pChar());
CharPos[0] -= GetDir(pChar())[1]*150;
CharPos[1] += GetDir(pChar())[0]*150;
}

//Teleport Direction + 150
if (GetAsyncKeyState(VK_UP)&0x8000 && pChar())
{
float *CharPos = GetPos(pChar());
CharPos[0] += GetDir(pChar())[0]*150;
CharPos[1] += GetDir(pChar())[1]*150;
}

//Teleport Direction - 150
if (GetAsyncKeyState(VK_DOWN)&0x8000 && pChar())
{
float *CharPos = GetPos(pChar());
CharPos[0] -= GetDir(pChar())[0]*150;
CharPos[1] -= GetDir(pChar())[1]*150;
}



//Teleport Z + 200
if (GetAsyncKeyState(VK_PRIOR)&0x8000 && pChar())
{
float *CharPos = GetPos(pChar());
CharPos[2] += 200;
}

//Teleport Z - 200
if (GetAsyncKeyState(VK_NEXT)&0x8000 && pChar())
{
float *CharPos = GetPos(pChar());
CharPos[2] -= 200;
}

//Save our position!
if (GetAsyncKeyState(VK_HOME)&0x8000 && pChar())
{
float *CharPos = GetPos(pChar());
D3DXVECTOR[0] = CharPos[0];
D3DXVECTOR[1] = CharPos[1];
D3DXVECTOR[2] = CharPos[2];
}

//Go to our saved position!
if (GetAsyncKeyState(VK_END)&0x8000 && pChar())
{
float *CharPos = GetPos(pChar());
CharPos[0] = D3DXVECTOR[0];
CharPos[1] = D3DXVECTOR[1]; 
CharPos[2] = D3DXVECTOR[2];
}

//The check to prevent our character from falling!
if (prevent && pChar()){
if (GetPos(pChar())[2] < D3DXVECTOR2[2]){float *Position = GetPos(pChar());Position[2] = D3DXVECTOR2[2];}
}
      
      
//SpeedHack!
if (speedhack && pChar() && GetAsyncKeyState('W')){float *MyPos = GetPos(pChar());MyPos[0] += GetDir(pChar())[0]*20;MyPos[1] += GetDir(pChar())[1]*20;}
if (speedhack && pChar() && GetAsyncKeyState('S')){float *MyPos = GetPos(pChar());MyPos[0] -= GetDir(pChar())[0]*20;MyPos[1] -= GetDir(pChar())[1]*20;}
if (speedhack && pChar() && GetAsyncKeyState('A')){float *MyPos = GetPos(pChar());MyPos[0] += GetDir(pChar())[1]*20;MyPos[1] -= GetDir(pChar())[0]*20;}
if (speedhack && pChar() && GetAsyncKeyState('D')){float *MyPos = GetPos(pChar());MyPos[0] -= GetDir(pChar())[1]*20;MyPos[1] += GetDir(pChar())[0]*20;}
 
//WallHack!
if (wallhack && pChar() && GetAsyncKeyState('W')){float *MyPos = GetPos(pChar());MyPos[0] += GetDir(pChar())[0];MyPos[1] += GetDir(pChar())[1];}
if (wallhack && pChar() && GetAsyncKeyState('S')){float *MyPos = GetPos(pChar());MyPos[0] -= GetDir(pChar())[0];MyPos[1] -= GetDir(pChar())[1];}
if (wallhack && pChar() && GetAsyncKeyState('A')){float *MyPos = GetPos(pChar());MyPos[0] += GetDir(pChar())[1];MyPos[1] -= GetDir(pChar())[0];}
if (wallhack && pChar() && GetAsyncKeyState('D')){float *MyPos = GetPos(pChar());MyPos[0] -= GetDir(pChar())[1];MyPos[1] += GetDir(pChar())[0];}
//Godmode!
if (godmode && pChar()){SetHP(200);SetAP(200);}
//Flipmower!
if (flip && pChar()){ZPostSkill(1,7);}
//Insane Massives
if (mass && pChar()){ZPostSkill(2,7);ZPostShot(Empty,Empty,1,2);}
//Lawnmower!
if (lawn && pChar()){ZPostShotMelee(GetPos(pChar()),7);ZPostShot(Empty,Empty,1,2);}
//Bot last attacker!
if (botlastattacker && pChar()){if (GetAttacker()){NewCHAR->LowID = 0;NewCHAR->HighID = GetAttacker();ZPostRequestExpelClanMember(NewCHAR,"Faggot!");};}





//invisible Spawn!
if (invisiblespawn && pChar()){
NewCHAR->LowID = 0;NewCHAR->HighID = GetMe();
NewSTAG->LowID = 0;NewSTAG->HighID = GetStage();
ZPostStageLeaveBattle(NewCHAR,NewSTAG);
ZPostStageEnterBattle(NewCHAR,NewSTAG);
ZPostShot(Empty,Empty,1,2);
Sleep(900);
}

Sleep(20);}}


void MainLoop()
{while(1){

//Spam taunts, each taunt has an id, 1 = 15
if (GetAsyncKeyState(VK_CONTROL)&0x8000 && GetAsyncKeyState('C') && pChar())
{
for(int i=1;i<15;i++)ZPostSpMotion(i);
}

//Get our current Z position and activate a check to prevent from going lower!
if (GetAsyncKeyState(VK_DELETE)&0x80000 && pChar())
{
prevent=!prevent;
D3DXVECTOR2[2] = GetPos(pChar())[2];Sleep(500);
}


if (GetAsyncKeyState(VK_SUBTRACT)&0x80000 && pChar())
{
NewCHAR->LowID = 0        ; NewCHAN->LowID = 0;
NewCHAR->HighID = GetMe() ; NewCHAN->HighID = GetChannel();
ZPostRequestChannelJoin(NewCHAR,NewCHAN);
}

//Activate PLVL
if (GetAsyncKeyState(VK_MENU)&0x80000 && GetAsyncKeyState('P')&0x8000 && pChar())
{
plvl=!plvl;
if (GetAttacker()){Attacker = GetAttacker();}else{if (plvl==1){plvl = 0;ZChatOutput("You have to let someone attack you to activate plvl!",1,0,0xFFFFFFFF);}}
Sleep(500);
}



//Create a female char
if (GetAsyncKeyState(VK_MENU)&0x80000 && GetAsyncKeyState('Q')&0x80000)
{
char szCharName[12];
FILE * f = fopen("szCharName.txt","r");
fgets(szCharName,12,f);
fclose(f);
NewCHAR->LowID = 0;
NewCHAR->HighID = GetMe();
for(int i=0;i<=4;i++)ZPostCreateMyChar(NewCHAR,i,szCharName,1,4,0,1); 
}


//Create a male character
if (GetAsyncKeyState(VK_MENU)&0x80000 && GetAsyncKeyState('W')&0x80000)
{
char szCharName[12];
FILE * f = fopen("szCharName.txt","r");
fgets(szCharName,12,f);
fclose(f);
NewCHAR->LowID = 0;
NewCHAR->HighID = GetMe();
for(int i=0;i<=4;i++)ZPostCreateMyChar(NewCHAR,i,szCharName,0,4,0,1); 
}


//Spam tofu
if (GetAsyncKeyState(VK_TAB)&0x80000 && pChar() && tofu)
{
NewCHAR->LowID = 0;
NewCHAR->HighID = GetMe();Sleep(25);
ZPostRequestSpawnWorldItem(NewCHAR,111,GetPos(pChar()));
ZPostRequestSpawnWorldItem(NewCHAR,120,GetPos(pChar()));
ZPostRequestSpawnWorldItem(NewCHAR,130,GetPos(pChar()));
ZPostRequestSpawnWorldItem(NewCHAR,131,GetPos(pChar()));

}

//Activate Invisible Spawn
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('O')&0x8000)
{
invisiblespawn=!invisiblespawn;Sleep(500);
}

//Activate speed hack
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('E')&0x8000)
{
speedhack=!speedhack;Sleep(500);
}

//Activate wall hack
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('R')&0x8000)
{
wallhack=!wallhack;Sleep(500);
}

//Activate Bot last attacker
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('B')&0x8000)
{
botlastattacker=!botlastattacker;Sleep(500);
}

//Activate flipmower
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('F')&0x8000)
{
flip=!flip;Sleep(500);
}

//Activate Fake hacker, makes some checks also!
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('Y')&0x8000)
{if (pChar()){
if (fakehacker == 0){fakehacker = 1;}else{fakehacker = 0;};fakehackerwho = GetAttacker();
if (fakehacker != 0 && GetZChar(GetAttacker())==0){fakehacker = 0;ZChatOutput("No attacker retreived!",1,0,0xFFFFFFFF);}
Sleep(500);
}}

//Activate tofu spam hotkey
if (GetAsyncKeyState(VK_CONTROL)&0x8000 && GetAsyncKeyState(VK_LSHIFT)&0x8000 && GetAsyncKeyState(VK_TAB)&0x8000)
{
tofu=!tofu;Sleep(500);
}

//Activate insane massives
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('M')&0x8000)
{
mass=!mass;Sleep(500);
}

//Shows menu
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('I')&0x8000)
{
ZChatOutput("FrenchFatCat.dll By FrenchFatCat!",1,0,0xFFFFFFFF);
ZChatOutput("Add My MSN? Treeinthemiddleofthegarden@hotmail.com",1,0,0xFFFFFFFF);
ZChatOutput("\nHotKeys:",1,0,0xFFFFFFFF);
ZChatOutput("ALT + M     = Insane Massives",1,0,0xFFFFFFFF);
ZChatOutput("ALT + L     = Lawnmower",1,0,0xFFFFFFFF);
ZChatOutput("ALT + F     = Flipmower",1,0,0xFFFFFFFF);
ZChatOutput("ALT + G     = Godmode",1,0,0xFFFFFFFF);
ZChatOutput("ALT + B     = Bot last attacker",1,0,0xFFFFFFFF);
ZChatOutput("ALT + Y     = Fake hacker on attacker",1,0,0xFFFFFFFF);
ZChatOutput("ALT + T     = Show useless ID infos",1,0,0xFFFFFFFF);
ZChatOutput("ALT + I     = Show This Menu!",1,0,0xFFFFFFFF);
ZChatOutput("ALT + S     = Shot Spam!",1,0,0xFFFFFFFF);
ZChatOutput("CONTROL + C = Taunt Spam!",1,0,0xFFFFFFFF);
ZChatOutput("PageUp      = Teleport Up",1,0,0xFFFFFFFF);
ZChatOutput("PageDown    = Teleport Down",1,0,0xFFFFFFFF);
ZChatOutput("Arrowkeys   = Teleport Sideways",1,0,0xFFFFFFFF);
ZChatOutput("Delete      = Prevent falling at current Z",1,0,0xFFFFFFFF);
ZChatOutput("Home        = Save Position",1,0,0xFFFFFFFF);
ZChatOutput("End         = Go to Saved position",1,0,0xFFFFFFFF);
ZChatOutput("ALT + Q     = Create Female Character",1,0,0xFFFFFFFF);
ZChatOutput("ALT + W     = Create Male Character",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad + = Buffer-overrun(Crash people. only in rooms!)",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad 1 = Melee Weapon Attack",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad 2 = Shoot Gun #1",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad 3 = Shoot Gun #2",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad 4 = Deploy Kit #1",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad 5 = Deploy Kit #2",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad 6 = Clear fShotTime",1,0,0xFFFFFFFF);

ZChatOutput("ALT + R     = Wall Hack",1,0,0xFFFFFFFF);
ZChatOutput("ALT + E     = Speed Hack",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad - = Instant Room Leave!",1,0,0xFFFFFFFF);
ZChatOutput("ALT + P     = Power Level!",1,0,0xFFFFFFFF);
ZChatOutput("ALT + N     = Auto Questing!",1,0,0xFFFFFFFF);

ZChatOutput("ALT + 1-8   = Mega Stage(1-6 are gametypes)",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad * = Spam",1,0,0xFFFFFFFF);
ZChatOutput("NumberPad / = Fast Spam",1,0,0xFFFFFFFF);
ZChatOutput("ALT + X     = Switch Teams",1,0,0xFFFFFFFF);
ZChatOutput("ALT + C     = Activate Room Killer!(Wait 10 seconds)",1,0,0xFFFFFFFF);
ZChatOutput("ALT + Z     = Root Bot!(Wait 10 seconds)",1,0,0xFFFFFFFF);

ZChatOutput("\nShift + Ctrl + Tab = Activate Tofu Hotkey",1,0,0xFFFFFFFF);
ZChatOutput("Tab                  = Spam Tofu",1,0,0xFFFFFFFF);


Sleep(500);
}

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState(VK_F3)&0x8000)
{
ExitProcess(0);
}

//Activate quest plvl
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('N')&0x8000)
{
if (qplvl==0){ZChatOutput("Auto Questing On! ps. FrenchFatCat was here :-P",1,0,0xFFFFFFFF);}else
{ZChatOutput("Auto Questing Off! YOU FOOL!",1,0,0xFFFFFFFF);}

qplvl=!qplvl;Sleep(500);
}

//Activate Room-killer
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('C')&0x8000)
{
roomkill=!roomkill;Sleep(500);
}

//Activate Room-bot
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('Z')&0x8000)
{
roombot=!roombot;Sleep(500);
}

//Whisper overrun a person!
if (GetAsyncKeyState(VK_LSHIFT)&0x8000 && GetAsyncKeyState('C')&0x8000 && pChar())
{
NewCHAR->LowID = 0;
NewCHAR->HighID = GetAttacker();

ZPostAdminAnnounc(NewCHAR,"I R SERIOUS CAT. THIS IS SERIOUS THREAD!",0);
ZPostAdminAnnounc(NewCHAR,"I R SERIOUS CAT. THIS IS SERIOUS THREAD!",1);
}

//Activate lawnmower
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('L')&0x8000)
{
lawn=!lawn;Sleep(500);
}

//Activate Shotspam
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('S')&0x8000)
{
shotspam=!shotspam;Sleep(500);
}

//Switch Teams
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('X')&0x8000)
{
NewSTAG->LowID = 0;
NewSTAG->HighID = GetStage();
NewCHAR->LowID = 0;
NewCHAR->HighID = GetMe();
Team++;if (Team>4){Team=0;}
ZPostStageTeam(NewCHAR,NewSTAG,Team);
Sleep(500);
}


//Activate Godmode
if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('G')&0x8000)
{
godmode=!godmode;
Sleep(500);
}

/*
if (GetAsyncKeyState(VK_PRIOR)&0x8000){
NewCHAR->LowID=0;
NewCHAN->LowID=0;
NewCHAR->HighID=GetMe();
NewCHAN->HighID=GetChannel();
unsigned long ID = GetChannel();
char spamX[128];
FILE * f = fopen("spam.txt","r");
while(!feof(f))
{
fgets(spamX,128,f);
NewCHAN->HighID=ID;ZPostChannelChat(NewCHAR,NewCHAN,spamX);
ZPostPeerChat(spamX,0);
for(int i = 1;i<=10;i++){if (i!=ID){NewCHAN->HighID=i;ZPostChannelChat(NewCHAR,NewCHAN,spamX);}}
}
fclose(f);
}*/

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('T')&0x8000){
sprintf(BUFFER,"UserID(0 , %d) ; ChannelID(0 , %d) ; StageID (0 , %d)",GetMe(),GetChannel(),GetStage());
ZChatOutput(BUFFER,1,0,0xFFFFFFFF);
sprintf(BUFFER,"LastInput('%s')",LastInput());
ZChatOutput(BUFFER,1,0,0xFFFFFFFF);

if (pChar())
{
sprintf(BUFFER,"Attacker:(0 , %d , %X)",GetAttacker(),GetZChar(GetAttacker()));
ZChatOutput(BUFFER,1,0,0xFFFFFFFF);
sprintf(BUFFER,"D3DXVECTOR DIRECTION: ( %f , %f , %f )",GetDir(pChar())[0],GetDir(pChar())[1],GetDir(pChar())[2]);
ZChatOutput(BUFFER,1,0,0xFFFFFFFF);
}
Sleep(500);
}


if (GetAsyncKeyState(VK_MULTIPLY)&0x8000 && GetAsyncKeyState(VK_MENU)&0x8000)
{
roomspam=!roomspam;Sleep(500);
}

if (GetAsyncKeyState(VK_DIVIDE)&0x8000 && GetAsyncKeyState(VK_MENU)&0x8000)
{
chanspam=!chanspam;Sleep(500);
}


if (GetAsyncKeyState(VK_MULTIPLY)&0x8000)
{
NewCHAR->LowID=0;
NewCHAN->LowID=0;
NewCHAR->HighID=GetMe();
NewCHAN->HighID=GetChannel();
NewSTAG->LowID = 0;
NewSTAG->HighID = GetStage();
unsigned long ID = GetChannel();
char spamX[128];
FILE * f = fopen("spam.txt","r");

while(!feof(f))
{
fgets(spamX,128,f);
NewCHAN->HighID=ID;ZPostChannelChat(NewCHAR,NewCHAN,spamX);
ZPostPeerChat(spamX,0);
ZPostStageChat(NewCHAR,NewSTAG,spamX);
for(int i = 1;i<=17;i++){if (i!=ID){NewCHAN->HighID=i;ZPostChannelChat(NewCHAR,NewCHAN,spamX);}}
Sleep(50);
}
fclose(f);
}


if (GetAsyncKeyState(VK_DIVIDE)&0x8000)
{
NewCHAR->LowID=0;
NewCHAN->LowID=0;
NewCHAR->HighID=GetMe();
NewCHAN->HighID=GetChannel();
NewSTAG->LowID = 0;
NewSTAG->HighID = GetStage();
char spamX[128];
FILE * f = fopen("spam.txt","r");
while(!feof(f))
{
fgets(spamX,128,f);
ZPostChannelChat(NewCHAR,NewCHAN,spamX);
ZPostPeerChat(spamX,0);
ZPostStageChat(NewCHAR,NewSTAG,spamX);
}
fclose(f);
}


if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState(0x31)&0x8000)
{char mapname[32];FILE * f = fopen("mapname.txt","r");fgets(mapname,32,f);fclose(f);MegaStage(mapname,0,133333337);}

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState(0x32)&0x8000)
{char mapname[32];FILE * f = fopen("mapname.txt","r");fgets(mapname,32,f);fclose(f);MegaStage(mapname,1,133333337);}

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState(0x33)&0x8000)
{char mapname[32];FILE * f = fopen("mapname.txt","r");fgets(mapname,32,f);fclose(f);MegaStage(mapname,2,133333337);}

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState(0x34)&0x8000)
{char mapname[32];FILE * f = fopen("mapname.txt","r");fgets(mapname,32,f);fclose(f);MegaStage(mapname,3,133333337);}

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState(0x35)&0x8000)
{char mapname[32];FILE * f = fopen("mapname.txt","r");fgets(mapname,32,f);fclose(f);MegaStage(mapname,4,133333337);}

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState(0x36)&0x8000)
{char mapname[32];FILE * f = fopen("mapname.txt","r");fgets(mapname,32,f);fclose(f);MegaStage(mapname,5,133333337);}

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState(0x37)&0x8000)
{char mapname[32];FILE * f = fopen("mapname.txt","r");fgets(mapname,32,f);fclose(f);MegaStage(mapname,6,133333337);}

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState(0x38)&0x8000)
{char mapname[32];FILE * f = fopen("mapname.txt","r");fgets(mapname,32,f);fclose(f);MegaStage(mapname,8,133333337);}


//Send a HUGE message / Buffer-overrun!

if (GetAsyncKeyState('Y')&0x8000 && pChar() && overrun == 1)
{
ZPostPeerChat("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",0);

NewCHAR->LowID = 0        ; NewCHAN->LowID = 0;
NewCHAR->HighID = GetMe() ; NewCHAN->HighID = GetChannel();
ZPostRequestChannelJoin(NewCHAR,NewCHAN);

Sleep(5000);
ExitProcess(0);
NewCHAR->LowID=0;
NewCHAN->LowID=0;

NewCHAR->HighID=GetMe();
NewCHAN->HighID=GetChannel();
overrun = 0;
}


if (GetAsyncKeyState('N')&0x8000 && pChar() && overrun == 1)
{
ZChatOutput("Request has been canceled!",1,0,0xFFFFFFFF);
overrun = 0;
}


if (GetAsyncKeyState(VK_ADD)&0x8000 && pChar() && overrun == 0){
overrun = 1;
ZChatOutput("Do you wish to buffer-overrun the room? (y/n)",1,0,0xFFFFFFFF);
Sleep(100);
}


Sleep(20);}}


void Respawn()
{while(1){

float direction[] = {0,0,0,0};
MUID *fake = new MUID();

if (GetAsyncKeyState(VK_MENU)&0x8000 && GetAsyncKeyState('S')&0x8000)
{
float *pos = GetPos(pChar());
//ZPostRequestSpawn(fake,pos,direction);
Sleep(100);
}

Sleep(20);}}


long Slot = 0;
long GET = 0;
long GET2 = 0;


void roombotter()
{while(1){

GET2 = GetPeerFromList(Slot);
if (pChar() && roombot && GET2!=GetMe() && GetZChar(GET2))
{
NewCHAR2->LowID = 0;
NewCHAR2->HighID = GET2;
ZPostRequestExpelClanMember(NewCHAR2,"Faggot!");
}

Sleep(20);}}


void roomkiller()
{while(1){

GET = GetPeerFromList(Slot);
if (pChar() && roomkill && GetZChar(GET))
{
SetPos(GetPos(GetZChar(GET)));
ZPostSkill(2,7);
ZPostShot(Empty,Empty,1,2);
}

Sleep(10);}}


void process()
{while(1){

for(int i = 1;i<=GetPeersInList();i++)
{
 if (pChar()){
  Slot = i;
  if (GetZChar(GetPeerFromList(Slot))){Sleep(50);}
 }

}

Sleep(10);
}}


//This is the function that does a peer check in room
//If ZCharacterManager, or GetZChat returns 0, the peer is not in the room
//Therefore, we don't add him!
void roomcheck()
{while(1){
if (pChar() && roomkill || roombot)
{
ClearPeerList();
for (int i = 1;i<=maxexaust;i++)
{if (pChar()){
    if (GetZChar(i) && i != GetMe())
    {
    AddPeerToList(i);
    }
}}
}
Sleep(10000);}}




//Where the DLL will start!
extern "C"
{
//Add our Export headers because Our compiler doesn't automatically add it!
__declspec(dllexport) BOOL __stdcall DllMain(HINSTANCE hInst,DWORD reason,LPVOID lpv)
{
DisableThreadLibraryCalls(hInst);
if (reason == DLL_PROCESS_ATTACH)
{
//Create a new file!
FILE * a = fopen("szCharName.txt","w");
fclose(a);

FILE * b = fopen("test.txt","w");
fputs("XTRAP_PATCH_SKIP",b);
fclose(b);

FILE * c = fopen("spam.txt","w");
fputs("FrenchFatCat Made This Hack! Replace the Text In Your Gunz Folder!",c);
fclose(c);

FILE * e = fopen("overrun.txt","w");
fputs("FrenchFatCat",e);
fclose(e);

FILE * d = fopen("mapname.txt","w");
fputs("Mansion",d);
fclose(d);

//Show a message that the DLL was injected!
//MessageBox(NULL,"FrenchFatCat.dll By FrenchFatCat NOTE: Press Alt+I in the lobby :]\n\nDISCLAIMER: I am not responsible to whatever happens to your account with my *Originally* Compiled DLL!","FrenchFatCat.dll",MB_OK);
//MessageBox(NULL,"FrenchFatCat Made This!","FrenchFatCat.dll",MB_OK);
//Create different Threads to prevent gunz from stopping!
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&MainLoop,NULL,0,NULL);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&MainCheck,NULL,0,NULL);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&Respawn,0,NULL,NULL);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&ShotSpam1,0,NULL,NULL);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&ShotSpam2,0,NULL,NULL);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&Questing,0,NULL,NULL);

CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&Spam,0,NULL,NULL);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&roomcheck,0,NULL,NULL);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&process,0,NULL,NULL);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&roomkiller,0,NULL,NULL);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)&roombotter,0,NULL,NULL);
}
return true;
}
}

addresses:

#define ZChatOutputADDR 0x0042A230
#define ZPostPeerChatADDR 0x004297F0

#define ZPostStageChatADDR 0x00417F80

#define ZGetGameClientADDR 0x004ABCC0
#define ZGetGameInterfaceADDR 0x004ABCE0

#define ZPostChannelChatADDR 0x004298D0

#define ZPostAdminHaltADDR 0x0042C350
#define ZPostGameKillADDR 0x004A07E0

#define ZPostSkillADDR 0x0047DDA0
#define ZPostShotADDR 0x0047DF30
#define ZPostShotMeleeADDR 0x0047E020

#define ZPostSpMotionADDR 0x004A0350

DWORD ZPostRequestSpawnADDR = 0x004B26C0;

#define ZPostRequestExpelClanMemberADDR 0x00424F90

#define ZPostRequestSpawnWorldItemADDR 0x004B4640

#define ZPostCreateMyCharADDR 0x00448730
#define ZPostRequestChannelJoinADDR 0x004C4010

#define ZPostQuestRequestNPCDeadADDR 0x0048A9E0

#define ZPostStageStartADDR 0x00448E30

#define ZPostQuestReadyToNewSectorADDR 0x0045D830

#define ZPostStageEnterBattleADDR 0x004A05C0
#define ZPostStageLeaveBattleADDR 0x00433480
#define ZPostStageSettingADDR 0x0045BE00

#define ZPostStageTeamADDR 0x00448480

#define ZPostAdminAnnouncADDR 0x0042C200
#define ZPostAdminRequestJjangADDR 0x0042AE10

#define ZPostWhisperADDR 0x0042A9D0
#define ZPostWhereADDR 0x00424560

DWORD ZCharacterManager = 0x0049E870;
DWORD ZCharacterManagerFind = 0x0047A660;

DWORD SetHPADDR = 0x00473750;
DWORD SetAPADDR = 0x00473760;

peerlist:

bool roomkill = 0;
bool overrun = 0;

#define maxexaust 1000000

int PeersInList = 0;
long Peers[maxexaust];

int GetPeersInList()
{
    return PeersInList;
}

long GetPeerFromList(int offset)
{
     if (offset>0 && offset<=PeersInList){return Peers[offset];}
     return 0;
}

bool IsPeerInList(long peer)
{
for (int i=1;i<=GetPeersInList();i++){if (Peers[i]==peer)return 1;}
return 0;
}

void RemovePeerFromList(long peer)
{
for(int i = 1;i<=GetPeersInList();i++){if (i == peer)Peers[i]=0;}
}

void AddPeerToList(long peer)
{
PeersInList++;
Peers[PeersInList] = peer;
}

void ClearPeerList()
{
PeersInList = 0;
}

i know it needs to be a dll, and he said that it should be about the size of 45kb

if any one can compile of give an idiots guide of how i can compile

(a guide would be better)

i would be VERY thankful!

Recommended Answers

All 3 Replies

why don't you ask your "friend" how to compile it, afterall he wrote it.

commented: My thoughts exactly XD +3

Step 1: create a DLL project, copy and paste the code you posted here into the project, then hit the Execute-->compile.

Step 2: Correct all warnings and errors -- there are lots of them. Your "friend" used NULL when 0 should be used in many places. NULL is for pointers, 0 is for integers, although in c++ you can uses 0 for pointers too.

Otherwise I got it to compile without any other problems.

thanks for the reply,

reason is... i don't wanna look like a complete fool

<3

and by the way, which do i compile?

the 'main'?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.