Update natives
This commit is contained in:
@@ -5,4 +5,98 @@
|
|||||||
// FILE: gtac.js
|
// FILE: gtac.js
|
||||||
// DESC: Provides natives for GTA Connected
|
// DESC: Provides natives for GTA Connected
|
||||||
// TYPE: Client (JavaScript)
|
// 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();
|
||||||
|
}
|
||||||
@@ -2,7 +2,15 @@
|
|||||||
// Vortrex's Roleplay Resource
|
// Vortrex's Roleplay Resource
|
||||||
// https://github.com/VortrexFTW/gtac_roleplay
|
// https://github.com/VortrexFTW/gtac_roleplay
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
// FILE: oakwood.js
|
// FILE: mafiac.js
|
||||||
// DESC: Provides natives for Project Oakwood (Mafia 1)
|
// DESC: Provides natives for Mafia Connected
|
||||||
// TYPE: Client (JavaScript)
|
// TYPE: Client (JavaScript)
|
||||||
|
// ===========================================================================
|
||||||
|
|
||||||
|
function setUpInitialGame() {
|
||||||
|
if(mafia.game == GAME_MAFIA_ONE) {
|
||||||
|
mafia.mapEnabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
File diff suppressed because it is too large
Load Diff
1290
scripts/server/native/mafiac.js
Normal file
1290
scripts/server/native/mafiac.js
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ===========================================================================
|
|
||||||
@@ -2,395 +2,15 @@
|
|||||||
// Vortrex's Roleplay Resource
|
// Vortrex's Roleplay Resource
|
||||||
// https://github.com/VortrexFTW/gtac_roleplay
|
// https://github.com/VortrexFTW/gtac_roleplay
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
// FILE: native.js
|
// FILE: gtac.js
|
||||||
// DESC: Provides util funcs for native wrapping
|
// DESC: Provides util funcs for GTAC
|
||||||
// TYPE: Shared (JavaScript)
|
// TYPE: Shared (JavaScript)
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
"use strict";
|
function getMultiplayerMod() {
|
||||||
|
return VRR_MPMOD_GTAC;
|
||||||
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 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() {
|
function getGame() {
|
||||||
@@ -403,12 +23,6 @@ function getGame() {
|
|||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
function isServerScript() {
|
|
||||||
return (typeof server != "undefined");
|
|
||||||
}
|
|
||||||
|
|
||||||
// ===========================================================================
|
|
||||||
|
|
||||||
function doesGameHaveSnow(gameId) {
|
function doesGameHaveSnow(gameId) {
|
||||||
return (getGame() != GAME_GTA_IV);
|
return (getGame() != GAME_GTA_IV);
|
||||||
}
|
}
|
||||||
@@ -421,12 +35,6 @@ function isGTAIV() {
|
|||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
function getPercentage(num, per) {
|
|
||||||
return (num/100)*per;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ===========================================================================
|
|
||||||
|
|
||||||
let allowedSkins = [
|
let allowedSkins = [
|
||||||
[],
|
[],
|
||||||
[ // GTA III
|
[ // GTA III
|
||||||
@@ -1397,31 +1005,56 @@ let allowedSkins = [
|
|||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
function makeLargeNumberReadable(num) {
|
function doesGameHaveServerElements() {
|
||||||
return new Number(num).toLocaleString("en-US");
|
return !isGTAIV();
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
function getKeyIdFromParams(params) {
|
function isTimeSupported() {
|
||||||
let tempParams = toLowerCase(toString(params));
|
return true;
|
||||||
|
|
||||||
//let sdlName = sdl.getKeyFromName(tempParams);
|
|
||||||
//if(sdlName != null) {
|
|
||||||
// return sdlName;
|
|
||||||
//}
|
|
||||||
|
|
||||||
for(let i in bindableKeys) {
|
|
||||||
if(toLowerCase(bindableKeys[i]) == toLowerCase(tempParams)) {
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
function getKeyNameFromId(params) {
|
function isSnowSupported() {
|
||||||
return bindableKeys[toInteger(params)];
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
370
scripts/shared/native/mafiac.js
Normal file
370
scripts/shared/native/mafiac.js
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===========================================================================
|
||||||
Reference in New Issue
Block a user