mirror of
https://github.com/iDisaster/GTAConnected.git
synced 2026-03-18 14:21:50 +00:00
Add files via upload
This commit is contained in:
604
Trident/vehicle.js
Normal file
604
Trident/vehicle.js
Normal file
@@ -0,0 +1,604 @@
|
||||
/**
|
||||
* MD TRIDENT - Vehicle Options Module
|
||||
* GTAConnected Port for GTA IV
|
||||
*/
|
||||
|
||||
// ============================================================================
|
||||
// VEHICLE MODEL HASHES (GTA IV)
|
||||
// ============================================================================
|
||||
|
||||
const VEHICLE_MODELS = {
|
||||
// Sports Cars
|
||||
BANSHEE: 0xC1E908D2,
|
||||
COMET: 0x067BC037,
|
||||
COQUETTE: 0x067BC037,
|
||||
FELTZER: 0x8F5B9FB5,
|
||||
INFERNUS: 0x18F25AC7,
|
||||
SULTAN: 0x39DA2754,
|
||||
SULTANRS: 0xEE6024BC,
|
||||
SUPERGT: 0x42F2ED16,
|
||||
TURISMO: 0x185484E1,
|
||||
SENTINEL: 0x50732C82,
|
||||
|
||||
// Muscle Cars
|
||||
BUCCANEER: 0xD756460C,
|
||||
DUKES: 0x2B26F456,
|
||||
FACTION: 0x81A9CDDF,
|
||||
MANANA: 0x81634188,
|
||||
PEYOTE: 0x6D19CCBC,
|
||||
RUINER: 0xF26CEFF9,
|
||||
SABRE: 0x9B909C94,
|
||||
SABREGT: 0x9B909C94,
|
||||
STALION: 0x72A4C31E,
|
||||
VIGERO: 0xCEC6B9B7,
|
||||
VIRGO: 0xE2504942,
|
||||
VOODOO: 0x1F3766E3,
|
||||
|
||||
// SUVs and Off-Road
|
||||
BOBCAT: 0x31F0B376,
|
||||
CAVALCADE: 0x779F23AA,
|
||||
HABANERO: 0x34B7390F,
|
||||
HUNTLEY: 0x1D06D681,
|
||||
LANDSTALKER: 0x4BA4E8DC,
|
||||
PATRIOT: 0xCFCFEB3B,
|
||||
RANCHER: 0x6210CBB0,
|
||||
REBLA: 0x4C489021,
|
||||
|
||||
// Sedans
|
||||
ADMIRAL: 0x32B29A4B,
|
||||
CHAVOS: 0xE8A8BDA8,
|
||||
COGNOSCENTI: 0x86FE0B60,
|
||||
EMPEROR: 0xD7278283,
|
||||
ESPERANTO: 0xFF8C6ED1,
|
||||
FEROCI: 0x1AD3D617,
|
||||
INGOT: 0xB3206692,
|
||||
INTRUDER: 0x34DD8AA1,
|
||||
LOKUS: 0xCB3C7191,
|
||||
ORACLE: 0x506434F6,
|
||||
PINNACLE: 0x874D2A8B,
|
||||
PMP600: 0x700E514C,
|
||||
PREMIER: 0x8FB66F9B,
|
||||
SCHAFTER: 0xB52B5113,
|
||||
VINCENT: 0x9D0450CA,
|
||||
WASHINGTON: 0x69F06B57,
|
||||
|
||||
// Emergency Vehicles
|
||||
AMBULANCE: 0x45D56ADA,
|
||||
FBI: 0x432EA949,
|
||||
FIRETRUK: 0x73920F8E,
|
||||
NOOSE: 0xB4F32720,
|
||||
POLICE: 0x79FBB0C5,
|
||||
POLICE2: 0x9F05F101,
|
||||
POLPATRIOT: 0xCFCFEB3B,
|
||||
|
||||
// Commercial
|
||||
BENSON: 0xB7B2BBE7,
|
||||
BOXVILLE: 0x898ECCEA,
|
||||
BURRITO: 0xAFBB2CA4,
|
||||
FLATBED: 0x50B0215A,
|
||||
MULE: 0x35ED670B,
|
||||
PACKER: 0x21EEE87D,
|
||||
PHANTOM: 0x809AA4CB,
|
||||
PONY: 0xF8DE29A8,
|
||||
SPEEDO: 0xCFB3870C,
|
||||
STOCKADE: 0x6827CF72,
|
||||
YANKEE: 0x3D236D91,
|
||||
|
||||
// Public Service
|
||||
BUS: 0xD577C962,
|
||||
CABBY: 0x3FC5D440,
|
||||
ROMERO: 0x2560B2FC,
|
||||
TAXI: 0xC703DB5F,
|
||||
STRETCH: 0x8B13F083,
|
||||
TRASH: 0x72435A19,
|
||||
|
||||
// Bikes
|
||||
FAGGIO: 0x9229E4EB,
|
||||
NRG900: 0x6F946279,
|
||||
PCJ: 0xC9CEAF06,
|
||||
SANCHEZ: 0x2EF89E46,
|
||||
ZOMBIEB: 0xDE05FB87,
|
||||
HELLFURY: 0x6598A42B,
|
||||
BOBBER: 0x67B52491,
|
||||
|
||||
// Boats
|
||||
DINGHY: 0x3D961290,
|
||||
JETMAX: 0x33581161,
|
||||
MARQUIS: 0xC1CE1183,
|
||||
PREDATOR: 0xE2E7D4AB,
|
||||
REEFER: 0x1D97DCAF,
|
||||
SQUALO: 0x17DF5EC2,
|
||||
TROPIC: 0x1149422F,
|
||||
TUGA: 0x82CAC433,
|
||||
|
||||
// Helicopters
|
||||
ANNIHILATOR: 0x31F0B376,
|
||||
MAVERICK: 0x9D0450CA,
|
||||
POLMAV: 0x1517D4D9,
|
||||
TOURMAV: 0x73232612
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// VEHICLE OPTIONS STATE
|
||||
// ============================================================================
|
||||
|
||||
let vehicleOptions = {
|
||||
godmode: false,
|
||||
speedBoost: false,
|
||||
autoFlip: false,
|
||||
autoFix: false,
|
||||
rainbow: false,
|
||||
invisible: false,
|
||||
engineAlwaysOn: false,
|
||||
nitro: false
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// VEHICLE MENU ITEMS
|
||||
// ============================================================================
|
||||
|
||||
function getVehicleMenuItems() {
|
||||
return [
|
||||
createMenuItem("~~ SPAWN VEHICLES ~~", ITEM_TYPE.JUMPOVER),
|
||||
createMenuItem("Quick Spawner (Favorites)", ITEM_TYPE.SUBMENU, { submenu: "vehicle_favorites" }),
|
||||
createMenuItem("Sports Cars", ITEM_TYPE.SUBMENU, { submenu: "vehicle_sports" }),
|
||||
createMenuItem("Muscle / Vintage", ITEM_TYPE.SUBMENU, { submenu: "vehicle_muscle" }),
|
||||
createMenuItem("SUVs / Off-Road", ITEM_TYPE.SUBMENU, { submenu: "vehicle_suv" }),
|
||||
createMenuItem("Sedans", ITEM_TYPE.SUBMENU, { submenu: "vehicle_sedan" }),
|
||||
createMenuItem("Emergency Vehicles", ITEM_TYPE.SUBMENU, { submenu: "vehicle_emergency" }),
|
||||
createMenuItem("Bikes", ITEM_TYPE.SUBMENU, { submenu: "vehicle_bikes" }),
|
||||
createMenuItem("Boats", ITEM_TYPE.SUBMENU, { submenu: "vehicle_boats" }),
|
||||
createMenuItem("Helicopters", ITEM_TYPE.SUBMENU, { submenu: "vehicle_helicopters" }),
|
||||
createMenuItem("Commercial", ITEM_TYPE.SUBMENU, { submenu: "vehicle_commercial" }),
|
||||
|
||||
createMenuItem("~~ VEHICLE OPTIONS ~~", ITEM_TYPE.JUMPOVER),
|
||||
createMenuItem("Vehicle God Mode", ITEM_TYPE.BOOL, {
|
||||
boolState: vehicleOptions.godmode,
|
||||
action: toggleVehicleGodMode
|
||||
}),
|
||||
createMenuItem("Speed Boost", ITEM_TYPE.BOOL, {
|
||||
boolState: vehicleOptions.speedBoost,
|
||||
action: toggleSpeedBoost
|
||||
}),
|
||||
createMenuItem("Auto Flip", ITEM_TYPE.BOOL, {
|
||||
boolState: vehicleOptions.autoFlip,
|
||||
action: toggleAutoFlip
|
||||
}),
|
||||
createMenuItem("Auto Repair", ITEM_TYPE.BOOL, {
|
||||
boolState: vehicleOptions.autoFix,
|
||||
action: toggleAutoFix
|
||||
}),
|
||||
createMenuItem("Rainbow Car", ITEM_TYPE.BOOL, {
|
||||
boolState: vehicleOptions.rainbow,
|
||||
action: toggleRainbow
|
||||
}),
|
||||
createMenuItem("Invisible Vehicle", ITEM_TYPE.BOOL, {
|
||||
boolState: vehicleOptions.invisible,
|
||||
action: toggleVehicleInvisible
|
||||
}),
|
||||
|
||||
createMenuItem("~~ VEHICLE ACTIONS ~~", ITEM_TYPE.JUMPOVER),
|
||||
createMenuItem("Repair Vehicle", ITEM_TYPE.FUNCTION, { action: repairVehicle }),
|
||||
createMenuItem("Flip Vehicle", ITEM_TYPE.FUNCTION, { action: flipVehicle }),
|
||||
createMenuItem("Clean Vehicle", ITEM_TYPE.FUNCTION, { action: cleanVehicle }),
|
||||
createMenuItem("Maximize Performance", ITEM_TYPE.FUNCTION, { action: maxPerformance }),
|
||||
createMenuItem("Delete Vehicle", ITEM_TYPE.FUNCTION, { action: deleteVehicle }),
|
||||
createMenuItem("Teleport to Nearest Vehicle", ITEM_TYPE.FUNCTION, { action: teleportToNearestVehicle })
|
||||
];
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// VEHICLE CATEGORY ITEMS
|
||||
// ============================================================================
|
||||
|
||||
function getFavoriteVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Comet", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.COMET, action: spawnVehicleAction }),
|
||||
createMenuItem("Turismo", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.TURISMO, action: spawnVehicleAction }),
|
||||
createMenuItem("Infernus", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.INFERNUS, action: spawnVehicleAction }),
|
||||
createMenuItem("Super GT", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SUPERGT, action: spawnVehicleAction }),
|
||||
createMenuItem("Sultan RS", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SULTANRS, action: spawnVehicleAction }),
|
||||
createMenuItem("Oracle", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.ORACLE, action: spawnVehicleAction }),
|
||||
createMenuItem("Patriot", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PATRIOT, action: spawnVehicleAction }),
|
||||
createMenuItem("FBI", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.FBI, action: spawnVehicleAction }),
|
||||
createMenuItem("Bus", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.BUS, action: spawnVehicleAction }),
|
||||
createMenuItem("NRG 900", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.NRG900, action: spawnVehicleAction }),
|
||||
createMenuItem("Maverick", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.MAVERICK, action: spawnVehicleAction }),
|
||||
createMenuItem("Annihilator", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.ANNIHILATOR, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
function getSportsVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Banshee", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.BANSHEE, action: spawnVehicleAction }),
|
||||
createMenuItem("Comet", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.COMET, action: spawnVehicleAction }),
|
||||
createMenuItem("Coquette", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.COQUETTE, action: spawnVehicleAction }),
|
||||
createMenuItem("Feltzer", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.FELTZER, action: spawnVehicleAction }),
|
||||
createMenuItem("Infernus", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.INFERNUS, action: spawnVehicleAction }),
|
||||
createMenuItem("Sultan", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SULTAN, action: spawnVehicleAction }),
|
||||
createMenuItem("Sultan RS", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SULTANRS, action: spawnVehicleAction }),
|
||||
createMenuItem("Super GT", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SUPERGT, action: spawnVehicleAction }),
|
||||
createMenuItem("Turismo", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.TURISMO, action: spawnVehicleAction }),
|
||||
createMenuItem("Sentinel", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SENTINEL, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
function getMuscleVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Buccaneer", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.BUCCANEER, action: spawnVehicleAction }),
|
||||
createMenuItem("Dukes", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.DUKES, action: spawnVehicleAction }),
|
||||
createMenuItem("Faction", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.FACTION, action: spawnVehicleAction }),
|
||||
createMenuItem("Manana", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.MANANA, action: spawnVehicleAction }),
|
||||
createMenuItem("Peyote", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PEYOTE, action: spawnVehicleAction }),
|
||||
createMenuItem("Ruiner", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.RUINER, action: spawnVehicleAction }),
|
||||
createMenuItem("Sabre", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SABRE, action: spawnVehicleAction }),
|
||||
createMenuItem("Stallion", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.STALION, action: spawnVehicleAction }),
|
||||
createMenuItem("Vigero", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.VIGERO, action: spawnVehicleAction }),
|
||||
createMenuItem("Virgo", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.VIRGO, action: spawnVehicleAction }),
|
||||
createMenuItem("Voodoo", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.VOODOO, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
function getSUVVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Bobcat", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.BOBCAT, action: spawnVehicleAction }),
|
||||
createMenuItem("Cavalcade", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.CAVALCADE, action: spawnVehicleAction }),
|
||||
createMenuItem("Habanero", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.HABANERO, action: spawnVehicleAction }),
|
||||
createMenuItem("Huntley", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.HUNTLEY, action: spawnVehicleAction }),
|
||||
createMenuItem("Landstalker", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.LANDSTALKER, action: spawnVehicleAction }),
|
||||
createMenuItem("Patriot", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PATRIOT, action: spawnVehicleAction }),
|
||||
createMenuItem("Rancher", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.RANCHER, action: spawnVehicleAction }),
|
||||
createMenuItem("Rebla", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.REBLA, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
function getSedanVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Admiral", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.ADMIRAL, action: spawnVehicleAction }),
|
||||
createMenuItem("Chavos", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.CHAVOS, action: spawnVehicleAction }),
|
||||
createMenuItem("Cognoscenti", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.COGNOSCENTI, action: spawnVehicleAction }),
|
||||
createMenuItem("Emperor", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.EMPEROR, action: spawnVehicleAction }),
|
||||
createMenuItem("Esperanto", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.ESPERANTO, action: spawnVehicleAction }),
|
||||
createMenuItem("Feroci", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.FEROCI, action: spawnVehicleAction }),
|
||||
createMenuItem("Ingot", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.INGOT, action: spawnVehicleAction }),
|
||||
createMenuItem("Intruder", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.INTRUDER, action: spawnVehicleAction }),
|
||||
createMenuItem("Lokus", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.LOKUS, action: spawnVehicleAction }),
|
||||
createMenuItem("Oracle", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.ORACLE, action: spawnVehicleAction }),
|
||||
createMenuItem("Pinnacle", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PINNACLE, action: spawnVehicleAction }),
|
||||
createMenuItem("Premier", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PREMIER, action: spawnVehicleAction }),
|
||||
createMenuItem("Schafter", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SCHAFTER, action: spawnVehicleAction }),
|
||||
createMenuItem("Washington", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.WASHINGTON, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
function getEmergencyVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Ambulance", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.AMBULANCE, action: spawnVehicleAction }),
|
||||
createMenuItem("FBI", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.FBI, action: spawnVehicleAction }),
|
||||
createMenuItem("Fire Truck", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.FIRETRUK, action: spawnVehicleAction }),
|
||||
createMenuItem("NOOSE", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.NOOSE, action: spawnVehicleAction }),
|
||||
createMenuItem("Police", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.POLICE, action: spawnVehicleAction }),
|
||||
createMenuItem("Police 2", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.POLICE2, action: spawnVehicleAction }),
|
||||
createMenuItem("Police Patriot", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.POLPATRIOT, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
function getBikeVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Faggio", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.FAGGIO, action: spawnVehicleAction }),
|
||||
createMenuItem("NRG 900", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.NRG900, action: spawnVehicleAction }),
|
||||
createMenuItem("PCJ", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PCJ, action: spawnVehicleAction }),
|
||||
createMenuItem("Sanchez", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SANCHEZ, action: spawnVehicleAction }),
|
||||
createMenuItem("Zombie B", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.ZOMBIEB, action: spawnVehicleAction }),
|
||||
createMenuItem("Hellfury", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.HELLFURY, action: spawnVehicleAction }),
|
||||
createMenuItem("Bobber", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.BOBBER, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
function getBoatVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Dinghy", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.DINGHY, action: spawnVehicleAction }),
|
||||
createMenuItem("Jetmax", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.JETMAX, action: spawnVehicleAction }),
|
||||
createMenuItem("Marquis", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.MARQUIS, action: spawnVehicleAction }),
|
||||
createMenuItem("Predator", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PREDATOR, action: spawnVehicleAction }),
|
||||
createMenuItem("Reefer", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.REEFER, action: spawnVehicleAction }),
|
||||
createMenuItem("Squalo", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SQUALO, action: spawnVehicleAction }),
|
||||
createMenuItem("Tropic", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.TROPIC, action: spawnVehicleAction }),
|
||||
createMenuItem("Tuga", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.TUGA, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
function getHelicopterVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Annihilator", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.ANNIHILATOR, action: spawnVehicleAction }),
|
||||
createMenuItem("Maverick", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.MAVERICK, action: spawnVehicleAction }),
|
||||
createMenuItem("Police Maverick", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.POLMAV, action: spawnVehicleAction }),
|
||||
createMenuItem("Tour Maverick", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.TOURMAV, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
function getCommercialVehicleItems() {
|
||||
return [
|
||||
createMenuItem("Benson", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.BENSON, action: spawnVehicleAction }),
|
||||
createMenuItem("Boxville", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.BOXVILLE, action: spawnVehicleAction }),
|
||||
createMenuItem("Burrito", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.BURRITO, action: spawnVehicleAction }),
|
||||
createMenuItem("Flatbed", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.FLATBED, action: spawnVehicleAction }),
|
||||
createMenuItem("Mule", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.MULE, action: spawnVehicleAction }),
|
||||
createMenuItem("Packer", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PACKER, action: spawnVehicleAction }),
|
||||
createMenuItem("Phantom", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PHANTOM, action: spawnVehicleAction }),
|
||||
createMenuItem("Pony", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.PONY, action: spawnVehicleAction }),
|
||||
createMenuItem("Speedo", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.SPEEDO, action: spawnVehicleAction }),
|
||||
createMenuItem("Stockade", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.STOCKADE, action: spawnVehicleAction }),
|
||||
createMenuItem("Yankee", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.YANKEE, action: spawnVehicleAction }),
|
||||
createMenuItem("Bus", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.BUS, action: spawnVehicleAction }),
|
||||
createMenuItem("Taxi", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.TAXI, action: spawnVehicleAction }),
|
||||
createMenuItem("Stretch", ITEM_TYPE.VEHICLE, { vehicleModel: VEHICLE_MODELS.STRETCH, action: spawnVehicleAction })
|
||||
];
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// TOGGLE FUNCTIONS
|
||||
// ============================================================================
|
||||
|
||||
function toggleVehicleGodMode(state) {
|
||||
vehicleOptions.godmode = state;
|
||||
showNotification(state ? "~g~Vehicle God Mode ~s~ON" : "~r~Vehicle God Mode ~s~OFF");
|
||||
}
|
||||
|
||||
function toggleSpeedBoost(state) {
|
||||
vehicleOptions.speedBoost = state;
|
||||
showNotification(state ? "~g~Speed Boost ~s~ON (Press Shift)" : "~r~Speed Boost ~s~OFF");
|
||||
}
|
||||
|
||||
function toggleAutoFlip(state) {
|
||||
vehicleOptions.autoFlip = state;
|
||||
showNotification(state ? "~g~Auto Flip ~s~ON" : "~r~Auto Flip ~s~OFF");
|
||||
}
|
||||
|
||||
function toggleAutoFix(state) {
|
||||
vehicleOptions.autoFix = state;
|
||||
showNotification(state ? "~g~Auto Repair ~s~ON" : "~r~Auto Repair ~s~OFF");
|
||||
}
|
||||
|
||||
function toggleRainbow(state) {
|
||||
vehicleOptions.rainbow = state;
|
||||
showNotification(state ? "~g~Rainbow Car ~s~ON" : "~r~Rainbow Car ~s~OFF");
|
||||
}
|
||||
|
||||
function toggleVehicleInvisible(state) {
|
||||
vehicleOptions.invisible = state;
|
||||
let playerPed = natives.GET_PLAYER_PED(natives.GET_PLAYER_ID());
|
||||
if (natives.IS_CHAR_IN_ANY_CAR(playerPed)) {
|
||||
let vehicle = natives.GET_CAR_CHAR_IS_USING(playerPed);
|
||||
natives.SET_CAR_VISIBLE(vehicle, !state);
|
||||
}
|
||||
showNotification(state ? "~g~Invisible Vehicle ~s~ON" : "~r~Invisible Vehicle ~s~OFF");
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// ACTION FUNCTIONS
|
||||
// ============================================================================
|
||||
|
||||
function spawnVehicleAction(modelHash) {
|
||||
spawnVehicleForPlayer(modelHash);
|
||||
}
|
||||
|
||||
function spawnVehicleForPlayer(modelHash) {
|
||||
let playerId = natives.GET_PLAYER_ID();
|
||||
let playerPed = natives.GET_PLAYER_PED(playerId);
|
||||
|
||||
let pos = natives.GET_CHAR_COORDINATES(playerPed);
|
||||
let heading = natives.GET_CHAR_HEADING(playerPed);
|
||||
|
||||
// Request model
|
||||
natives.REQUEST_MODEL(modelHash);
|
||||
|
||||
// Wait for model to load
|
||||
let attempts = 0;
|
||||
while (!natives.HAS_MODEL_LOADED(modelHash) && attempts < 100) {
|
||||
natives.WAIT(10);
|
||||
attempts++;
|
||||
}
|
||||
|
||||
if (!natives.HAS_MODEL_LOADED(modelHash)) {
|
||||
showNotification("~r~Failed to load vehicle model!");
|
||||
return null;
|
||||
}
|
||||
|
||||
// Calculate spawn position in front of player
|
||||
let radians = heading * Math.PI / 180;
|
||||
let spawnX = pos[0] - Math.sin(radians) * 5;
|
||||
let spawnY = pos[1] + Math.cos(radians) * 5;
|
||||
let spawnZ = pos[2];
|
||||
|
||||
// Create vehicle
|
||||
let vehicle = natives.CREATE_CAR(modelHash, spawnX, spawnY, spawnZ, true, true);
|
||||
|
||||
if (vehicle) {
|
||||
natives.SET_CAR_HEADING(vehicle, heading);
|
||||
natives.SET_CAR_ON_GROUND_PROPERLY(vehicle);
|
||||
|
||||
// Get vehicle display name
|
||||
let vehName = natives.GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(modelHash);
|
||||
let displayName = natives.GET_STRING_FROM_TEXT_FILE(vehName) || "Vehicle";
|
||||
|
||||
showNotification("~g~Spawned: ~s~" + displayName);
|
||||
}
|
||||
|
||||
// Mark model as no longer needed
|
||||
natives.MARK_MODEL_AS_NO_LONGER_NEEDED(modelHash);
|
||||
|
||||
return vehicle;
|
||||
}
|
||||
|
||||
function repairVehicle() {
|
||||
let playerPed = natives.GET_PLAYER_PED(natives.GET_PLAYER_ID());
|
||||
if (!natives.IS_CHAR_IN_ANY_CAR(playerPed)) {
|
||||
showNotification("~r~You are not in a vehicle!");
|
||||
return;
|
||||
}
|
||||
|
||||
let vehicle = natives.GET_CAR_CHAR_IS_USING(playerPed);
|
||||
natives.FIX_CAR(vehicle);
|
||||
natives.SET_CAR_ENGINE_ON(vehicle, true, true);
|
||||
showNotification("~g~Vehicle repaired!");
|
||||
}
|
||||
|
||||
function flipVehicle() {
|
||||
let playerPed = natives.GET_PLAYER_PED(natives.GET_PLAYER_ID());
|
||||
if (!natives.IS_CHAR_IN_ANY_CAR(playerPed)) {
|
||||
showNotification("~r~You are not in a vehicle!");
|
||||
return;
|
||||
}
|
||||
|
||||
let vehicle = natives.GET_CAR_CHAR_IS_USING(playerPed);
|
||||
let heading = natives.GET_CAR_HEADING(vehicle);
|
||||
natives.SET_VEHICLE_QUATERNION(vehicle, 0, 0, 0, 0);
|
||||
natives.SET_CAR_HEADING(vehicle, heading);
|
||||
natives.SET_CAR_ON_GROUND_PROPERLY(vehicle);
|
||||
showNotification("~g~Vehicle flipped!");
|
||||
}
|
||||
|
||||
function cleanVehicle() {
|
||||
let playerPed = natives.GET_PLAYER_PED(natives.GET_PLAYER_ID());
|
||||
if (!natives.IS_CHAR_IN_ANY_CAR(playerPed)) {
|
||||
showNotification("~r~You are not in a vehicle!");
|
||||
return;
|
||||
}
|
||||
|
||||
let vehicle = natives.GET_CAR_CHAR_IS_USING(playerPed);
|
||||
natives.SET_VEHICLE_DIRT_LEVEL(vehicle, 0);
|
||||
showNotification("~g~Vehicle cleaned!");
|
||||
}
|
||||
|
||||
function maxPerformance() {
|
||||
let playerPed = natives.GET_PLAYER_PED(natives.GET_PLAYER_ID());
|
||||
if (!natives.IS_CHAR_IN_ANY_CAR(playerPed)) {
|
||||
showNotification("~r~You are not in a vehicle!");
|
||||
return;
|
||||
}
|
||||
|
||||
let vehicle = natives.GET_CAR_CHAR_IS_USING(playerPed);
|
||||
// Set max performance (if supported)
|
||||
natives.FIX_CAR(vehicle);
|
||||
natives.SET_CAR_ENGINE_ON(vehicle, true, true);
|
||||
showNotification("~g~Vehicle maxed out!");
|
||||
}
|
||||
|
||||
function deleteVehicle() {
|
||||
let playerPed = natives.GET_PLAYER_PED(natives.GET_PLAYER_ID());
|
||||
if (!natives.IS_CHAR_IN_ANY_CAR(playerPed)) {
|
||||
showNotification("~r~You are not in a vehicle!");
|
||||
return;
|
||||
}
|
||||
|
||||
let vehicle = natives.GET_CAR_CHAR_IS_USING(playerPed);
|
||||
|
||||
// Eject player first
|
||||
natives.TASK_LEAVE_CAR_IMMEDIATELY(playerPed, vehicle);
|
||||
natives.WAIT(500);
|
||||
|
||||
natives.DELETE_CAR(vehicle);
|
||||
showNotification("~g~Vehicle deleted!");
|
||||
}
|
||||
|
||||
function teleportToNearestVehicle() {
|
||||
let playerPed = natives.GET_PLAYER_PED(natives.GET_PLAYER_ID());
|
||||
let pos = natives.GET_CHAR_COORDINATES(playerPed);
|
||||
|
||||
let vehicle = natives.GET_CLOSEST_CAR(pos[0], pos[1], pos[2], 100.0, false, 70);
|
||||
|
||||
if (vehicle && natives.DOES_VEHICLE_EXIST(vehicle)) {
|
||||
natives.WARP_CHAR_INTO_CAR(playerPed, vehicle);
|
||||
showNotification("~g~Teleported to nearest vehicle!");
|
||||
} else {
|
||||
showNotification("~r~No vehicle found nearby!");
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// VEHICLE OPTIONS LOOP
|
||||
// ============================================================================
|
||||
|
||||
let rainbowColor = 0;
|
||||
|
||||
function vehicleOptionsLoop() {
|
||||
let playerId = natives.GET_PLAYER_ID();
|
||||
let playerPed = natives.GET_PLAYER_PED(playerId);
|
||||
|
||||
if (!natives.IS_CHAR_IN_ANY_CAR(playerPed)) return;
|
||||
|
||||
let vehicle = natives.GET_CAR_CHAR_IS_USING(playerPed);
|
||||
|
||||
// Vehicle God Mode
|
||||
if (vehicleOptions.godmode) {
|
||||
natives.SET_CAR_CAN_BE_DAMAGED(vehicle, false);
|
||||
natives.SET_CAR_CAN_BE_VISIBLY_DAMAGED(vehicle, false);
|
||||
let health = natives.GET_CAR_HEALTH(vehicle);
|
||||
if (health < 1000) {
|
||||
natives.SET_CAR_HEALTH(vehicle, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
// Speed Boost
|
||||
if (vehicleOptions.speedBoost) {
|
||||
if (natives.IS_GAME_KEYBOARD_KEY_PRESSED(0x10)) { // Shift
|
||||
natives.APPLY_FORCE_TO_CAR(vehicle, true, 0.0, 50.0, 0.0, 0.0, 0.0, 0.0, true, true, true, true);
|
||||
}
|
||||
}
|
||||
|
||||
// Auto Flip
|
||||
if (vehicleOptions.autoFlip) {
|
||||
if (!natives.IS_CAR_UPRIGHT(vehicle)) {
|
||||
let heading = natives.GET_CAR_HEADING(vehicle);
|
||||
natives.SET_VEHICLE_QUATERNION(vehicle, 0, 0, 0, 0);
|
||||
natives.SET_CAR_HEADING(vehicle, heading);
|
||||
natives.SET_CAR_ON_GROUND_PROPERLY(vehicle);
|
||||
}
|
||||
}
|
||||
|
||||
// Auto Fix
|
||||
if (vehicleOptions.autoFix) {
|
||||
let health = natives.GET_CAR_HEALTH(vehicle);
|
||||
if (health < 800) {
|
||||
natives.FIX_CAR(vehicle);
|
||||
}
|
||||
}
|
||||
|
||||
// Rainbow Car
|
||||
if (vehicleOptions.rainbow) {
|
||||
rainbowColor = (rainbowColor + 1) % 134;
|
||||
natives.CHANGE_CAR_COLOUR(vehicle, rainbowColor, rainbowColor);
|
||||
}
|
||||
|
||||
// Invisible Vehicle (maintain state)
|
||||
if (vehicleOptions.invisible) {
|
||||
natives.SET_CAR_VISIBLE(vehicle, false);
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// EVENT HANDLERS
|
||||
// ============================================================================
|
||||
|
||||
addEventHandler("OnProcess", function(event) {
|
||||
vehicleOptionsLoop();
|
||||
});
|
||||
|
||||
// ============================================================================
|
||||
// EXPORTS
|
||||
// ============================================================================
|
||||
|
||||
this.vehicleOptions = vehicleOptions;
|
||||
this.getVehicleMenuItems = getVehicleMenuItems;
|
||||
this.getFavoriteVehicleItems = getFavoriteVehicleItems;
|
||||
this.getSportsVehicleItems = getSportsVehicleItems;
|
||||
this.getMuscleVehicleItems = getMuscleVehicleItems;
|
||||
this.getSUVVehicleItems = getSUVVehicleItems;
|
||||
this.getSedanVehicleItems = getSedanVehicleItems;
|
||||
this.getEmergencyVehicleItems = getEmergencyVehicleItems;
|
||||
this.getBikeVehicleItems = getBikeVehicleItems;
|
||||
this.getBoatVehicleItems = getBoatVehicleItems;
|
||||
this.getHelicopterVehicleItems = getHelicopterVehicleItems;
|
||||
this.getCommercialVehicleItems = getCommercialVehicleItems;
|
||||
this.spawnVehicleForPlayer = spawnVehicleForPlayer;
|
||||
Reference in New Issue
Block a user