File-parity
This commit is contained in:
parent
010c93b73a
commit
d0911bf62c
@ -10,5 +10,5 @@ resource_type 'map' { gameTypes = { ['basic-gamemode'] = true } }
|
||||
|
||||
map 'map.lua'
|
||||
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
|
@ -10,5 +10,5 @@ resource_type 'map' { gameTypes = { ['basic-gamemode'] = true } }
|
||||
|
||||
map 'map.lua'
|
||||
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
|
@ -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.'
|
||||
|
@ -11,4 +11,4 @@ resource_type 'gametype' { name = 'Freeroam' }
|
||||
client_script 'basic_client.lua'
|
||||
|
||||
game 'common'
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -32,5 +32,5 @@ files {
|
||||
}
|
||||
|
||||
-- support the latest resource manifest
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'bodacious'
|
||||
fx_version 'adamant'
|
||||
game 'common'
|
||||
|
||||
client_script 'dist/client.js'
|
||||
|
@ -16,7 +16,7 @@ server_scripts {
|
||||
"mapmanager_server.lua"
|
||||
}
|
||||
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
games { 'gta5', 'rdr3' }
|
||||
|
||||
server_export "getCurrentGameType"
|
||||
|
@ -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.'
|
||||
|
@ -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'
|
||||
|
@ -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
@ -10,5 +10,5 @@ client_script 'deathevents.lua'
|
||||
client_script 'vehiclechecker.lua'
|
||||
server_script 'server.lua'
|
||||
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
234
resources/[cfx-default]/[system]/blip_info/blip_info.lua
Normal file
234
resources/[cfx-default]/[system]/blip_info/blip_info.lua
Normal 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)
|
32
resources/[cfx-default]/[system]/blip_info/fxmanifest.lua
Normal file
32
resources/[cfx-default]/[system]/blip_info/fxmanifest.lua
Normal 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'
|
BIN
resources/[cfx-default]/[system]/blip_info/stream/arcade.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/arcade.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/banks.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/banks.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/bars.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/bars.ytd
Normal file
Binary file not shown.
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/carwash.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/carwash.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/chicken.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/chicken.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/cityhall.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/cityhall.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/clothing.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/clothing.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/housing.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/housing.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/jobs.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/jobs.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/mechanics.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/mechanics.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/mining.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/mining.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/motels.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/motels.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/police.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/police.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/recycle.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/recycle.ytd
Normal file
Binary file not shown.
BIN
resources/[cfx-default]/[system]/blip_info/stream/shops.ytd
Normal file
BIN
resources/[cfx-default]/[system]/blip_info/stream/shops.ytd
Normal file
Binary file not shown.
Binary file not shown.
@ -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.'
|
||||
|
@ -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.'
|
||||
|
@ -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'
|
||||
|
@ -6,7 +6,7 @@ AddEventHandler('runcode:openUi', function(options)
|
||||
openData = {
|
||||
type = 'open',
|
||||
options = options,
|
||||
url = 'https://' .. GetCurrentServerEndpoint() .. '/' .. GetCurrentResourceName() .. '/',
|
||||
url = 'http://' .. GetCurrentServerEndpoint() .. '/' .. GetCurrentResourceName() .. '/',
|
||||
res = GetCurrentResourceName()
|
||||
}
|
||||
|
||||
|
@ -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())
|
||||
|
@ -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.'
|
||||
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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',
|
||||
|
@ -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
|
||||
|
||||
|
@ -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'] = {
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
author 'TreyTrey23'
|
||||
version 'V1.0'
|
||||
|
@ -1,6 +1,6 @@
|
||||
game 'gta5'
|
||||
author 'Atiysu & frosty'
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
lua54 'yes'
|
||||
|
||||
shared_scripts {
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
|
||||
description 'travel'
|
||||
|
@ -2,7 +2,7 @@
|
||||
--<!>-- BOII | DEVELOPMENT --<!>--
|
||||
----------------------------------
|
||||
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
|
||||
game 'gta5'
|
||||
version 'V1.0'
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
games { 'gta5' }
|
||||
|
||||
version 'V1.0'
|
||||
|
@ -1,2 +1,2 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game "gta5"
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game "gta5"
|
||||
|
||||
version '1.0.0'
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
games { 'gta5' }
|
||||
|
||||
author "Swkeep#7049"
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
games { 'gta5' }
|
||||
|
||||
author "Swkeep#7049"
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
|
||||
client_scripts {
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
games { 'gta5' }
|
||||
|
||||
version 'V1.0'
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean';
|
||||
fx_version 'adamant';
|
||||
games {"gta5"};
|
||||
lua54 "yes";
|
||||
|
||||
|
166
resources/[custom_script]/okokTextUI/README.md
Normal file
166
resources/[custom_script]/okokTextUI/README.md
Normal 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)
|
||||
```
|
24
resources/[custom_script]/okokTextUI/client.lua
Normal file
24
resources/[custom_script]/okokTextUI/client.lua
Normal 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)
|
20
resources/[custom_script]/okokTextUI/fxmanifest.lua
Normal file
20
resources/[custom_script]/okokTextUI/fxmanifest.lua
Normal 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'
|
90
resources/[custom_script]/okokTextUI/web/scripts.js
Normal file
90
resources/[custom_script]/okokTextUI/web/scripts.js
Normal 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;
|
||||
})
|
||||
|
BIN
resources/[custom_script]/okokTextUI/web/sound.mp3
Normal file
BIN
resources/[custom_script]/okokTextUI/web/sound.mp3
Normal file
Binary file not shown.
268
resources/[custom_script]/okokTextUI/web/styles.css
Normal file
268
resources/[custom_script]/okokTextUI/web/styles.css
Normal 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;
|
||||
}
|
22
resources/[custom_script]/okokTextUI/web/ui.html
Normal file
22
resources/[custom_script]/okokTextUI/web/ui.html
Normal 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>
|
@ -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
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
games { 'gta5' }
|
||||
|
||||
client_scripts {
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
lua54 'yes'
|
||||
game 'gta5'
|
||||
shared_scripts {
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
|
||||
client_script {
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
games { 'gta5' }
|
||||
--dependency 'MenuAPI'
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
|
||||
game 'gta5'
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
lua54 'yes'
|
||||
author 'vames™'
|
||||
|
@ -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)
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
|
||||
--description "Object Cleanup - Hyperion VRP"
|
||||
description "Object Cleanup - Hyperion QBCore"
|
||||
|
@ -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'
|
||||
|
@ -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())
|
@ -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'
|
||||
}
|
4
resources/[hp]/hp_garage/fxmanifest.lua
Normal file
4
resources/[hp]/hp_garage/fxmanifest.lua
Normal file
@ -0,0 +1,4 @@
|
||||
fx_version "adamant"
|
||||
games { 'gta5' }
|
||||
|
||||
this_is_a_map 'yes'
|
BIN
resources/[hp]/hp_garage/stream/_manifest.ymf
Normal file
BIN
resources/[hp]/hp_garage/stream/_manifest.ymf
Normal file
Binary file not shown.
BIN
resources/[hp]/hp_garage/stream/dt1_13_0.ybn
Normal file
BIN
resources/[hp]/hp_garage/stream/dt1_13_0.ybn
Normal file
Binary file not shown.
BIN
resources/[hp]/hp_garage/stream/dt1_13_build2+hidr.ytd
Normal file
BIN
resources/[hp]/hp_garage/stream/dt1_13_build2+hidr.ytd
Normal file
Binary file not shown.
BIN
resources/[hp]/hp_garage/stream/dt1_13_build2.ydr
Normal file
BIN
resources/[hp]/hp_garage/stream/dt1_13_build2.ydr
Normal file
Binary file not shown.
BIN
resources/[hp]/hp_garage/stream/map1.ymap
Normal file
BIN
resources/[hp]/hp_garage/stream/map1.ymap
Normal file
Binary file not shown.
@ -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
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
|
||||
description 'Hyperion Rebooted - Gun Van'
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
-- }
|
||||
-- }
|
||||
-- },
|
||||
}
|
||||
}
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
|
||||
version '1.0.0'
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
lua54 "yes"
|
||||
game "gta5"
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
fx_version 'cerulean'
|
||||
fx_version 'adamant'
|
||||
game 'gta5'
|
||||
lua54 'yes'
|
||||
version '1.0'
|
||||
|
@ -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');
|
||||
|
@ -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'
|
@ -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
Loading…
Reference in New Issue
Block a user