File-parity

This commit is contained in:
Hawk 2024-12-30 11:15:34 +01:00
parent 010c93b73a
commit d0911bf62c
No known key found for this signature in database
GPG Key ID: 2890D5366F8BAC14
410 changed files with 7854 additions and 1733 deletions

View File

@ -10,5 +10,5 @@ resource_type 'map' { gameTypes = { ['basic-gamemode'] = true } }
map 'map.lua'
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'

View File

@ -10,5 +10,5 @@ resource_type 'map' { gameTypes = { ['basic-gamemode'] = true } }
map 'map.lua'
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'

View File

@ -10,7 +10,7 @@ resource_type 'map' { gameTypes = { ['basic-gamemode'] = true } }
map 'map.lua'
fx_version 'cerulean'
fx_version 'adamant'
game 'rdr3'
rdr3_warning 'I acknowledge that this is a prerelease build of RedM, and I am aware my resources *will* become incompatible once RedM ships.'

View File

@ -11,4 +11,4 @@ resource_type 'gametype' { name = 'Freeroam' }
client_script 'basic_client.lua'
game 'common'
fx_version 'cerulean'
fx_version 'adamant'

View File

@ -6,7 +6,7 @@ description 'An example money system using KVS.'
repository 'https://github.com/citizenfx/cfx-server-data'
author 'Cfx.re <root@cfx.re>'
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
client_script 'client.lua'

View File

@ -6,7 +6,7 @@ description 'A basic resource for storing player identifiers.'
author 'Cfx.re <root@cfx.re>'
repository 'https://github.com/citizenfx/cfx-server-data'
fx_version 'cerulean'
fx_version 'adamant'
game 'common'
server_script 'server.lua'

View File

@ -32,5 +32,5 @@ files {
}
-- support the latest resource manifest
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'

View File

@ -1,4 +1,4 @@
fx_version 'bodacious'
fx_version 'adamant'
game 'common'
client_script 'dist/client.js'

View File

@ -16,7 +16,7 @@ server_scripts {
"mapmanager_server.lua"
}
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta5', 'rdr3' }
server_export "getCurrentGameType"

View File

@ -8,7 +8,7 @@ repository 'https://github.com/citizenfx/cfx-server-data'
client_script 'spawnmanager.lua'
fx_version 'cerulean'
fx_version 'adamant'
games { 'rdr3', 'gta5' }
rdr3_warning 'I acknowledge that this is a prerelease build of RedM, and I am aware my resources *will* become incompatible once RedM ships.'

View File

@ -9,5 +9,5 @@ repository 'https://github.com/citizenfx/cfx-server-data'
dependency 'yarn'
server_script 'webpack_builder.js'
fx_version 'cerulean'
fx_version 'adamant'
game 'common'

View File

@ -6,7 +6,7 @@ author 'Cfx.re <root@cfx.re>'
description 'Builds resources with yarn. To learn more: https://classic.yarnpkg.com'
repository 'https://github.com/citizenfx/cfx-server-data'
fx_version 'cerulean'
fx_version 'adamant'
game 'common'
server_script 'yarn_builder.js'

File diff suppressed because it is too large Load Diff

View File

@ -10,5 +10,5 @@ client_script 'deathevents.lua'
client_script 'vehiclechecker.lua'
server_script 'server.lua'
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'

View File

@ -0,0 +1,234 @@
local BLIP_INFO_DATA = {}
--[[
Default state for blip info
]]
function ensureBlipInfo(blip)
if blip == nil then blip = 0 end
SetBlipAsMissionCreatorBlip(blip, true)
if not BLIP_INFO_DATA[blip] then BLIP_INFO_DATA[blip] = {} end
if not BLIP_INFO_DATA[blip].title then BLIP_INFO_DATA[blip].title = "" end
if not BLIP_INFO_DATA[blip].rockstarVerified then BLIP_INFO_DATA[blip].rockstarVerified = false end
if not BLIP_INFO_DATA[blip].info then BLIP_INFO_DATA[blip].info = {} end
if not BLIP_INFO_DATA[blip].money then BLIP_INFO_DATA[blip].money = "" end
if not BLIP_INFO_DATA[blip].rp then BLIP_INFO_DATA[blip].rp = "" end
if not BLIP_INFO_DATA[blip].dict then BLIP_INFO_DATA[blip].dict = "" end
if not BLIP_INFO_DATA[blip].tex then BLIP_INFO_DATA[blip].tex = "" end
return BLIP_INFO_DATA[blip]
end
--[[
Export functions, use these via an export pls
]]
function ResetBlipInfo(blip)
BLIP_INFO_DATA[blip] = nil
end
function SetBlipInfoTitle(blip, title, rockstarVerified)
local data = ensureBlipInfo(blip)
data.title = title or ""
data.rockstarVerified = rockstarVerified or false
end
function SetBlipInfoImage(blip, dict, tex)
RequestStreamedTextureDict(dict, 1)
while not HasStreamedTextureDictLoaded(dict) do
Wait(0)
end
local data = ensureBlipInfo(blip)
data.dict = dict or ""
data.tex = tex or ""
end
function SetBlipInfoEconomy(blip, rp, money)
local data = ensureBlipInfo(blip)
data.money = tostring(money) or ""
data.rp = tostring(rp) or ""
end
function SetBlipInfo(blip, info)
local data = ensureBlipInfo(blip)
data.info = info
end
function AddBlipInfoText(blip, leftText, rightText)
local data = ensureBlipInfo(blip)
if rightText then
table.insert(data.info, {1, leftText or "", rightText or ""})
else
table.insert(data.info, {5, leftText or "", ""})
end
end
function AddBlipInfoName(blip, leftText, rightText)
local data = ensureBlipInfo(blip)
table.insert(data.info, {3, leftText or "", rightText or ""})
end
function AddBlipInfoHeader(blip, leftText, rightText)
local data = ensureBlipInfo(blip)
table.insert(data.info, {4, leftText or "", rightText or ""})
end
function AddBlipInfoIcon(blip, leftText, rightText, iconId, iconColor, checked)
local data = ensureBlipInfo(blip)
table.insert(data.info, {2, leftText or "", rightText or "", iconId or 0, iconColor or 0, checked or false})
end
--[[
All that fancy decompiled stuff I've kinda figured out
]]
local Display = 1
function UpdateDisplay()
if PushScaleformMovieFunctionN("DISPLAY_DATA_SLOT") then
PushScaleformMovieFunctionParameterInt(Display)
PopScaleformMovieFunctionVoid()
end
end
function SetColumnState(column, state)
if PushScaleformMovieFunctionN("SHOW_COLUMN") then
PushScaleformMovieFunctionParameterInt(column)
PushScaleformMovieFunctionParameterBool(state)
PopScaleformMovieFunctionVoid()
end
end
function ShowDisplay(show)
SetColumnState(Display, show)
end
function func_36(fParam0)
BeginTextCommandScaleformString(fParam0)
EndTextCommandScaleformString()
end
function SetIcon(index, title, text, icon, iconColor, completed)
if PushScaleformMovieFunctionN("SET_DATA_SLOT") then
PushScaleformMovieFunctionParameterInt(Display)
PushScaleformMovieFunctionParameterInt(index)
PushScaleformMovieFunctionParameterInt(65)
PushScaleformMovieFunctionParameterInt(3)
PushScaleformMovieFunctionParameterInt(2)
PushScaleformMovieFunctionParameterInt(0)
PushScaleformMovieFunctionParameterInt(1)
func_36(title)
func_36(text)
PushScaleformMovieFunctionParameterInt(icon)
PushScaleformMovieFunctionParameterInt(iconColor)
PushScaleformMovieFunctionParameterBool(completed)
PopScaleformMovieFunctionVoid()
end
end
function SetText(index, title, text, textType)
if PushScaleformMovieFunctionN("SET_DATA_SLOT") then
PushScaleformMovieFunctionParameterInt(Display)
PushScaleformMovieFunctionParameterInt(index)
PushScaleformMovieFunctionParameterInt(65)
PushScaleformMovieFunctionParameterInt(3)
PushScaleformMovieFunctionParameterInt(textType or 0)
PushScaleformMovieFunctionParameterInt(0)
PushScaleformMovieFunctionParameterInt(0)
func_36(title)
func_36(text)
PopScaleformMovieFunctionVoid()
end
end
local _labels = 0
local _entries = 0
function ClearDisplay()
if PushScaleformMovieFunctionN("SET_DATA_SLOT_EMPTY") then
PushScaleformMovieFunctionParameterInt(Display)
end
PopScaleformMovieFunctionVoid()
_labels = 0
_entries = 0
end
function _label(text)
local lbl = "LBL" .. _labels
AddTextEntry(lbl, text)
_labels = _labels + 1
return lbl
end
function SetTitle(title, rockstarVerified, rp, money, dict, tex)
if PushScaleformMovieFunctionN("SET_COLUMN_TITLE") then
PushScaleformMovieFunctionParameterInt(Display)
func_36("")
func_36(_label(title))
PushScaleformMovieFunctionParameterInt(rockstarVerified)
PushScaleformMovieFunctionParameterString(dict)
PushScaleformMovieFunctionParameterString(tex)
PushScaleformMovieFunctionParameterInt(0)
PushScaleformMovieFunctionParameterInt(0)
if rp == "" then
PushScaleformMovieFunctionParameterBool(0)
else
func_36(_label(rp))
end
if money == "" then
PushScaleformMovieFunctionParameterBool(0)
else
func_36(_label(money))
end
end
PopScaleformMovieFunctionVoid()
end
function AddText(title, desc, style)
SetText(_entries, _label(title), _label(desc), style or 1)
_entries = _entries + 1
end
function AddIcon(title, desc, icon, color, checked)
SetIcon(_entries, _label(title), _label(desc), icon, color, checked)
_entries = _entries + 1
end
Citizen.CreateThread(function()
local current_blip = nil
while true do
Wait(0)
if IsFrontendReadyForControl() then
local blip = DisableBlipNameForVar()
if IsHoveringOverMissionCreatorBlip() then
if DoesBlipExist(blip) then
if current_blip ~= blip then
current_blip = blip
if BLIP_INFO_DATA[blip] then
local data = ensureBlipInfo(blip)
TakeControlOfFrontend()
ClearDisplay()
SetTitle(data.title, data.rockstarVerified, data.rp, data.money, data.dict, data.tex)
for _, info in next, data.info do
if info[1] == 2 then
AddIcon(info[2], info[3], info[4], info[5], info[6])
else
AddText(info[2], info[3], info[1])
end
end
ShowDisplay(true)
UpdateDisplay()
ReleaseControlOfFrontend()
else
ShowDisplay(false)
end
end
end
else
if current_blip then
current_blip = nil
ShowDisplay(false)
end
end
end
end
end)

View File

@ -0,0 +1,32 @@
fx_version 'adamant'
game 'gta5'
name 'Blip Info Utility'
author 'glitchdetector'
contact 'glitchdetector@gmail.com'
version '1.0.0'
description 'Enables the ability to assign extra information for blips, visible when hovering over them in the pause menu map'
usage [[
exports['blip_info']:ResetBlipInfo(blip)
exports['blip_info']:SetBlipInfo(blip, infoData)
exports['blip_info']:SetBlipInfoTitle(blip, title, rockstarVerified)
exports['blip_info']:SetBlipInfoImage(blip, dict, tex)
exports['blip_info']:SetBlipInfoEconomy(blip, rp, money)
exports['blip_info']:AddBlipInfoText(blip, leftText, rightText)
exports['blip_info']:AddBlipInfoName(blip, leftText, rightText)
exports['blip_info']:AddBlipInfoHeader(blip, leftText, rightText)
exports['blip_info']:AddBlipInfoIcon(blip, leftText, rightText, iconId, iconColor, checked)
]]
client_script 'blip_info.lua'
export 'ResetBlipInfo'
export 'SetBlipInfo'
export 'SetBlipInfoTitle'
export 'SetBlipInfoImage'
export 'SetBlipInfoEconomy'
export 'AddBlipInfoText'
export 'AddBlipInfoName'
export 'AddBlipInfoHeader'
export 'AddBlipInfoIcon'

View File

@ -9,6 +9,6 @@ repository 'https://github.com/citizenfx/cfx-server-data'
client_script 'client.lua'
server_script 'server.lua'
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta5', 'rdr3' }
rdr3_warning 'I acknowledge that this is a prerelease build of RedM, and I am aware my resources *will* become incompatible once RedM ships.'

View File

@ -9,7 +9,7 @@ repository 'https://github.com/citizenfx/cfx-server-data'
client_script 'rconlog_client.lua'
server_script 'rconlog_server.lua'
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta5', 'rdr3' }
rdr3_warning 'I acknowledge that this is a prerelease build of RedM, and I am aware my resources *will* become incompatible once RedM ships.'

View File

@ -7,7 +7,7 @@ description 'Allows server owners to execute arbitrary server-side or client-sid
repository 'https://github.com/citizenfx/cfx-server-data'
game 'common'
fx_version 'cerulean'
fx_version 'adamant'
client_script 'runcode_cl.lua'
server_script 'runcode_sv.lua'

View File

