Sesuai Judul Saya Akan Memberi Anda Base Dan Offset Crossfire Yang Memungkinkan Anda Bisa Juga Membuat Cheat Crossfire.. Untuk Base Anda Harus Berusaha Memasukan Offsetnya Dan Di Gabungkan Menjadi Cheat Crossfire!!! Okey Cekidot Basenya:
Bahan : Def C++
Cara Nya : Buka Def C++
Add Module
Masukan Basenya
Silahkan Berkreasi
=================KHUSUS YANG BELUM TAU=================
Sengaja Saya share Buat Anda
/#Name Author : Steven Sasongko
/#Website : www.exocheatpertamax.blogspot.com
/#Thanks to : Padang XP
//VjRichard
#include <windows.h>
#include <stdio.h>
//remove these stupid warnigs
#pragma warning(disable:4996)
#pragma warning(disable:4312)
//default keys
#define VALINC VK_RIGHT
#define VALDEC VK_LEFT
#define ITMINC VK_DOWN
#define ITMDEC VK_UP
#define MNSHOW VK_INSERT
#define AFKBOT VK_F2
//never saw them changed but you will need to change them for CFPH
#define ID_MSG 0x1C
#define ID_NOR 0x16
#define ID_AFK 0x37
class CMenu;
//so we include in only one cpp file
#ifndef MYMENU
#define MYMENU
class CMenu
{
private:
//some private members
char name[100]; //name of the coder (or nothing)
char items[100][100]; //items in the menu .. max 100 item and 100 character per item
char** options[100]; //pointer to options array
DWORD* values[100]; //pointer to value holder
DWORD curitem; //current active item
DWORD numitems; //current number of elements
void DrawMessage(DWORD Type, DWORD dwID, DWORD dwType2, LPVOID lpText);
bool IsVisible();
void PushToConsole(LPSTR command);
public:
DWORD MessageFunc; //ingame message box function
DWORD VisibleState; //ingame message state variable
DWORD PTC; //LTC
CMenu(LPSTR lpName = NULL);
~CMenu();
void Nav();
void AddItem(LPSTR lpText, char** options, DWORD* val);
bool Ready();
};
#endif
===========================Menu.Cpp===========================
#include "menu.h"
CMenu::CMenu(LPSTR lpName)
{
//initilize variables values to NULL
strcpy(name, lpName);
MessageFunc = NULL;
VisibleState = NULL;
curitem = NULL;
numitems = NULL;
}
CMenu::~CMenu()
{
}
//Check if we are ready or not
bool CMenu::Ready()
{
return (GetModuleHandleA("ClientFx.Fxd") > 0);
}
//Adds a new item
void CMenu::AddItem(LPSTR lpText, char** opt, DWORD* val)
{
values[numitems] = val;
options[numitems] = opt;
strcpy(items[numitems++], lpText);
}
//Draw the message to the game
void CMenu::DrawMessage(DWORD Type_, DWORD dwID, DWORD dwType2, LPVOID lpText)
{
if (!MessageFunc) return;
if (Type_ == ID_MSG)
if (IsVisible()) return;
DWORD MsgBoxFunc = MessageFunc;
__asm
{
push lpText;
push dwType2;
push dwID;
push Type_;
call MsgBoxFunc;
add esp, 16;
}
}
//checks if the menu is visible or not
bool CMenu::IsVisible()
{
if (!VisibleState) return false;
if ((*(DWORD*)(VisibleState)) == ID_NOR) return false;
return true;
}
//Push to console function
//we will use it to fix centered cursor
void CMenu::PushToConsole(LPSTR command)
{
if (!PTC) return;
DWORD pointer = *(DWORD*)(PTC);
if (pointer)
{
DWORD FuncToCall = *(DWORD*)(pointer+0x1FC);
if (FuncToCall)
{
__asm
{
push command;
call FuncToCall;
add esp, 4;
}
}
}
}
//Control menu navigation
void CMenu::Nav()
{
//use a variable to check if we need to redraw
bool drawing = false;
//When afkbot key (default f2) is pressed
if (GetAsyncKeyState(AFKBOT))
{
//draw the storage message
DrawMessage(ID_AFK, 0, 0, 0);
//fix the centered cursor
PushToConsole("CursorCenter 0");
Sleep(50);
//move the cursor.. now the user can left click to activate
SetCursorPos(500, 500);
}
if (!numitems) return;
DWORD curval = *values[curitem];
//when toggle menu key is pressed (default insert)
if (GetAsyncKeyState(MNSHOW))
{
if (IsVisible())
{
DrawMessage(ID_NOR, 0, 0, 0);
return;
}
else
drawing = true;
}
else
if (!IsVisible()) return;
//When the user tries to get the next item (default down)
if (GetAsyncKeyState(ITMINC))
{
curitem++;
if (curitem >= numitems)
curitem = 0;
drawing = true;
}
//When the user tries to get the previous item (default up)
if (GetAsyncKeyState(ITMDEC))
{
if (curitem == 0)
curitem = numitems;
curitem--;
drawing = true;
}
//When the user tries to increase the value (default right)
if (GetAsyncKeyState(VALINC))
{
if (options[curitem][curval+1])
{
curval++;
*values[curitem] = curval;
drawing = true;
}
}
//When the user tries to decrease the value (default left)
if (GetAsyncKeyState(VALDEC))
{
if (curval)
{
curval--;
*values[curitem] = curval;
drawing = true;
}
}
//if we have to redraw
if (drawing)
{
//remove any exising message
DrawMessage(ID_NOR, 0, 0, 0);
Sleep(50);
//write the message to a buffer
char buffer[200];
sprintf(buffer, "%s\n%s : %s", name, items[curitem], options[curitem][curval]);
//draw the message
DrawMessage(ID_MSG, 0x70, 4, buffer);
}
}
Untuk Offsetnya :
ChangeWeapon:0x138D5F
RangeWeapon:0x128AB3
ModeType:0x12CCDA
MaxAmmo:0x13B4F4
UnlimitedAmmo:0x13B6AE
NoSpread:0x138E46
WeaponMGR:0xB5D5F8
WallMgr:0xB5D5E0
FallMgr:0xB5D5D8
BasicPlayerInfo:0xAF64C4
InjectionMsg:0xA4180
LTClient:0xB5E378
No Reload:0xC2C
OHK & No Grnd Dmg:0x818
Shoot Through Wall's :0x4EC , 4E8 , 4F0
NoWeaponWeight:0xB04
NoWeaponChangeDelay:0xC30
FastKnife1:0xA60
FastKnife2:0xAA8
KnifeOHK1:0xBF8
KnifeOHK2:0xC04
CrouchSpeed:0xC
ShotGunSpread:0x3524,0x860