0% found this document useful (0 votes)
23 views

C++ With QT Extensions 1

The document contains code for reading and writing integers and strings to files in C++. It also contains code and struct definitions for manipulating player data and entities in a game, including setting player positions, velocities, health, and more. It provides functions for hooking into entity execution and modifying game settings for a modded lobby.

Uploaded by

mikhail
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

C++ With QT Extensions 1

The document contains code for reading and writing integers and strings to files in C++. It also contains code and struct definitions for manipulating player data and entities in a game, including setting player positions, velocities, health, and more. It provides functions for hooking into entity execution and modifying game settings for a modded lobby.

Uploaded by

mikhail
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

/*

* Записать переменную int в файл

* Чтобы запись произошла, файл должен быть открыт.

*/

static bool writeInt(int i, QFile* file)

int size = sizeof(int);

char cache[size];

memcpy(&cache, &i, size);

return file->write(cache, size) == size;

/*

* Записать текст в файл.

* Чтобы запись произошла, файл должен быть открыт.

*/

static bool writeString(QString s, QFile* file)

QByteArray arr = s.toUtf8();

writeInt(arr.length(), file);

return file->write(arr) == arr.length();

}
/*

* Прочитать переменную int с файла

* Чтобы чтение произошло, файл должен быть открыт

*/

static int readInt(QFile* file)

int size = sizeof(int);

char bytes[size];

file->read(bytes, size);

int ret;

memcpy(&ret, &bytes, size);

return ret;

/*

* Прочитать текст с файла

* Чтобы чтение было успешным, файл должен быть открыт

*/

static QString readString(QFile* file)

{
int size = readInt(file);

return QString(file->read(size));

//Some structs

struct Vector3;

struct gentity_s;

struct playerState_s;

struct Vector3

float v[3];

Vector3(float v1, float v2, float v3)

v[0] = v1; v[1] = v2; v[2] = v3;

VOID Print(PCHAR Text)

DbgPrint("%s addr: %X v1: %f v2: %f v3: %f\n", Text, v, v[0], v[1], v[2]);

};

struct gentity_s

INT EntityNumber;

BYTE _0x4[0x14];

Vector3 Origin;

BYTE _0x1B[0x18];

Vector3 Angles;

BYTE _0x36[0x110];

playerState_s* playerState;
BYTE _0x15C[0xC];

UINT16 ModelIndex;

BYTE _0x16A[0x32];

INT Health;

BYTE _0x1A0[0xE0];

};

struct playerState_s

BYTE _0x0[0x1C];

Vector3 Origin;

Vector3 Velocity;

BYTE _0x22[0x32E4];

INT Score;

BYTE _0x331C[0x70];

CHAR PlayerName[32];

INT MaxHealth;

BYTE _0x33B0[0x24];

INT Team;

BYTE _0x33D8[0x78];

CHAR ClanTag[4];

BYTE _0x3454[0x1A8];

INT MovementFlags;

BYTE _0x3600[0x380];

VOID SetOrigin(Vector3 NewOrigin)

memcpy((PVOID)Origin.v, (PVOID)NewOrigin.v, sizeof(float) * 3);

VOID SetVelocity(Vector3 NewVelocity)


{

memcpy((PVOID)Velocity.v, (PVOID)NewVelocity.v, sizeof(float) * 3);

};

gentity_s *gentity(INT Index)

return (gentity_s*)(0x82DCCC80 + (Index * 0x280));

DWORD gclient(INT Client)

return *(DWORD*)(0x834C0480 + 0x205E90) + (Client * 0x68B80);

//Some functions

VOID (__cdecl *ClientCommand)(INT ClientNumber) = (VOID (__cdecl *)(INT))0x82239C80;

BOOL (__cdecl *Dvar_GetBool)(PCHAR Dvar) = (BOOL (__cdecl *)(PCHAR))0x8232E200;

PCHAR (__cdecl *Dvar_GetString)(PCHAR Dvar) = (PCHAR (__cdecl *)(PCHAR))0x8232E3C0;

VOID (__cdecl *SV_Cmd_EndTokenizedString)() = (VOID (__cdecl *)())0x82288988;

VOID (__cdecl *SV_Cmd_TokenizeString)(PCHAR TextIn) = (VOID (__cdecl *)(PCHAR))0x82288968;

UINT16 (__cdecl *Scr_ExecEntThreadNum)(INT EntityNumber, UINT32 ClassNumber, INT Handle,


UINT32 ParameterCount) = (UINT16 (__cdecl *)(INT, UINT32, INT, UINT32))0x822C40C0;

VOID (__cdecl *CBuf_AddText)(INT LocalClientNumber, PCHAR Text) = (VOID (__cdecl *)(INT,


PCHAR))0x82287EE0;

PCHAR (__cdecl *va)(PCHAR Format, ...) = va = (PCHAR (__cdecl *)(PCHAR, ...))0x82336528;


//Monitor connection/disconnection damage and death + more

//Code (Text):

UINT16 Scr_ExecEntThread(gentity_s *gentity, INT Handle, UINT32 ParameterCount)

//DbgPrint("Scr_ExecEntThread - gentity[%X] Handle[%X] ParameterCount[%X]\n", gentity, Handle,


ParameterCount);

switch(Handle)

case 0x1037F4:

DbgPrint("Player %i Connected!\n", gentity->EntityNumber);

break;

case 0x103814:

DbgPrint("Player %i Disconnected!\n", gentity->EntityNumber);

break;

case 0x103822:

//DbgPrint("Player %i Damaged!\n", gentity->EntityNumber);

break;

case 0x103851:

//DbgPrint("Player %i Killed!\n", gentity->EntityNumber);

break;

return Scr_ExecEntThreadNum(gentity->EntityNumber, NULL, Handle, ParameterCount);

}
//Then add this

//Code (Text):

DetourFunction((PDWORD)0x8226AEE8, (DWORD)Scr_ExecEntThread);

For a modded lobby

Code (Text):

*(UINT16*)(0x8222E59C + 0x02) = 450; // G_Speed

*(FLOAT*)0x82001D68 = 999; // Super Jump

*(FLOAT*)0x82000C04 = 9999; // No Fall

*(INT*)0x820F63E4 = 0x7D495378; // Unlimited Ammo - mr r9, r10

*(INT*)0x820F46DC = 0x39600000; // Full Auto Guns - li r11, 0

*(INT*)0x82233A7C = 0x60000000; // Disable PlayerCmd_FreezeControls

Real Godmode (no blood)

Code (Text):

gentity(Client)->playerState->MaxHealth = 9999;

gentity(Client)->Health = 9999;

//----------------------------------------------------------------------

*(int*)(getEntity(clientIndex) + 0x184) = 1; -> god mode On

*(int*)(getEntity(clientIndex) + 0x184) = 0; -> god mode Off

*(int*)(getEntity(clientIndex) + 0x184) = 3; -> no Knockback but no godMode

*(int*)(getEntity(clientIndex) + 0x184) = 2; -> demigod (i think)


//SOURCE http://www.se7ensins.com/forums/threads/all-important-and-useful-mw3-offsets-tu23-
some-bytes.1194562/page-3

You might also like