@ -6,7 +6,7 @@ AddEventHandler('runcode:openUi', function(options)
openData = {
type = 'open',
options = options,
url = 'https://' .. GetCurrentServerEndpoint() .. '/' .. GetCurrentResourceName() .. '/',
url = 'http://' .. GetCurrentServerEndpoint() .. '/' .. GetCurrentResourceName() .. '/',
res = GetCurrentResourceName()
}

View File

@ -317,7 +317,7 @@
document.querySelector('#passwordField').style.display = 'none';
document.querySelector('html').classList.add('in-nui');
fetch(`https://${window.parent.GetParentResourceName()}/getOpenData`, {
fetch(`http://${window.parent.GetParentResourceName()}/getOpenData`, {
method: 'POST',
body: '{}'
}).then(a => a.json())

View File

@ -6,7 +6,7 @@ author 'Cfx.re <root@cfx.re>'
description 'Handles Social Club conductor session API for RedM. Do not disable.'
repository 'https://github.com/citizenfx/cfx-server-data'
fx_version 'cerulean'
fx_version 'adamant'
game 'rdr3'
rdr3_warning 'I acknowledge that this is a prerelease build of RedM, and I am aware my resources *will* become incompatible once RedM ships.'

View File

@ -6,7 +6,7 @@ author 'Cfx.re <root@cfx.re>'
description 'Handles the "host lock" for non-OneSync servers. Do not disable.'
repository 'https://github.com/citizenfx/cfx-server-data'
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta4', 'gta5' }
server_script 'server/host_lock.lua'

View File

@ -7,7 +7,7 @@ description 'A compatibility resource to load basic-gamemode.'
repository 'https://github.com/citizenfx/cfx-server-data'
-- compatibility wrapper
fx_version 'cerulean'
fx_version 'adamant'
game 'common'
dependency 'basic-gamemode'

View File

@ -4,6 +4,7 @@ TwoNa.Framework = nil
TwoNa.Game = {}
TwoNa.Functions = TwoNaShared.Functions
TwoNa.Types = TwoNaShared.Types
TwoNa.Config = Config
TwoNa.TriggerServerCallback = function(name, payload, func)
if not func then

View File

@ -24,14 +24,14 @@ end
TwoNaShared.Functions.GetFramework = function()
local availableFramework = nil
for k,v in ipairs(TwoNaShared.Types.Frameworks) do
if GetResourceState(v.ResourceName) == "starting" or GetResourceState(v.ResourceName) == "started" then
for k,v in ipairs(TwoNaShared.Types.Frameworks) do
if GetResourceState(v.ResourceName) ~= "missing" then
availableFramework = v
end
end
if not availableFramework then
TwoNaShared.Functions.Log("^1Intet understøttet framework fundet! Kontroller at framework-navnet ikke er ændret.^7")
TwoNaShared.Functions.Log("^1Could not find a supported framework! Please ensure that framework script name did not got change.^7")
end
return availableFramework
@ -41,13 +41,13 @@ TwoNaShared.Functions.GetDatabase = function()
local availableDatabase = nil
for k,v in ipairs(TwoNaShared.Types.Databases) do
if GetResourceState(v.ResourceName) == "starting" or GetResourceState(v.ResourceName) == "started" then
if GetResourceState(v.ResourceName) ~= "missing" then
availableDatabase = v
end
end
if not availableDatabase then
TwoNaShared.Functions.Log("^1Kunne ikke finde en understøttet database! Kontroller at database-scriptnavnet ikke er ændret.^7")
TwoNaShared.Functions.Log("^1Could not find a supported database! Please ensure that database script name did not got change.^7")
end
return availableDatabase

View File

@ -5,6 +5,7 @@ TwoNa.Framework = nil
TwoNa.Functions = TwoNaShared.Functions
TwoNa.Types = TwoNaShared.Types
TwoNa.Vehicles = nil
TwoNa.Config = Config
TwoNa.MySQL = {
Async = {},
Sync = {}
@ -165,13 +166,17 @@ TwoNa.CreatePlayer = function(xPlayer)
end
player.getMoney = xPlayer.getMoney
player.addBank = function(amount)
xPlayer.addAccountMoney('bank', amount)
xPlayer.addAccountMoney('bank', tonumber(amount))
end
player.addMoney = function(amount)
xPlayer.addMoney(tonumber(amount))
end
player.addMoney = xPlayer.addMoney
player.removeBank = function(amount)
xPlayer.removeAccountMoney('bank', amount)
xPlayer.removeAccountMoney('bank', tonumber(amount))
end
player.removeMoney = function(amount)
xPlayer.removeMoney(tonumber(amount))
end
player.removeMoney = xPlayer.removeMoney
elseif Config.Framework.Name == "QBCore" then
player.name = xPlayer.PlayerData.charinfo.firstname .. " " .. xPlayer.PlayerData.charinfo.lastname
player.accounts = {
@ -244,6 +249,28 @@ TwoNa.GetPlayerFromIdentifier = function(identifier)
end
end
TwoNa.GetPlayerFromCharacterIdentifier = function(charIdentifier)
local xPlayer = nil
if Config.Framework.Name == "ESX" then
for _, player in ipairs(TwoNa.Framework.GetExtendedPlayers()) do
if player.identifier == charIdentifier then
xPlayer = player
break
end
end
elseif Config.Framework.Name == "QBCore" then
for _, player in ipairs(TwoNa.Framework.Functions.GetPlayers()) do
player = TwoNa.Framework.Functions.GetPlayer(player)
if player.PlayerData.citizenid == charIdentifier then
xPlayer = player
end
end
end
return TwoNa.CreatePlayer(xPlayer)
end
TwoNa.GetAllVehicles = function(force)
if TwoNa.Vehicles and not force then
return TwoNa.Vehicles
@ -437,6 +464,20 @@ TwoNa.UpdateVehicleOwner = function(plate, target)
end
end
TwoNa.RegisterUsableItem = function(name, action)
if Config.Framework.Name == "ESX" then
TwoNa.Framework.RegisterUsableItem(name, function(source)
local xPlayer = TwoNa.Framework.GetPlayerFromId(source)
action(TwoNa.CreatePlayer(xPlayer), source)
end)
elseif Config.Framework.Name == 'QBCore' then
TwoNa.Framework.Functions.CreateUseableItem(name, function(source)
local xPlayer = TwoNa.Framework.Functions.GetPlayer(source)
action(TwoNa.CreatePlayer(xPlayer), source)
end)
end
end
TwoNa.CheckUpdate = function()
PerformHttpRequest("https://api.github.com/repos/tunasayin/2na_core/releases/latest", function(errorCode, rawData, headers)
if rawData ~= nil then

View File

@ -1,11 +1,11 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
author 'tunasayin'
description 'Core script needed for almost all 2na scripts.'
version '0.2.8'
version '0.3.1'
shared_scripts {
'Common/*.lua',

View File

@ -1,8 +1,8 @@
if Configuration.FrameWork == 'esx' then
if Configuration.FrameWork == 'esx' then
if Configuration.CoreFolderName == "" then Configuration.CoreFolderName = 'es_extended' end
ESX = exports[Configuration.CoreFolderName]:getSharedObject()
trigger = ESX.TriggerServerCallback
elseif Configuration.FrameWork == 'qbcore' then
elseif Configuration.FrameWork == 'qbcore' then
if Configuration.CoreFolderName == "" then Configuration.CoreFolderName = 'qb-core' end
QBCore = exports[Configuration.CoreFolderName]:GetCoreObject()
trigger = QBCore.Functions.TriggerCallback
@ -11,7 +11,7 @@ end
local Type = nil
local fov_max = 90.0
local fov_min = 1.0
local fov = (fov_max+fov_min)*0.5
local fov = (fov_max + fov_min) * 0.5
local npccreated = {}
local animDict = "weapons@first_person@aim_rng@generic@projectile@shared@core"
local animDict2 = "mini@strip_club@private_dance@part3"
@ -30,19 +30,31 @@ RegisterNUICallback("exit", function(data)
SetNuiFocus(false, false)
SendNUIMessage({
type = "ui",
status = false,
status = false,
})
else
SetNuiFocus(false, false)
SendNUIMessage({
type = "ui",
status = false,
status = false,
})
end
DisplayRadar(true)
end)
local function createBlip(blip, label, image)
exports['blip_info']:SetBlipInfoTitle(blip, label, 0)
exports['blip_info']:SetBlipInfoImage(blip, "carwash", "carwash" .. image)
exports['blip_info']:AddBlipInfoName(blip, "Ejet af", "Staten")
exports['blip_info']:AddBlipInfoName(blip, "Type", "Vedligeholdelse")
exports['blip_info']:AddBlipInfoHeader(blip, "")
exports['blip_info']:AddBlipInfoHeader(blip, "")
exports['blip_info']:AddBlipInfoText(blip, "Beskidt bil? Look no further! Byens bedste bilvask.")
print('')
end
Citizen.CreateThread(function()
for i, v in ipairs(Locations) do
carwash = AddBlipForCoord(v.Coord)
SetBlipSprite(carwash, 100)
@ -52,8 +64,10 @@ Citizen.CreateThread(function()
BeginTextCommandSetBlipName("STRING")
AddTextComponentSubstringPlayerName("Bilvask")
EndTextCommandSetBlipName(carwash)
createBlip(carwash, "Bilvask", i)
end
while true do
local ped = PlayerPedId()
local pedcoord = GetEntityCoords(ped)
vehicle = GetPlayersLastVehicle(ped)
@ -63,11 +77,12 @@ Citizen.CreateThread(function()
if dist < 20 and not washing then
esta = true
sleep = 0
DrawMarker(23, v.Coord.x,v.Coord.y,v.Coord.z - 0.50, 0.0, 0.0, 0.0, 0.0, 180.0, 0.0, 4.0, 4.0, 4.0, 10, 228, 255, 100,0, 1, 2, 0, 0)
DrawMarker(23, v.Coord.x, v.Coord.y, v.Coord.z - 0.50, 0.0, 0.0, 0.0, 0.0, 180.0, 0.0, 4.0, 4.0, 4.0, 10,
228, 255, 100, 0, 1, 2, 0, 0)
end
if dist < 1.5 and IsPedInAnyVehicle(ped, false) and not washing then
esta = true
hintToDisplay("~b~[E]~wu~ ~w~Vask køretøj", v.Coord)
hintToDisplay("~b~[E]~wu~ ~w~Vask køretøj", v.Coord)
sleep = 0
local isDriving = IsPedInAnyVehicle(PlayerPedId(), false)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
@ -83,17 +98,18 @@ Citizen.CreateThread(function()
Wait(500)
DoScreenFadeIn(1000)
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
local x, y, z = px + GetEntityForwardX(vehicle) * 1.3, py + GetEntityForwardY(vehicle) * 5.4, pz + 0.12
camCoords = vector3(x, y, z)
local x, y, z = px + GetEntityForwardX(vehicle) * 1.3, py + GetEntityForwardY(vehicle) * 5.4,
pz + 0.12
camCoords = vector3(x, y, z)
local rx = GetEntityRotation(vehicle, 2)
camRotation = rx + vector3(-2.0, 0.0, -132)
cam = CreateCamWithParams("DEFAULT_SCRIPTED_CAMERA", camCoords, camRotation, GetGameplayCamFov())
SetCamActive(cam, true)
RenderScriptCams(true, true, 3000, true, false)
RenderScriptCams(true, true, 3000, true, false)
Wait(2600)
SetNuiFocus(true, true)
SendNUIMessage({type = "ui",status = true})
end
SendNUIMessage({ type = "ui", status = true })
end
end
if not esta then
sleep = 1000
@ -101,7 +117,6 @@ Citizen.CreateThread(function()
end
Citizen.Wait(sleep)
end
end)
RegisterNUICallback("wash", function(data)
@ -111,41 +126,42 @@ RegisterNUICallback("wash", function(data)
local price = Configuration.Prices[tonumber(Type)]
local pedcoord = GetEntityCoords(ped)
local vehcoord = GetEntityCoords(vehicle)
trigger('buty:getMoney', function (money)
trigger('buty:getMoney', function(money)
if money then
SendNotification("Du har betalt for din vask - Læn dig tilbage og vent på vasken er færdig")
if Type == "1" then
for _, location in ipairs(Locations) do
local dist = #(pedcoord - location.Coord)
if dist < 20 then
for _, npcData in ipairs(location.Npc['BASIC']) do
for _, npcData in ipairs(location.Npc['BASIC']) do
local modelHash = GetHashKey(npcData.model)
RequestModel(modelHash)
while not HasModelLoaded(modelHash) do
Wait(1)
end
npcData.npc = CreatePed(5, modelHash, vehcoord.x, vehcoord.y + 4.5, vehcoord.z, 1, true, true)
SetEntityInvincible(npcData.npc, true)
SetBlockingOfNonTemporaryEvents(npcData.npc, true)
local prop = CreateObject("prop_blox_spray", 0, 0, 0, true, true, true)
AttachEntityToEntity(prop, npcData.npc, GetPedBoneIndex(npcData.npc, 28422), 0.05, -0.05, -0.05, 260.0, 160.0, 0.0, 1, 1, 0, 1, 0, 1)
AttachEntityToEntity(prop, npcData.npc, GetPedBoneIndex(npcData.npc, 28422), 0.05, -0.05,
-0.05, 260.0, 160.0, 0.0, 1, 1, 0, 1, 0, 1)
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5, py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
camCoords = vector3(x, y, z)
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5, py + GetEntityForwardY(vehicle) * 9.9,
pz + 2.82
camCoords = vector3(x, y, z)
local rx = GetEntityRotation(vehicle, 2)
camRotation = rx + vector3(-22.0, 0.0, -145)
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
SetCamActive(cam, true)
RenderScriptCams(true, true, 5000, true, false)
while not HasAnimDictLoaded(animDict) do Citizen.Wait(100) end
TaskPlayAnim(npcData.npc, animDict, animName, 1.0, -1, -1, 50, 0, 0, 0, 0)
-- Progress(24000, "Spraying cleaning fluid...")
TaskPlayAnim(npcData.npc, animDict, animName, 1.0, -1, -1, 50, 0, 0, 0, 0)
-- Progress(24000, "Spraying cleaning fluid...")
for i = 1, #npcData.steps do
local boneIndex = GetEntityBoneIndexByName(vehicle, npcData.steps[i])
local Position = GetWorldPositionOfEntityBone(vehicle, boneIndex)
@ -156,14 +172,15 @@ RegisterNUICallback("wash", function(data)
local heading = GetEntityHeading(npcData.npc)
RequestNamedPtfxAsset(particleDict)
while not HasNamedPtfxAssetLoaded(particleDict) do Citizen.Wait(100) end
UseParticleFxAssetNextCall(particleDict)
local particleEffect = StartParticleFxLoopedOnEntity(particleName, prop, 0.2, 0.002, 0.0, 0.0, heading, 160.0, 6.0, false, false, false)
local particleEffect = StartParticleFxLoopedOnEntity(particleName, prop, 0.2, 0.002, 0.0,
0.0, heading, 160.0, 6.0, false, false, false)
Citizen.Wait(1000)
local dirtLevel = GetVehicleDirtLevel(vehicle)
SetVehicleDirtLevel(vehicle, dirtLevel - 1)
end
SetVehicleDirtLevel(vehicle, 14.0)
FreezeEntityPosition(ped, false)
FreezeEntityPosition(vehicle, false)
@ -182,37 +199,40 @@ RegisterNUICallback("wash", function(data)
for _, location in ipairs(Locations) do
local dist = #(pedcoord - location.Coord)
if dist < 20 then
for _, npcData in ipairs(location.Npc['STANDARD']) do
for _, npcData in ipairs(location.Npc['STANDARD']) do
for i = 1, 2 do
local modelHash = GetHashKey(npcData.model)
RequestModel(modelHash)
while not HasModelLoaded(modelHash) do
Wait(1)
end
npcData.npc = CreatePed(5, modelHash, vehcoord.x, vehcoord.y + 4.5, vehcoord.z, 1, true, true)
npcData.npc = CreatePed(5, modelHash, vehcoord.x, vehcoord.y + 4.5, vehcoord.z, 1, true,
true)
SetEntityInvincible(npcData.npc, true)
SetBlockingOfNonTemporaryEvents(npcData.npc, true)
if done == 0 then
prop = CreateObject("prop_blox_spray", 0, 0, 0, true, true, true)
AttachEntityToEntity(prop, npcData.npc, GetPedBoneIndex(npcData.npc, 28422), 0.05, -0.05, -0.05, 260.0, 160.0, 0.0, 1, 1, 0, 1, 0, 1)
AttachEntityToEntity(prop, npcData.npc, GetPedBoneIndex(npcData.npc, 28422), 0.05,
-0.05, -0.05, 260.0, 160.0, 0.0, 1, 1, 0, 1, 0, 1)
while not HasAnimDictLoaded(animDict) do Citizen.Wait(100) end
TaskPlayAnim(npcData.npc, animDict, animName, 1.0, -1, -1, 50, 0, 0, 0, 0)
-- Progress(24000, "Spraying cleaning fluid...")
TaskPlayAnim(npcData.npc, animDict, animName, 1.0, -1, -1, 50, 0, 0, 0, 0)
-- Progress(24000, "Spraying cleaning fluid...")
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5, py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
camCoords = vector3(x, y, z)
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5,
py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
camCoords = vector3(x, y, z)
local rx = GetEntityRotation(vehicle, 2)
camRotation = rx + vector3(-22.0, 0.0, -145)
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
SetCamActive(cam, true)
RenderScriptCams(true, true, 5000, true, false)
RenderScriptCams(true, true, 5000, true, false)
elseif done == 1 then
-- Progress(24000, "Carefully wiping the entire car bodywork")
end
end
for i = 1, #npcData.steps do
local boneIndex = GetEntityBoneIndexByName(vehicle, npcData.steps[i])
local Position = GetWorldPositionOfEntityBone(vehicle, boneIndex)
@ -224,32 +244,34 @@ RegisterNUICallback("wash", function(data)
if done == 0 then
RequestNamedPtfxAsset(particleDict)
while not HasNamedPtfxAssetLoaded(particleDict) do Citizen.Wait(100) end
UseParticleFxAssetNextCall(particleDict)
particleEffect = StartParticleFxLoopedOnEntity(particleName, prop, 0.2, 0.002, 0.0, 0.0, heading, 160.0, 6.0, false, false, false)
particleEffect = StartParticleFxLoopedOnEntity(particleName, prop, 0.2, 0.002,
0.0, 0.0, heading, 160.0, 6.0, false, false, false)
else
TaskStartScenarioInPlace(npcData.npc, "WORLD_HUMAN_MAID_CLEAN", 0, true)
end
if i == #npcData.steps then
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
local x, y, z = px + GetEntityForwardX(vehicle) * -9.5, py + GetEntityForwardY(vehicle) * -2.9, pz + 2.82
camCoords = vector3(x, y, z)
local x, y, z = px + GetEntityForwardX(vehicle) * -9.5,
py + GetEntityForwardY(vehicle) * -2.9, pz + 2.82
camCoords = vector3(x, y, z)
local rx = GetEntityRotation(vehicle, 2)
camRotation = rx + vector3(-22.0, 0.0, -35)
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
SetCamActive(cam, true)
RenderScriptCams(true, true, 5000, true, false)
RenderScriptCams(true, true, 5000, true, false)
end
Citizen.Wait(1000)
local dirtLevel = GetVehicleDirtLevel(vehicle)
SetVehicleDirtLevel(vehicle, dirtLevel - 1)
end
TaskWanderStandard(npcData.npc, 10.0, 10)
end
TaskWanderStandard(npcData.npc, 10.0, 10)
StopParticleFxLooped(particleName)
ClearPedSecondaryTask(npcData.npc)
DeleteEntity(prop)
done = done + 1
DeleteEntity(prop)
done = done + 1
end
SetVehicleDirtLevel(vehicle, 14.0)
FreezeEntityPosition(ped, false)
@ -266,48 +288,52 @@ RegisterNUICallback("wash", function(data)
for _, location in ipairs(Locations) do
local dist = #(pedcoord - location.Coord)
if dist < 20 then
for _, npcData in ipairs(location.Npc['STANDARD']) do
for _, npcData in ipairs(location.Npc['STANDARD']) do
for i = 1, 3 do
local modelHash = GetHashKey(npcData.model)
RequestModel(modelHash)
while not HasModelLoaded(modelHash) do
Wait(1)
end
npcData.npc = CreatePed(5, modelHash, vehcoord.x - 3.4, vehcoord.y + 4.5, vehcoord.z, 1, true, true)
npcData.npc = CreatePed(5, modelHash, vehcoord.x - 3.4, vehcoord.y + 4.5, vehcoord.z, 1,
true, true)
SetEntityInvincible(npcData.npc, true)
SetBlockingOfNonTemporaryEvents(npcData.npc, true)
if done == 0 then
prop = CreateObject("prop_blox_spray", 0, 0, 0, true, true, true)
AttachEntityToEntity(prop, npcData.npc, GetPedBoneIndex(npcData.npc, 28422), 0.05, -0.05, -0.05, 260.0, 160.0, 0.0, 1, 1, 0, 1, 0, 1)
AttachEntityToEntity(prop, npcData.npc, GetPedBoneIndex(npcData.npc, 28422), 0.05,
-0.05, -0.05, 260.0, 160.0, 0.0, 1, 1, 0, 1, 0, 1)
while not HasAnimDictLoaded(animDict) do Citizen.Wait(100) end
TaskPlayAnim(npcData.npc, animDict, animName, 1.0, -1, -1, 50, 0, 0, 0, 0)
TaskPlayAnim(npcData.npc, animDict, animName, 1.0, -1, -1, 50, 0, 0, 0, 0)
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5, py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
camCoords = vector3(x, y, z)
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5,
py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
camCoords = vector3(x, y, z)
local rx = GetEntityRotation(vehicle, 2)
camRotation = rx + vector3(-22.0, 0.0, -145)
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
SetCamActive(cam, true)
RenderScriptCams(true, true, 5000, true, false)
-- Progress(24000, "Spraying cleaning fluid...")
RenderScriptCams(true, true, 5000, true, false)
-- Progress(24000, "Spraying cleaning fluid...")
elseif done == 1 then
-- Progress(24000, "Carefully wiping the entire car bodywork...")
-- Progress(24000, "Carefully wiping the entire car bodywork...")
elseif done == 2 then
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5, py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
camCoords = vector3(x, y, z)
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5,
py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
camCoords = vector3(x, y, z)
local rx = GetEntityRotation(vehicle, 2)
camRotation = rx + vector3(-22.0, 0.0, -145)
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
SetCamActive(cam, true)
RenderScriptCams(true, true, 5000, true, false)
-- Progress(50000, "Doing a little dance to charge you more for the premium service...")
end
RenderScriptCams(true, true, 5000, true, false)
-- Progress(50000, "Doing a little dance to charge you more for the premium service...")
end
for i = 1, #npcData.steps do
local boneIndex = GetEntityBoneIndexByName(vehicle, npcData.steps[i])
local Position = GetWorldPositionOfEntityBone(vehicle, boneIndex)
@ -318,37 +344,39 @@ RegisterNUICallback("wash", function(data)
local heading = GetEntityHeading(npcData.npc)
if i == #npcData.steps then
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
local x, y, z = px + GetEntityForwardX(vehicle) * -9.5, py + GetEntityForwardY(vehicle) * -2.9, pz + 2.82
camCoords = vector3(x, y, z)
local x, y, z = px + GetEntityForwardX(vehicle) * -9.5,
py + GetEntityForwardY(vehicle) * -2.9, pz + 2.82
camCoords = vector3(x, y, z)
local rx = GetEntityRotation(vehicle, 2)
camRotation = rx + vector3(-22.0, 0.0, -35)
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
SetCamActive(cam, true)
RenderScriptCams(true, true, 5000, true, false)
RenderScriptCams(true, true, 5000, true, false)
end
if done == 0 then
RequestNamedPtfxAsset(particleDict)
while not HasNamedPtfxAssetLoaded(particleDict) do Citizen.Wait(100) end
UseParticleFxAssetNextCall(particleDict)
particleEffect = StartParticleFxLoopedOnEntity(particleName, prop, 0.2, 0.002, 0.0, 0.0, heading, 160.0, 6.0, false, false, false)
particleEffect = StartParticleFxLoopedOnEntity(particleName, prop, 0.2, 0.002,
0.0, 0.0, heading, 160.0, 6.0, false, false, false)
Citizen.Wait(1000)
elseif done == 1 then
TaskStartScenarioInPlace(npcData.npc, "WORLD_HUMAN_MAID_CLEAN", 0, true)
Citizen.Wait(1000)
elseif done == 2 then
AnimationInfinite("mini@repair", "fixing_a_player", npcData.npc)
Citizen.Wait(6000)
Citizen.Wait(6000)
end
local dirtLevel = GetVehicleDirtLevel(vehicle)
SetVehicleDirtLevel(vehicle, dirtLevel - 1)
end
TaskWanderStandard(npcData.npc, 10.0, 10)
end
TaskWanderStandard(npcData.npc, 10.0, 10)
StopParticleFxLooped(particleName)
ClearPedSecondaryTask(npcData.npc)
DeleteEntity(prop)
done = done + 1
DeleteEntity(prop)
done = done + 1
end
FreezeEntityPosition(ped, false)
FreezeEntityPosition(vehicle, false)
@ -371,7 +399,6 @@ RegisterNUICallback("wash", function(data)
SendNotification("Du har ikke nok penge")
end
end, Type, price)
end)
@ -386,7 +413,7 @@ setblip = function(name, coords)
AddTextComponentSubstringPlayerName(name)
EndTextCommandSetBlipName(help)
SetBlipRoute(help, true)
SetBlipRouteColour(help,29)
SetBlipRouteColour(help, 29)
elseif name == "ends" then
ends = AddBlipForCoord(coords[1], coords[2], coords[3])
SetBlipSprite(ends, 1)
@ -397,7 +424,7 @@ setblip = function(name, coords)
AddTextComponentSubstringPlayerName(name)
EndTextCommandSetBlipName(ends)
SetBlipRoute(ends, true)
SetBlipRouteColour(ends,29)
SetBlipRouteColour(ends, 29)
end
end
@ -406,28 +433,28 @@ function EndCam()
RenderScriptCams(false, true, 1000, true, false)
DestroyCam(cam, false)
cam = nil
end
function hintToDisplay(text,coords)
local dist = Vdist(coords.x,coords.y,coords.z,GetEntityCoords(PlayerPedId(-1)))
function hintToDisplay(text, coords)
local dist = Vdist(coords.x, coords.y, coords.z, GetEntityCoords(PlayerPedId(-1)))
if dist < 1.5 then
DrawText3Ds(coords.x,coords.y,coords.z + 1.05,text, 0, 0.1, 0.1,255)
DrawText3Ds(coords.x, coords.y, coords.z + 1.05, text, 0, 0.1, 0.1, 255)
else
DrawText3Ds(coords.x,coords.y,coords.z + 1.05,text, 0, 0.1, 0.1,100)
DrawText3Ds(coords.x, coords.y, coords.z + 1.05, text, 0, 0.1, 0.1, 100)
end
end
function DrawText3Ds(x, y, z, text)
SetTextScale(0.35, 0.35)
SetTextScale(0.35, 0.35)
SetTextFont(4)
SetTextProportional(1)
SetTextColour(255, 255, 255, 215)
SetTextEntry("STRING")
SetTextCentre(true)
AddTextComponentString(text)
SetDrawOrigin(x,y,z, 0)
SetDrawOrigin(x, y, z, 0)
DrawText(0.0, 0.0)
ClearDrawOrigin()
end
@ -437,16 +464,16 @@ AnimationInfinite = function(anim, anim2, jugador)
while not HasAnimDictLoaded(anim) do
Citizen.Wait(0)
end
TaskPlayAnim(jugador, anim , anim2 ,8.0, -8.0, -1, 1, 0, false, false, false )
TaskPlayAnim(jugador, anim, anim2, 8.0, -8.0, -1, 1, 0, false, false, false)
end
LoadAnimDict = function(dict)
if not HasAnimDictLoaded(dict) then
RequestAnimDict(dict)
while not HasAnimDictLoaded(dict) do
Wait(1)
end
end
if not HasAnimDictLoaded(dict) then
RequestAnimDict(dict)
while not HasAnimDictLoaded(dict) do
Wait(1)
end
end
end
SendNotification = function(message)
@ -458,10 +485,9 @@ end
-- Progress = function(time, text)
-- exports['progressbar']:Progress({
-- time = time,
-- text = text,
-- time = time,
-- text = text,
-- color = "linear-gradient(20.5deg, #00E4FF 9.83%, rgba(172, 65, 222, 0) 93.95%)",
-- color2 = "#00C1FF",
-- })
-- end

View File

@ -1,7 +1,10 @@
Configuration = {
FrameWork = "qbcore", -- esx | qbcore
CoreFolderName = "qb-core",
Prices = {500, 1000, 1500},
}
Locations = {
@ -58,7 +61,9 @@ Locations = {
},
{
Name = "Bilvask",
Coord = vector3(-77.52, 6430.34, 31.04),
Npc = {
['BASIC'] = {
{
@ -103,7 +108,9 @@ Locations = {
},
{
Name = "Bilvask",
Coord = vector3(1345.2, 3600.44, 34.24),
Npc = {
['BASIC'] = {
{
@ -148,7 +155,9 @@ Locations = {
},
{
Name = "Bilvask",
Coord = vector3(-700.27, -947.79, 19.12),
Npc = {
['BASIC'] = {
{

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
author 'TreyTrey23'
version 'V1.0'

View File

@ -1,6 +1,6 @@
game 'gta5'
author 'Atiysu & frosty'
fx_version 'cerulean'
fx_version 'adamant'
lua54 'yes'
shared_scripts {

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
description 'travel'

View File

@ -2,7 +2,7 @@
--<!>-- BOII | DEVELOPMENT --<!>--
----------------------------------
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
version 'V1.0'

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta5' }
version 'V1.0'

View File

@ -1,2 +1,2 @@
fx_version 'cerulean'
fx_version 'adamant'
game "gta5"

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
game "gta5"
version '1.0.0'

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta5' }
author "Swkeep#7049"

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta5' }
author "Swkeep#7049"

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
client_scripts {

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta5' }
version 'V1.0'

View File

@ -1,4 +1,4 @@
fx_version 'cerulean';
fx_version 'adamant';
games {"gta5"};
lua54 "yes";

View File

@ -0,0 +1,166 @@
Hi, thank you for buying my script, I'm very grateful!
If you need help contact me on discord: okok#3488
Discord server: https://discord.gg/FauTgGRUku
# To display a text UI
exports['okokTextUI']:Open('[Key] Message', 'color', 'position')
Colors:
- lightblue;
- lightgreen;
- lightred;
- lightgrey;
- darkblue;
- darkgreen;
- darkred;
- darkgrey.
Positions:
- right;
- left.
To make the text bold: exports['okokTextUI']:Open('<b>[Key] Message</b>', 'color', 'position')
To insert multiple lines/commands in a text UI: exports['okokTextUI']:Open('[Key] Message 1<br>[Key] Message 2', 'color', 'position')
NOTE: 'color' and 'position' should be placed between ''
# To hide a text UI
exports['okokTextUI']:Close()
How to add new colors:
1. Open styles.css and add the following to the last line.
/* Example Notification */
.example-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f11c";
color: #color_code;
}
.example {
background-color: rgba(20, 20, 20, 0.85);
color: #color_code;
padding: 5px 5px 5px 5px;
}
.example-border {
border-left: 4px solid #color_code;
}
/* Example */
.examplecolor-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f05a";
color: #color_code;
font-size: 28px;
}
.examplecolor {
background-color: rgba(240, 240, 240, 0.85);
color: #fff;
padding: 5px 5px 5px 5px;
margin-bottom: 5px;
}
.examplecolor-border {
border-left: 4px solid #color_code;
}
If you want to set if the background color is light or dark, simply change the background-color on .examplecolor:
- background-color: rgba(240, 240, 240, 1); /* LIGHT BACKGROUND */
- background-color: rgba(20, 20, 20, 1); /* DARK BACKGROUND */
2. Open scripts.js and add the following to the line 64.
else if (event.data.color == 'examplecolor') { // Example Color
removeClass();
$('#main').addClass('examplecolor-icon');
$('#wrapper').addClass('examplecolor examplecolor-border');
}
3. In order to make esx_doorlock functional change the code of the function started in the line 69 (client.lua) and do the following:
```
Citizen.CreateThread(function()
local inZone = false
local locked = true
local hasAuth = false
local shown = false
local size, displayText = 1, _U('unlocked')
local color
while true do
Citizen.Wait(0)
local letSleep = true
inZone = false
for k,v in ipairs(Config.DoorList) do
if v.distanceToPlayer and v.distanceToPlayer < 50 then
letSleep = false
if v.doors then
for k2,v2 in ipairs(v.doors) do
FreezeEntityPosition(v2.object, v.locked)
end
else
FreezeEntityPosition(v.object, v.locked)
end
end
if v.distanceToPlayer and v.distanceToPlayer < v.maxDistance then
inZone = true
if v.size then
size = v.size
end
if v.locked then
locked = true
else
locked = false
end
if v.isAuthorized then
hasAuth = true
elseif not v.isAuthorized then
hasAuth = false
end
if IsControlJustReleased(0, 38) then
if v.isAuthorized then
v.locked = not v.locked
locked = v.locked
TriggerServerEvent('esx_doorlock:updateState', k, v.locked) -- broadcast new state of the door to everyone
shown = false
end
end
end
end
if inZone and not shown then
shown = true
if locked and hasAuth then
exports['okokTextUI']:Open('[E] Locked', 'lightred', 'left')
elseif not locked and hasAuth then
exports['okokTextUI']:Open('[E] Unlocked', 'lightgreen', 'left')
elseif locked then
exports['okokTextUI']:Open('Locked', 'lightred', 'left')
else
exports['okokTextUI']:Open('Unlocked', 'lightgreen', 'left')
end
elseif not inZone and shown then
exports['okokTextUI']:Close()
shown = false
end
if letSleep then
Citizen.Wait(500)
end
end
end)
```

View File

@ -0,0 +1,24 @@
function Open(message, color, position)
SendNUIMessage({
action = 'open',
message = message,
color = color,
position = position,
})
end
function Close()
SendNUIMessage({
action = 'close'
})
end
RegisterNetEvent('okokTextUI:Open')
AddEventHandler('okokTextUI:Open', function(message, color, position)
Open(message, color, position)
end)
RegisterNetEvent('okokTextUI:Close')
AddEventHandler('okokTextUI:Close', function()
Close()
end)

View File

@ -0,0 +1,20 @@
fx_version 'adamant'
game 'gta5'
author 'okok' -- Discord: okok#3488
description 'okokTextUI'
version '1.0'
ui_page 'web/ui.html'
client_scripts {
'client.lua',
}
files {
'web/*.*'
}
export 'Open'
export 'Close'

View File

@ -0,0 +1,90 @@
played_sound = false
position = ''
function removeClass() {
$("#main").removeClass();
$("#wrapper").removeClass();
}
window.addEventListener('message', function(event) {
var sound = new Audio('sound.mp3');
sound.volume = 0.5;
if (event.data.action == 'open') {
position = event.data.position;
message = event.data.message;
$('#message').html(message);
if (position == 'right') {
$('#ui').css('left', '');
$('#ui').css('right', '1%');
$('#ui').removeClass('hideright');
$('#ui').addClass('showright');
}
if (position == 'left') {
$('#ui').css('right', '');
$('#ui').css('left', '1%');
$('#ui').removeClass('hideleft');
$('#ui').addClass('showleft');
}
if (event.data.color == 'lightblue') { // Light Blue
removeClass();
$('#main').addClass('lightblue-icon');
$('#wrapper').addClass('lightblue lightblue-border');
} else if (event.data.color == 'lightgreen') { // Light Green
removeClass();
$('#main').addClass('lightgreen-icon');
$('#wrapper').addClass('lightgreen lightgreen-border');
} else if (event.data.color == 'lightred') { // Light Red
removeClass();
$('#main').addClass('lightred-icon');
$('#wrapper').addClass('lightred lightred-border');
} else if (event.data.color == 'lightgrey') { // Light Red
removeClass();
$('#main').addClass('lightgrey-icon');
$('#wrapper').addClass('lightgrey lightgrey-border');
} else if (event.data.color == 'darkblue') { // Dark Blue
removeClass();
$('#main').addClass('darkblue-icon');
$('#wrapper').addClass('darkblue darkblue-border');
} else if (event.data.color == 'darkgreen') { // Dark Green
removeClass();
$('#main').addClass('darkgreen-icon');
$('#wrapper').addClass('darkgreen darkgreen-border');
} else if (event.data.color == 'darkred') { // Dark Red
removeClass();
$('#main').addClass('darkred-icon');
$('#wrapper').addClass('darkred darkred-border');
} else if (event.data.color == 'darkgrey') { // Dark Grey
removeClass();
$('#main').addClass('darkgrey-icon');
$('#wrapper').addClass('darkgrey darkgrey-border');
}
if (played_sound == false) {
sound.play();
played_sound = true;
}
} else if (event.data.action == 'close') {
if (position == 'right') {
$('#ui').removeClass('hideleft');
$('#ui').removeClass('showleft');
$('#ui').removeClass('showright');
$('#ui').addClass('hideright');
}
if (position == 'left') {
$('#ui').removeClass('hideright');
$('#ui').removeClass('showright');
$('#ui').removeClass('showleft');
$('#ui').addClass('hideleft');
}
}
played_sound = false;
})

Binary file not shown.

View File

@ -0,0 +1,268 @@
@import url('https://fonts.googleapis.com/css?family=Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&subset=devanagari,latin-ext');
html, body{
font-family: 'Poppins', sans-serif;
overflow: hidden;
}
@keyframes showright {
0% {
transform: translateX(100%);
}
40% {
transform: translateX(0%);
}
80%, 100% {
opacity: 1;
transform: translateX(0px);
}
}
.showright {
animation: showright 1s ease forwards;
}
@keyframes hideright {
0% {
transform: translateX(0px);
}
40% {
transform: translateX(-5%);
}
80%, 100% {
opacity: 0;
pointer-events: none;
transform: translateX(100%);
}
}
.hideright {
animation: hideright 1s ease forwards;
}
@keyframes showleft {
0% {
transform: translateX(-100%);
}
40% {
transform: translateX(0%);
}
80%, 100% {
opacity: 1;
transform: translateX(0px);
}
}
.showleft {
animation: showleft 1s ease forwards;
}
@keyframes hideleft {
0% {
transform: translateX(0px);
}
40% {
transform: translateX(5%);
}
80%, 100% {
opacity: 0;
pointer-events: none;
transform: translateX(-100%);
}
}
.hideleft {
animation: hideleft 1s ease forwards;
}
#ui {
position: absolute;
top: 50%;
}
#wrapper {
height: auto;
margin-bottom: 10px;
min-width: 275px;
margin: 0 0 8px 0;
border-radius: 10px;
}
#main {
margin: 12px 16px 12px 56px;
position: relative;
}
#main::before {
font-size: 24px;
top: calc(50% - 12px);
left: -40px;
line-height: 24px;
position: absolute;
}
#message {
font-size: 16px;
font-weight: 600;
}
/* Light Blue */
.lightblue-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f05a";
color: #234799;
font-size: 28px;
}
.lightblue {
background-color: rgba(240, 240, 240, 0.85);
color: #234799;
padding: 5px 5px 5px 5px;
margin-bottom: 5px;
}
.lightblue-border {
border-left: 4px solid #234799;
}
/* Light Green */
.lightgreen-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f05a";
color: #20ab4d;
font-size: 28px;
}
.lightgreen {
background-color: rgba(240, 240, 240, 0.85);
color: #20ab4d;
padding: 5px 5px 5px 5px;
margin-bottom: 5px;
}
.lightgreen-border {
border-left: 4px solid #20ab4d;
}
/* Light Red */
.lightred-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f05a";
color: #dc3545;
font-size: 28px;
}
.lightred {
background-color: rgba(240, 240, 240, 0.85);
color: #dc3545;
padding: 5px 5px 5px 5px;
margin-bottom: 5px;
}
.lightred-border {
border-left: 4px solid #dc3545;
}
/* Light Grey */
.lightgrey-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f05a";
color: #646464;
font-size: 28px;
}
.lightgrey {
background-color: rgba(240, 240, 240, 0.85);
color: #646464;
padding: 5px 5px 5px 5px;
margin-bottom: 5px;
}
.lightgrey-border {
border-left: 4px solid #646464;
}
/* Dark Blue */
.darkblue-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f05a";
color: #2f83ff;
font-size: 28px;
}
.darkblue {
background-color: rgba(20, 20, 20, 0.85);
color: #fff;
padding: 5px 5px 5px 5px;
margin-bottom: 5px;
}
.darkblue-border {
border-left: 4px solid #2f83ff;
}
/* Dark Green */
.darkgreen-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f05a";
color: #47cf73;
font-size: 28px;
}
.darkgreen {
background-color: rgba(20, 20, 20, 0.85);
color: #fff;
padding: 5px 5px 5px 5px;
margin-bottom: 5px;
}
.darkgreen-border {
border-left: 4px solid #47cf73;
}
/* Dark Red */
.darkred-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f05a";
color: #dc3545;
font-size: 28px;
}
.darkred {
background-color: rgba(20, 20, 20, 0.85);
color: #fff;
padding: 5px 5px 5px 5px;
margin-bottom: 5px;
}
.darkred-border {
border-left: 4px solid #dc3545;
}
/* Dark Grey */
.darkgrey-icon::before {
font-family: "Font Awesome 5 Free";
content: "\f05a";
color: #969696;
font-size: 28px;
}
.darkgrey {
background-color: rgba(20, 20, 20, 0.85);
color: #fff;
padding: 5px 5px 5px 5px;
margin-bottom: 5px;
}
.darkgrey-border {
border-left: 4px solid #969696;
}

View File

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/solid.min.css" integrity="sha512-jQqzj2vHVxA/yCojT8pVZjKGOe9UmoYvnOuM/2sQ110vxiajBU+4WkyRs1ODMmd4AfntwUEV4J+VfM6DkfjLRg==" crossorigin="anonymous">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="ui">
<div id="wrapper">
<div id="main">
<div id="message"></div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js"></script>
<script src="scripts.js"></script>
</body>
</html>

View File

@ -149,6 +149,15 @@ function createBlip(name, blip, coords, options)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(name)
EndTextCommandSetBlipName(ourBlip)
exports['blip_info']:SetBlipInfoTitle(ourBlip, name, 0)
exports['blip_info']:SetBlipInfoImage(ourBlip, "arcade", "arcade")
exports['blip_info']:AddBlipInfoName(ourBlip, "Ejet af", "Staten")
exports['blip_info']:AddBlipInfoName(ourBlip, "Type", "Underholdning")
exports['blip_info']:AddBlipInfoHeader(ourBlip, "")
exports['blip_info']:AddBlipInfoHeader(ourBlip, "")
exports['blip_info']:AddBlipInfoText(ourBlip, "Kan du slå highscoren?")
return ourBlip
end

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta5' }
client_scripts {

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
lua54 'yes'
game 'gta5'
shared_scripts {

View File

@ -1122,7 +1122,7 @@ function BigPacketSell()
end
Citizen.CreateThread(function()
local blip = AddBlipForCoord(Config.Blip)
local blip = AddBlipForCoord(vector3(-1183.37, -884.14, 13.86))
SetBlipSprite(blip, 106)
SetBlipDisplay(blip, 2)
SetBlipScale(blip, 0.5)

View File

@ -19,7 +19,6 @@ Config.CoffeeBag = { 'burgershot_coffee', 'burgershot_macaroon' }
---------Burger Shot Job Coords---------
Config.Blip = vector3(-1183.37, -884.14, 13.86)
Config.Duty = vector3(-1194.72, -900.11, 14.50)
Config.Tray = vector3(-1193.90, -894.37, 14.0)
Config.Tray2 = vector3(-1195.26, -892.42, 14.0)

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
client_script {

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
games { 'gta5' }
--dependency 'MenuAPI'

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'

View File

@ -394,6 +394,7 @@ function DeleteSkinCam(isCanceled)
if Config.TeleportToNewSpawn then
SetEntityCoords(PlayerPedId(), Config.afterCreateCharSpawn.x, Config.afterCreateCharSpawn.y, Config.afterCreateCharSpawn.z)
SetEntityHeading(PlayerPedId(), Config.afterCreateCharSpawn.w)
TriggerServerEvent("hp_charcreator:server:tp")
else
SetEntityCoords(PlayerPedId(), lastCoords.x, lastCoords.y, lastCoords.z)
SetEntityHeading(PlayerPedId(), lastCoords.w)

View File

@ -57,8 +57,8 @@ Config.EnableHandsUpButtonUI = true -- Is there to be a button to raise hands on
Config.HandsUpKey = 'x' -- Key JS (key.code) - https://www.toptal.com/developers/keycode
Config.HandsUpAnimation = {'missminuteman_1ig_2', 'handsup_enter', 50}
Config.TeleportToNewSpawn = false -- whether the player should be teleported to the spawn point or their last location after creating a character
Config.creatingCharacterCoords = vector4(-1238.62, 104.94, 56.00, 159.28) -- this is where the player player will stand during character creation
Config.TeleportToNewSpawn = true -- whether the player should be teleported to the spawn point or their last location after creating a character
Config.creatingCharacterCoords = vector4(-914.48, -440.31, 141.54, 206.64) -- this is where the player player will stand during character creation
Config.afterCreateCharSpawn = vector4(-255.93, -983.88, 30.22, 250.85) -- this is where the player will spawn after completing character creation
Config.CharacterCreationPedAnimation = {"anim@heists@heist_corona@team_idles@male_a", "idle"} -- animation of the player during character creation

View File

@ -1,6 +1,6 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
lua54 'yes'
author 'vames™'

View File

@ -1,3 +1,5 @@
local QBCoreF = exports['qb-core']:GetCoreObject()
QBCore = Config.CoreExport()
if Config.AdminCommand.Enabled then
QBCore.Commands.Add(Config.AdminCommand.Name, Config.AdminCommand.Help, { {
@ -17,3 +19,8 @@ QBCore.Functions.CreateCallback('hp_charcreator:getCurrentSkin', function(source
cb(result[1].skin)
end
end)
RegisterServerEvent("hp_multichar:playerConnected", function ()
local src = source
SetPlayerRoutingBucket(src, 0)
end)

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
--description "Object Cleanup - Hyperion VRP"
description "Object Cleanup - Hyperion QBCore"

View File

@ -8,7 +8,7 @@ download "https://github.com/glitchdetector/fivem-explorer"
description "Hides stuff from the map until you discover it"
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
client_script 'config.lua'

View File

@ -12,8 +12,10 @@ Citizen.CreateThread(function()
SetBlipScale(info.blip, info.scale)
SetBlipColour(info.blip, info.colour)
SetBlipAsShortRange(info.blip, true)
BeginTextCommandSetBlipName("STRING")
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(info.title)
EndTextCommandSetBlipName(info.blip)
end
end)
end)
print(GetClockHours()..":"..GetClockMinutes()..":"..GetClockSeconds())

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
description 'Hyperion Fixes / Addons'
@ -11,6 +11,6 @@ client_scripts {
'client/**.lua'
}
-- server_scripts {
-- 'server/**.lua'
-- }
server_scripts {
'server/**.lua'
}

View File

@ -0,0 +1,4 @@
fx_version "adamant"
games { 'gta5' }
this_is_a_map 'yes'

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -31,7 +31,7 @@ local function ds()
end
local function spawnTargetMenu(x, y, z, h)
exports['qb-target']:AddBoxZone(currentVan, GetEntityCoords(ped), 1.5, 1.5 , {
exports['qb-target']:AddBoxZone(currentVan, GetEntityCoords(ped), 1.5, 1.5, {
name = currentVan,
heading = h,
minZ = z - 1.0,
@ -44,14 +44,19 @@ local function spawnTargetMenu(x, y, z, h)
num = 1,
type = "client",
icon = "fas fa-gun",
label = Config.Lang.Buy ..
" " .. activeItems[1].label .. " | " .. activeItems[1].price .. Config.Lang.Currency,
label = function()
if activeItems[1].iAmount > 0 then
return activeItems[1].label .. "\n" .. activeItems[1].price .. Config.Lang.Currency .. "\n\n" .. Config.Lang.Buy
else
return Config.Lang.SoldOut
end
end,
action = function(entity)
if IsPedAPlayer(entity) then return false end
TriggerServerEvent('_hp_gv:server:_giveItem', 1)
end,
canInteract = function(entity, distance, data)
canInteract = function(entity)
if IsPedAPlayer(entity) then return false end
return true
end,
@ -60,14 +65,19 @@ local function spawnTargetMenu(x, y, z, h)
num = 2,
type = "client",
icon = "fas fa-gun",
label = Config.Lang.Buy ..
" " .. activeItems[2].label .. " | " .. activeItems[2].price .. Config.Lang.Currency,
label = function()
if activeItems[2].iAmount > 0 then
return activeItems[2].label .. "\n" .. activeItems[2].price .. Config.Lang.Currency .. "\n\n" .. Config.Lang.Buy
else
return Config.Lang.SoldOut
end
end,
action = function(entity)
if IsPedAPlayer(entity) then return false end
TriggerServerEvent('_hp_gv:server:_giveItem', 2)
end,
canInteract = function(entity, distance, data)
canInteract = function(entity)
if IsPedAPlayer(entity) then return false end
return true
end,
@ -78,10 +88,7 @@ local function spawnTargetMenu(x, y, z, h)
end
local function spawnProp(car)
local prop = "xm3_prop_xm3_crate_ammo_01a"
local model = GetHashKey(prop)
object = CreateObject(model, 0, 0, 0, true, true, true)
object = CreateObject(GetHashKey("xm3_prop_xm3_crate_ammo_01a"), 0, 0, 0, true, true, true)
AttachEntityToEntity(object, car, -1, 0, 0.0 - 1.2, 0.0 - 0.2, 0, 0, 0, false, false, false, false, 1, true)
end
@ -128,12 +135,14 @@ local function addCar(x, y, z, h)
Citizen.Wait(100)
end
car = CreateVehicle(vehiclehash, x, y, z, h, true, false)
car = CreateVehicle(vehiclehash, x, y, z - 1, h, true, false)
-- Turn on Vehicle
SetVehicleEngineOn(car, true, true, false)
SetVehicleOnGroundProperly(car)
SetEntityInvincible(car, true)
SetVehicleNumberPlateText(car, "GUN00VAN")
SetVehicleDoorsLocked(car, 2)
SetVehicleDoorsLocked(car, 7)
SetVehicleDoorOpen(car, 2, true, true)
SetVehicleDoorOpen(car, 3, true, true)
@ -146,32 +155,37 @@ local function addCar(x, y, z, h)
addNPC(x, y, z)
spawnTargetMenu(x, y, z, h)
Wait(1000)
SoundVehicleHornThisFrame(car)
SetEntityLights(car, true)
Wait(100)
SoundVehicleHornThisFrame(car)
SetEntityLights(car, false)
end)
end
RegisterNetEvent('_hp_gv:client:_spawnVan')
AddEventHandler('_hp_gv:client:_spawnVan', function(van)
activeVan = van
currentVan = "GunVan"..math.random(100000000, 999999999)
AddEventHandler('_hp_gv:client:_spawnVan', function()
activeVan = GlobalState.ActiveVan
currentVan = "GunVan" .. (activeVan*2)
activeItems = GlobalState.ActiveItems
if Config.perVanItems then
activeItems = Config.Gunvans.vehicles[activeVan].items
else
activeItems = Config.VanItems
end
addCar(Config.Gunvans.vehicles[van].coords['x'], Config.Gunvans.vehicles[van].coords['y'], Config.Gunvans.vehicles[van].coords['z'], Config.Gunvans.vehicles[van].heading)
addCar(Config.Gunvans.vehicles[activeVan].coords['x'], Config.Gunvans.vehicles[activeVan].coords['y'],
Config.Gunvans.vehicles[activeVan].coords['z'], Config.Gunvans.vehicles[activeVan].heading)
end)
RegisterNetEvent('_hp_gv:client:_destroyVan')
AddEventHandler('_hp_gv:client:_destroyVan', function(van)
AddEventHandler('_hp_gv:client:_destroyVan', function()
ds()
end)
AddEventHandler('onResourceStop', function(resourceName)
if (GetCurrentResourceName() ~= resourceName) then
return
end
ds()
end)
if Config.Debug then
AddEventHandler('onResourceStop', function(resourceName)
if (GetCurrentResourceName() ~= resourceName) then
return
end
ds()
end)
end

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
description 'Hyperion Rebooted - Gun Van'

View File

@ -1,21 +1,22 @@
QBCore = exports['qb-core']:GetCoreObject()
local ActiveVan = -1
local ActiveItems = {}
local LastVan = nil
local totalVans = #Config.Gunvans.vehicles
math.randomseed(os.time())
local function firstLaunch()
if not LastVan then
LastVan = os.time()
end
end
firstLaunch()
GlobalState.ActiveVan = -1
GlobalState.ActiveItems = {}
GlobalState.LastVan = os.time()
GlobalState.totalVans = #Config.Gunvans.vehicles
--Fordi laver du ActiveItems = Items, så laver den en REFERENCE istedet for at KOPIERE array'et over....
-- Fordi laver du ActiveItems = Items, så laver den en REFERENCE istedet for at KOPIERE array'et over....
-- deepcopy(orig)
-- - Type: **Local function**
-- - Creates a deep copy of a table
-- - **Returns** a new table with the same values as the original
--
-- **Parameters**
-- - **orig** = The table to copy
local function deepcopy(orig)
local orig_type = type(orig)
local copy
@ -31,71 +32,102 @@ local function deepcopy(orig)
return copy
end
-- #### Spawn Van
-- Func: **spawnVan()**
-- - Type: **Local function**
-- - Spawns the van and sets the active items
local function spawnVan()
if ActiveVan ~= -1 or Config.Debug then
LastVan = os.time()
if GlobalState.ActiveVan ~= -1 or Config.Debug then
GlobalState.LastVan = os.time()
if Config.perVanItems then
ActiveItems = deepcopy(Config.Gunvans.vehicles[ActiveVan].items)
GlobalState.ActiveItems = deepcopy(Config.Gunvans.vehicles[GlobalState.ActiveVan].items)
else
ActiveItems = deepcopy(Config.VanItems)
GlobalState.ActiveItems = deepcopy(Config.VanItems)
end
print("Van spawned at Coordinates: " ..
Config.Gunvans.vehicles[ActiveVan].coords.x ..
" " .. Config.Gunvans.vehicles[ActiveVan].coords.y .. " " .. Config.Gunvans.vehicles[ActiveVan].coords.z)
local time = os.date("%X - %d/%m/%Y", GlobalState.LastVan)
TriggerClientEvent('_hp_gv:client:_spawnVan', -1, ActiveVan)
local x = Config.Gunvans.vehicles[GlobalState.ActiveVan].coords.x
local y = Config.Gunvans.vehicles[GlobalState.ActiveVan].coords.y
local z = Config.Gunvans.vehicles[GlobalState.ActiveVan].coords.z
print("At "..time.." a van spawned at Coordinates: " .. x .. " " .. y .. " " .. z)
TriggerClientEvent('_hp_gv:client:_spawnVan', -1, GlobalState.ActiveVan)
end
end
-- #### Delete Van
-- Func: **deleteVan()**
-- - Type: **Local function**
-- - Trigger a countdown to delete the van after a certain amount of time
local function deleteVan()
Citizen.CreateThread(function()
Citizen.Wait(Config.duration * 60000)
ActiveVan = -1
ActiveItems = {}
GlobalState.ActiveVan = -1
GlobalState.ActiveItems = {}
TriggerClientEvent('_hp_gv:client:_destroyVan', -1)
startCountdown()
end)
end
local function triggerVanSpawn()
GlobalState.ActiveVan = math.random(1, GlobalState.totalVans)
spawnVan()
deleteVan()
end
-- #### Start Van countdown
-- Func: **startCountdown()**
-- - Type: **Local function**
-- - Trigger a countdown to spawn a new van after a certain amount of time
function startCountdown()
Citizen.CreateThread(function()
Citizen.Wait(Config.minutesBetweenVans * 60000)
ActiveVan = math.random(1, totalVans)
spawnVan()
deleteVan()
Wait(10000)
if Config.SpawnDuringNight then
if GetClockHours() > 20 and GetClockHours() < 5 then
Citizen.Wait(Config.minutesBetweenVans * 60000)
triggerVanSpawn()
end
else
Citizen.Wait(Config.minutesBetweenVans * 60000)
triggerVanSpawn()
end
end)
end
startCountdown()
-- startCountdown()
-- #### Give Item
-- GiveItem(src, item)
--
-- src = Player source
--
-- item = item index
local function GiveItem(src, item)
if ActiveItems[item].iAmount <= 0 then
return Config.NotifyEmpty(src, ActiveItems[item].label)
if GlobalState.ActiveItems[item].iAmount <= 0 then
return Config.NotifyEmpty(src, GlobalState.ActiveItems[item].label)
end
local Player = QBCore.Functions.GetPlayer(src)
if Player.Functions.GetMoney('cash') < ActiveItems[item].price then
return Config.NotifyNoMoney(src, ActiveItems[item].label)
if Player.Functions.GetMoney('cash') < GlobalState.ActiveItems[item].price then
return Config.NotifyNoMoney(src, GlobalState.ActiveItems[item].label)
end
Player.Functions.RemoveMoney('cash', ActiveItems[item].price, 'Gun Van')
Player.Functions.RemoveMoney('cash', GlobalState.ActiveItems[item].price, 'Gun Van')
Config.InventoryExport(src, ActiveItems[item].item, 1)
if ActiveItems[item].weaponType == "pistol" then
Config.InventoryExport(src, "pistol_ammo", ActiveItems[item].aAmount)
Config.InventoryExport(src, GlobalState.ActiveItems[item].item, 1)
if GlobalState.ActiveItems[item].weaponType == "pistol" then
Config.InventoryExport(src, "pistol_ammo", GlobalState.ActiveItems[item].aAmount)
end
if ActiveItems[item].triggerCops then
if GlobalState.ActiveItems[item].triggerCops then
Config.EmergencyTrigger()
end
ActiveItems[item].iAmount = ActiveItems[item].iAmount - 1
Config.Notify(src, ActiveItems[item].label)
GlobalState.ActiveItems[item].iAmount = GlobalState.ActiveItems[item].iAmount - 1
Config.Notify(src, GlobalState.ActiveItems[item].label)
end
@ -103,13 +135,13 @@ end
if Config.Debug then
QBCore.Commands.Add('gv', '', {}, false, function(source, args)
TriggerClientEvent('_hp_gv:client:_destroyVan', -1)
ActiveVan = math.random(1, totalVans)
GlobalState.ActiveVan = math.random(1, GlobalState.totalVans)
spawnVan()
end, Config.Permission)
QBCore.Commands.Add('dgv', '', {}, false, function(source, args)
ActiveVan = -1
ActiveItems = {}
GlobalState.ActiveVan = -1
GlobalState.ActiveItems = {}
TriggerClientEvent('_hp_gv:client:_destroyVan', -1)
end, Config.Permission)
end
@ -121,7 +153,7 @@ AddEventHandler('_hp_gv:server:_giveItem', function(item)
local playerPed = GetPlayerPed(src)
local Player = QBCore.Functions.GetPlayer(source)
local playerCoords = GetEntityCoords(playerPed)
local targetCoords = Config.Gunvans.vehicles[ActiveVan].coords
local targetCoords = Config.Gunvans.vehicles[GlobalState.ActiveVan].coords
if #(playerCoords - targetCoords) > 5.5 then
Config.LogHandler(Player.PlayerData.citizenid .. " " .. Config.Lang.OutsideRange)
@ -135,13 +167,11 @@ AddEventHandler('_hp_gv:server:_giveItem', function(item)
return
end
if ActiveVan ~= -1 or Config.Debug then
if GlobalState.ActiveVan ~= -1 or Config.Debug then
GiveItem(src, item)
else
Config.LogHandler("GunVan | " .. Player.PlayerData.citizenid .. " " .. Config.Lang.OutsideBuyHours)
Config.LogHandler("GunVan | " ..
Config.Lang.TimeUntilNext ..
" " .. Config.minutesBetweenVans * 60 - (os.time() - LastVan) .. " " .. Config.Lang.Seconds)
Config.LogHandler("GunVan | " .. Config.Lang.TimeUntilNext .. " " .. Config.minutesBetweenVans * 60 - (os.time() - GlobalState.LastVan) .. " " .. Config.Lang.Seconds)
return
end
end)

View File

@ -9,6 +9,8 @@ Config.Debug = false
-- If false, the resource will not spawn a Gun Van on resource-start.
-- You'll have to wait until the server triggers a Gun Van spawn.
Config.SpawnDuringNight = true -- If true, the Gun Van will only be able to spawn during the night (8PM-5AM in-game timecycle). If false, it can spawn during the entire day.
Config.minutesBetweenVans = 180 -- This is the time between each Gun Van spawn. This is in minutes.
Config.duration = 10 -- This is in minutes. This is the duration of the Gun Van event. After this time, the Gun Van will despawn.
@ -20,9 +22,10 @@ Config.duration = 10 -- This is in minutes. This is the duration of the Gun Van
-- Recommended to keep true, to avoid players from cheating and buying items from a distance.
Config.DropPlayer = false
-- Permission for using the Gun Van commands.
-- Permission level for using the Gun Van commands.
Config.Permission = "admin"
-- Server-side function.
-- Function to trigger the emergency event.
-- This is triggered, if "triggerCops" is set to true for the specific item.
Config.EmergencyTrigger = function()
@ -35,18 +38,22 @@ Config.LogHandler = function(msg)
print(msg)
end
-- Server-side function.
Config.NotifyEmpty = function(src, item)
TriggerClientEvent('HudNotification', src, 'error', 'Gun Van', item.."? Jeg er sgu løbet tør makker....")
end
-- Server-side function.
Config.NotifyNoMoney = function(src, item)
TriggerClientEvent('HudNotification', src, 'error', 'Gun Van', "Du har ikke råd til at købe en "..item..".")
end
-- Server-side function.
Config.Notify = function(src, item)
TriggerClientEvent('HudNotification', src, 'success', 'Gun Van', 'Du købte en '..item)
end
-- Client-side function.
Config.InventoryExport = function(src, item, amount) -- Change this to your inventory system.
exports['ps-inventory']:AddItem(src, item, amount, false, { serie = "722"..tostring(QBCore.Shared.RandomStr(2) .. QBCore.Shared.RandomInt(1) .. "GV" .. QBCore.Shared.RandomInt(3) .. QBCore.Shared.RandomStr(4))})
end
@ -152,401 +159,401 @@ Config.Gunvans = {
}
}
},
{
coords = vector3(-1269.17, -2661.21, 13.94),
heading = 329.6,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-1018.11, -2193.89, 8.98),
heading = 352.8,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-559.84, -1799.59, 22.61),
heading = 153.56,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-559.6, -1681.66, 19.31),
heading = 350.13,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-1083.81, -1671.52, 4.7),
heading = 126.03,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-1155.1, -1564.93, 4.43),
heading = 168.59,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-659.96, -735.03, 31.27),
heading = 327.81,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-1265.44, -820.3, 17.1),
heading = 252.0,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-2021.38, -362.03, 44.11),
heading = 208.51,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-1601.67, 3093.5, 32.57),
heading = 323.71,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-2166.33, 4284.34, 48.96),
heading = 332.96,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-598.55, 5349.68, 70.47),
heading = 7.98,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-678.79, 5797.2, 17.33),
heading = 64.67,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(-176.42, 6405.17, 31.86),
heading = 225.81,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(1539.5, 6335.8, 23.81),
heading = 241.77,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(2195.82, 5609.29, 53.33),
heading = 166.43,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(1969.08, 5178.88, 47.6),
heading = 334.39,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
{
coords = vector3(1296.1, 4331.41, 38.24),
heading = 84.15,
items = {
{
label = "Pistol", -- Label of the item
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
},
{
label = "Foldekniv",
item = "weapon_switchblade",
iAmount = 1,
price = 5000,
triggerCops = false
}
}
},
-- {
-- coords = vector3(-1269.17, -2661.21, 13.94),
-- heading = 329.6,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-1018.11, -2193.89, 8.98),
-- heading = 352.8,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-559.84, -1799.59, 22.61),
-- heading = 153.56,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-559.6, -1681.66, 19.31),
-- heading = 350.13,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-1083.81, -1671.52, 4.7),
-- heading = 126.03,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-1155.1, -1564.93, 4.43),
-- heading = 168.59,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-659.96, -735.03, 31.27),
-- heading = 327.81,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-1265.44, -820.3, 17.1),
-- heading = 252.0,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-2021.38, -362.03, 44.11),
-- heading = 208.51,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-1601.67, 3093.5, 32.57),
-- heading = 323.71,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-2166.33, 4284.34, 48.96),
-- heading = 332.96,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-598.55, 5349.68, 70.47),
-- heading = 7.98,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-678.79, 5797.2, 17.33),
-- heading = 64.67,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(-176.42, 6405.17, 31.86),
-- heading = 225.81,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(1539.5, 6335.8, 23.81),
-- heading = 241.77,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(2195.82, 5609.29, 53.33),
-- heading = 166.43,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(1969.08, 5178.88, 47.6),
-- heading = 334.39,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
-- {
-- coords = vector3(1296.1, 4331.41, 38.24),
-- heading = 84.15,
-- items = {
-- {
-- label = "Pistol", -- Label of the item
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
-- weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
-- iAmount = 1, -- The amount of the item that the gunvan will have in stock. Should never be 0, for obvious reasons?
-- aAmount = math.random(1,4), -- The amount of ammo that the gunvan will give to the player on purchase, if you don't want to give ammo, remove this line.
-- price = 35000, -- The price of the item. Don't remove this, just set it to 0 if you want it to be free.
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
-- },
-- {
-- label = "Foldekniv",
-- item = "weapon_switchblade",
-- iAmount = 1,
-- price = 5000,
-- triggerCops = false
-- }
-- }
-- },
}
}

View File

@ -1760,11 +1760,13 @@ html {
height: 30rem;
width: 30rem;
left: 100rem;
top: 33rem;
top: 22rem;
overflow-y: auto;
animation-name: zoomInRight;
animation-duration: 1s;
animation-fill-mode: both;
-webkit-mask-image: linear-gradient(180deg, #000 90%, transparent 100%);
mask-image: linear-gradient(180deg, #000 90%, transparent 100%);
}
.notification .border {
position: relative;

View File

@ -2320,7 +2320,7 @@ html {
height: 30rem;
width: 30rem;
left: 100rem;
top: 33rem;
top: 22rem;
overflow-y: auto;
-webkit-animation-name: zoomInRight;
animation-name: zoomInRight;
@ -2328,6 +2328,8 @@ html {
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-mask-image: linear-gradient(180deg, #000 90%, transparent 100%);
mask-image: linear-gradient(180deg, #000 90%, transparent 100%);
.border {
position: relative;

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
version '1.0.0'

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
lua54 "yes"
game "gta5"

View File

@ -1,4 +1,4 @@
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
lua54 'yes'
version '1.0'

View File

@ -136,13 +136,10 @@
<script>
// Brug øverste setting på lokal test, udenfor spillet.
// const jsonUrl = 'https://corsproxy.io/?https%3A%2F%2Fgit.thnght.pro%2FHyperion%2FPublic%2Fraw%2Fbranch%2Fmain%2Finfo%2Fchangelog.json';
// const teamUrl = 'https://corsproxy.io/?https%3A%2F%2Fgit.thnght.pro%2FHyperion%2FPublic%2Fraw%2Fbranch%2Fmain%2Finfo%2Fstaff.json';
// Brug nedenstående setting, når det er i spillet.
const jsonUrl = 'https://git.thnght.pro/Hyperion/Public/raw/branch/main/info/changelog.json';
const teamUrl = 'https://git.thnght.pro/Hyperion/Public/raw/branch/main/info/staff.json';
const jsonUrl = 'https://csaber.ovh/Hyperion/Public/raw/branch/main/info/changelog.json';
const teamUrl = 'https://csaber.ovh/Hyperion/Public/raw/branch/main/info/staff.json';
const newsContainer = document.getElementById('newscontainer');

View File

@ -1,6 +1,6 @@
-- AUTOMATICALLY GENERATED FILE
-- ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN
fx_version 'cerulean'
fx_version 'adamant'
game 'gta5'
client_script 'map.js'

View File

@ -1,13 +1,40 @@
// AUTOMATICALLY GENERATED FILE
// ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN
//
// Compiled at 2024-02-12T14.54.37
// Compiled at 2024-03-16T21.02.34
setTimeout(EnableEditorRuntime, 0);
on('onResourceStop', (name) => { if (name === GetCurrentResourceName()) DisableEditorRuntime(); });
// Map patches
function applyPatch(md,_e,u){const e=GetEntityIndexFromMapdata(md,_e);if(e===-1)return
UpdateMapdataEntity(md,e,u)}
function applyPatch(md,_e,u){const e=GetEntityIndexFromMapdata(md,_e);if(e===-1)return console.error('Failed to get entity index from mapdata',{mapdataHash:_md,mapdataIndex:md,entityHash:_e});UpdateMapdataEntity(md,e,u)}
const
mp109168018_186640426={position:[-557.1691284179688,-1074.7852783203125,19.968883514404297],matrix:[0.019506722688674927,-0.999809741973877,0,0,0.999809741973877,0.019506722688674927,0,0,0,0,1,0,-557.1691284179688,-1074.7852783203125,19.968883514404297,1]},
mp109168018_197153114={position:[-601.0459594726562,-1101.41259765625,19.680322647094727],matrix:[-0.0005671381950378418,-0.9999992847442627,0.0011921976692974567,0,1,-0.0005672291154041886,-0.000054816307965666056,0,0.000055492331739515066,0.0011921664699912071,0.9999992847442627,0,-601.0459594726562,-1101.41259765625,19.680322647094727,1]},
mp109168018_953816343={position:[-619.3541259765625,-1075.853515625,20.016098022460938],matrix:[-0.0871555283665657,-0.9961947202682495,0,0,0.9961947202682495,-0.0871555283665657,0,0,0,0,1,0,-619.3541259765625,-1075.853515625,20.016098022460938,1]},
mp109168018_1041306121={position:[-552.334228515625,-1089.4630126953125,17.266206741333008],matrix:[0.08715556561946869,0.9961947202682495,0,0,-0.9961947202682495,0.08715556561946869,0,0,0,0,1,0,-552.334228515625,-1089.4630126953125,17.266206741333008,1]},
mp109168018_1064571359={position:[-623.2304077148438,-1077.89794921875,20.10850715637207],matrix:[0.25881919264793396,0.9659258127212524,0,0,-0.9659258127212524,0.25881919264793396,0,0,0,0,1,0,-623.2304077148438,-1077.89794921875,20.10850715637207,1]},
mp109168018_1082381472={position:[-557.0696411132812,-1090.2041015625,18.279254913330078],matrix:[1,0,0,0,0,1,0,0,0,0,1,0,-557.0696411132812,-1090.2041015625,18.279254913330078,1]},
mp109168018_1332460422={position:[-558.7532958984375,-1081.885986328125,19.84859848022461],matrix:[-0.0871555283665657,-0.9961947202682495,0,0,0.9961947202682495,-0.0871555283665657,0,0,0,0,1,0,-558.7532958984375,-1081.885986328125,19.84859848022461,1]},
mp109168018_1392454546={position:[-553.0411376953125,-1078.66650390625,17.70330047607422],matrix:[0.08715556561946869,0.9961947202682495,0,0,-0.9961947202682495,0.08715556561946869,0,0,0,0,1,0,-553.0411376953125,-1078.66650390625,17.70330047607422,1]},
mp109168018_1641981270={position:[-558.6902465820312,-1079.0244140625,17.763818740844727],matrix:[-0.17364713549613953,-0.9848079085350037,0,0,0.9848079085350037,-0.17364713549613953,0,0,0,0,1,0,-558.6902465820312,-1079.0244140625,17.763818740844727,1]},
mp109168018_2137378967={position:[-619.5390625,-1072.1767578125,20.018207550048828],matrix:[-0.0871555283665657,-0.9961947202682495,0,0,0.9961947202682495,-0.0871555283665657,0,0,0,0,1,0,-619.5390625,-1072.1767578125,20.018207550048828,1]},
mp109168018__286280298={position:[-557.1691284179688,-1070.5467529296875,20.100399017333984],matrix:[0.019506722688674927,-0.999809741973877,0,0,0.999809741973877,0.019506722688674927,0,0,0,0,1,0,-557.1691284179688,-1070.5467529296875,20.100399017333984,1]},
mp109168018__339587543={position:[-557.2501831054688,-1066.3912353515625,19.868202209472656],matrix:[0.019506722688674927,-0.999809741973877,0,0,0.999809741973877,0.019506722688674927,0,0,0,0,1,0,-557.2501831054688,-1066.3912353515625,19.868202209472656,1]},
mp109168018__1261513874={position:[-557.3284301757812,-1062.2305908203125,19.74962043762207],matrix:[0.019506722688674927,-0.999809741973877,0,0,0.999809741973877,0.019506722688674927,0,0,0,0,1,0,-557.3284301757812,-1062.2305908203125,19.74962043762207,1]},
mp109168018__1020948082={position:[-622.2045288085938,-1068.4918212890625,19.145280838012695],matrix:[1.1924880638503055e-8,1,0,0,-1,1.1924880638503055e-8,0,0,0,0,1,0,-622.2045288085938,-1068.4918212890625,19.145280838012695,1]},
mp109168018__960251537={position:[-621.8082885742188,-1078.8701171875,20.226768493652344],matrix:[0.9961947202682495,-0.08715522289276123,0,0,0.08715522289276123,0.9961947202682495,0,0,0,0,1,0,-621.8082885742188,-1078.8701171875,20.226768493652344,1]},
mp109168018__906177716={position:[-620.336669921875,-1078.4794921875,18.166370391845703],matrix:[0.08715556561946869,0.9961947202682495,0,0,-0.9961947202682495,0.08715556561946869,0,0,0,0,1,0,-620.336669921875,-1078.4794921875,18.166370391845703,1]},
mp109168018__1937114546={position:[-619.464599609375,-1068.567626953125,18.455127716064453],matrix:[0.08715556561946869,0.9961947202682495,0,0,-0.9961947202682495,0.08715556561946869,0,0,0,0,1,0,-619.464599609375,-1068.567626953125,18.455127716064453,1]},
mp109168018__188100129={position:[-621.5505981445312,-1074.0850830078125,21.351247787475586],matrix:[0.5114529728889465,1.7255138158798218,0,0,-0.9587676525115967,0.2841845452785492,0,0,0,0,1.3133246898651123,0,-621.5505981445312,-1074.0850830078125,21.351247787475586,1]},
mp109168018__1897150592={position:[-623.7925415039062,-1082.3187255859375,20.4724178314209],matrix:[-4.371138828673793e-8,-1,0,0,1,-4.371138828673793e-8,0,0,0,0,1,0,-623.7925415039062,-1082.3187255859375,20.4724178314209,1]},
mp109168018__1264914435={position:[-623.8312377929688,-1084.7269287109375,20.423086166381836],matrix:[-4.371138828673793e-8,-1,0,0,1,-4.371138828673793e-8,0,0,0,0,1,0,-623.8312377929688,-1084.7269287109375,20.423086166381836,1]},
mp109168018__319068293={position:[-623.7927856445312,-1087.1624755859375,20.487333297729492],matrix:[-4.371138828673793e-8,-1,0,0,1,-4.371138828673793e-8,0,0,0,0,1,0,-623.7927856445312,-1087.1624755859375,20.487333297729492,1]},
mp109168018__1575836328={position:[-603.33984375,-1097.5418701171875,19.992372512817383],matrix:[0.61967933177948,-0.7848551273345947,0.00009672320447862148,0,0.7848490476608276,0.6196739077568054,-0.0040246364660561085,0,0.003098819637671113,0.002569896634668112,0.9999918937683105,0,-603.33984375,-1097.5418701171875,19.992372512817383,1]},
mp109168018__1444491956={position:[-601.2568359375,-1099.09619140625,20.20111083984375],matrix:[-0.0009673237800598145,-0.999999463558197,-0.0001115210325224325,0,0.9999993443489075,-0.0009672875166870654,-0.0004172467743046582,0,0.00041713868267834187,-0.0001119246007874608,0.9999999403953552,0,-601.2568359375,-1099.09619140625,20.20111083984375,1]},
mp109168018__2096232912={position:[-557.4906616210938,-1077.6494140625,19.47208023071289],matrix:[0.965925931930542,0.25881868600845337,0,0,-0.25881868600845337,0.965925931930542,0,0,0,0,1,0,-557.4906616210938,-1077.6494140625,19.47208023071289,1]},
mp109168018__101733233={position:[-558.469970703125,-1086.522705078125,19.039886474609375],matrix:[-0.0871555283665657,-0.9961947202682495,0,0,0.9961947202682495,-0.0871555283665657,0,0,0,0,1,0,-558.469970703125,-1086.522705078125,19.039886474609375,1]},
mp109168018__932921467={position:[-558.1162109375,-1089.0191650390625,17.72606658935547],matrix:[-0.17364713549613953,-0.9848079085350037,0,0,0.9848079085350037,-0.17364713549613953,0,0,0,0,1,0,-558.1162109375,-1089.0191650390625,17.72606658935547,1]},
mp109168018__417794469={position:[-552.7431640625,-1081.533447265625,19.886455535888672],matrix:[1.1924880638503055e-8,1,0,0,-1,1.1924880638503055e-8,0,0,0,0,1,0,-552.7431640625,-1081.533447265625,19.886455535888672,1]},
mp109168018__1867033950={position:[-552.548828125,-1085.378662109375,19.30622100830078],matrix:[1.1924880638503055e-8,1,0,0,-1,1.1924880638503055e-8,0,0,0,0,1,0,-552.548828125,-1085.378662109375,19.30622100830078,1]},
mp236008257_703531412={position:[-1261.6522216796875,-2868.904052734375,6.514543533325195],matrix:[0.6416206359863281,-0.7670221328735352,0,0,0.7670221328735352,0.6416206359863281,0,0,0,0,1,0,-1261.6522216796875,-2868.904052734375,6.514543533325195,1]},
mp236008257_810956190={position:[-1279.32568359375,-2855.974365234375,10.99134349822998],matrix:[0.8660253286361694,0.5000001192092896,0,0,-0.5000001192092896,0.8660253286361694,0,0,0,0,1,0,-1279.32568359375,-2855.974365234375,10.99134349822998,1]},
mp236008257_1101047475={position:[-1281.468017578125,-2857.87451171875,11.342058181762695],matrix:[0.7071075439453125,0.7071059942245483,0,0,-0.7071059942245483,0.7071075439453125,0,0,0,0,1,0,-1281.468017578125,-2857.87451171875,11.342058181762695,1]},
@ -181,8 +208,40 @@ mp_1244069447_1004502929={position:[-1117.7899169921875,-2959.3916015625,9.78435
mp_1244069447_1520356007={position:[-1160.6806640625,-2914.669921875,10.159470558166504],matrix:[0.9997658729553223,0.02163759618997574,0,0,-0.02163759618997574,0.9997658729553223,0,0,0,0,1,0,-1160.6806640625,-2914.669921875,10.159470558166504,1]},
mp_1244069447_1855434985={position:[-1274.0216064453125,-2853.388671875,8.26334285736084],matrix:[-0.965486466884613,-0.26045316457748413,0,0,0.26045316457748413,-0.965486466884613,0,0,0,0,1,0,-1274.0216064453125,-2853.388671875,8.26334285736084,1]},
mp_1244069447__1819475074={position:[-1106.0196533203125,-2967.9775390625,8.840656280517578],matrix:[0.9223939180374146,0.3862505555152893,0,0,-0.3862505555152893,0.9223939180374146,0,0,0,0,1,0,-1106.0196533203125,-2967.9775390625,8.840656280517578,1]},
mp_1244069447__1662987169={position:[-1130.58984375,-2942.450927734375,8.558700561523438],matrix:[0.9849218726158142,0.17299985885620117,0,0,-0.17299985885620117,0.9849218726158142,0,0,0,0,1,0,-1130.58984375,-2942.450927734375,8.558700561523438,1]};
mp_1244069447__1662987169={position:[-1130.58984375,-2942.450927734375,8.558700561523438],matrix:[0.9849218726158142,0.17299985885620117,0,0,-0.17299985885620117,0.9849218726158142,0,0,0,0,1,0,-1130.58984375,-2942.450927734375,8.558700561523438,1]},
mp_806765581_1811928400={position:[-575.5780639648438,-1079.4052734375,19.58588981628418],matrix:[0,0,0,0,0,0,0,0,0,0,0,0,-575.5780639648438,-1079.4052734375,19.58588981628418,1]};
on('mapDataLoaded',(md)=>{switch(md){
case 109168018:{
const m=GetMapdataFromHashKey(md);
applyPatch(m,186640426,mp109168018_186640426)
applyPatch(m,197153114,mp109168018_197153114)
applyPatch(m,953816343,mp109168018_953816343)
applyPatch(m,1041306121,mp109168018_1041306121)
applyPatch(m,1064571359,mp109168018_1064571359)
applyPatch(m,1082381472,mp109168018_1082381472)
applyPatch(m,1332460422,mp109168018_1332460422)
applyPatch(m,1392454546,mp109168018_1392454546)
applyPatch(m,1641981270,mp109168018_1641981270)
applyPatch(m,2137378967,mp109168018_2137378967)
applyPatch(m,-286280298,mp109168018__286280298)
applyPatch(m,-339587543,mp109168018__339587543)
applyPatch(m,-1261513874,mp109168018__1261513874)
applyPatch(m,-1020948082,mp109168018__1020948082)
applyPatch(m,-960251537,mp109168018__960251537)
applyPatch(m,-906177716,mp109168018__906177716)
applyPatch(m,-1937114546,mp109168018__1937114546)
applyPatch(m,-188100129,mp109168018__188100129)
applyPatch(m,-1897150592,mp109168018__1897150592)
applyPatch(m,-1264914435,mp109168018__1264914435)
applyPatch(m,-319068293,mp109168018__319068293)
applyPatch(m,-1575836328,mp109168018__1575836328)
applyPatch(m,-1444491956,mp109168018__1444491956)
applyPatch(m,-2096232912,mp109168018__2096232912)
applyPatch(m,-101733233,mp109168018__101733233)
applyPatch(m,-932921467,mp109168018__932921467)
applyPatch(m,-417794469,mp109168018__417794469)
applyPatch(m,-1867033950,mp109168018__1867033950)
break}
case 236008257:{
const m=GetMapdataFromHashKey(md);
applyPatch(m,703531412,mp236008257_703531412)
@ -286,7 +345,8 @@ applyPatch(m,1772692473,mp734012453_1772692473)
applyPatch(m,2018138497,mp734012453_2018138497)
applyPatch(m,2120723262,mp734012453_2120723262)
applyPatch(m,2144199542,mp734012453_2144199542)
// applyPatch(m,-949446770,mp734012453__949446770)
applyPatch(m,-662023107,mp734012453__662023107)
applyPatch(m,-949446770,mp734012453__949446770)
applyPatch(m,-748114659,mp734012453__748114659)
applyPatch(m,-1815248636,mp734012453__1815248636)
applyPatch(m,-2104140191,mp734012453__2104140191)
@ -395,6 +455,10 @@ applyPatch(m,1855434985,mp_1244069447_1855434985)
applyPatch(m,-1819475074,mp_1244069447__1819475074)
applyPatch(m,-1662987169,mp_1244069447__1662987169)
break}
case -806765581:{
const m=GetMapdataFromHashKey(md);
applyPatch(m,1811928400,mp_806765581_1811928400)
break}
}})
/**
* GCC compiled flatbush package
@ -435,7 +499,7 @@ break}
g<<1)&1431655765)<<1|(a|a<<1)&1431655765)>>>0};
// Map additions
const mai=Flatbush.from(new Uint8Array([251,55,16,0,21,0,0,0,13,111,131,67,160,33,128,196,13,111,161,67,64,67,113,196,66,174,132,67,160,33,128,196,66,174,162,67,64,67,113,196,209,229,136,67,124,84,129,196,209,229,166,67,247,168,115,196,35,22,138,67,124,84,129,196,35,22,168,67,247,168,115,196,177,0,154,67,14,75,128,196,177,0,184,67,28,150,113,196,177,0,154,67,109,119,128,196,177,0,184,67,218,238,113,196,177,0,154,67,194,164,128,196,177,0,184,67,133,73,114,196,126,234,133,67,14,162,40,196,126,234,188,67,14,34,13,196,169,168,132,67,212,21,39,196,169,168,187,67,212,149,11,196,129,109,128,67,243,80,38,196,129,109,183,67,243,208,10,196,37,21,129,67,229,181,40,196,37,21,184,67,229,53,13,196,196,38,16,196,252,91,180,196,158,44,154,68,14,144,183,67,196,38,16,196,252,91,180,196,158,44,154,68,14,144,183,67,76,92,14,196,252,91,180,196,218,17,155,68,14,144,183,67,18,130,10,196,187,94,180,196,247,254,156,68,20,133,183,67,234,146,12,196,252,91,180,196,139,246,155,68,14,144,183,67,159,119,8,196,4,99,180,196,48,4,158,68,242,115,183,67,219,56,178,67,133,157,128,196,219,56,208,67,10,59,114,196,208,125,158,67,91,243,120,196,208,125,188,67,91,243,105,196,18,92,159,67,174,247,120,196,18,92,189,67,174,247,105,196,153,17,203,67,98,226,128,196,204,8,1,68,195,68,102,196,196,38,16,196,187,94,180,196,247,254,156,68,14,144,183,67,159,119,8,196,4,99,180,196,48,4,158,68,242,115,183,67,196,38,16,196,4,99,180,196,48,4,158,68,14,144,183,67,20,0,19,0,18,0,17,0,16,0,15,0,14,0,7,0,8,0,10,0,9,0,1,0,2,0,3,0,6,0,4,0,5,0,13,0,12,0,11,0,0,0,0,0,64,0,84,0]).buffer)
const mai=Flatbush.from(new Uint8Array([251,55,16,0,24,0,0,0,20,160,36,196,4,8,139,196,20,32,19,196,4,72,130,196,196,38,16,196,252,91,180,196,158,44,154,68,14,144,183,67,196,38,16,196,252,91,180,196,158,44,154,68,14,144,183,67,76,92,14,196,252,91,180,196,218,17,155,68,14,144,183,67,234,146,12,196,252,91,180,196,139,246,155,68,14,144,183,67,159,119,8,196,4,99,180,196,48,4,158,68,242,115,183,67,18,130,10,196,187,94,180,196,247,254,156,68,20,133,183,67,126,234,133,67,14,162,40,196,126,234,188,67,14,34,13,196,169,168,132,67,212,21,39,196,169,168,187,67,212,149,11,196,37,21,129,67,229,181,40,196,37,21,184,67,229,53,13,196,129,109,128,67,243,80,38,196,129,109,183,67,243,208,10,196,146,219,43,196,6,221,141,196,146,91,11,196,12,58,123,196,176,175,24,196,229,85,142,196,96,95,250,195,229,149,128,196,18,92,159,67,174,247,120,196,18,92,189,67,174,247,105,196,208,125,158,67,91,243,120,196,208,125,188,67,91,243,105,196,153,17,203,67,98,226,128,196,204,8,1,68,195,68,102,196,219,56,178,67,133,157,128,196,219,56,208,67,10,59,114,196,35,22,138,67,124,84,129,196,35,22,168,67,247,168,115,196,177,0,154,67,14,75,128,196,177,0,184,67,28,150,113,196,177,0,154,67,109,119,128,196,177,0,184,67,218,238,113,196,177,0,154,67,194,164,128,196,177,0,184,67,133,73,114,196,13,111,131,67,160,33,128,196,13,111,161,67,64,67,113,196,66,174,132,67,160,33,128,196,66,174,162,67,64,67,113,196,209,229,136,67,124,84,129,196,209,229,166,67,247,168,115,196,146,219,43,196,4,99,180,196,48,4,158,68,14,144,183,67,13,111,131,67,124,84,129,196,219,56,208,67,64,67,113,196,146,219,43,196,4,99,180,196,48,4,158,68,14,144,183,67,23,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,22,0,21,0,11,0,12,0,0,0,13,0,17,0,16,0,15,0,14,0,20,0,19,0,18,0,0,0,64,0,96,0]).buffer)
const mad=[
[1161501201,[1.1155345439910889,-0.015307113528251648,0,0,0.013801871798932552,1.0001251697540283,0,0,0,0,1.2510757446289062,0,461.1374816894531,-976.0744018554688,45.34185028076172,1],[0,0,-0.7906398446632473],"",""],
[237666878,[1.5072165727615356,0,0,0,0,0.5461482405662537,0,0,0,0,0.55289226770401,0,328.3942565917969,-537.8745727539062,32.602569580078125,1],[0,0,0],"",""],
@ -457,7 +521,10 @@ const mad=[
[3391605035,[1.0001496076583862,0,0,0,0,1.0001496076583862,0,0,0,0,1.0001496076583862,0,306.1729431152344,-1004.6400756835938,28.327970504760742,1],[0,0,0],"",""],
[3391605035,[1.0001704692840576,0,0,0,0,1.0001704692840576,0,0,0,0,1.0001704692840576,0,303.7954406738281,-1004.6400756835938,28.327970504760742,1],[0,0,0],"",""],
[3391605035,[1.000132441520691,0,0,0,0,1.000132441520691,0,0,0,0,1.000132441520691,0,295.36138916015625,-995.05078125,28.28951072692871,1],[0,0,0],"",""],
[3391605035,[1.0001882314682007,0,0,0,0,1.0001882314682007,0,0,0,0,1.0001882314682007,0,292.8675842285156,-995.05078125,28.28951072692871,1],[0,0,0],"",""]
[3391605035,[1.0001882314682007,0,0,0,0,1.0001882314682007,0,0,0,0,1.0001882314682007,0,292.8675842285156,-995.05078125,28.28951072692871,1],[0,0,0],"",""],
[4161376827,[2.111374855041504,0.1013675332069397,0,0,-0.0791717991232872,1.6503369808197021,0.0029179255943745375,0,0.00016804266488179564,-0.0027414276264607906,1.5927640199661255,0,-555.7451171875,-1083.6842041015625,21.66668128967285,1],[0.1671850587351082,0,2.7465510917447356],"",""],
[3620375846,[-0.9045930504798889,0.426042765378952,0,0,-0.4256702661514282,-0.904579222202301,0,0,0,0,1.0003007650375366,0,-622.4307861328125,-1069.906982421875,21.355087280273438,1],[0,0,154.79960616537525],"",""],
[3947803982,[0.9017730355262756,-0.24603529274463654,0,0,0.2635563015937805,0.9649773240089417,0,0,0,0,1.0470552444458008,0,-623.501220703125,-1077.25048828125,21.35099983215332,1],[0,0,-15.27615407266089],"",""]
]
const additionCreatedEventName='mapfixes:additionCreated', additionDeletedEventName='mapfixes:additionDeleted'
const LOAD_MODEL = -2;

Some files were not shown because too many files have changed in this diff Show More