Created
January 2, 2017 05:39
-
-
Save Tustin/20c492cd6b4cdeec333659e064ffbbb5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <wchar.h> | |
#include <sys/prx.h> | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <sys/syscall.h> | |
#include <sys/ppu_thread.h> | |
#include <string.h> | |
#include <sys/sys_time.h> | |
#include <sys/time_util.h> | |
#include <stdarg.h> | |
#include <assert.h> | |
#include <sys/process.h> | |
#include <sys/memory.h> | |
#include <sys/timer.h> | |
#include <sys/return_code.h> | |
#include <sys/prx.h> | |
#include <stddef.h> | |
#include <math.h> | |
#include <stdarg.h> | |
#include <cellstatus.h> | |
#include <typeinfo> | |
#include <vector> | |
#include <pthread.h> | |
#include <locale.h> | |
#include <cell/error.h> | |
#include <sys/paths.h> | |
#include <time.h> | |
#include <sys/types.h> | |
#include <ctype.h> | |
#include <cell/pad.h> | |
#define TOC ( GTAVTOC ) | |
#define PAD_LEFT (1 << 7) | |
#define PAD_DOWN (1 << 6) | |
#define PAD_RIGHT (1 << 5) | |
#define PAD_UP (1 << 4) | |
#define PAD_START (1 << 3) | |
#define PAD_R3 (1 << 2) | |
#define PAD_L3 (1 << 1) | |
#define PAD_SELECT (1 << 0) | |
#define PAD_SQUARE (1 << 15) | |
#define PAD_CROSS (1 << 14) | |
#define PAD_CIRCLE (1 << 13) | |
#define PAD_TRIANGLE (1 << 12) | |
#define PAD_R1 (1 << 11) | |
#define PAD_L1 (1 << 10) | |
#define PAD_R2 (1 << 9) | |
#define PAD_L2 (1 << 8) | |
SYS_MODULE_INFO( FUBARCashDropperCode, 0, 1, 1); | |
SYS_MODULE_START( _FUBARCashDropperCode_prx_entry ); | |
SYS_LIB_DECLARE_WITH_STUB( LIBNAME, SYS_LIB_AUTO_EXPORT, STUBNAME ); | |
SYS_LIB_EXPORT( _FUBARCashDropperCode_export_function, LIBNAME ); | |
sys_ppu_thread_t FUBAR; | |
CellPadData PadData; | |
struct opd_s | |
{ | |
int32_t sub; | |
int32_t toc; | |
}; | |
struct Vector3 | |
{ | |
float x, y, z; | |
}; | |
enum Address | |
{ | |
GTAVTOC = 0x1BF3C30, | |
CheatProtection = 0x3DBF70, | |
ServerDetails = 0xF57FC5, | |
com_sprintf = 0x3E4BE0, | |
SP_Script_Model = 0x2670E8 | |
}; | |
enum Natives | |
{ | |
_SET_TEXT_FONT = 0x3B7114, | |
_SET_TEXT_SCALE = 0x3B704C, | |
_SET_TEXT_COLOUR = 0x3B7060, | |
_SET_TEXT_ENTRY = 0x3B5BE0, | |
_ADD_TEXT_COMPONENT_STRING = 0x3B5F1C, | |
_ADD_TEXT_COMPONENT_FLOAT = 0x3B5EB8, | |
_DRAW_TEXT = 0x3B5C18, | |
_DRAW_RECT = 0x3AD9F8, | |
_SET_TEXT_CENTRE = 0x3B7098, | |
_SET_TEXT_OUTLINE = 0x3B7168, | |
_SET_TEXT_WRAP = 0x3B70EC, | |
_SET_TEXT_DROP = 0x3B7138, | |
_GET_PLAYER_NAME = 0x42028C, | |
_GET_ENTITY_COORDS = 0x399C20, | |
_GET_PLAYER_PED = 0x420010, | |
_GET_HASH_KEY = 0x109A08, | |
_CREATE_AMBIENT_PICKUP = 0x3E7E5C, | |
_GET_PLAYER_INDEX = 0x422790, | |
_DISPLAY_ONSCREEN_KEYBOARD = 0x3C693C, | |
_IS_SYSTEM_UI_BEING_DISPLAYED = 0x422E78, | |
_GET_ONSCREEN_KEYBOARD_RESULT = 0x3C6998, | |
_SET_INPUT_EXCLUSIVE = 0x3EE168, | |
_DISABLE_CONTROL_ACTION = 0x3EE1D4, | |
_SET_CINEMATIC_BUTTON_ACTIVE = 0x3959EC, | |
_HAS_ACHIEVEMENT_BEEN_PASSED = 0x422BA8, | |
_GIVE_ACHIEVEMENT_TO_PLAYER = 0x422B7C, | |
_STAT_SET_BOOL = 0x42A30C, | |
_STAT_SET_INT = 0x429E74, | |
_SET_ENTITY_COORDS = 0x3A1090, | |
_PLAYER_PED_ID = 0x4227D4, | |
_GIVE_DELAYED_WEAPON_TO_PED = 0x44D7C8, | |
_REMOVE_ALL_PED_WEAPONS = 0x44E754, | |
_SET_ENTITY_INVINCIBLE = 0x3A1B84, | |
_SET_ENTITY_VISIBLE = 0x3A2490, | |
_IS_PED_IN_VEHICLE = 0X3FB018, | |
_SET_NIGHTVISION = 0x3AD2B4, | |
_SET_VEHICLE_FIXED = 0X441CE0, | |
_GET_VEHICLE_PED_IS_USING = 0x3FB018, | |
_SET_VEHICLE_CUSTOM_PRIMARY_COLOUR = 0x4391E0, | |
_SET_VEHICLE_CUSTOM_SECONDARY_COLOUR = 0x43941C, | |
_GET_RANDOM_INT_IN_RANGE = 0x3C1BF0, | |
_SET_VEHICLE_FORWARD_SPEED = 0x43A420, | |
_GET_ENTITY_SPEED = 0x39B0F0, | |
_SET_WEATHER_TYPE_NOW = 0x3C1514, | |
_IS_MODEL_IN_CDIMAGE = 0x0433820, | |
_REQUEST_MODEL = 0x432CBC, | |
_HAS_MODEL_LOADED = 0x432E14, | |
_SET_PLAYER_MODEL = 0x41FC98, | |
_SET_MODEL_AS_NO_LONGER_NEEDED = 0x433000, | |
_SET_PAD_SHAKE = 0x3EDEA8, | |
_STOP_PAD_SHAKE = 0x3EDF90, | |
_PLAY_SOUND_FRONTEND = 0x38C4A0, | |
_PLAYER_ID = 0x422790, | |
}; | |
opd_s FONT = { _SET_TEXT_FONT, TOC }; | |
opd_s SCALE = { _SET_TEXT_SCALE, TOC }; | |
opd_s COLOUR = { _SET_TEXT_COLOUR, TOC }; | |
opd_s ENTRY = { _SET_TEXT_ENTRY, TOC }; | |
opd_s COMPONENT = { _ADD_TEXT_COMPONENT_STRING , TOC }; | |
opd_s COMPFLOAT = { _ADD_TEXT_COMPONENT_FLOAT, TOC }; | |
opd_s TEXT = { _DRAW_TEXT, TOC }; | |
opd_s CENTRE = { _SET_TEXT_CENTRE, TOC }; | |
opd_s OUTLINE = { _SET_TEXT_OUTLINE, TOC }; | |
opd_s WRAP = { _SET_TEXT_WRAP, TOC }; | |
opd_s DROP = { _SET_TEXT_DROP , TOC }; | |
opd_s SHADER = { _DRAW_RECT, TOC }; | |
opd_s PLAYERS = { _GET_PLAYER_NAME, TOC }; | |
opd_s COORDS = { _GET_ENTITY_COORDS , TOC }; | |
opd_s PED = { _GET_PLAYER_PED, TOC }; | |
opd_s HASH = { _GET_HASH_KEY, TOC }; | |
opd_s PICKUPS = { _CREATE_AMBIENT_PICKUP, TOC }; | |
opd_s PINDEX = { _GET_PLAYER_INDEX, TOC }; | |
opd_s KEYB = { _DISPLAY_ONSCREEN_KEYBOARD, TOC }; | |
opd_s UIL = { _IS_SYSTEM_UI_BEING_DISPLAYED, TOC }; | |
opd_s RES = { _GET_ONSCREEN_KEYBOARD_RESULT, TOC }; | |
opd_s INPUT = { _SET_INPUT_EXCLUSIVE, TOC }; | |
opd_s CONTROL = { _DISABLE_CONTROL_ACTION, TOC }; | |
opd_s ACTIVE = { _SET_CINEMATIC_BUTTON_ACTIVE, TOC }; | |
opd_s PASSED = { _HAS_ACHIEVEMENT_BEEN_PASSED, TOC }; | |
opd_s GIVE = { _GIVE_ACHIEVEMENT_TO_PLAYER, TOC }; | |
opd_s BOOL = { _STAT_SET_BOOL, TOC }; | |
opd_s INT = { _STAT_SET_INT, TOC }; | |
opd_s SETCOORDS = { _SET_ENTITY_COORDS, TOC }; | |
opd_s ID = { _PLAYER_PED_ID, TOC }; | |
opd_s DELAYED = { _GIVE_DELAYED_WEAPON_TO_PED, TOC }; | |
opd_s TAKE = { _REMOVE_ALL_PED_WEAPONS, TOC }; | |
opd_s GOD = { _SET_ENTITY_INVINCIBLE, TOC }; | |
opd_s VISIBLE = { _SET_ENTITY_VISIBLE, TOC }; | |
opd_s INVEH = { _IS_PED_IN_VEHICLE, TOC }; | |
opd_s NVG = { _SET_NIGHTVISION, TOC }; | |
opd_s FIXED = { _SET_VEHICLE_FIXED, TOC }; | |
opd_s ISUSING = { _GET_VEHICLE_PED_IS_USING, TOC }; | |
opd_s RNG = { _GET_RANDOM_INT_IN_RANGE, TOC }; | |
opd_s PRIMARYCOLOUR = { _SET_VEHICLE_CUSTOM_PRIMARY_COLOUR, TOC }; | |
opd_s SECONDARYCOLOUR = { _SET_VEHICLE_CUSTOM_SECONDARY_COLOUR, TOC }; | |
opd_s SPEED = { _SET_VEHICLE_FORWARD_SPEED, TOC }; | |
opd_s GETSPEED = { _GET_ENTITY_SPEED, TOC }; | |
opd_s SETWEATHER = { _SET_WEATHER_TYPE_NOW, TOC }; | |
opd_s REQUEST = { _REQUEST_MODEL, TOC }; | |
opd_s LOADED = { _HAS_MODEL_LOADED, TOC }; | |
opd_s CHANGE = { _SET_PLAYER_MODEL , TOC }; | |
opd_s UNLOAD = { _SET_MODEL_AS_NO_LONGER_NEEDED , TOC }; | |
opd_s CDIMAGE = { _IS_MODEL_IN_CDIMAGE, TOC }; | |
opd_s SETSHAKE = { _SET_PAD_SHAKE, TOC }; | |
opd_s STOPSHAKE = { _STOP_PAD_SHAKE, TOC }; | |
opd_s PLAYSOUND = { _PLAY_SOUND_FRONTEND, TOC }; | |
opd_s PID = { _PLAYER_ID, TOC }; | |
void(*SET_TEXT_FONT)(int font) = (void(*)(int))&FONT; | |
void(*SET_TEXT_SCALE)(float w, float h) = (void(*)(float, float))&SCALE; | |
void(*SET_TEXT_COLOUR)(int r, int g, int b, int a) = (void(*)(int, int, int, int))&COLOUR; | |
void(*SET_TEXT_ENTRY)(char * txt) = (void(*)(char*))&ENTRY; | |
void(*ADD_TEXT_COMPONENT_STRING)(const char *text) = (void(*)(const char *))&COMPONENT; | |
void(*ADD_TEXT_COMPONENT_FLOAT)(float val) = (void(*)(float))&COMPFLOAT; | |
void(*DRAW_TEXT)(float x, float y) = (void(*)(float, float))&TEXT; | |
void(*DRAW_RECT)(float x1, float y1, float x2, float y2, int r, int g, int b, int a) = (void(*)(float, float, float, float, int, int, int, int))&SHADER; | |
void(*SET_TEXT_CENTRE)(int value) = (void(*)(int))&CENTRE; | |
void(*SET_TEXT_WRAP)(float r3, float r4) = (void(*)(float, float))&WRAP; | |
void(*SET_TEXT_OUTLINE)() = (void(*)())&OUTLINE; | |
void(*SET_TEXT_DROPSHADOW)(int r3, int r4, int r5, int r6, int r7) = (void(*)(int, int, int, int, int))&DROP; | |
const char *(*GET_PLAYER_NAME)(int index) = (const char *(*)(int))&PLAYERS; | |
Vector3(*GET_ENTITY_COORDS)(int player, bool b) = (Vector3(*)(int, bool))&COORDS; | |
int(*GET_PLAYER_PED)(int index) = (int(*)(int))&PED; | |
void(*CREATE_AMBIENT_PICKUP)(int hash, float x, float y, float z, int r5, int r6, int r7, int r8, int r9) = (void(*)(int, float, float, float, int, int, int, int, int))&PICKUPS; | |
int(*GET_HASH_KEY)(char* model) = (int(*)(char*))&HASH; | |
int(*GET_PLAYER_INDEX)() = (int(*)())&PINDEX; | |
void(*DISPLAYONSCREENKEYBOARD)(int, char *, char *, char *, char *, char *, char *, int) = (void(*)(int, char *, char *, char *, char *, char *, char *, int))&KEYB; | |
bool(*ISSYSTEMUIBEINGDISPLAYED)() = (bool(*)())&UIL; | |
int(*GETONSCREENKEYBOARDRESULT)() = (int(*)())&RES; | |
void(*SETINPUTEXCLUSIVE)(int, int) = (void(*)(int, int))&INPUT; | |
void(*DISABLECONTROLACTION)(int, int) = (void(*)(int, int))&CONTROL; | |
void(*SETCINEMATICBUTTONACTIVE)(bool) = (void(*)(bool))&ACTIVE; | |
bool(*HAS_ACHIEVEMENT_BEEN_PASSED)(int index) = (bool(*)(int))&PASSED; | |
void(*GIVE_ACHIEVEMENT_TO_PLAYER)(int index) = (void(*)(int))&GIVE; | |
void(*SET_STAT_INT)(int awardHash, int value) = (void(*)(int, int))&INT; | |
void(*SET_STAT_BOOL)(int awardHash, bool value) = (void(*)(int, bool))&BOOL; | |
void(*SET_ENTITY_COORDS)(int id, unsigned char *addr, int r3, int r4, int r5, int r6) = (void(*)(int, unsigned char *, int, int, int, int))&SETCOORDS; | |
int(*PLAYER_PED_ID)() = (int(*)())&ID; | |
void(*GIVE_DELAYED_WEAPON_TO_PED)(int id, int hash, int ammo1, int ammo2) = (void(*)(int, int, int, int))&DELAYED; | |
void(*REMOVE_ALL_PED_WEAPONS)(int id) = (void(*)(int))&TAKE; | |
void(*SET_ENTITY_INVINCIBLE)(int id, bool toggle) = (void(*)(int, bool))&GOD; | |
void(*SET_ENTITY_VISIBLE)(int id, bool toggle) = (void(*)(int, bool))&VISIBLE; | |
bool(*IS_PED_IN_VEHICLE)(int id) = (bool(*)(int))&INVEH; | |
void(*SET_VEHICLE_FIXED)(int vehID) = (void(*)(int))&FIXED; | |
int(*GET_VEHICLE_PED_IS_USING)(int id) = (int(*)(int))&ISUSING; | |
int(*GET_RANDOM_INT_IN_RANGE)(int min, int max) = (int(*)(int, int))&RNG; | |
void(*SET_VEHICLE_CUSTOM_PRIMARY_COLOUR)(int vehID, int r, int g, int b) = (void(*)(int, int, int, int))&RNG; | |
void(*SET_VEHICLE_CUSTOM_SECONDARY_COLOUR)(int vehID, int r, int g, int b) = (void(*)(int, int, int, int))&RNG; | |
void(*SET_VEHICLE_FORWARD_SPEED)(int vehID, float speed) = (void(*)(int, float))&SPEED; | |
float(*GET_ENTITY_SPEED)(int vehID) = (float(*)(int))&GETSPEED; | |
void(*SET_WEATHER_TYPE_NOW)(const char* type) = (void(*)(const char*))&SETWEATHER; | |
void(*REQUEST_MODEL)(unsigned int hash) = (void(*)(unsigned int))&REQUEST; | |
int(*HAS_MODEL_LOADED)(unsigned int hash) = (int(*)(unsigned int))&LOADED; | |
void(*SET_PLAYER_MODEL)(int id, unsigned int hash) = (void(*)(int, unsigned int))&CHANGE; | |
void(*SET_MODEL_AS_NO_LONGER_NEEDED)(unsigned int hash) = (void(*)(unsigned int))&UNLOAD; | |
bool(*IS_MODEL_IN_CDIMAGE)(int hash) = (bool(*)(int))&CDIMAGE; | |
void(*SET_PAD_SHAKE)(int padIndex, int intensity, int duration) = (void(*)(int, int, int))&SETSHAKE; | |
void(*STOP_PAD_SHAKE)(int padIndex) = (void(*)(int))&STOPSHAKE; | |
void(*PLAY_SOUND_FRONTEND)(int unk, const char* name, const char* type) = (void(*)(int, const char*, const char*))&PLAYSOUND; | |
int(*PLAYER_ID)() = (int(*)())&PID; | |
bool Open = false; | |
bool isPlaying = false; | |
bool isGod = false; | |
bool isInvisible = false; | |
bool isNotWanted = false; | |
bool isCarGod = false; | |
bool isCarInvisible = false; | |
bool isCarStuck = false; | |
bool isSpeedoOn = false; | |
bool PlayersOpen = false; | |
bool ShowMessage = false; | |
bool Focus = false; | |
bool ModelChange = false; | |
const char* MainMenuOptions[8] = { "Self", "Players", "Profile", "Vehicle", "Models", "Weather", "Teleports", "Exit" }; | |
const char* SelfOptions[6] = { "God mode", "Invisible", "Never wanted", "Give all weapons", "Take all weapons", "Vibrator" }; | |
const char* ProfileOptions[4] = { "Unlock all", "Trophy unlocker", "Skip tutorial", "Add RP" }; | |
const char* AddRPOptions[5] = { "100", "1,000 (1k)", "10,000 (10k)", "100,000 (100k)", "1,000,000 (1m)" }; | |
const char* VehicleOptions[7] = { "Fix car", "Randomize color", "God mode", "Invisible", "Boost this shit!", "Speedometer" }; | |
const char* ModelOptions[1] = { "fart master" }; | |
const char* WeatherOptions[14] = { "EXTRASUNNY", "CLEAR", "CLOUDS", "SMOG", "FOGGY", "OVERCAST", "XMAS", "RAIN" "THUNDER", "CLEARING", "NEUTRAL", "SNOW", "BLIZZARD", "SNOWLIGHT" }; | |
const char* TeleportOptions[2] = { "Here", "There" }; | |
const char* PlayersMenu[5] = { "Teleport to", "Spam cash", "Explode", "Spam text message", "Attach to" }; | |
const char* SelectedPlayerName; | |
int WhichMenu; | |
int PlayerScroll = 0; | |
int ScriptHookMod; | |
int MainScroll = 0; | |
int SelectedClient = -1; | |
int success = 0; | |
int CurrentChar = 1; | |
//void GiveWeapons(int Client, bool isLocal) | |
//{ | |
// unsigned int Weapons[] = { 0x99B507EA, 0x678B81B1, 0x4E875F73, 0x958A4A8F, 0x440E4788, 0x84BD7BFD, 0x1B06D571, 0x5EF9FEC4, 0x22D8FE39, 0x99AEEB3B, 0x13532244, 0x2BE6766B, 0xEFE7E2DF, 0xBFEFFF6D, 0x83BF0278, 0xAF113F99, 0x9D07F764, 0x7FD62962, 0x1D073A89, 0x7846A318, 0xE284C527, 0x9D61E50F, 0x3656C8C1, 0x05FC3C11, 0x0C472FE2, 0x33058E22, 0xA284510B, 0x4DD2DC56, 0xB1CA77B1, 0x687652CE, 0x42BF8A85, 0x93E220BD, 0x2C3731D9, 0xFDBC8A50, 0x24B17070, 0x060EC506, 0x34A67B97, 0xFDBADCED, 0x23C9F95C, 0x497FACC3, 0xF9E6AA4B, 0x61012683, 0xC0A3098D, 0xD205520E, 0xBFD21232, 0x7F229F94, 0x92A27487, 0x083839C4, 0x7F7497E5, 0xA89CB99E, 0x3AABBBAA, 0xC734385A }; | |
// if (isLocal) | |
// for (int i = 0; i < 12; i++) | |
// GIVE_DELAYED_WEAPON_TO_PED(PLAYER_PED_ID(), Weapons[i], 9999, 1); | |
// else | |
// for (int i = 0; i < 12; i++) | |
// GIVE_DELAYED_WEAPON_TO_PED(GET_PLAYER_PED(Client), Weapons[i], 9999, 1); | |
//} | |
void Sleep(usecond_t time) | |
{ | |
sys_timer_usleep(time * 1000); | |
} | |
sys_ppu_thread_t create_thread(void(*entry)(uint64_t), int priority, size_t stacksize, const char* threadname, sys_ppu_thread_t id) | |
{ | |
if (sys_ppu_thread_create(&id, entry, 0, priority, stacksize, 0, threadname) == CELL_OK) | |
{ | |
} | |
return id; | |
} | |
int32_t write_process(uint64_t ea, const void * data, uint32_t size) | |
{ | |
system_call_4(905, (uint64_t)sys_process_getpid(), ea, size, (uint64_t)data); | |
return_to_user_prog(int32_t); | |
} | |
int console_write(const char * s) | |
{ | |
uint32_t len; | |
system_call_4(403, 0, (uint64_t)s, 32, (uint64_t)&len); | |
return_to_user_prog(int); | |
} | |
unsigned char ReadByte(int Address) | |
{ | |
return *(unsigned char*)Address; | |
} | |
unsigned char* ReadBytes(int Address, int Length) | |
{ | |
unsigned char* Value; | |
for (int i = 0; i < Length; i++) | |
Value[i] = ReadByte(Address + Length); | |
} | |
void WriteByte(int Address, unsigned char Input) | |
{ | |
*(unsigned char*)Address = Input; | |
} | |
void WriteBytes(int Address, unsigned char Input, int Length) | |
{ | |
for (int i = 0; i < Length; i++) | |
WriteByte(Address + i, Input); | |
} | |
char* ReadString(int Address) | |
{ | |
return (char*)Address; | |
} | |
uint32_t GetKey(void) | |
{ | |
uint32_t temp; | |
cellPadGetData(0, &PadData); | |
temp = PadData.button[3]; | |
temp = (temp << 8) + PadData.button[2]; | |
return temp; | |
} | |
void DrawText(const char* txt, int font, float x, float y, float size, int r, int g, int b, int a) | |
{ | |
SET_TEXT_FONT(font); | |
SET_TEXT_SCALE(size, size); | |
SET_TEXT_COLOUR(r, g, b, a); | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(txt); | |
DRAW_TEXT(x, y); | |
} | |
void DrawTextAndNumber(const char* txt, float val, int font, float x1, float x2, float y1, float y2, float size, int r, int g, int b, int a) | |
{ | |
SET_TEXT_FONT(font); | |
SET_TEXT_SCALE(size, size); | |
SET_TEXT_COLOUR(r, g, b, a); | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(txt); | |
DRAW_TEXT(x1, y1); | |
SET_TEXT_FONT(font); | |
SET_TEXT_SCALE(size, size); | |
SET_TEXT_COLOUR(r, g, b, a); | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("GEN_BIGM_NUM"); | |
ADD_TEXT_COMPONENT_FLOAT(val); | |
DRAW_TEXT(x2, y2); | |
} | |
void DrawMessage(const char* textBuffer) | |
{ | |
SET_TEXT_FONT(0); | |
SET_TEXT_SCALE(0.50000000596046, 0.50000000596046); | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
SET_TEXT_WRAP(0.0, 1.0); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_DROPSHADOW(0, 0, 0, 0, 0); | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(textBuffer); | |
DRAW_TEXT(0.15, 0.40); | |
} | |
void SetCoords(int player, unsigned char *coords) | |
{ | |
SET_ENTITY_COORDS(player, coords, 1, 0, 0, 1); | |
} | |
const char* OnScreenKeyboard(char * Title, int length) | |
{ | |
DISPLAYONSCREENKEYBOARD(0, Title, "", "", "", "", "", length); | |
Sleep(100); | |
while (true) | |
{ | |
if (!(ISSYSTEMUIBEINGDISPLAYED())) | |
{ | |
break; | |
} | |
} | |
int wat = GETONSCREENKEYBOARDRESULT(); | |
return ReadString((unsigned int)wat); | |
} | |
void PatchInJump(int Address, int Destination, bool Linked) | |
{ | |
int FuncBytes[4]; | |
Destination = *(int*)Destination; | |
FuncBytes[0] = 0x3D600000 + ((Destination >> 16) & 0xFFFF); | |
if (Destination & 0x8000) | |
FuncBytes[0] += 1; | |
FuncBytes[1] = 0x396B0000 + (Destination & 0xFFFF); | |
FuncBytes[2] = 0x7D6903A6; | |
FuncBytes[3] = 0x4E800420; | |
if (Linked) | |
FuncBytes[3] += 1; | |
write_process(Address, FuncBytes, 4 * 4); | |
} | |
void LoadPlayers() | |
{ | |
for (int i = 0; i < 16; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.8, 0.8); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(GET_PLAYER_NAME(i)); | |
DRAW_TEXT(0.5, 0.17 + (i * 0.041)); | |
} | |
} | |
void LoadMainMenu() | |
{ | |
for (int i = 0; i < 8; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.9, 0.9); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(MainMenuOptions[i]); | |
DRAW_TEXT(0.5, 0.17 + (i * 0.041)); | |
} | |
} | |
void LoadSelf() | |
{ | |
for (int i = 0; i < 6; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.9, 0.9); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(SelfOptions[i]); | |
DRAW_TEXT(0.5, 0.17 + (i * 0.041)); | |
} | |
} | |
void LoadProfile() | |
{ | |
for (int i = 0; i < 4; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.9, 0.9); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(ProfileOptions[i]); | |
DRAW_TEXT(0.5, 0.17 + (i * 0.041)); | |
} | |
} | |
void LoadRP() | |
{ | |
if (CurrentChar == 1) | |
if (MainScroll == 0) | |
DrawText("< Character 1 >", 4, 0.5, 0.17, 0.9, 96, 96, 96, 255); | |
else | |
DrawText("< Character 1 >", 4, 0.5, 0.17, 0.9, 255, 255, 255, 255); | |
else | |
if (MainScroll == 0) | |
DrawText("< Character 2 >", 4, 0.5, 0.17, 0.9, 96, 96, 96, 255); | |
else | |
DrawText("< Character 2 >", 4, 0.5, 0.17, 0.9, 255, 255, 255, 255); | |
for (int i = 0; i < 5; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.9, 0.9); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(AddRPOptions[i]); | |
DRAW_TEXT(0.1025, 0.252 + (i * 0.041)); | |
} | |
} | |
void LoadVehicle() | |
{ | |
for (int i = 0; i < 7; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.9, 0.9); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(VehicleOptions[i]); | |
DRAW_TEXT(0.5, 0.17 + (i * 0.041)); | |
} | |
} | |
void LoadModels() | |
{ | |
for (int i = 0; i < 1; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.9, 0.9); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(ModelOptions[i]); | |
DRAW_TEXT(0.5, 0.17 + (i * 0.041)); | |
} | |
} | |
void LoadWeather() | |
{ | |
for (int i = 0; i < 14; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.7, 0.7); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(WeatherOptions[i]); | |
DRAW_TEXT(0.5, 0.17 + (i * 0.041)); | |
} | |
} | |
void LoadTeleports() | |
{ | |
for (int i = 0; i < 2; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.9, 0.9); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(TeleportOptions[i]); | |
DRAW_TEXT(0.5, 0.17 + (i * 0.041)); | |
} | |
} | |
void LoadPlayerMenu() | |
{ | |
for (int i = 0; i < 5; i++) | |
{ | |
SET_TEXT_FONT(4); | |
SET_TEXT_SCALE(0.9, 0.9); | |
if (i == MainScroll) | |
{ | |
SET_TEXT_COLOUR(96, 96, 96, 255); | |
} | |
else | |
{ | |
SET_TEXT_COLOUR(255, 255, 255, 255); | |
} | |
SET_TEXT_OUTLINE(); | |
SET_TEXT_CENTRE(1); | |
SET_TEXT_ENTRY("STRING"); | |
ADD_TEXT_COMPONENT_STRING(PlayersMenu[i]); | |
DRAW_TEXT(0.5, 0.17 + (i * 0.041)); | |
} | |
} | |
void DoUnlocks() | |
{ | |
SET_STAT_INT(GET_HASH_KEY("MP0_CHAR_XP_FM"), 2165850); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SCRIPT_INCREASE_STAM"), 100); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SCRIPT_INCREASE_STRN"), 100); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SCRIPT_INCREASE_LUNG"), 100); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SCRIPT_INCREASE_DRIV"), 100); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SCRIPT_INCREASE_FLY"), 100); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SCRIPT_INCREASE_SHO"), 100); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SCRIPT_INCREASE_STL"), 100); | |
SET_STAT_INT(GET_HASH_KEY("MP0_RACES_WON"), 100); | |
SET_STAT_INT(GET_HASH_KEY("MP0_PISTOL_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_CMBTPISTOL_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_APPISTOL_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MICROSMG_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SMG_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTSMG_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTRIFLE_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_CRBNRIFLE_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ADVRIFLE_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_HVYSNIPER_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SNIPERRFL_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTSHTGN_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_PUMP_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_GRNLAUNCH_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_RPG_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MINIGUNS_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTSMG_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTRIFLE_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_CRBNRIFLE_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ADVRIFLE_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_HVYSNIPER_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SNIPERRFL_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MG_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_CMBTMG_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_PISTOL_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_CMBTPISTOL_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_APPISTOL_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MICROSMG_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SMG_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTSMG_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTRIFLE_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_CRBNRIFLE_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ADVRIFLE_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_HVYSNIPER_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SNIPERRFL_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTSHTGN_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_PUMP_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_GRNLAUNCH_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_RPG_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MINIGUNS_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTSMG_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ASLTRIFLE_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_CRBNRIFLE_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_ADVRIFLE_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_HVYSNIPER_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_SNIPERRFL_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MG_ENEMY_KILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_CMBTMG_ENEMY_KILLS"), 600); | |
SET_STAT_BOOL(GET_HASH_KEY("MP0_AWD_FMRACEWORLDRECHOLDER"), 1); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_ENEMYDRIVEBYKILLS"), 600); | |
SET_STAT_INT(GET_HASH_KEY("MP0_USJS_COMPLETED"), 50); | |
SET_STAT_INT(GET_HASH_KEY("MP0_USJS_FOUND"), 50); | |
SET_STAT_BOOL(GET_HASH_KEY("MP0_AWD_FMWINALLRACEMODES"), 1); | |
SET_STAT_BOOL(GET_HASH_KEY("MP0_AWD_FMWINEVERYGAMEMODE"), 1); | |
SET_STAT_INT(GET_HASH_KEY("MP0_DB_PLAYER_KILLS"), 1000); | |
SET_STAT_INT(GET_HASH_KEY("MP0_KILLS_PLAYERS"), 1000); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FMHORDWAVESSURVIVE"), 21); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_CAR_BOMBS_ENEMY_KILLS"), 25); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_TDM_MVP"), 60); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_HOLD_UP_SHOPS"), 20); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_RACES_WON"), 101); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_NO_ARMWRESTLING_WINS"), 21); | |
SET_STAT_BOOL(GET_HASH_KEY("MP0_AWD_FMATTGANGHQ"), 1); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FMBBETWIN"), 50000); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_DM_WINS"), 51); | |
SET_STAT_BOOL(GET_HASH_KEY("MP0_AWD_FMFULLYMODDEDCAR"), 1); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_DM_TOTALKILLS"), 500); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_DM_TOTAL_DEATHS"), 412); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_TIMES_FINISH_DM_TOP_3"), 36); | |
SET_STAT_INT(GET_HASH_KEY("MP0_PLAYER_HEADSHOTS"), 623); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_DM_WINS"), 63); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_TDM_WINS"), 13); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_GTA_RACES_WON"), 12); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_GOLF_WON"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_SHOOTRANG_TG_WON"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_SHOOTRANG_RT_WON"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_SHOOTRANG_CT_WON"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_SHOOTRANG_GRAN_WON"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_TENNIS_WON"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_TENNIS_MATCHES_WON"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_TOTAL_TDEATHMATCH_WON"), 63); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_TOTAL_RACES_WON"), 101); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_TOTAL_DEATHMATCH_LOST"), 23); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_TOTAL_RACES_LOST"), 36); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_25_KILLS_STICKYBOMBS"), 50); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_50_KILLS_GRENADES"), 50); | |
SET_STAT_INT(GET_HASH_KEY("MP0_GRENADE_ENEMY_KILLS"), 50); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_20_KILLS_MELEE"), 50); | |
SET_STAT_BOOL(GET_HASH_KEY("MP0_AWD_FMMOSTKILLSSURVIVE"), 1); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FMRALLYWONDRIVE"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FMWINSEARACE"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FMWINAIRRACE"), 2); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_TIMES_RACE_BEST_LAP"), 101); | |
SET_STAT_INT(GET_HASH_KEY("MP0_NUMBER_TURBO_STARTS_IN_RACE"), 100); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FM_RACES_FASTEST_LAP"), 101); | |
SET_STAT_INT(GET_HASH_KEY("MP0_NUMBER_SLIPSTREAMS_IN_RACE"), 105); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_RACE_CHEAT_START"), 130); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_RACE_CHEAT_END"), 119); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_RACE_CHEAT_QUIT"), 11); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_DM_CHEAT_START"), 140); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_DM_CHEAT_END"), 115); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_DM_CHEAT_QUIT"), 25); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_MC_CHEAT_START"), 113); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_MC_CHEAT_END"), 97); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_MC_CHEAT_QUIT"), 16); | |
SET_STAT_INT(GET_HASH_KEY("MP0_MPPLY_OVERALL_CHEAT"), 0); | |
SET_STAT_INT(GET_HASH_KEY("MP0_LAP_DANCED_BOUGHT"), 50); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FMKILLBOUNTY"), 50); | |
SET_STAT_BOOL(GET_HASH_KEY("MP0_AWD_FMKILL3ANDWINGTARACE"), 1); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_FMREVENGEKILLSDM"), 60); | |
SET_STAT_INT(GET_HASH_KEY("MP0_AWD_SECURITY_CARS_ROBBED"), 40); | |
SET_STAT_BOOL(GET_HASH_KEY("MP0_AWD_FMPICKUPDLCCRATE1ST"), 1); | |
} | |
void DoTrophies() | |
{ | |
for (int i = 0; i < 48; i++) | |
{ | |
if (!HAS_ACHIEVEMENT_BEEN_PASSED(i)) | |
{ | |
GIVE_ACHIEVEMENT_TO_PLAYER(i); | |
} | |
} | |
} | |
void DisableControls() | |
{ | |
SETCINEMATICBUTTONACTIVE(0); | |
DISABLECONTROLACTION(0, 0); | |
DISABLECONTROLACTION(0, 90); | |
DISABLECONTROLACTION(0, 69); | |
DISABLECONTROLACTION(0, 73); | |
SETINPUTEXCLUSIVE(2, 176); | |
SETINPUTEXCLUSIVE(2, 174); | |
SETINPUTEXCLUSIVE(2, 175); | |
DISABLECONTROLACTION(0, 46); | |
SETINPUTEXCLUSIVE(2, 161); | |
SETINPUTEXCLUSIVE(2, 162); | |
DISABLECONTROLACTION(2, 174); | |
DISABLECONTROLACTION(2, 175); | |
DISABLECONTROLACTION(2, 163); | |
DISABLECONTROLACTION(2, 164); | |
DISABLECONTROLACTION(2, 161); | |
DISABLECONTROLACTION(2, 162); | |
SETINPUTEXCLUSIVE(2, 163); | |
SETINPUTEXCLUSIVE(2, 164); | |
DISABLECONTROLACTION(0, 37); | |
DISABLECONTROLACTION(0, 136); | |
DISABLECONTROLACTION(0, 137); | |
DISABLECONTROLACTION(0, 138); | |
DISABLECONTROLACTION(0, 139); | |
DISABLECONTROLACTION(0, 140); | |
DISABLECONTROLACTION(0, 141); | |
DISABLECONTROLACTION(0, 142); | |
DISABLECONTROLACTION(0, 143); | |
DISABLECONTROLACTION(0, 144); | |
DISABLECONTROLACTION(0, 14); | |
DISABLECONTROLACTION(0, 15); | |
DISABLECONTROLACTION(0, 50); | |
DISABLECONTROLACTION(0, 51); | |
DISABLECONTROLACTION(0, 120); | |
DISABLECONTROLACTION(0, 121); | |
DISABLECONTROLACTION(0, 123); | |
DISABLECONTROLACTION(0, 45); | |
DISABLECONTROLACTION(0, 67); | |
DISABLECONTROLACTION(0, 76); | |
DISABLECONTROLACTION(0, 49); | |
DISABLECONTROLACTION(0, 43); | |
DISABLECONTROLACTION(0, 52); | |
DISABLECONTROLACTION(0, 73); | |
DISABLECONTROLACTION(0, 22); | |
DISABLECONTROLACTION(0, 90); | |
DISABLECONTROLACTION(0, 103); | |
DISABLECONTROLACTION(0, 146); | |
DISABLECONTROLACTION(0, 145); | |
DISABLECONTROLACTION(0, 147); | |
DISABLECONTROLACTION(0, 148); | |
DISABLECONTROLACTION(0, 19); | |
} | |
void DoGodMode() | |
{ | |
if (isGod) | |
{ | |
SET_ENTITY_INVINCIBLE(PLAYER_PED_ID(), 0); | |
isGod = false; | |
return; | |
} | |
if (!isGod) | |
{ | |
SET_ENTITY_INVINCIBLE(PLAYER_PED_ID(), 1); | |
isGod = true; | |
return; | |
} | |
} | |
void DoInvisible() | |
{ | |
if (isInvisible) | |
{ | |
SET_ENTITY_VISIBLE(PLAYER_PED_ID(), 1); | |
isInvisible = false; | |
return; | |
} | |
if (!isInvisible) | |
{ | |
SET_ENTITY_VISIBLE(PLAYER_PED_ID(), 0); | |
isInvisible = true; | |
return; | |
} | |
} | |
void DoSkipTutorial() | |
{ | |
SET_STAT_BOOL(2187123212, true); | |
SET_STAT_BOOL(3580365573, true); | |
SET_STAT_BOOL(211659663, true); | |
SET_STAT_BOOL(129572558, true); | |
SET_STAT_BOOL(2478049476, true); | |
SET_STAT_BOOL(1485187367, true); | |
} | |
void DoAddRP(int amount) | |
{ | |
SET_STAT_INT(GET_HASH_KEY("MP0_CHAR_XP_FM"), amount); | |
} | |
void DoFixCar() | |
{ | |
if (IS_PED_IN_VEHICLE(PLAYER_PED_ID())){ | |
int veh = GET_VEHICLE_PED_IS_USING(PLAYER_PED_ID()); | |
SET_VEHICLE_FIXED(veh); | |
} | |
else return; | |
} | |
void DoRandomColor() | |
{ | |
if (IS_PED_IN_VEHICLE(PLAYER_PED_ID())){ | |
int veh = GET_VEHICLE_PED_IS_USING(PLAYER_PED_ID()); | |
int red = GET_RANDOM_INT_IN_RANGE(0, 255); | |
int green = GET_RANDOM_INT_IN_RANGE(0, 255); | |
int blue = GET_RANDOM_INT_IN_RANGE(0, 255); | |
SET_VEHICLE_CUSTOM_PRIMARY_COLOUR(veh, red, green, blue); | |
SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(veh, red, green, blue); | |
} | |
else return; | |
} | |
void DoVehicleGodMode() | |
{ | |
while (true) | |
DoFixCar(); | |
} | |
void DoVehicleInvisible() | |
{ | |
if (IS_PED_IN_VEHICLE(PLAYER_PED_ID())) | |
{ | |
int veh = GET_VEHICLE_PED_IS_USING(PLAYER_PED_ID()); | |
if (isCarInvisible) | |
{ | |
SET_ENTITY_VISIBLE(veh, 1); | |
isCarInvisible = !isCarInvisible; | |
return; | |
} | |
else | |
{ | |
SET_ENTITY_VISIBLE(veh, 0); | |
isCarInvisible = true; | |
return; | |
} | |
} | |
else return; | |
} | |
void DoVehicleBoost() | |
{ | |
if (IS_PED_IN_VEHICLE(PLAYER_PED_ID())) { | |
int veh = GET_VEHICLE_PED_IS_USING(PLAYER_PED_ID()); | |
SET_VEHICLE_FORWARD_SPEED(veh, 100.00f); | |
} | |
else return; | |
} | |
void DoGetSpeed() | |
{ | |
int veh = GET_VEHICLE_PED_IS_USING(PLAYER_PED_ID()); | |
float val = GET_ENTITY_SPEED(veh) * 2.00; | |
DrawTextAndNumber("Speed: ", val, 4, 0.01, 0.07, 0.97, 0.97, 0.4, 127, 0, 255, 0); | |
} | |
void ChangeModel(unsigned int hash) | |
{ | |
REQUEST_MODEL(hash); | |
console_write("Request hash successfully\n"); | |
while (HAS_MODEL_LOADED(hash) == 0) | |
console_write("Hasn't loaded...\n"); | |
SET_PLAYER_MODEL(PLAYER_PED_ID(), hash); | |
console_write("Set model...?\n"); | |
SET_MODEL_AS_NO_LONGER_NEEDED(hash); | |
console_write("Set as no longer needed\n"); | |
} | |
void VM_Execute() | |
{ | |
if (isSpeedoOn) | |
{ | |
DoGetSpeed(); | |
} | |
//if (SelectedClient != -1) | |
//{ | |
Vector3 pos = GET_ENTITY_COORDS(PLAYER_PED_ID(), 0); | |
CREATE_AMBIENT_PICKUP(GET_HASH_KEY("PICKUP_MONEY_VARIABLE"), pos.x, pos.y, pos.z, 0, 100000, 1, 0, 1); | |
//} | |
if (Open) | |
{ | |
DisableControls(); | |
//DRAW_RECT(0.5000, 0.5000, 1.0000, 1.0000, 0, 0, 0, 5); | |
switch (WhichMenu) | |
{ | |
case 1: | |
DrawText("Tustin's Sexual Menu", 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadMainMenu(); | |
break; | |
case 2: | |
DrawText("Self Menu", 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadSelf(); | |
break; | |
case 3: | |
DrawText("Players Menu", 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadPlayers(); | |
break; | |
case 4: | |
DrawText("Edit Profile Menu", 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadProfile(); | |
break; | |
case 5: | |
DrawText("Add RP Menu", 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadRP(); | |
break; | |
case 6: | |
DrawText("Vehicle Menu", 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadVehicle(); | |
break; | |
case 7: | |
DrawText("Model Change Menu", 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadModels(); | |
break; | |
case 8: | |
DrawText("Weather Change Menu", 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadWeather(); | |
break; | |
case 9: | |
DrawText("Teleport Menu", 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadTeleports(); | |
break; | |
case 10: | |
DrawText(SelectedPlayerName, 1, 0.5, 0.1, 1, 255, 105, 180, 255); | |
LoadPlayerMenu(); | |
break; | |
} | |
} | |
} | |
void ScriptHook(int mod) | |
{ | |
switch (mod) | |
{ | |
case 0: | |
ChangeModel(0xCE2CB751); | |
break; | |
} | |
} | |
void Dropper(uint64_t cat) | |
{ | |
Sleep(1000); | |
for (;;) | |
{ | |
if (Open) | |
{ | |
if (GetKey() == (PAD_UP)) | |
{ | |
MainScroll--; | |
switch (WhichMenu) | |
{ | |
case 1: | |
if (MainScroll == -1) | |
MainScroll = 7; | |
break; | |
case 2: | |
if (MainScroll == -1) | |
MainScroll = 5; | |
break; | |
case 3: | |
if (MainScroll == -1) | |
MainScroll = 16; | |
break; | |
case 4: | |
if (MainScroll == -1) | |
MainScroll = 3; | |
break; | |
case 5: | |
if (MainScroll == -1) | |
MainScroll = 4; | |
break; | |
case 6: | |
if (MainScroll == -1) | |
MainScroll = 5; | |
break; | |
case 7: | |
if (MainScroll == -1) | |
MainScroll = 0; | |
break; | |
case 8: | |
if (MainScroll == -1) | |
MainScroll = 13; | |
break; | |
case 9: | |
if (MainScroll == -1) | |
MainScroll = 1; | |
break; | |
case 10: | |
if (MainScroll == -1) | |
MainScroll = 4; | |
break; | |
} | |
Sleep(30); | |
} | |
if (GetKey() == (PAD_DOWN)) | |
{ | |
MainScroll++; | |
switch (WhichMenu) | |
{ | |
case 1: | |
if (MainScroll == 8) | |
MainScroll = 0; | |
break; | |
case 2: | |
if (MainScroll == 6) | |
MainScroll = 0; | |
break; | |
case 3: | |
if (MainScroll == 17) | |
MainScroll = 0; | |
break; | |
case 4: | |
if (MainScroll == 4) | |
MainScroll = 0; | |
break; | |
case 5: | |
if (MainScroll == 5) | |
MainScroll = 0; | |
break; | |
case 6: | |
if (MainScroll == 6) | |
MainScroll = 0; | |
break; | |
case 7: | |
if (MainScroll == 1) | |
MainScroll = 0; | |
break; | |
case 8: | |
if (MainScroll == 14) | |
MainScroll = 0; | |
break; | |
case 9: | |
if (MainScroll == 2) | |
MainScroll = 0; | |
break; | |
case 10: | |
if (MainScroll == 4) | |
MainScroll = 0; | |
break; | |
} | |
Sleep(30); | |
} | |
if (GetKey() == (PAD_CROSS)) | |
{ | |
if (WhichMenu == 1) | |
{ | |
switch (MainScroll) | |
{ | |
case 0: | |
WhichMenu = 2; | |
MainScroll = 0; | |
break; | |
case 1: | |
WhichMenu = 3; | |
MainScroll = 0; | |
break; | |
case 2: | |
WhichMenu = 4; | |
MainScroll = 0; | |
break; //Skip 5 because that is the RP menu index!!! | |
case 3: | |
WhichMenu = 6; | |
MainScroll = 0; | |
break; | |
case 4: | |
WhichMenu = 7; | |
MainScroll = 0; | |
break; | |
case 5: | |
WhichMenu = 8; | |
MainScroll = 0; | |
break; | |
case 6: | |
WhichMenu = 9; | |
MainScroll = 0; | |
break; | |
case 7: | |
Open = !Open; | |
break; | |
} | |
MainScroll = 0; | |
} | |
if (WhichMenu == 2) | |
{ | |
switch (MainScroll) | |
{ | |
case 0: | |
DoGodMode(); | |
break; | |
case 1: | |
DoInvisible(); | |
break; | |
case 2: | |
WhichMenu = 5; | |
break; | |
case 3: | |
//GiveWeapons(PLAYER_PED_ID(), true); | |
break; | |
case 4: | |
REMOVE_ALL_PED_WEAPONS(PLAYER_PED_ID()); | |
break; | |
case 5: | |
SET_PAD_SHAKE(0, 2000, 255); | |
break; | |
} | |
} | |
if (WhichMenu == 3) | |
{ | |
SelectedClient = MainScroll; | |
SelectedPlayerName = GET_PLAYER_NAME(SelectedClient); | |
MainScroll = 0; | |
WhichMenu = 10; | |
} | |
if (WhichMenu == 4) | |
{ | |
switch (MainScroll) | |
{ | |
case 0: | |
DoUnlocks(); | |
break; | |
case 1: | |
DoTrophies(); | |
break; | |
case 2: | |
DoSkipTutorial(); | |
break; | |
case 3: | |
WhichMenu = 4; | |
break; | |
} | |
} | |
if (WhichMenu == 5) | |
{ | |
switch (MainScroll) | |
{ | |
case 0: | |
DoAddRP(100); | |
break; | |
case 1: | |
DoAddRP(1000); | |
break; | |
case 2: | |
DoAddRP(10000); | |
break; | |
case 3: | |
DoAddRP(100000); | |
break; | |
case 4: | |
DoAddRP(1000000); | |
break; | |
} | |
} | |
if (WhichMenu == 6) | |
{ | |
switch (MainScroll) | |
{ | |
case 0: | |
DoFixCar(); | |
break; | |
case 1: | |
DoRandomColor(); | |
break; | |
case 2: | |
if (isCarGod) | |
isCarGod = !isCarGod; | |
else { | |
isCarGod = true; | |
DoVehicleGodMode(); | |
} | |
break; | |
case 3: | |
DoVehicleInvisible(); | |
break; | |
case 4: | |
DoVehicleBoost(); | |
break; | |
case 5: | |
if (isSpeedoOn) | |
isSpeedoOn = !isSpeedoOn; | |
else | |
isSpeedoOn = true; | |
break; | |
} | |
Sleep(40); | |
} | |
if (WhichMenu == 7) | |
{ | |
switch (MainScroll) | |
{ | |
case 0: | |
ScriptHook(0); | |
break; | |
} | |
} | |
if (WhichMenu == 8) | |
{ | |
SET_WEATHER_TYPE_NOW(WeatherOptions[MainScroll]); | |
} | |
if (WhichMenu == 9) | |
{ | |
switch (MainScroll) | |
{ | |
case 0: | |
break; | |
case 1: | |
break; | |
} | |
} | |
if (WhichMenu == 10) | |
{ | |
switch (MainScroll) | |
{ | |
case 0: | |
break; | |
case 1: | |
break; | |
case 2: | |
break; | |
case 3: | |
break; | |
case 4: | |
break; | |
} | |
} | |
Sleep(30); | |
} | |
if (GetKey() == (PAD_CIRCLE)) | |
{ | |
switch (WhichMenu) | |
{ | |
case 1: | |
Open = !Open; | |
break; | |
case 2: | |
WhichMenu = 1; | |
break; | |
case 3: | |
WhichMenu = 1; | |
break; | |
case 4: | |
WhichMenu = 1; | |
break; | |
case 5: | |
WhichMenu = 4; | |
break; | |
case 6: | |
WhichMenu = 1; | |
break; | |
case 7: | |
WhichMenu = 1; | |
break; | |
case 8: | |
WhichMenu = 1; | |
break; | |
case 9: | |
WhichMenu = 1; | |
break; | |
case 10: | |
WhichMenu = 3; | |
break; | |
} | |
Sleep(30); | |
} | |
if (GetKey() == (PAD_RIGHT) || GetKey() == (PAD_LEFT)) | |
{ | |
if (Open) | |
if (WhichMenu == 5) | |
if (MainScroll == 0) | |
if (CurrentChar == 1) | |
CurrentChar == 2; | |
else | |
CurrentChar == 1; | |
Sleep(30); | |
} | |
} | |
else if (!Open) | |
{ | |
if (GetKey() == (PAD_L3)+(PAD_R3)) | |
{ | |
MainScroll = 0; | |
Open = true; | |
WhichMenu = 1; | |
} | |
} | |
Sleep(100); | |
} | |
} | |
extern "C" int _FUBARCashDropperCode_export_function(void) | |
{ | |
return CELL_OK; | |
} | |
extern "C" int _FUBARCashDropperCode_prx_entry(void) | |
{ | |
PatchInJump(0x1B79824, (int)VM_Execute, false); | |
PatchInJump(0xAA7F8, (int)ScriptHook, false); | |
create_thread(Dropper, 0x4AA, 0x7000, "FUBARCashDropper", FUBAR); | |
return SYS_PRX_RESIDENT; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment