Update natives

This commit is contained in:
Vortrex
2021-08-11 09:38:12 -05:00
parent c7fdaa96d9
commit f4015746e1
7 changed files with 5104 additions and 735 deletions

View File

@@ -5,4 +5,98 @@
// FILE: gtac.js
// DESC: Provides natives for GTA Connected
// TYPE: Client (JavaScript)
// ===========================================================================
// ===========================================================================
function setUpInitialGame() {
if(gta.game == GAME_GTA_III) {
gta.SET_PLAYER_NEVER_GETS_TIRED(gta.GET_PLAYER_ID(), 0);
gta.setGameStat(STAT_PROGRESSMADE, 9999);
gta.setGameStat(STAT_TOTALPROGRESSINGAME, 9999);
}
if(gta.game == GAME_GTA_VC) {
gta.SET_PLAYER_NEVER_GETS_TIRED(gta.GET_PLAYER_ID(), 0);
gta.setGameStat(STAT_PROGRESSMADE, 9999);
gta.setGameStat(STAT_TOTALPROGRESSINGAME, 9999);
gta.REQUEST_ANIMATION("bikev");
gta.REQUEST_ANIMATION("bikeh");
gta.REQUEST_ANIMATION("biked");
gta.REQUEST_ANIMATION("knife");
gta.REQUEST_ANIMATION("python");
gta.REQUEST_ANIMATION("shotgun");
gta.REQUEST_ANIMATION("buddy");
gta.REQUEST_ANIMATION("tec");
gta.REQUEST_ANIMATION("uzi");
gta.REQUEST_ANIMATION("rifle");
gta.REQUEST_ANIMATION("m60");
gta.REQUEST_ANIMATION("sniper");
gta.REQUEST_ANIMATION("grenade");
gta.REQUEST_ANIMATION("flame");
gta.REQUEST_ANIMATION("medic");
gta.REQUEST_ANIMATION("sunbathe");
//gta.REQUEST_ANIMATION("playidles");
gta.REQUEST_ANIMATION("riot");
gta.REQUEST_ANIMATION("strip");
gta.REQUEST_ANIMATION("lance");
gta.REQUEST_ANIMATION("skate");
}
if(gta.game == GAME_GTA_SA) {
gta.setGameStat(STAT_WEAPONTYPE_PISTOL_SKILL, 400);
gta.setGameStat(STAT_WEAPONTYPE_PISTOL_SILENCED_SKILL, 400);
gta.setGameStat(STAT_WEAPONTYPE_DESERT_EAGLE_SKILL, 400);
gta.setGameStat(STAT_WEAPONTYPE_SHOTGUN_SKILL, 400);
gta.setGameStat(STAT_WEAPONTYPE_SAWNOFF_SHOTGUN_SKILL, 1);
gta.setGameStat(STAT_WEAPONTYPE_SPAS12_SHOTGUN_SKILL, 400);
gta.setGameStat(STAT_WEAPONTYPE_MICRO_UZI_SKILL, 400);
gta.setGameStat(STAT_WEAPONTYPE_MP5_SKILL, 400);
gta.setGameStat(STAT_WEAPONTYPE_AK47_SKILL, 400);
gta.setGameStat(STAT_WEAPONTYPE_M4_SKILL, 400);
gta.setGameStat(STAT_DRIVING_SKILL, 9999);
gta.setGameStat(STAT_FAT, 0);
gta.setGameStat(STAT_ENERGY, 9999);
gta.setGameStat(STAT_CYCLE_SKILL, 9999);
gta.setGameStat(STAT_BIKE_SKILL, 9999);
gta.setGameStat(STAT_GAMBLING, 9999);
gta.setGameStat(STAT_PROGRESS_MADE, 9999);
gta.setGameStat(STAT_RESPECT, 0);
gta.setGameStat(STAT_RESPECT_TOTAL, 0);
gta.setGameStat(STAT_SEX_APPEAL, 0);
gta.setGameStat(STAT_STAMINA, 9999);
gta.setGameStat(STAT_TOTAL_PROGRESS, 100);
gta.setGameStat(STAT_UNDERWATER_STAMINA, 9999);
gta.setGameStat(STAT_BODY_MUSCLE, 0);
}
if(getGame() == VRR_GAME_GTA_IV) {
natives.allowEmergencyServices(false);
natives.setCreateRandomCops(false);
natives.setMaxWantedLevel(0);
natives.setWantedMultiplier(0.0);
natives.allowPlayerToCarryNonMissionObjects(natives.getPlayerId(), true);
natives.setPlayerTeam(natives.getPlayerId(), 0);
natives.usePlayerColourInsteadOfTeamColour(true);
natives.requestAnims("DANCING");
natives.loadAllObjectsNow();
}
//closeAllGarages();
if(getGame() == GAME_GTA_SA) {
gta.setDefaultInteriors(false);
}
gta.onMission = true;
}
// ===========================================================================
function processGameSpecifics() {
if(gta.game != GAME_GTA_IV) {
gta.clearMessages();
}
destroyAutoCreatedPickups();
}

View File

@@ -2,7 +2,15 @@
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/gtac_roleplay
// ===========================================================================
// FILE: oakwood.js
// DESC: Provides natives for Project Oakwood (Mafia 1)
// FILE: mafiac.js
// DESC: Provides natives for Mafia Connected
// TYPE: Client (JavaScript)
// ===========================================================================
function setUpInitialGame() {
if(mafia.game == GAME_MAFIA_ONE) {
mafia.mapEnabled = false;
}
}
// ===========================================================================

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,318 +0,0 @@
// ===========================================================================
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/gtac_roleplay
// ===========================================================================
// FILE: oakwood.js
// DESC: Provides natives for Project Oakwood (Mafia 1)
// TYPE: Server (JavaScript)
// ===========================================================================
// Use data for each because args are probably gonna be way different for each mod
// ===========================================================================
function getPlayerPosition(client) {
if(getServerGame() == GAME_GTA_IV) {
return getPlayerData(client).syncPosition;
} else {
if(client.player != null) {
return client.player.position;
}
}
}
// ===========================================================================
function setPlayerPosition(client, position) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s position to ${position.x}, ${position.y}, ${position.z}`);
sendPlayerSetPosition(client, position);
}
// ===========================================================================
function getPlayerHeading(client) {
if(getServerGame() == GAME_GTA_IV) {
return getPlayerData(client).syncHeading;
} else {
if(client.player != null) {
return client.player.heading;
}
}
}
// ===========================================================================
function setPlayerHeading(client, heading) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s heading to ${heading}`);
sendPlayerSetHeading(client, heading);
}
// ===========================================================================
function getPlayerVehicle(client) {
if(getServerGame() == GAME_GTA_IV) {
return getPlayerData().syncVehicle;
} else {
if(client.player.vehicle) {
return client.player.vehicle;
}
}
return false;
}
// ===========================================================================
function getPlayerDimension(client) {
return client.player.dimension;
}
// ===========================================================================
function getPlayerInterior(client) {
return getPlayerCurrentSubAccount(client).interior || 0;
}
// ===========================================================================
function setPlayerDimension(client, dimension) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s dimension to ${dimension}`);
client.player.dimension = dimension;
}
// ===========================================================================
function setPlayerInterior(client, interior) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s interior to ${interior}`);
sendPlayerSetInterior(client, interior);
getPlayerCurrentSubAccount(client).interior = interior;
}
// ===========================================================================
function isPlayerInAnyVehicle(client) {
if(getServerGame() == GAME_GTA_IV) {
return (getPlayerData().syncVehicle != null);
} else {
return (client.player.vehicle != null);
}
}
// ===========================================================================
function getPlayerVehicleSeat(client) {
if(!isPlayerInAnyVehicle(client)) {
return false;
}
for(let i = 0 ; i <= 8 ; i++) {
if(getPlayerVehicle(client).getOccupant(i) == client.player) {
return i;
}
}
return false;
}
// ===========================================================================
function isPlayerSpawned(client) {
return getPlayerData(client).spawned;
}
// ===========================================================================
function getVehiclePosition(vehicle) {
return vehicle.position;
}
// ===========================================================================
function getVehicleHeading(vehicle) {
return vehicle.heading;
}
// ===========================================================================
function getVehicleSyncer(vehicle) {
return getElementSyncer(vehicle);
}
// ===========================================================================
function getVehicleForNetworkEvent(vehicle) {
return vehicle;
}
// ===========================================================================
function deleteGameElement(element) {
logToConsole(LOG_DEBUG, `Destroying game element ${element.id} (Type: ${element.type})`);
if(element != null) {
destroyElement(element);
return true;
}
return false;
}
// ===========================================================================
function isPlayerInFrontVehicleSeat(client) {
return (getPlayerVehicleSeat(client) == 0 || getPlayerVehicleSeat(client) == 1);
}
// ===========================================================================
function removePlayerFromVehicle(client) {
logToConsole(LOG_DEBUG, `Removing ${getPlayerDisplayForConsole(client)} from their vehicle`);
sendPlayerRemoveFromVehicle(client);
return true;
}
// ===========================================================================
function setPlayerSkin(client, skin) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s skin to ${skin} (${getSkinNameFromId(skin)})`);
client.player.modelIndex = skin;
}
// ===========================================================================
function getPlayerSkin(client) {
return client.player.modelIndex;
}
// ===========================================================================
function setPlayerHealth(client, health) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s health to ${health}`);
sendPlayerSetHealth(client, health);
}
// ===========================================================================
function getPlayerHealth(client) {
return client.player.health;
}
// ===========================================================================
function setPlayerArmour(client, armour) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s armour to ${armour}`);
sendPlayerSetArmour(client, armour);
}
// ===========================================================================
function getPlayerArmour(client) {
return client.player.armour;
}
// ===========================================================================
function setPlayerCash(client, amount) {
getPlayerCurrentSubAccount(client).cash = toInteger(amount);
updatePlayerCash(client);
}
// ===========================================================================
function givePlayerCash(client, amount) {
getPlayerCurrentSubAccount(client).cash = getPlayerCurrentSubAccount(client).cash + toInteger(amount);
updatePlayerCash(client);
}
// ===========================================================================
function takePlayerCash(client, amount) {
getPlayerCurrentSubAccount(client).cash = getPlayerCurrentSubAccount(client).cash - toInteger(amount);
updatePlayerCash(client);
}
// ===========================================================================
function disconnectPlayer(client) {
logToConsole(LOG_DEBUG, `Disconnecting (kicking) ${getPlayerDisplayForConsole(client)}`);
client.disconnect();
return false;
}
// ===========================================================================
function getElementSyncer(element) {
return getClients()[element.syncer];
}
// ===========================================================================
function getPlayerWeaponAmmo(client) {
return client.player.weaponAmmunition;
}
// ===========================================================================
function setPlayerVelocity(client, velocity) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s velocity to ${velocity.x}, ${velocity.y}, ${velocity.z}`);
client.player.velocity = velocity;
}
// ===========================================================================
function getPlayerVelocity(client, velocity) {
return client.player.velocity;
}
// ===========================================================================
function getElementDimension(element) {
return element.dimension;
}
// ===========================================================================
function setElementDimension(element, dimension) {
return element.dimension = dimension;
}
// ===========================================================================
function givePlayerHealth(client, amount) {
if(getPlayerHealth(client)+amount > 100) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s health to 100`);
setPlayerHealth(client, 100);
} else {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s health to ${getPlayerHealth(client)+amount}`);
setPlayerHealth(client, getPlayerHealth(client)+amount);
}
}
// ===========================================================================
function givePlayerArmour(client, amount) {
if(getPlayerArmour(client)+amount > 100) {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s armour to 100`);
setPlayerArmour(client, 100);
} else {
logToConsole(LOG_DEBUG, `Setting ${getPlayerDisplayForConsole(client)}'s armour to ${getPlayerArmour(client)+amount}`);
setPlayerArmour(client, getPlayerArmour(client)+amount);
}
}
// ===========================================================================
function getServerGame() {
return getGame();
}
// ===========================================================================
function consolePrint(text) {
console.log(text);
}
// ===========================================================================
function getPlayerName(client) {
return client.name;
}
// ===========================================================================

