Skip to content

Instantly share code, notes, and snippets.

@Tustin
Created January 2, 2017 05:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tustin/20c492cd6b4cdeec333659e064ffbbb5 to your computer and use it in GitHub Desktop.
Save Tustin/20c492cd6b4cdeec333659e064ffbbb5 to your computer and use it in GitHub Desktop.
#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