627 lines
12 KiB
JavaScript
627 lines
12 KiB
JavaScript
// ===========================================================================
|
|
// Asshat-Gaming Roleplay
|
|
// https://github.com/VortrexFTW/gtac_asshat_rp
|
|
// Copyright (c) 2020 Asshat-Gaming (https://asshatgaming.com)
|
|
// ---------------------------------------------------------------------------
|
|
// FILE: core.js
|
|
// DESC: Provides core data structures, function, and operations
|
|
// TYPE: Server (JavaScript)
|
|
// ===========================================================================
|
|
|
|
let serverId = 0;
|
|
let scriptVersion = "1.0";
|
|
let serverStartTime = new Date().getTime();
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
let serverData = {
|
|
saveDataIntervalTimer: false,
|
|
staffFlagKeys: [
|
|
"none",
|
|
"basicModeration",
|
|
"manageHouses",
|
|
"manageVehicles",
|
|
"manageBusinesses",
|
|
"manageFactions",
|
|
"manageClans",
|
|
"manageServer",
|
|
"manageAdmins",
|
|
"developer"
|
|
],
|
|
moderationFlagKeys: [
|
|
"none",
|
|
"muted",
|
|
"frozen",
|
|
"hackerBox",
|
|
"jobBanned",
|
|
"ammuBanned",
|
|
"policeBanned",
|
|
"fireBanned",
|
|
"gunBanned",
|
|
],
|
|
factionFlagKeys: [
|
|
"none",
|
|
"police",
|
|
"medical",
|
|
"fire",
|
|
"government"
|
|
],
|
|
clanFlagKeys: [
|
|
"none",
|
|
"illegal",
|
|
"legal",
|
|
"mafia",
|
|
"streetGang",
|
|
"weapons",
|
|
"drugs",
|
|
"humanTrafficking",
|
|
"vigilante",
|
|
"hitContracts"
|
|
],
|
|
clanPermissionFlagKeys: [
|
|
"none",
|
|
"inviteMember",
|
|
"removeMember",
|
|
"memberRank",
|
|
"memberFlags",
|
|
"memberTag",
|
|
"memberTitle",
|
|
"rankFlags",
|
|
"rankTag",
|
|
"rankTitle",
|
|
"clanTag",
|
|
"clanName",
|
|
"manageVehicles",
|
|
"manageHouses",
|
|
"manageBusinesses",
|
|
"owner"
|
|
],
|
|
accountSettingsFlagKeys: [
|
|
"none",
|
|
"useWhiteList",
|
|
"useBlackList",
|
|
"twoStepAuth",
|
|
"authAttemptAlert",
|
|
"alertWithGUI",
|
|
"errorWithGUI",
|
|
"askWithGUI",
|
|
"autoLoginIP",
|
|
],
|
|
subAccountSettingsFlagKeys: [],
|
|
staffFlags: {},
|
|
moderationFlags: {},
|
|
factionFlags: {},
|
|
clanFlags: {},
|
|
accountSettingsFlags: {},
|
|
subAccountSettingsFlags: {},
|
|
vehicles: [],
|
|
clients: new Array(128),
|
|
businesses: [],
|
|
houses: [],
|
|
families: [],
|
|
factions: [],
|
|
translation: {
|
|
translationBaseURL: "http://api.mymemory.translated.net/get?de=example@example.com&q={0}&langpair={1}|{2}",
|
|
languages: [
|
|
["Abkhazian", "AB"],
|
|
["Afar", "AA"],
|
|
["Afrikaans", "AF"],
|
|
["Albanian", "SQ"],
|
|
["Amharic", "AM"],
|
|
["Arabic", "AR"],
|
|
["Armenian", "HY"],
|
|
["Assamese", "AS"],
|
|
["Aymara", "AY"],
|
|
["Azerbaijani", "AZ"],
|
|
["Bashkir", "BA"],
|
|
["Basque", "EU"],
|
|
["Bengali, Bangla", "BN"],
|
|
["Bhutani", "DZ"],
|
|
["Bihari", "BH"],
|
|
["Bislama", "BI"],
|
|
["Breton", "BR"],
|
|
["Bulgarian", "BG"],
|
|
["Burmese", "MY"],
|
|
["Byelorussian", "BE"],
|
|
["Cambodian", "KM"],
|
|
["Catalan", "CA"],
|
|
["Chinese", "ZH"],
|
|
["Corsican", "CO"],
|
|
["Croatian", "HR"],
|
|
["Czech", "CS"],
|
|
["Danish", "DA"],
|
|
["Dutch", "NL"],
|
|
["English", "EN"],
|
|
["Esperanto", "EO"],
|
|
["Estonian", "ET"],
|
|
["Faeroese", "FO"],
|
|
["Fiji", "FJ"],
|
|
["Finnish", "FI"],
|
|
["French", "FR"],
|
|
["Frisian", "FY"],
|
|
["Gaelic (Scots Gaelic)", "GD"],
|
|
["Galician", "GL"],
|
|
["Georgian", "KA"],
|
|
["German", "DE"],
|
|
["Greek", "EL"],
|
|
["Greenlandic", "KL"],
|
|
["Guarani", "GN"],
|
|
["Gujarati", "GU"],
|
|
["Hausa", "HA"],
|
|
["Hebrew", "IW"],
|
|
["Hindi", "HI"],
|
|
["Hungarian", "HU"],
|
|
["Icelandic", "IS"],
|
|
["Indonesian", "IN"],
|
|
["Interlingua", "IA"],
|
|
["Interlingue", "IE"],
|
|
["Inupiak", "IK"],
|
|
["Irish", "GA"],
|
|
["Italian", "IT"],
|
|
["Japanese", "JA"],
|
|
["Javanese", "JW"],
|
|
["Kannada", "KN"],
|
|
["Kashmiri", "KS"],
|
|
["Kazakh", "KK"],
|
|
["Kinyarwanda", "RW"],
|
|
["Kirghiz", "KY"],
|
|
["Kirundi", "RN"],
|
|
["Korean", "KO"],
|
|
["Kurdish", "KU"],
|
|
["Laothian", "LO"],
|
|
["Latin", "LA"],
|
|
["Latvian, Lettish", "LV"],
|
|
["Lingala", "LN"],
|
|
["Lithuanian", "LT"],
|
|
["Macedonian", "MK"],
|
|
["Malagasy", "MG"],
|
|
["Malay", "MS"],
|
|
["Malayalam", "ML"],
|
|
["Maltese", "MT"],
|
|
["Maori", "MI"],
|
|
["Marathi", "MR"],
|
|
["Moldavian", "MO"],
|
|
["Mongolian", "MN"],
|
|
["Nauru", "NA"],
|
|
["Nepali", "NE"],
|
|
["Norwegian", "NO"],
|
|
["Occitan", "OC"],
|
|
["Oriya", "OR"],
|
|
["Oromo, Afan", "OM"],
|
|
["Pashto, Pushto", "PS"],
|
|
["Persian", "FA"],
|
|
["Polish", "PL"],
|
|
["Portuguese", "PT"],
|
|
["Punjabi", "PA"],
|
|
["Quechua", "QU"],
|
|
["Rhaeto-Romance", "RM"],
|
|
["Romanian", "RO"],
|
|
["Russian", "RU"],
|
|
["Samoan", "SM"],
|
|
["Sangro", "SG"],
|
|
["Sanskrit", "SA"],
|
|
["Serbian", "SR"],
|
|
["Serbo-Croatian", "SH"],
|
|
["Sesotho", "ST"],
|
|
["Setswana", "TN"],
|
|
["Shona", "SN"],
|
|
["Sindhi", "SD"],
|
|
["Singhalese", "SI"],
|
|
["Siswati", "SS"],
|
|
["Slovak", "SK"],
|
|
["Slovenian", "SL"],
|
|
["Somali", "SO"],
|
|
["Spanish", "ES"],
|
|
["Sudanese", "SU"],
|
|
["Swahili", "SW"],
|
|
["Swedish", "SV"],
|
|
["Tagalog", "TL"],
|
|
["Tajik", "TG"],
|
|
["Tamil", "TA"],
|
|
["Tatar", "TT"],
|
|
["Tegulu", "TE"],
|
|
["Thai", "TH"],
|
|
["Tibetan", "BO"],
|
|
["Tigrinya", "TI"],
|
|
["Tonga", "TO"],
|
|
["Tsonga", "TS"],
|
|
["Turkish", "TR"],
|
|
["Turkmen", "TK"],
|
|
["Twi", "TW"],
|
|
["Ukrainian", "UK"],
|
|
["Urdu", "UR"],
|
|
["Uzbek", "UZ"],
|
|
["Vietnamese", "VI"],
|
|
["Volapuk", "VO"],
|
|
["Welsh", "CY"],
|
|
["Wolof", "WO"],
|
|
["Xhosa", "XH"],
|
|
["Yiddish", "JI"],
|
|
["Yoruba", "YO"],
|
|
["Zulu", "ZU"]
|
|
],
|
|
cache: null,
|
|
},
|
|
commands: {},
|
|
policeStations: [
|
|
false,
|
|
[ // GTA 3
|
|
{
|
|
position: toVector3(1143.875, -675.1875, 14.97),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "Portland",
|
|
},
|
|
{
|
|
position: toVector3(340.25, -1123.375, 25.98),
|
|
heading: 3.14,
|
|
blip: false,
|
|
name: "Staunton Island",
|
|
},
|
|
{
|
|
position: toVector3(-1253.0, -138.1875, 58.75),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "Shoreside Vale",
|
|
},
|
|
],
|
|
[ // GTA VC
|
|
{
|
|
position: toVector3(399.77, -468.90, 11.73),
|
|
heading: 0.0,
|
|
blip: false,
|
|
name: "Washington Beach",
|
|
},
|
|
{
|
|
position: toVector3(508.96, 512.07, 12.10),
|
|
heading: 0.0,
|
|
blip: false,
|
|
name: "Vice Point",
|
|
},
|
|
{
|
|
position: toVector3(-657.43, 762.31, 11.59),
|
|
heading: 0.0,
|
|
blip: false,
|
|
name: "Downtown",
|
|
},
|
|
{
|
|
position: toVector3(-885.08, -470.44, 13.11),
|
|
heading: 0.0,
|
|
blip: false,
|
|
name: "Little Havana",
|
|
},
|
|
],
|
|
[ // GTA SA
|
|
{
|
|
position: toVector3(1545.53, -1675.64, 13.561),
|
|
heading: -1.575,
|
|
blip: false,
|
|
name: "Los Santos",
|
|
},
|
|
|
|
],
|
|
[ // GTA UG
|
|
|
|
],
|
|
[ // GTA IV
|
|
|
|
{
|
|
position: toVector3(894.99, -357.39, 18.185),
|
|
heading: 2.923,
|
|
blip: false,
|
|
name: "Broker",
|
|
},
|
|
{
|
|
position: toVector3(435.40, 1592.29, 17.353),
|
|
heading: 3.087,
|
|
blip: false,
|
|
name: "South Bohan",
|
|
},
|
|
{
|
|
position: toVector3(974.93, 1870.45, 23.073),
|
|
heading: -1.621,
|
|
blip: false,
|
|
name: "Northern Gardens",
|
|
},
|
|
{
|
|
position: toVector3(1233.25, -89.13, 28.034),
|
|
heading: 1.568,
|
|
blip: false,
|
|
name: "South Slopes",
|
|
},
|
|
{
|
|
position: toVector3(50.12, 679.88, 15.316),
|
|
heading: 1.569,
|
|
blip: false,
|
|
name: "Middle Park East",
|
|
},
|
|
{
|
|
position: toVector3(85.21, 1189.82, 14.755),
|
|
heading: 3.127,
|
|
blip: false,
|
|
name: "East Holland",
|
|
},
|
|
{
|
|
position: toVector3(2170.87, 448.87, 6.085),
|
|
heading: 1.501,
|
|
blip: false,
|
|
name: "Francis International Airport",
|
|
},
|
|
{
|
|
position: toVector3(213.12, -211.70, 10.752),
|
|
heading: 0.200,
|
|
blip: false,
|
|
name: "Chinatown",
|
|
},
|
|
{
|
|
position: toVector3(-1714.95, 276.31, 22.134),
|
|
heading: 1.127,
|
|
blip: false,
|
|
name: "Acter",
|
|
},
|
|
{
|
|
position: toVector3(-1220.73, -231.53, 3.024),
|
|
heading: 2.210,
|
|
blip: false,
|
|
name: "Port Tudor",
|
|
},
|
|
{
|
|
position: toVector3(-927.66, 1263.63, 24.587),
|
|
heading: -0.913,
|
|
blip: false,
|
|
name: "Leftwood",
|
|
},
|
|
]
|
|
],
|
|
fireStations: [
|
|
false,
|
|
[ // GTA 3
|
|
{
|
|
position: toVector3(1103.70, -52.45, 7.49),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "Portland",
|
|
},
|
|
{
|
|
position: toVector3(-78.48, -436.80, 16.17),
|
|
heading: 3.14,
|
|
blip: false,
|
|
name: "Staunton Island",
|
|
},
|
|
{
|
|
position: toVector3(-1202.10, -14.67, 53.20),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "Shoreside Vale",
|
|
},
|
|
],
|
|
[ // GTA VC
|
|
|
|
],
|
|
[ // GTA SA
|
|
|
|
],
|
|
[ // GTA UG
|
|
|
|
],
|
|
[ // GTA IV
|
|
{
|
|
position: toVector3(953.13, 95.90, 35.004),
|
|
heading: 1.595,
|
|
blip: false,
|
|
name: "Broker",
|
|
},
|
|
{
|
|
position: toVector3(-271.02, 1542.15, 20.420),
|
|
heading: -1.160,
|
|
blip: false,
|
|
name: "Northwood",
|
|
},
|
|
{
|
|
position: toVector3(1120.47, 1712.36, 10.534),
|
|
heading: -0.682,
|
|
blip: false,
|
|
name: "Northern Gardens",
|
|
},
|
|
{
|
|
position: toVector3(2364.87, 166.83, 5.813),
|
|
heading: 0.156,
|
|
blip: false,
|
|
name: "Francis International Airport",
|
|
},
|
|
{
|
|
position: toVector3(295.40, -336.88, 4.963),
|
|
heading: 2.887,
|
|
blip: false,
|
|
name: "Chinatown",
|
|
},
|
|
]
|
|
],
|
|
hospitals: [
|
|
false,
|
|
[ // GTA 3
|
|
{
|
|
position: toVector3(1144.25, -596.875, 14.97),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "Portland",
|
|
},
|
|
{
|
|
position: toVector3(183.5, -17.75, 16.21),
|
|
heading: 3.14,
|
|
blip: false,
|
|
name: "Staunton Island",
|
|
},
|
|
{
|
|
position: toVector3(-1259.5, -44.5, 58.89),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "Shoreside Vale",
|
|
},
|
|
],
|
|
[ // GTA VC
|
|
{
|
|
position: toVector3(493.14, 709.31, 11.80),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "Unknown",
|
|
},
|
|
{
|
|
position: toVector3(-826.06, 1144.41, 12.41),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "Unknown",
|
|
},
|
|
],
|
|
[ // GTA SA
|
|
{
|
|
position: toVector3(1172.96, -1323.42, 15.40),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "All Saints",
|
|
},
|
|
{
|
|
position: toVector3(2034.04, -1405.07, 17.24),
|
|
heading: 1.5,
|
|
blip: false,
|
|
name: "County General",
|
|
},
|
|
],
|
|
[ // GTA UG
|
|
|
|
],
|
|
[ // GTA IV
|
|
{
|
|
position: toVector3(1199.59, 196.78, 33.554),
|
|
heading: 1.633,
|
|
blip: false,
|
|
name: "Schottler",
|
|
},
|
|
{
|
|
position: toVector3(980.71, 1831.61, 23.898),
|
|
heading: -0.049,
|
|
blip: false,
|
|
name: "Northern Gardens",
|
|
},
|
|
{
|
|
position: toVector3(-1317.27, 1277.20, 22.370),
|
|
heading: 2.246,
|
|
blip: false,
|
|
name: "Leftwood",
|
|
},
|
|
{
|
|
position: toVector3(-1538.43, 344.58, 20.943),
|
|
heading: -0.156,
|
|
blip: false,
|
|
name: "Acter",
|
|
},
|
|
]
|
|
],
|
|
payAndSprays: [
|
|
false,
|
|
[ // GTA 3
|
|
{
|
|
position: toVector3(925.4, -360.3, 10.83),
|
|
blip: false,
|
|
name: "Portland",
|
|
},
|
|
{
|
|
position: toVector3(381.8, -493.8, 25.95),
|
|
blip: false,
|
|
name: "Staunton Island",
|
|
},
|
|
{
|
|
position: toVector3(-1142.4, 35.01, 58.61),
|
|
blip: false,
|
|
name: "Shoreside Vale",
|
|
},
|
|
],
|
|
[ // GTA VC
|
|
|
|
],
|
|
[ // GTA SA
|
|
|
|
],
|
|
[ // GTA UG
|
|
|
|
],
|
|
[ // GTA IV
|
|
|
|
]
|
|
],
|
|
|
|
ammunations: [
|
|
false,
|
|
[ // GTA 3
|
|
{
|
|
position: toVector3(1068.3, -400.9, 15.24),
|
|
blip: false,
|
|
name: "Portland",
|
|
},
|
|
{
|
|
position: toVector3(348.2, -717.9, 26.43),
|
|
blip: false,
|
|
name: "Staunton Island",
|
|
},
|
|
],
|
|
[ // GTA VC
|
|
|
|
],
|
|
[ // GTA SA
|
|
|
|
],
|
|
[ // GTA UG
|
|
|
|
],
|
|
[ // GTA IV
|
|
|
|
]
|
|
],
|
|
fuelStations: [
|
|
false,
|
|
[ // GTA 3
|
|
|
|
{
|
|
position: toVector3(1161.9, -76.73, 7.27),
|
|
blip: false,
|
|
name: "Portland",
|
|
},
|
|
],
|
|
[ // GTA VC
|
|
|
|
],
|
|
[ // GTA SA
|
|
|
|
],
|
|
[ // GTA UG
|
|
|
|
],
|
|
[ // GTA IV
|
|
|
|
]
|
|
],
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
function initServerData() {
|
|
// Pre-allocate translation cache language slots
|
|
global.getServerData().translation.cache = new Array(global.getServerData().translation.languages.length);
|
|
let translationCacheFrom = new Array(global.getServerData().translation.languages.length);
|
|
translationCacheFrom.fill([]);
|
|
global.getServerData().translation.cache.fill(translationCacheFrom);
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
function getServerId() {
|
|
return serverId;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
function getServerData() {
|
|
return serverData;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|