View File

@@ -2,395 +2,15 @@
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/gtac_roleplay
// ===========================================================================
// FILE: native.js
// DESC: Provides util funcs for native wrapping
// FILE: gtac.js
// DESC: Provides util funcs for GTAC
// TYPE: Shared (JavaScript)
// ===========================================================================
"use strict";
let bindableKeys = {
8: "backspace",
9: "tab",
13: "return",
27: "escape",
32: "space",
33: "exclamation",
34: "doublequote",
35: "hashtag",
36: "dollar",
37: "percent",
38: "ampersand",
39: "quote",
40: "leftparenthesis",
41: "rightparenthesis",
42: "asterisk",
43: "plus",
44: "comma",
45: "minus",
46: "period",
47: "slash",
48: "0",
49: "1",
50: "2",
51: "3",
52: "4",
53: "5",
54: "6",
55: "7",
56: "8",
57: "9",
58: "colon",
59: "semicolon",
60: "less",
61: "equals",
62: "greater",
63: "questionmark",
64: "at",
91: "leftbracket",
92: "backslash",
93: "rightbracket",
95: "underscore",
97: "a",
98: "b",
99: "c",
100: "d",
101: "e",
102: "f",
103: "g",
104: "h",
105: "i",
106: "j",
107: "k",
108: "l",
109: "m",
110: "n",
111: "o",
112: "p",
113: "q",
114: "r",
115: "s",
116: "t",
117: "u",
118: "v",
119: "w",
120: "x",
121: "y",
122: "z",
127: "delete",
1073741881: "capslock",
1073741882: "f12",
1073741883: "f2",
1073741884: "f3",
1073741885: "f4",
1073741886: "f5",
1073741887: "f6",
1073741888: "f7",
1073741889: "f8",
1073741890: "f9",
1073741891: "f10",
1073741892: "f11",
1073741893: "f12",
1073741894: "printscreen",
1073741895: "scrolllock",
1073741896: "pause",
1073741897: "insert",
1073741898: "home",
1073741899: "pageup",
1073741901: "end",
1073741902: "pagedown",
1073741903: "right",
1073741904: "left",
1073741905: "down",
1073741906: "up",
1073741908: "numdivide",
1073741909: "nummultiply",
1073741910: "numminus",
1073741911: "numplus",
1073741912: "numenter",
1073741913: "num1",
1073741914: "num2",
1073741915: "num3",
1073741916: "num4",
1073741917: "num5",
1073741918: "num6",
1073741919: "num7",
1073741920: "num8",
1073741921: "num9",
1073741922: "num0",
1073741923: "numperiod",
1073742048: "leftctrl",
1073742049: "leftshift",
1073742050: "leftalt",
1073742052: "rightctrl",
1073742053: "rightshift",
1073742054: "rightalt",
};
// ===========================================================================
function and(var1, var2) {
return (var1 && var2);
function getMultiplayerMod() {
return VRR_MPMOD_GTAC;
}
// ===========================================================================
function or(var1, var2) {
return (var1 || var2);
}
// ===========================================================================
function not(var1) {
return !var1;
}
// ===========================================================================
function bitAnd(var1, var2) {
return var1 & var2;
}
// ===========================================================================
function bitOr(var1, var2) {
return var1 | var2;
}
// ===========================================================================
function bitXor(var1, var2) {
return var1 ^ var2;
}
// ===========================================================================
function bitNot(var1) {
return ~var1;
}
// ===========================================================================
function bitLeftShift(var1, var2) {
return var1 << var2;
}
// ===========================================================================
function bitRightShift(var1, var2) {
return var1 >> var2;
}
// ===========================================================================
function greaterThan(var1, var2) {
return var1 > var2;
}
// ===========================================================================
function lessThan(var1, var2) {
return (var1 < var2);
}
// ===========================================================================
function greaterThanOrEqualTo(var1, var2) {
return (var1 >= var2);
}
// ===========================================================================
function lessThanOrEqualTo(var1, var2) {
return (var1 <= var2);
}
// ===========================================================================
function equals(var1, var2) {
return (var1 == var2);
}
// ===========================================================================
function modulo(var1, var2) {
return var1 % var2;
}
// ===========================================================================
function add(...args) {
return args.reduce((acc, a) => {
return acc + a;
}, 0);
}
// ===========================================================================
function subtract(...args) {
return args.reduce((acc, a) => {
return acc - a;
}, 0);
}
// ===========================================================================
function multiply(...args) {
return args.reduce((acc, a) => {
return acc * a;
}, 0);
}
// ===========================================================================
function divide(...args) {
return args.reduce((acc, a) => {
return acc / a;
}, 0);
}
// ===========================================================================
function toArray(...args) {
return args;
}
// ===========================================================================
function toInteger(val) {
return Number(val);
}
// ===========================================================================
function toFloat(val, fixed = 2) {
return parseFloat((val).toFixed(fixed));
}
// ===========================================================================
function toString(val) {
return String(val);
}
// ===========================================================================
function toVector3(x, y, z) {
return new Vec3(toFloat(x), toFloat(y), toFloat(z));
}
// ===========================================================================
function toVector2(x, y) {
return new Vec2(x, y);
}
// ===========================================================================
function toUpperCase(val) {
return String(val).toUpperCase();
}
// ===========================================================================
function toLowerCase(val) {
return String(val).toLowerCase();
}
// ===========================================================================
function isNull(val) {
if(val == null) {
return true;
}
if(typeof val === "undefined") {
return true;
}
return false;
}
// ===========================================================================
function getEntityData(entity, dataName) {
if(entity != null) {
if(entity.getData != null) {
return entity.getData(dataName);
}
}
return null;
}
// ===========================================================================
function setEntityData(entity, dataName, dataValue, syncToClients = true) {
if(entity != null) {
if(typeof server != "undefined") {
return entity.setData(dataName, dataValue, syncToClients);
} else {
return entity.setData(dataName, dataValue);
}
}
}
// ===========================================================================
function removeEntityData(entity, dataName) {
if(entity != null) {
return entity.removeData(dataName);
}
return null;
}
// ===========================================================================
function doesEntityDataExist(entity, dataName) {
if(entity != null) {
return (entity.getData(dataName) != null);
}
return null;
}
// ===========================================================================
function getDistance(vec1, vec2) {
if(isNull(vec1) || isNull(vec2)) {
return false;
}
return vec1.distance(vec2);
}
// ===========================================================================
function logToConsole(tempLogLevel, text) {
if((logLevel & tempLogLevel) || logLevel == LOG_ALL) {
if(tempLogLevel == LOG_ERROR) {
console.error(text);
return true;
} else if(tempLogLevel == LOG_WARN) {
console.warn(text);
return true;
} else {
console.log(text);
return true;
}
}
return false;
}
// ===========================================================================
function Enum(constantsList) {
let tempTable = {};
for(let i in constantsList) {
tempTable[constantsList[i]] = i;
}
return tempTable;
}
// ===========================================================================
function getGame() {
@@ -403,12 +23,6 @@ function getGame() {
// ===========================================================================
function isServerScript() {
return (typeof server != "undefined");
}
// ===========================================================================
function doesGameHaveSnow(gameId) {
return (getGame() != GAME_GTA_IV);
}
@@ -421,12 +35,6 @@ function isGTAIV() {
// ===========================================================================
function getPercentage(num, per) {
return (num/100)*per;
}
// ===========================================================================
let allowedSkins = [
[],
[ // GTA III
@@ -1397,31 +1005,56 @@ let allowedSkins = [
// ===========================================================================
function makeLargeNumberReadable(num) {
return new Number(num).toLocaleString("en-US");
function doesGameHaveServerElements() {
return !isGTAIV();
}
// ===========================================================================
function getKeyIdFromParams(params) {
let tempParams = toLowerCase(toString(params));
//let sdlName = sdl.getKeyFromName(tempParams);
//if(sdlName != null) {
// return sdlName;
//}
for(let i in bindableKeys) {
if(toLowerCase(bindableKeys[i]) == toLowerCase(tempParams)) {
return i;
}
}
function isTimeSupported() {
return true;
}
// ===========================================================================
function getKeyNameFromId(params) {
return bindableKeys[toInteger(params)];
function isSnowSupported() {
if(isGTAIV()) {
return false;
}
return true;
}
// ===========================================================================
function isWeatherSupported() {
return true;
}
// ===========================================================================
function isRemovingWorldObjectsSupported() {
if(getGame() == GAME_GTA_III) {
return true;
}
return false;
}
// ===========================================================================
function arePickupsSupported() {
if(isGTAIV()) {
return false;
}
return true;
}
// ===========================================================================
function areBlipsSupported() {
return true;
}
// ===========================================================================

View File

@@ -0,0 +1,370 @@
// ===========================================================================
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/gtac_roleplay
// ===========================================================================
// FILE: mafiac.js
// DESC: Provides util funcs for Mafia Connected
// TYPE: Shared (JavaScript)
// ===========================================================================
function getMultiplayerMod() {
return VRR_MPMOD_MAFIAC;
}
// ===========================================================================
function getGame() {
if(isServerScript()) {
return server.game;
} else {
return mafia.game;
}
}
// ===========================================================================
function doesGameHaveSnow(gameId) {
return false;
}
// ===========================================================================
let allowedSkins = [
[],
[ // Mafia 1
["Tommy", "Tommy", ""],
["TommyBOXER", "TommyBOXER", ""],
["TommyCOAT", "TommyCOAT", ""],
["TommyCOATHAT", "TommyCOATHAT", ""],
["TommyDELNIK", "TommyDELNIK", ""],
["TommyDELNIKHIGH", "TommyDELNIKHIGH", ""],
["TommyFREERIDER", "TommyFREERIDER", ""],
["TommyGUN", "TommyGUN", ""],
["TommyHAT", "TommyHAT", ""],
["TommyHIGH", "TommyHIGH", ""],
//["TommyHIGHBLOOD", "TommyHIGHBLOOD", ""],
["TommyHighCOATHAT", "TommyHighCOATHAT", ""],
["TommyHighHAT", "TommyHighHAT", ""],
["TommyNAHAC", "TommyNAHAC", ""],
["TommyOLD", "TommyOLD", ""],
//["TommyOLDBLOOD", "TommyOLDBLOOD", ""],
["TommyPYTEL", "TommyPYTEL", ""],
["TommyRACER", "TommyRACER", ""],
["TommyRACER2", "TommyRACER2", ""],
["TommyRUKAV", "TommyRUKAV", ""],
["TommySAILOR", "TommySAILOR", ""],
["TommyTAXIDRIVER", "TommyTAXIDRIVER", ""],
["TommyTAXIdriverHIGH", "TommyTAXIdriverHIGH", ""],
["AsisPZ1", "AsisPZ1", ""],
["Barman01", "Barman01", ""],
["Bclerk01", "Bclerk01", ""],
["Bclerk02", "Bclerk02", ""],
["Bguard01", "Bguard01", ""],
["Bguard01M", "Bguard01M", ""],
["Bguard02", "Bguard02", ""],
["Bguard03", "Bguard03", ""],
["Bguard03M", "Bguard03M", ""],
["Biff", "Biff", ""],
["BigDig", "BigDig", ""],
["BnkO01", "BnkO01", ""],
["BnkO02", "BnkO02", ""],
["BnkO03", "BnkO03", ""],
["BobAut01", "BobAut01", ""],
["Bookmaker01", "Bookmaker01", ""],
["Bookmaker02", "Bookmaker02", ""],
["Boxer01", "Boxer01", ""],
["Boxer02", "Boxer02", ""],
["Boxer03", "Boxer03", ""],
["Boxer04", "Boxer04", ""],
["Carlo", "Carlo", ""],
["China1", "China1", ""],
["Chulig1", "Chulig1", ""],
["Chulig1b", "Chulig1b", ""],
["David", "David", ""],
["Delnik01", "Delnik01", ""],
["Delnik02", "Delnik02", ""],
["Delnik03", "Delnik03", ""],
["Detektiv01", "Detektiv01", ""],
["Detektiv02", "Detektiv02", ""],
["Detektiv03", "Detektiv03", ""],
["Enemy01+", "Enemy01+", ""],
["Enemy01", "Enemy01", ""],
["Enemy02+", "Enemy02+", ""],
["Enemy02", "Enemy02", ""],
["Enemy03+", "Enemy03+", ""],
["Enemy03", "Enemy03", ""],
["Enemy04", "Enemy04", ""],
//["Enemy04BLOOD", "Enemy04BLOOD", ""],
["Enemy04K", "Enemy04K", ""],
["Enemy05", "Enemy05", ""],
["Enemy06+", "Enemy06+", ""],
["Enemy06", "Enemy06", ""],
["Enemy07+", "Enemy07+", ""],
["Enemy07", "Enemy07", ""],
["Enemy08+", "Enemy08+", ""],
["Enemy08", "Enemy08", ""],
["Enemy08K", "Enemy08K", ""],
["Enemy09+", "Enemy09+", ""],
["Enemy09", "Enemy09", ""],
["Enemy09K", "Enemy09K", ""],
["Enemy10+", "Enemy10+", ""],
["Enemy10", "Enemy10", ""],
["Enemy10K", "Enemy10K", ""],
["Enemy11K", "Enemy11K", ""],
["Enemy12", "Enemy12", ""],
["Enemy12K", "Enemy12K", ""],
["Enemy13C", "Enemy13C", ""],
["Enemy91", "Enemy91", ""],
["Enemy92", "Enemy92", ""],
["FMVENemy11K", "FMVENemy11K", ""],
["FREEgang01", "FREEgang01", ""],
["FREEgang02", "FREEgang02", ""],
["FrankHIGH", "FrankHIGH", ""],
["Friend1", "Friend1", ""],
["Friend2", "Friend2", ""],
["Gangster01", "Gangster01", ""],
["Gangster02", "Gangster02", ""],
["Gangster03", "Gangster03", ""],
["Gangster04", "Gangster04", ""],
["Gangster05", "Gangster05", ""],
["GodzMan1", "GodzMan1", ""],
["Guard01", "Guard01", ""],
["Guard02", "Guard02", ""],
["Hasic01", "Hasic01", ""],
["HighCivil", "HighCivil", ""],
//["HighCivilBLOOD", "HighCivilBLOOD", ""],
["Homeless01", "Homeless01", ""],
["Hoolig01", "Hoolig01", ""],
["Hoolig02", "Hoolig02", ""],
["Hoolig03", "Hoolig03", ""],
["Hoolig04", "Hoolig04", ""],
["Hoolig05", "Hoolig05", ""],
["Hoolig06", "Hoolig06", ""],
["I04Delnik01+", "I04Delnik01+", ""],
["I04Delnik01", "I04Delnik01", ""],
["Joe", "Joe", ""],
["Kasar", "Kasar", ""],
["Knez", "Knez", ""],
["LifeG01", "LifeG01", ""],
["Lucas", "Lucas", ""],
["Luigi", "Luigi", ""],
["Malticka1", "Malticka1", ""],
["MorelloHIGH", "MorelloHIGH", ""],
["MorelloLOW", "MorelloLOW", ""],
["NormanHIGH", "NormanHIGH", ""],
["Organizator01", "Organizator01", ""],
["Paulie", "Paulie", ""],
["PaulieCOATHAT", "PaulieCOATHAT", ""],
["PaulieCTHIGH", "PaulieCTHIGH", ""],
//["PaulieCorpse", "PaulieCorpse", ""],
["PaulieHIGH", "PaulieHIGH", ""],
["Pepe", "Pepe", ""],
//["PoliceMan01", "PoliceMan01", ""],
//["PoliceMan02", "PoliceMan02", ""],
["Politik", "Politik", ""],
//["PortGuard01", "PortGuard01", ""],
//["PortGuard02", "PortGuard02", ""],
["ProdZ1", "ProdZ1", ""],
["Prokur", "Prokur", ""],
["Radni01", "Radni01", ""],
["Radni02", "Radni02", ""],
["Ralph", "Ralph", ""],
["RalphHIGH", "RalphHIGH", ""],
["ReditelB", "ReditelB", ""],
["ReditelH", "ReditelH", ""],
["RidicNakladaku", "RidicNakladaku", ""],
["SalMan01K", "SalMan01K", ""],
["SalMan02K", "SalMan02K", ""],
["SalMan03", "SalMan03", ""],
["SalMan03K", "SalMan03K", ""],
["SalMan04", "SalMan04", ""],
["SalMan05", "SalMan05", ""],
["SalMan05K", "SalMan05K", ""],
["Salieri2", "Salieri2", ""],
["SalieriHIGH", "SalieriHIGH", ""],
["SalieriHIGH2", "SalieriHIGH2", ""],
["SalieriLOW", "SalieriLOW", ""],
["Sam", "Sam", ""],
["SamCOATHAT", "SamCOATHAT", ""],
["SamHIGH", "SamHIGH", ""],
//["SamHIGHblood1", "SamHIGHblood1", ""],
//["SamHIGHblood2", "SamHIGHblood2", ""],
//["SamHIGHblood3", "SamHIGHblood3", ""],
//["SamHIGHblood4", "SamHIGHblood4", ""],
//["Samblood1", "Samblood1", ""],
["Sergio", "Sergio", ""],
//["SergioBLOOD", "SergioBLOOD", ""],
["SynRad1", "SynRad1", ""],
//["SynRad1BLOOD", "SynRad1BLOOD", ""],
//["SynRad1DEAD", "SynRad1DEAD", ""],
["Tony", "Tony", ""],
["VincenzoHIGH", "VincenzoHIGH", ""],
["VincenzoLOW", "VincenzoLOW", ""],
["Vrabec", "Vrabec", ""],
["Vratny1", "Vratny1", ""],
["Vypravci", "Vypravci", ""],
["Vypravci2", "Vypravci2", ""],
["WillG1", "WillG1", ""],
["WillG2", "WillG2", ""],
["WillMan01", "WillMan01", ""],
["WillMan02", "WillMan02", ""],
["Zavod1", "Zavod1", ""],
["Zavod2", "Zavod2", ""],
["Zavod3", "Zavod3", ""],
["ZavodFMV1", "ZavodFMV1", ""],
["ZavodFMV2", "ZavodFMV2", ""],
["civil02", "civil02", ""],
["civil03", "civil03", ""],
["civil04", "civil04", ""],
["civil05", "civil05", ""],
["civil06", "civil06", ""],
["civil11", "civil11", ""],
["civil11M", "civil11M", ""],
["civil12", "civil12", ""],
["civil13", "civil13", ""],
["civil14", "civil14", ""],
["civil15", "civil15", ""],
["civil16", "civil16", ""],
["civil16M", "civil16M", ""],
["civil17", "civil17", ""],
["civil18", "civil18", ""],
["civil19", "civil19", ""],
["civil19M", "civil19M", ""],
["civil21", "civil21", ""],
["civil21N", "civil21N", ""],
["civil22", "civil22", ""],
["civil31", "civil31", ""],
["civil32", "civil32", ""],
["civil33", "civil33", ""],
["civil34", "civil34", ""],
["civil35", "civil35", ""],
["civil36", "civil36", ""],
["civil36M", "civil36M", ""],
["civil37", "civil37", ""],
["civil38", "civil38", ""],
["civil39", "civil39", ""],
["civil40", "civil40", ""],
["civil41", "civil41", ""],
["civil42", "civil42", ""],
["civil42M", "civil42M", ""],
["civil43", "civil43", ""],
["civil44", "civil44", ""],
["civil51", "civil51", ""],
["civil51M", "civil51M", ""],
["civil52", "civil52", ""],
["civil53", "civil53", ""],
["civil54", "civil54", ""],
["civil54M", "civil54M", ""],
["civil55", "civil55", ""],
["civil55M", "civil55M", ""],
["civil56", "civil56", ""],
["civil56M", "civil56M", ""],
["civil57", "civil57", ""],
["civil57M", "civil57M", ""],
["civil60", "civil60", ""],
["civil61", "civil61", ""],
["civil62", "civil62", ""],
["civil63", "civil63", ""],
["civil70", "civil70", ""],
["civil70M", "civil70M", ""],
["civil71", "civil71", ""],
["civil72", "civil72", ""],
["frank", "frank", ""],
["ohorelec01", "ohorelec01", ""],
["pianist1", "pianist1", ""],
["pol01", "pol01", ""],
["pol02", "pol02", ""],
["pol03", "pol03", ""],
["pol11", "pol11", ""],
["pol12", "pol12", ""],
["pol13", "pol13", ""],
["polim62", "polim62", ""],
["pumpar01", "pumpar01", ""],
["recep", "recep", ""],
//["sailor01", "sailor01", ""],
//["sailor01M", "sailor01M", ""],
//["sailor02", "sailor02", ""],
//["sailor02M", "sailor02M", ""],
//["sailor03", "sailor03", ""],
["waiter01", "waiter01", ""],
["waiter01M", "waiter01M", ""],
["waiter02", "waiter02", ""],
["waiter02M", "waiter02M", ""],
["waiter03", "waiter03", ""],
["Alice1", "Alice1", ""],
["Berta", "Berta", ""],
["Bitch01", "Bitch01", ""],
["Bitch02", "Bitch02", ""],
["Bitch02Mask", "Bitch02Mask", ""],
["Bitch03M", "Bitch03M", ""],
["CarlZen1", "CarlZen1", ""],
["Czena01", "Czena01", ""],
["Czena02", "Czena02", ""],
["Czena03", "Czena03", ""],
["Czena04", "Czena04", ""],
["Czena05", "Czena05", ""],
["Czena06", "Czena06", ""],
["Czena07", "Czena07", ""],
["Czena07M", "Czena07M", ""],
["Czena08", "Czena08", ""],
["Czena09", "Czena09", ""],
["Czena09M", "Czena09M", ""],
["Czena10", "Czena10", ""],
["Czena10M", "Czena10M", ""],
["Czena11", "Czena11", ""],
["Czena11M", "Czena11M", ""],
["Czena12", "Czena12", ""],
["Czena13", "Czena13", ""],
["FMVCzena03", "FMVCzena03", ""],
["FMVCzena04", "FMVCzena04", ""],
["March1", "March1", ""],
["Michelle", "Michelle", ""],
["MichelleLOW", "MichelleLOW", ""],
["Milenka1", "Milenka1", ""],
["Sarah1", "Sarah1", ""],
["Sarah1Obl", "Sarah1Obl", ""],
["Sarah2", "Sarah2", ""],
["Sarah2HIGH", "Sarah2HIGH", ""],
["Sarah2HIGHnaha", "Sarah2HIGHnaha", ""],
["Sarah2LOW", "Sarah2LOW", ""],
["Serv01", "Serv01", ""],
]
];
// ===========================================================================
function isTimeSupported() {
return false;
}
// ===========================================================================
function isSnowSupported() {
return false;
}
// ===========================================================================
function isWeatherSupported() {
return false;
}
// ===========================================================================
function isRemovingWorldObjectsSupported() {
return false;
}
// ===========================================================================
function arePickupsSupported() {
return false;
}
// ===========================================================================
function areBlipsSupported() {
return false;
}
// ===========================================================================