Scripts/resources/[sna]/sna-live-map/client/client.js

306 lines
9.9 KiB
JavaScript
Raw Normal View History

2024-12-29 20:01:18 +00:00
"use strict";
// src/utils/getWeaponNameFromHash.ts
var WEAPON_HASHES = {
"100416529": "Sniper Rifle",
"101631238": "Fire Extinguisher",
"125959754": "Compact Grenade Launcher",
"126349499": "Snowball",
"137902532": "Vintage Pistol",
"171789620": "Combat PDW",
"177293209": "Heavy Sniper Mk II",
"205991906": "Heavy Sniper",
"317205821": "Sweeper Shotgun",
"324215364": "Micro SMG",
"419712736": "Pipe Wrench",
"453432689": "Pistol",
"487013001": "Pump Shotgun",
"584646201": "AP Pistol",
"600439132": "Ball",
"615608432": "Molotov",
"736523883": "SMG",
"741814745": "Sticky Bomb",
"883325847": "Jerry Can",
"911657153": "Stun Gun",
"940833800": "Stone Hatchet",
"961495388": "Assault Rifle Mk II",
"984333226": "Heavy Shotgun",
"1119849093": "Minigun",
"1141786504": "Golf Club",
"1198256469": "Unholy Hellbringer",
"1198879012": "Flare Gun",
"1233104067": "Flare",
"1317494643": "Hammer",
"1432025498": "Pump Shotgun Mk II",
"1593441988": "Combat Pistol",
"1627465347": "Gusenberg Sweeper",
"1649403952": "Compact Rifle",
"1672152130": "Homing Launcher",
"1737195953": "Nightstick",
"1785463520": "Marksman Rifle Mk II",
"1834241177": "Railgun",
"2017895192": "Sawed-Off Shotgun",
"2024373456": "SMG Mk II",
"2132975508": "Bullpup Rifle",
"2138347493": "Firework Launcher",
"2144741730": "Combat MG",
"2210333304": "Carbine Rifle",
"2227010557": "Crowbar",
"2228681469": "Bullpup Rifle Mk II",
"2285322324": "SNS Pistol Mk II",
"2343591895": "Flashlight",
"2460120199": "Antique Cavalry Dagger",
"2481070269": "Grenade",
"2484171525": "Pool Cue",
"2508868239": "Baseball Bat",
"2526821735": "Special Carbine Mk II",
"2548703416": "Double-Action Revolver",
"2578377531": "Pistol .50",
"2578778090": "Knife",
"2634544996": "MG",
"2640438543": "Bullpup Shotgun",
"2694266206": "BZ Gas",
"2726580491": "Grenade Launcher",
"2828843422": "Musket",
"2874559379": "Proximity Mine",
"2937143193": "Advanced Rifle",
"2939590305": "Up-n-Atomizer",
"2982836145": "RPG",
"3056410471": "Widowmaker",
"3125143736": "Pipe Bomb",
"3173288789": "Mini SMG",
"3218215474": "SNS Pistol",
"3219281620": "Pistol Mk II",
"3220176749": "Assault Rifle",
"3231910285": "Special Carbine",
"3520460075": "Service Rifle",
"3249783761": "Heavy Revolver",
"3342088282": "Marksman Rifle",
"3415619887": "Heavy Revolver Mk II",
"3441901897": "Battle Axe",
"3523564046": "Heavy Pistol",
"3638508604": "Knuckle Duster",
"3675956304": "Machine Pistol",
"3686625920": "Combat MG Mk II",
"3696079510": "Marksman Pistol",
"3713923289": "Machete",
"3756226112": "Switchblade",
"3800352039": "Assault Shotgun",
"4019527611": "Double Barrel Shotgun",
"4024951519": "Assault SMG",
"4191993645": "Hatchet",
"4192643659": "Bottle",
"4208062921": "Carbine Rifle Mk II",
"4256991824": "Tear Gas"
};
function getWeaponNameFromHash(hash) {
const name = WEAPON_HASHES[hash.toString(10)];
if (name) {
return name;
}
return null;
}
// src/utils/getWeapon.ts
function getWeapon(pedId) {
const weaponHash = GetSelectedPedWeapon(pedId);
const hash = getWeaponNameFromHash(weaponHash);
return hash;
}
// src/utils/getArea.ts
var areaHashes = {
"2072609373": "Blaine County",
"-289320599": "Los Santos"
};
function getArea(position) {
const areaHash = GetHashOfMapAreaAtCoords(...position);
return areaHashes[areaHash];
}
// src/utils/getZone.ts
var areaHashes2 = {
[GetHashKey("AIRP")]: "Los Santos International Airport",
[GetHashKey("ALAMO")]: "Alamo Sea",
[GetHashKey("ALTA")]: "Alta",
[GetHashKey("ARMYB")]: "Fort Zancudo",
[GetHashKey("BANHAMC")]: "Banham Canyon Dr",
[GetHashKey("BANNING")]: "Banning",
[GetHashKey("BEACH")]: "Vespucci Beach",
[GetHashKey("BHAMCA")]: "Banham Canyon",
[GetHashKey("BRADP")]: "Braddock Pass",
[GetHashKey("BRADT")]: "Braddock Tunnel",
[GetHashKey("BURTON")]: "Burton",
[GetHashKey("CALAFB")]: "Calafia Bridge",
[GetHashKey("CANNY")]: "Raton Canyon",
[GetHashKey("CCREAK")]: "Cassidy Creek",
[GetHashKey("CHAMH")]: "Chamberlain Hills",
[GetHashKey("CHIL")]: "Vinewood Hills",
[GetHashKey("CHU")]: "Chumash",
[GetHashKey("CMSW")]: "Chiliad Mountain State Wilderness",
[GetHashKey("CYPRE")]: "Cypress Flats",
[GetHashKey("DAVIS")]: "Davis",
[GetHashKey("DELBE")]: "Del Perro Beach",
[GetHashKey("DELPE")]: "Del Perro",
[GetHashKey("DELSOL")]: "La Puerta",
[GetHashKey("DESRT")]: "Grand Senora Desert",
[GetHashKey("DOWNT")]: "Downtown",
[GetHashKey("DTVINE")]: "Downtown Vinewood",
[GetHashKey("EAST_V")]: "East Vinewood",
[GetHashKey("EBURO")]: "El Burro Heights",
[GetHashKey("ELGORL")]: "El Gordo Lighthouse",
[GetHashKey("ELYSIAN")]: "Elysian Island",
[GetHashKey("GALFISH")]: "Galilee",
[GetHashKey("GOLF")]: "GWC and Golfing Society",
[GetHashKey("GRAPES")]: "Grapeseed",
[GetHashKey("GREATC")]: "Great Chaparral",
[GetHashKey("HARMO")]: "Harmony",
[GetHashKey("HAWICK")]: "Hawick",
[GetHashKey("HORS")]: "Vinewood Racetrack",
[GetHashKey("HUMLAB")]: "Humane Labs and Research",
[GetHashKey("JAIL")]: "Bolingbroke Penitentiary",
[GetHashKey("KOREAT")]: "Little Seoul",
[GetHashKey("LACT")]: "Land Act Reservoir",
[GetHashKey("LAGO")]: "Lago Zancudo",
[GetHashKey("LDAM")]: "Land Act Dam",
[GetHashKey("LEGSQU")]: "Legion Square",
[GetHashKey("LMESA")]: "La Mesa",
[GetHashKey("LOSPUER")]: "La Puerta",
[GetHashKey("MIRR")]: "Mirror Park",
[GetHashKey("MORN")]: "Morningwood",
[GetHashKey("MOVIE")]: "Richards Majestic",
[GetHashKey("MTCHIL")]: "Mount Chiliad",
[GetHashKey("MTGORDO")]: "Mount Gordo",
[GetHashKey("MTJOSE")]: "Mount Josiah",
[GetHashKey("MURRI")]: "Murrieta Heights",
[GetHashKey("NCHU")]: "North Chumash",
[GetHashKey("NOOSE")]: "N.O.O.S.E",
[GetHashKey("OCEANA")]: "Pacific Ocean",
[GetHashKey("PALCOV")]: "Paleto Cove",
[GetHashKey("PALETO")]: "Paleto Bay",
[GetHashKey("PALFOR")]: "Paleto Forest",
[GetHashKey("PALHIGH")]: "Palomino Highlands",
[GetHashKey("PALMPOW")]: "Palmer-Taylor Power Station",
[GetHashKey("PBLUFF")]: "Pacific Bluffs",
[GetHashKey("PBOX")]: "Pillbox Hill",
[GetHashKey("PROCOB")]: "Procopio Beach",
[GetHashKey("RANCHO")]: "Rancho",
[GetHashKey("RGLEN")]: "Richman Glen",
[GetHashKey("RICHM")]: "Richman",
[GetHashKey("ROCKF")]: "Rockford Hills",
[GetHashKey("RTRAK")]: "Redwood Lights Track",
[GetHashKey("SANAND")]: "San Andreas",
[GetHashKey("SANCHIA")]: "San Chianski Mountain Range",
[GetHashKey("SANDY")]: "Sandy Shores",
[GetHashKey("SKID")]: "Mission Row",
[GetHashKey("SLAB")]: "Stab City",
[GetHashKey("STAD")]: "Maze Bank Arena",
[GetHashKey("STRAW")]: "Strawberry",
[GetHashKey("TATAMO")]: "Tataviam Mountains",
[GetHashKey("TERMINA")]: "Terminal",
[GetHashKey("TEXTI")]: "Textile City",
[GetHashKey("TONGVAH")]: "Tongva Hills",
[GetHashKey("TONGVAV")]: "Tongva Valley",
[GetHashKey("VCANA")]: "Vespucci Canals",
[GetHashKey("VESP")]: "Vespucci",
[GetHashKey("VINE")]: "Vinewood",
[GetHashKey("WINDF")]: "Ron Alternates Wind Farm",
[GetHashKey("WVINE")]: "West Vinewood",
[GetHashKey("ZANCUDO")]: "Zancudo River",
[GetHashKey("ZP_ORT")]: "Port of South Los Santos",
[GetHashKey("ZQ_UAR")]: "Davis Quartz"
};
function getZone(position) {
const areaHash = GetHashKey(GetNameOfZone(...position));
return areaHashes2[areaHash];
}
// src/utils/getLocation.ts
function getLocation(pos) {
const [lastStreet] = GetStreetNameAtCoord(...pos);
const streetName = GetStreetNameFromHashKey(lastStreet);
const zone = getZone(pos);
const area = getArea(pos);
const location = `${streetName}, ${zone} (${area})`;
return location;
}
// src/utils/getVehicle.ts
function getVehicle(pedId) {
const vehicle = GetVehiclePedIsIn(pedId, false);
if (vehicle === 0) {
return {};
}
const licensePlate = GetVehicleNumberPlateText(vehicle);
const hasSirenEnabled = isSirenEnabled(vehicle);
let vehicleName = GetLabelText(GetDisplayNameFromVehicleModel(GetEntityModel(vehicle)));
if (vehicleName === "NULL") {
vehicleName = GetDisplayNameFromVehicleModel(GetEntityModel(vehicle));
}
return { licensePlate, vehicle: vehicleName, hasSirenEnabled };
}
function isSirenEnabled(vehicle) {
const sirenEnabledValue = IsVehicleSirenOn(vehicle) || IsVehicleSirenAudioOn(vehicle) || IsVehicleSirenSoundOn(vehicle);
if (typeof sirenEnabledValue === "number") {
return sirenEnabledValue === 1;
}
return sirenEnabledValue;
}
// src/utils/getIcon.ts
function getIcon(pedId) {
if (!IsPedInAnyVehicle(pedId, false))
return 6;
const vehicle = GetVehiclePedIsIn(pedId, false);
if (vehicle === 0) {
return 6;
}
const vehicleModel = GetEntityModel(vehicle);
if (isPoliceVehicle(vehicle))
return 56;
if (isTowTruck(vehicleModel))
return 68;
if (IsThisModelAHeli(vehicleModel))
return 64;
return 225;
}
function isPoliceVehicle(vehicle) {
const vehicleClass = GetVehicleClass(vehicle);
return vehicleClass === 18;
}
function isTowTruck(vehicleModel) {
const hashes = [GetHashKey("towtruck"), GetHashKey("towtruck2")];
return hashes.includes(vehicleModel);
}
// integration/client/client.ts
var firstSpawn = true;
onNet("playerDropped" /* CFXPlayerDropped */, () => {
if (firstSpawn) {
emitPlayerData();
firstSpawn = false;
}
});
setInterval(() => {
emitPlayerData();
}, 500);
function emitPlayerData() {
const [playerX, playerY, playerZ] = GetEntityCoords(PlayerPedId(), false);
const vehicle = getVehicle(PlayerPedId());
const weapon = getWeapon(PlayerPedId());
const location = getLocation([playerX, playerY, playerZ]);
const icon = getIcon(PlayerPedId());
emitNet("sna-live-map-player-spawned" /* PlayerSpawned */, {
playerId: PlayerPedId(),
name: GetPlayerName(PlayerId()),
location,
pos: { x: playerX, y: playerY, z: playerZ },
weapon,
icon,
...vehicle
});
}
onNet("smartmotorways:syncSignsClient", (signId) => {
emitNet("sna-live-map-sign-smart-motorways" /* SyncSmartMotorwaysSigns */, signId);
});