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'
|
map 'map.lua'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
@ -10,5 +10,5 @@ resource_type 'map' { gameTypes = { ['basic-gamemode'] = true } }
|
|||||||
|
|
||||||
map 'map.lua'
|
map 'map.lua'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
@ -10,7 +10,7 @@ resource_type 'map' { gameTypes = { ['basic-gamemode'] = true } }
|
|||||||
|
|
||||||
map 'map.lua'
|
map 'map.lua'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'rdr3'
|
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.'
|
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'
|
client_script 'basic_client.lua'
|
||||||
|
|
||||||
game 'common'
|
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'
|
repository 'https://github.com/citizenfx/cfx-server-data'
|
||||||
author 'Cfx.re <root@cfx.re>'
|
author 'Cfx.re <root@cfx.re>'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
|
||||||
client_script 'client.lua'
|
client_script 'client.lua'
|
||||||
|
@ -6,7 +6,7 @@ description 'A basic resource for storing player identifiers.'
|
|||||||
author 'Cfx.re <root@cfx.re>'
|
author 'Cfx.re <root@cfx.re>'
|
||||||
repository 'https://github.com/citizenfx/cfx-server-data'
|
repository 'https://github.com/citizenfx/cfx-server-data'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'common'
|
game 'common'
|
||||||
|
|
||||||
server_script 'server.lua'
|
server_script 'server.lua'
|
||||||
|
@ -32,5 +32,5 @@ files {
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- support the latest resource manifest
|
-- support the latest resource manifest
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'bodacious'
|
fx_version 'adamant'
|
||||||
game 'common'
|
game 'common'
|
||||||
|
|
||||||
client_script 'dist/client.js'
|
client_script 'dist/client.js'
|
||||||
|
@ -16,7 +16,7 @@ server_scripts {
|
|||||||
"mapmanager_server.lua"
|
"mapmanager_server.lua"
|
||||||
}
|
}
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta5', 'rdr3' }
|
games { 'gta5', 'rdr3' }
|
||||||
|
|
||||||
server_export "getCurrentGameType"
|
server_export "getCurrentGameType"
|
||||||
|
@ -8,7 +8,7 @@ repository 'https://github.com/citizenfx/cfx-server-data'
|
|||||||
|
|
||||||
client_script 'spawnmanager.lua'
|
client_script 'spawnmanager.lua'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'rdr3', 'gta5' }
|
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.'
|
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'
|
dependency 'yarn'
|
||||||
server_script 'webpack_builder.js'
|
server_script 'webpack_builder.js'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'common'
|
game 'common'
|
||||||
|
@ -6,7 +6,7 @@ author 'Cfx.re <root@cfx.re>'
|
|||||||
description 'Builds resources with yarn. To learn more: https://classic.yarnpkg.com'
|
description 'Builds resources with yarn. To learn more: https://classic.yarnpkg.com'
|
||||||
repository 'https://github.com/citizenfx/cfx-server-data'
|
repository 'https://github.com/citizenfx/cfx-server-data'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'common'
|
game 'common'
|
||||||
|
|
||||||
server_script 'yarn_builder.js'
|
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'
|
client_script 'vehiclechecker.lua'
|
||||||
server_script 'server.lua'
|
server_script 'server.lua'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
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'
|
client_script 'client.lua'
|
||||||
server_script 'server.lua'
|
server_script 'server.lua'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta5', 'rdr3' }
|
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.'
|
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'
|
client_script 'rconlog_client.lua'
|
||||||
server_script 'rconlog_server.lua'
|
server_script 'rconlog_server.lua'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta5', 'rdr3' }
|
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.'
|
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'
|
repository 'https://github.com/citizenfx/cfx-server-data'
|
||||||
|
|
||||||
game 'common'
|
game 'common'
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
|
|
||||||
client_script 'runcode_cl.lua'
|
client_script 'runcode_cl.lua'
|
||||||
server_script 'runcode_sv.lua'
|
server_script 'runcode_sv.lua'
|
||||||
|
@ -6,7 +6,7 @@ AddEventHandler('runcode:openUi', function(options)
|
|||||||
openData = {
|
openData = {
|
||||||
type = 'open',
|
type = 'open',
|
||||||
options = options,
|
options = options,
|
||||||
url = 'https://' .. GetCurrentServerEndpoint() .. '/' .. GetCurrentResourceName() .. '/',
|
url = 'http://' .. GetCurrentServerEndpoint() .. '/' .. GetCurrentResourceName() .. '/',
|
||||||
res = GetCurrentResourceName()
|
res = GetCurrentResourceName()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -317,7 +317,7 @@
|
|||||||
document.querySelector('#passwordField').style.display = 'none';
|
document.querySelector('#passwordField').style.display = 'none';
|
||||||
document.querySelector('html').classList.add('in-nui');
|
document.querySelector('html').classList.add('in-nui');
|
||||||
|
|
||||||
fetch(`https://${window.parent.GetParentResourceName()}/getOpenData`, {
|
fetch(`http://${window.parent.GetParentResourceName()}/getOpenData`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: '{}'
|
body: '{}'
|
||||||
}).then(a => a.json())
|
}).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.'
|
description 'Handles Social Club conductor session API for RedM. Do not disable.'
|
||||||
repository 'https://github.com/citizenfx/cfx-server-data'
|
repository 'https://github.com/citizenfx/cfx-server-data'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'rdr3'
|
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.'
|
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.'
|
description 'Handles the "host lock" for non-OneSync servers. Do not disable.'
|
||||||
repository 'https://github.com/citizenfx/cfx-server-data'
|
repository 'https://github.com/citizenfx/cfx-server-data'
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta4', 'gta5' }
|
games { 'gta4', 'gta5' }
|
||||||
|
|
||||||
server_script 'server/host_lock.lua'
|
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'
|
repository 'https://github.com/citizenfx/cfx-server-data'
|
||||||
|
|
||||||
-- compatibility wrapper
|
-- compatibility wrapper
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'common'
|
game 'common'
|
||||||
|
|
||||||
dependency 'basic-gamemode'
|
dependency 'basic-gamemode'
|
||||||
|
@ -4,6 +4,7 @@ TwoNa.Framework = nil
|
|||||||
TwoNa.Game = {}
|
TwoNa.Game = {}
|
||||||
TwoNa.Functions = TwoNaShared.Functions
|
TwoNa.Functions = TwoNaShared.Functions
|
||||||
TwoNa.Types = TwoNaShared.Types
|
TwoNa.Types = TwoNaShared.Types
|
||||||
|
TwoNa.Config = Config
|
||||||
|
|
||||||
TwoNa.TriggerServerCallback = function(name, payload, func)
|
TwoNa.TriggerServerCallback = function(name, payload, func)
|
||||||
if not func then
|
if not func then
|
||||||
|
@ -24,14 +24,14 @@ end
|
|||||||
TwoNaShared.Functions.GetFramework = function()
|
TwoNaShared.Functions.GetFramework = function()
|
||||||
local availableFramework = nil
|
local availableFramework = nil
|
||||||
|
|
||||||
for k,v in ipairs(TwoNaShared.Types.Frameworks) do
|
for k,v in ipairs(TwoNaShared.Types.Frameworks) do
|
||||||
if GetResourceState(v.ResourceName) == "starting" or GetResourceState(v.ResourceName) == "started" then
|
if GetResourceState(v.ResourceName) ~= "missing" then
|
||||||
availableFramework = v
|
availableFramework = v
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if not availableFramework then
|
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
|
end
|
||||||
|
|
||||||
return availableFramework
|
return availableFramework
|
||||||
@ -41,13 +41,13 @@ TwoNaShared.Functions.GetDatabase = function()
|
|||||||
local availableDatabase = nil
|
local availableDatabase = nil
|
||||||
|
|
||||||
for k,v in ipairs(TwoNaShared.Types.Databases) do
|
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
|
availableDatabase = v
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if not availableDatabase then
|
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
|
end
|
||||||
|
|
||||||
return availableDatabase
|
return availableDatabase
|
||||||
|
@ -5,6 +5,7 @@ TwoNa.Framework = nil
|
|||||||
TwoNa.Functions = TwoNaShared.Functions
|
TwoNa.Functions = TwoNaShared.Functions
|
||||||
TwoNa.Types = TwoNaShared.Types
|
TwoNa.Types = TwoNaShared.Types
|
||||||
TwoNa.Vehicles = nil
|
TwoNa.Vehicles = nil
|
||||||
|
TwoNa.Config = Config
|
||||||
TwoNa.MySQL = {
|
TwoNa.MySQL = {
|
||||||
Async = {},
|
Async = {},
|
||||||
Sync = {}
|
Sync = {}
|
||||||
@ -165,13 +166,17 @@ TwoNa.CreatePlayer = function(xPlayer)
|
|||||||
end
|
end
|
||||||
player.getMoney = xPlayer.getMoney
|
player.getMoney = xPlayer.getMoney
|
||||||
player.addBank = function(amount)
|
player.addBank = function(amount)
|
||||||
xPlayer.addAccountMoney('bank', amount)
|
xPlayer.addAccountMoney('bank', tonumber(amount))
|
||||||
|
end
|
||||||
|
player.addMoney = function(amount)
|
||||||
|
xPlayer.addMoney(tonumber(amount))
|
||||||
end
|
end
|
||||||
player.addMoney = xPlayer.addMoney
|
|
||||||
player.removeBank = function(amount)
|
player.removeBank = function(amount)
|
||||||
xPlayer.removeAccountMoney('bank', amount)
|
xPlayer.removeAccountMoney('bank', tonumber(amount))
|
||||||
|
end
|
||||||
|
player.removeMoney = function(amount)
|
||||||
|
xPlayer.removeMoney(tonumber(amount))
|
||||||
end
|
end
|
||||||
player.removeMoney = xPlayer.removeMoney
|
|
||||||
elseif Config.Framework.Name == "QBCore" then
|
elseif Config.Framework.Name == "QBCore" then
|
||||||
player.name = xPlayer.PlayerData.charinfo.firstname .. " " .. xPlayer.PlayerData.charinfo.lastname
|
player.name = xPlayer.PlayerData.charinfo.firstname .. " " .. xPlayer.PlayerData.charinfo.lastname
|
||||||
player.accounts = {
|
player.accounts = {
|
||||||
@ -244,6 +249,28 @@ TwoNa.GetPlayerFromIdentifier = function(identifier)
|
|||||||
end
|
end
|
||||||
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)
|
TwoNa.GetAllVehicles = function(force)
|
||||||
if TwoNa.Vehicles and not force then
|
if TwoNa.Vehicles and not force then
|
||||||
return TwoNa.Vehicles
|
return TwoNa.Vehicles
|
||||||
@ -437,6 +464,20 @@ TwoNa.UpdateVehicleOwner = function(plate, target)
|
|||||||
end
|
end
|
||||||
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()
|
TwoNa.CheckUpdate = function()
|
||||||
PerformHttpRequest("https://api.github.com/repos/tunasayin/2na_core/releases/latest", function(errorCode, rawData, headers)
|
PerformHttpRequest("https://api.github.com/repos/tunasayin/2na_core/releases/latest", function(errorCode, rawData, headers)
|
||||||
if rawData ~= nil then
|
if rawData ~= nil then
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
|
||||||
author 'tunasayin'
|
author 'tunasayin'
|
||||||
description 'Core script needed for almost all 2na scripts.'
|
description 'Core script needed for almost all 2na scripts.'
|
||||||
|
|
||||||
version '0.2.8'
|
version '0.3.1'
|
||||||
|
|
||||||
shared_scripts {
|
shared_scripts {
|
||||||
'Common/*.lua',
|
'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
|
if Configuration.CoreFolderName == "" then Configuration.CoreFolderName = 'es_extended' end
|
||||||
ESX = exports[Configuration.CoreFolderName]:getSharedObject()
|
ESX = exports[Configuration.CoreFolderName]:getSharedObject()
|
||||||
trigger = ESX.TriggerServerCallback
|
trigger = ESX.TriggerServerCallback
|
||||||
elseif Configuration.FrameWork == 'qbcore' then
|
elseif Configuration.FrameWork == 'qbcore' then
|
||||||
if Configuration.CoreFolderName == "" then Configuration.CoreFolderName = 'qb-core' end
|
if Configuration.CoreFolderName == "" then Configuration.CoreFolderName = 'qb-core' end
|
||||||
QBCore = exports[Configuration.CoreFolderName]:GetCoreObject()
|
QBCore = exports[Configuration.CoreFolderName]:GetCoreObject()
|
||||||
trigger = QBCore.Functions.TriggerCallback
|
trigger = QBCore.Functions.TriggerCallback
|
||||||
@ -11,7 +11,7 @@ end
|
|||||||
local Type = nil
|
local Type = nil
|
||||||
local fov_max = 90.0
|
local fov_max = 90.0
|
||||||
local fov_min = 1.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 npccreated = {}
|
||||||
local animDict = "weapons@first_person@aim_rng@generic@projectile@shared@core"
|
local animDict = "weapons@first_person@aim_rng@generic@projectile@shared@core"
|
||||||
local animDict2 = "mini@strip_club@private_dance@part3"
|
local animDict2 = "mini@strip_club@private_dance@part3"
|
||||||
@ -30,19 +30,31 @@ RegisterNUICallback("exit", function(data)
|
|||||||
SetNuiFocus(false, false)
|
SetNuiFocus(false, false)
|
||||||
SendNUIMessage({
|
SendNUIMessage({
|
||||||
type = "ui",
|
type = "ui",
|
||||||
status = false,
|
status = false,
|
||||||
})
|
})
|
||||||
else
|
else
|
||||||
SetNuiFocus(false, false)
|
SetNuiFocus(false, false)
|
||||||
SendNUIMessage({
|
SendNUIMessage({
|
||||||
type = "ui",
|
type = "ui",
|
||||||
status = false,
|
status = false,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
DisplayRadar(true)
|
DisplayRadar(true)
|
||||||
end)
|
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()
|
Citizen.CreateThread(function()
|
||||||
|
|
||||||
for i, v in ipairs(Locations) do
|
for i, v in ipairs(Locations) do
|
||||||
carwash = AddBlipForCoord(v.Coord)
|
carwash = AddBlipForCoord(v.Coord)
|
||||||
SetBlipSprite(carwash, 100)
|
SetBlipSprite(carwash, 100)
|
||||||
@ -52,8 +64,10 @@ Citizen.CreateThread(function()
|
|||||||
BeginTextCommandSetBlipName("STRING")
|
BeginTextCommandSetBlipName("STRING")
|
||||||
AddTextComponentSubstringPlayerName("Bilvask")
|
AddTextComponentSubstringPlayerName("Bilvask")
|
||||||
EndTextCommandSetBlipName(carwash)
|
EndTextCommandSetBlipName(carwash)
|
||||||
|
createBlip(carwash, "Bilvask", i)
|
||||||
end
|
end
|
||||||
while true do
|
while true do
|
||||||
|
|
||||||
local ped = PlayerPedId()
|
local ped = PlayerPedId()
|
||||||
local pedcoord = GetEntityCoords(ped)
|
local pedcoord = GetEntityCoords(ped)
|
||||||
vehicle = GetPlayersLastVehicle(ped)
|
vehicle = GetPlayersLastVehicle(ped)
|
||||||
@ -63,11 +77,12 @@ Citizen.CreateThread(function()
|
|||||||
if dist < 20 and not washing then
|
if dist < 20 and not washing then
|
||||||
esta = true
|
esta = true
|
||||||
sleep = 0
|
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
|
end
|
||||||
if dist < 1.5 and IsPedInAnyVehicle(ped, false) and not washing then
|
if dist < 1.5 and IsPedInAnyVehicle(ped, false) and not washing then
|
||||||
esta = true
|
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
|
sleep = 0
|
||||||
local isDriving = IsPedInAnyVehicle(PlayerPedId(), false)
|
local isDriving = IsPedInAnyVehicle(PlayerPedId(), false)
|
||||||
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
|
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
|
||||||
@ -83,17 +98,18 @@ Citizen.CreateThread(function()
|
|||||||
Wait(500)
|
Wait(500)
|
||||||
DoScreenFadeIn(1000)
|
DoScreenFadeIn(1000)
|
||||||
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
|
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
|
local x, y, z = px + GetEntityForwardX(vehicle) * 1.3, py + GetEntityForwardY(vehicle) * 5.4,
|
||||||
camCoords = vector3(x, y, z)
|
pz + 0.12
|
||||||
|
camCoords = vector3(x, y, z)
|
||||||
local rx = GetEntityRotation(vehicle, 2)
|
local rx = GetEntityRotation(vehicle, 2)
|
||||||
camRotation = rx + vector3(-2.0, 0.0, -132)
|
camRotation = rx + vector3(-2.0, 0.0, -132)
|
||||||
cam = CreateCamWithParams("DEFAULT_SCRIPTED_CAMERA", camCoords, camRotation, GetGameplayCamFov())
|
cam = CreateCamWithParams("DEFAULT_SCRIPTED_CAMERA", camCoords, camRotation, GetGameplayCamFov())
|
||||||
SetCamActive(cam, true)
|
SetCamActive(cam, true)
|
||||||
RenderScriptCams(true, true, 3000, true, false)
|
RenderScriptCams(true, true, 3000, true, false)
|
||||||
Wait(2600)
|
Wait(2600)
|
||||||
SetNuiFocus(true, true)
|
SetNuiFocus(true, true)
|
||||||
SendNUIMessage({type = "ui",status = true})
|
SendNUIMessage({ type = "ui", status = true })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if not esta then
|
if not esta then
|
||||||
sleep = 1000
|
sleep = 1000
|
||||||
@ -101,7 +117,6 @@ Citizen.CreateThread(function()
|
|||||||
end
|
end
|
||||||
Citizen.Wait(sleep)
|
Citizen.Wait(sleep)
|
||||||
end
|
end
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
RegisterNUICallback("wash", function(data)
|
RegisterNUICallback("wash", function(data)
|
||||||
@ -111,41 +126,42 @@ RegisterNUICallback("wash", function(data)
|
|||||||
local price = Configuration.Prices[tonumber(Type)]
|
local price = Configuration.Prices[tonumber(Type)]
|
||||||
local pedcoord = GetEntityCoords(ped)
|
local pedcoord = GetEntityCoords(ped)
|
||||||
local vehcoord = GetEntityCoords(vehicle)
|
local vehcoord = GetEntityCoords(vehicle)
|
||||||
trigger('buty:getMoney', function (money)
|
trigger('buty:getMoney', function(money)
|
||||||
if money then
|
if money then
|
||||||
SendNotification("Du har betalt for din vask - Læn dig tilbage og vent på vasken er færdig")
|
SendNotification("Du har betalt for din vask - Læn dig tilbage og vent på vasken er færdig")
|
||||||
if Type == "1" then
|
if Type == "1" then
|
||||||
for _, location in ipairs(Locations) do
|
for _, location in ipairs(Locations) do
|
||||||
local dist = #(pedcoord - location.Coord)
|
local dist = #(pedcoord - location.Coord)
|
||||||
if dist < 20 then
|
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)
|
local modelHash = GetHashKey(npcData.model)
|
||||||
RequestModel(modelHash)
|
RequestModel(modelHash)
|
||||||
while not HasModelLoaded(modelHash) do
|
while not HasModelLoaded(modelHash) do
|
||||||
Wait(1)
|
Wait(1)
|
||||||
end
|
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)
|
SetEntityInvincible(npcData.npc, true)
|
||||||
SetBlockingOfNonTemporaryEvents(npcData.npc, true)
|
SetBlockingOfNonTemporaryEvents(npcData.npc, true)
|
||||||
|
|
||||||
local prop = CreateObject("prop_blox_spray", 0, 0, 0, true, true, 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 px, py, pz = table.unpack(GetEntityCoords(vehicle))
|
||||||
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5, py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
|
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5, py + GetEntityForwardY(vehicle) * 9.9,
|
||||||
camCoords = vector3(x, y, z)
|
pz + 2.82
|
||||||
|
camCoords = vector3(x, y, z)
|
||||||
local rx = GetEntityRotation(vehicle, 2)
|
local rx = GetEntityRotation(vehicle, 2)
|
||||||
camRotation = rx + vector3(-22.0, 0.0, -145)
|
camRotation = rx + vector3(-22.0, 0.0, -145)
|
||||||
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
||||||
|
|
||||||
SetCamActive(cam, true)
|
SetCamActive(cam, true)
|
||||||
RenderScriptCams(true, true, 5000, true, false)
|
RenderScriptCams(true, true, 5000, true, false)
|
||||||
|
|
||||||
while not HasAnimDictLoaded(animDict) do Citizen.Wait(100) end
|
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)
|
||||||
-- Progress(24000, "Spraying cleaning fluid...")
|
-- Progress(24000, "Spraying cleaning fluid...")
|
||||||
for i = 1, #npcData.steps do
|
for i = 1, #npcData.steps do
|
||||||
local boneIndex = GetEntityBoneIndexByName(vehicle, npcData.steps[i])
|
local boneIndex = GetEntityBoneIndexByName(vehicle, npcData.steps[i])
|
||||||
local Position = GetWorldPositionOfEntityBone(vehicle, boneIndex)
|
local Position = GetWorldPositionOfEntityBone(vehicle, boneIndex)
|
||||||
@ -156,14 +172,15 @@ RegisterNUICallback("wash", function(data)
|
|||||||
local heading = GetEntityHeading(npcData.npc)
|
local heading = GetEntityHeading(npcData.npc)
|
||||||
RequestNamedPtfxAsset(particleDict)
|
RequestNamedPtfxAsset(particleDict)
|
||||||
while not HasNamedPtfxAssetLoaded(particleDict) do Citizen.Wait(100) end
|
while not HasNamedPtfxAssetLoaded(particleDict) do Citizen.Wait(100) end
|
||||||
|
|
||||||
UseParticleFxAssetNextCall(particleDict)
|
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)
|
Citizen.Wait(1000)
|
||||||
local dirtLevel = GetVehicleDirtLevel(vehicle)
|
local dirtLevel = GetVehicleDirtLevel(vehicle)
|
||||||
SetVehicleDirtLevel(vehicle, dirtLevel - 1)
|
SetVehicleDirtLevel(vehicle, dirtLevel - 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
SetVehicleDirtLevel(vehicle, 14.0)
|
SetVehicleDirtLevel(vehicle, 14.0)
|
||||||
FreezeEntityPosition(ped, false)
|
FreezeEntityPosition(ped, false)
|
||||||
FreezeEntityPosition(vehicle, false)
|
FreezeEntityPosition(vehicle, false)
|
||||||
@ -182,37 +199,40 @@ RegisterNUICallback("wash", function(data)
|
|||||||
for _, location in ipairs(Locations) do
|
for _, location in ipairs(Locations) do
|
||||||
local dist = #(pedcoord - location.Coord)
|
local dist = #(pedcoord - location.Coord)
|
||||||
if dist < 20 then
|
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
|
for i = 1, 2 do
|
||||||
local modelHash = GetHashKey(npcData.model)
|
local modelHash = GetHashKey(npcData.model)
|
||||||
RequestModel(modelHash)
|
RequestModel(modelHash)
|
||||||
while not HasModelLoaded(modelHash) do
|
while not HasModelLoaded(modelHash) do
|
||||||
Wait(1)
|
Wait(1)
|
||||||
end
|
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)
|
SetEntityInvincible(npcData.npc, true)
|
||||||
SetBlockingOfNonTemporaryEvents(npcData.npc, true)
|
SetBlockingOfNonTemporaryEvents(npcData.npc, true)
|
||||||
|
|
||||||
if done == 0 then
|
if done == 0 then
|
||||||
prop = CreateObject("prop_blox_spray", 0, 0, 0, true, true, true)
|
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
|
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)
|
||||||
-- Progress(24000, "Spraying cleaning fluid...")
|
-- Progress(24000, "Spraying cleaning fluid...")
|
||||||
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
|
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
|
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5,
|
||||||
camCoords = vector3(x, y, z)
|
py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
|
||||||
|
camCoords = vector3(x, y, z)
|
||||||
local rx = GetEntityRotation(vehicle, 2)
|
local rx = GetEntityRotation(vehicle, 2)
|
||||||
camRotation = rx + vector3(-22.0, 0.0, -145)
|
camRotation = rx + vector3(-22.0, 0.0, -145)
|
||||||
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
||||||
|
|
||||||
SetCamActive(cam, true)
|
SetCamActive(cam, true)
|
||||||
RenderScriptCams(true, true, 5000, true, false)
|
RenderScriptCams(true, true, 5000, true, false)
|
||||||
elseif done == 1 then
|
elseif done == 1 then
|
||||||
-- Progress(24000, "Carefully wiping the entire car bodywork")
|
-- Progress(24000, "Carefully wiping the entire car bodywork")
|
||||||
end
|
end
|
||||||
|
|
||||||
for i = 1, #npcData.steps do
|
for i = 1, #npcData.steps do
|
||||||
local boneIndex = GetEntityBoneIndexByName(vehicle, npcData.steps[i])
|
local boneIndex = GetEntityBoneIndexByName(vehicle, npcData.steps[i])
|
||||||
local Position = GetWorldPositionOfEntityBone(vehicle, boneIndex)
|
local Position = GetWorldPositionOfEntityBone(vehicle, boneIndex)
|
||||||
@ -224,32 +244,34 @@ RegisterNUICallback("wash", function(data)
|
|||||||
if done == 0 then
|
if done == 0 then
|
||||||
RequestNamedPtfxAsset(particleDict)
|
RequestNamedPtfxAsset(particleDict)
|
||||||
while not HasNamedPtfxAssetLoaded(particleDict) do Citizen.Wait(100) end
|
while not HasNamedPtfxAssetLoaded(particleDict) do Citizen.Wait(100) end
|
||||||
|
|
||||||
UseParticleFxAssetNextCall(particleDict)
|
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
|
else
|
||||||
TaskStartScenarioInPlace(npcData.npc, "WORLD_HUMAN_MAID_CLEAN", 0, true)
|
TaskStartScenarioInPlace(npcData.npc, "WORLD_HUMAN_MAID_CLEAN", 0, true)
|
||||||
end
|
end
|
||||||
if i == #npcData.steps then
|
if i == #npcData.steps then
|
||||||
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
|
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
|
local x, y, z = px + GetEntityForwardX(vehicle) * -9.5,
|
||||||
camCoords = vector3(x, y, z)
|
py + GetEntityForwardY(vehicle) * -2.9, pz + 2.82
|
||||||
|
camCoords = vector3(x, y, z)
|
||||||
local rx = GetEntityRotation(vehicle, 2)
|
local rx = GetEntityRotation(vehicle, 2)
|
||||||
camRotation = rx + vector3(-22.0, 0.0, -35)
|
camRotation = rx + vector3(-22.0, 0.0, -35)
|
||||||
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
||||||
|
|
||||||
SetCamActive(cam, true)
|
SetCamActive(cam, true)
|
||||||
RenderScriptCams(true, true, 5000, true, false)
|
RenderScriptCams(true, true, 5000, true, false)
|
||||||
end
|
end
|
||||||
Citizen.Wait(1000)
|
Citizen.Wait(1000)
|
||||||
local dirtLevel = GetVehicleDirtLevel(vehicle)
|
local dirtLevel = GetVehicleDirtLevel(vehicle)
|
||||||
SetVehicleDirtLevel(vehicle, dirtLevel - 1)
|
SetVehicleDirtLevel(vehicle, dirtLevel - 1)
|
||||||
end
|
end
|
||||||
TaskWanderStandard(npcData.npc, 10.0, 10)
|
TaskWanderStandard(npcData.npc, 10.0, 10)
|
||||||
StopParticleFxLooped(particleName)
|
StopParticleFxLooped(particleName)
|
||||||
ClearPedSecondaryTask(npcData.npc)
|
ClearPedSecondaryTask(npcData.npc)
|
||||||
DeleteEntity(prop)
|
DeleteEntity(prop)
|
||||||
done = done + 1
|
done = done + 1
|
||||||
end
|
end
|
||||||
SetVehicleDirtLevel(vehicle, 14.0)
|
SetVehicleDirtLevel(vehicle, 14.0)
|
||||||
FreezeEntityPosition(ped, false)
|
FreezeEntityPosition(ped, false)
|
||||||
@ -266,48 +288,52 @@ RegisterNUICallback("wash", function(data)
|
|||||||
for _, location in ipairs(Locations) do
|
for _, location in ipairs(Locations) do
|
||||||
local dist = #(pedcoord - location.Coord)
|
local dist = #(pedcoord - location.Coord)
|
||||||
if dist < 20 then
|
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
|
for i = 1, 3 do
|
||||||
local modelHash = GetHashKey(npcData.model)
|
local modelHash = GetHashKey(npcData.model)
|
||||||
RequestModel(modelHash)
|
RequestModel(modelHash)
|
||||||
while not HasModelLoaded(modelHash) do
|
while not HasModelLoaded(modelHash) do
|
||||||
Wait(1)
|
Wait(1)
|
||||||
end
|
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)
|
SetEntityInvincible(npcData.npc, true)
|
||||||
SetBlockingOfNonTemporaryEvents(npcData.npc, true)
|
SetBlockingOfNonTemporaryEvents(npcData.npc, true)
|
||||||
|
|
||||||
if done == 0 then
|
if done == 0 then
|
||||||
prop = CreateObject("prop_blox_spray", 0, 0, 0, true, true, true)
|
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
|
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 px, py, pz = table.unpack(GetEntityCoords(vehicle))
|
||||||
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5, py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
|
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5,
|
||||||
camCoords = vector3(x, y, z)
|
py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
|
||||||
|
camCoords = vector3(x, y, z)
|
||||||
local rx = GetEntityRotation(vehicle, 2)
|
local rx = GetEntityRotation(vehicle, 2)
|
||||||
camRotation = rx + vector3(-22.0, 0.0, -145)
|
camRotation = rx + vector3(-22.0, 0.0, -145)
|
||||||
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
||||||
|
|
||||||
SetCamActive(cam, true)
|
SetCamActive(cam, true)
|
||||||
RenderScriptCams(true, true, 5000, true, false)
|
RenderScriptCams(true, true, 5000, true, false)
|
||||||
-- Progress(24000, "Spraying cleaning fluid...")
|
-- Progress(24000, "Spraying cleaning fluid...")
|
||||||
elseif done == 1 then
|
elseif done == 1 then
|
||||||
-- Progress(24000, "Carefully wiping the entire car bodywork...")
|
-- Progress(24000, "Carefully wiping the entire car bodywork...")
|
||||||
elseif done == 2 then
|
elseif done == 2 then
|
||||||
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
|
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
|
local x, y, z = px + GetEntityForwardX(vehicle) * 0.5,
|
||||||
camCoords = vector3(x, y, z)
|
py + GetEntityForwardY(vehicle) * 9.9, pz + 2.82
|
||||||
|
camCoords = vector3(x, y, z)
|
||||||
local rx = GetEntityRotation(vehicle, 2)
|
local rx = GetEntityRotation(vehicle, 2)
|
||||||
camRotation = rx + vector3(-22.0, 0.0, -145)
|
camRotation = rx + vector3(-22.0, 0.0, -145)
|
||||||
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
||||||
|
|
||||||
SetCamActive(cam, true)
|
SetCamActive(cam, true)
|
||||||
RenderScriptCams(true, true, 5000, true, false)
|
RenderScriptCams(true, true, 5000, true, false)
|
||||||
-- Progress(50000, "Doing a little dance to charge you more for the premium service...")
|
-- Progress(50000, "Doing a little dance to charge you more for the premium service...")
|
||||||
end
|
end
|
||||||
|
|
||||||
for i = 1, #npcData.steps do
|
for i = 1, #npcData.steps do
|
||||||
local boneIndex = GetEntityBoneIndexByName(vehicle, npcData.steps[i])
|
local boneIndex = GetEntityBoneIndexByName(vehicle, npcData.steps[i])
|
||||||
local Position = GetWorldPositionOfEntityBone(vehicle, boneIndex)
|
local Position = GetWorldPositionOfEntityBone(vehicle, boneIndex)
|
||||||
@ -318,37 +344,39 @@ RegisterNUICallback("wash", function(data)
|
|||||||
local heading = GetEntityHeading(npcData.npc)
|
local heading = GetEntityHeading(npcData.npc)
|
||||||
if i == #npcData.steps then
|
if i == #npcData.steps then
|
||||||
local px, py, pz = table.unpack(GetEntityCoords(vehicle))
|
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
|
local x, y, z = px + GetEntityForwardX(vehicle) * -9.5,
|
||||||
camCoords = vector3(x, y, z)
|
py + GetEntityForwardY(vehicle) * -2.9, pz + 2.82
|
||||||
|
camCoords = vector3(x, y, z)
|
||||||
local rx = GetEntityRotation(vehicle, 2)
|
local rx = GetEntityRotation(vehicle, 2)
|
||||||
camRotation = rx + vector3(-22.0, 0.0, -35)
|
camRotation = rx + vector3(-22.0, 0.0, -35)
|
||||||
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
SetCamParams(cam, camCoords, camRotation, GetGameplayCamFov(), 3000)
|
||||||
|
|
||||||
SetCamActive(cam, true)
|
SetCamActive(cam, true)
|
||||||
RenderScriptCams(true, true, 5000, true, false)
|
RenderScriptCams(true, true, 5000, true, false)
|
||||||
end
|
end
|
||||||
if done == 0 then
|
if done == 0 then
|
||||||
RequestNamedPtfxAsset(particleDict)
|
RequestNamedPtfxAsset(particleDict)
|
||||||
while not HasNamedPtfxAssetLoaded(particleDict) do Citizen.Wait(100) end
|
while not HasNamedPtfxAssetLoaded(particleDict) do Citizen.Wait(100) end
|
||||||
|
|
||||||
UseParticleFxAssetNextCall(particleDict)
|
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)
|
Citizen.Wait(1000)
|
||||||
elseif done == 1 then
|
elseif done == 1 then
|
||||||
TaskStartScenarioInPlace(npcData.npc, "WORLD_HUMAN_MAID_CLEAN", 0, true)
|
TaskStartScenarioInPlace(npcData.npc, "WORLD_HUMAN_MAID_CLEAN", 0, true)
|
||||||
Citizen.Wait(1000)
|
Citizen.Wait(1000)
|
||||||
elseif done == 2 then
|
elseif done == 2 then
|
||||||
AnimationInfinite("mini@repair", "fixing_a_player", npcData.npc)
|
AnimationInfinite("mini@repair", "fixing_a_player", npcData.npc)
|
||||||
Citizen.Wait(6000)
|
Citizen.Wait(6000)
|
||||||
end
|
end
|
||||||
local dirtLevel = GetVehicleDirtLevel(vehicle)
|
local dirtLevel = GetVehicleDirtLevel(vehicle)
|
||||||
SetVehicleDirtLevel(vehicle, dirtLevel - 1)
|
SetVehicleDirtLevel(vehicle, dirtLevel - 1)
|
||||||
end
|
end
|
||||||
TaskWanderStandard(npcData.npc, 10.0, 10)
|
TaskWanderStandard(npcData.npc, 10.0, 10)
|
||||||
StopParticleFxLooped(particleName)
|
StopParticleFxLooped(particleName)
|
||||||
ClearPedSecondaryTask(npcData.npc)
|
ClearPedSecondaryTask(npcData.npc)
|
||||||
DeleteEntity(prop)
|
DeleteEntity(prop)
|
||||||
done = done + 1
|
done = done + 1
|
||||||
end
|
end
|
||||||
FreezeEntityPosition(ped, false)
|
FreezeEntityPosition(ped, false)
|
||||||
FreezeEntityPosition(vehicle, false)
|
FreezeEntityPosition(vehicle, false)
|
||||||
@ -371,7 +399,6 @@ RegisterNUICallback("wash", function(data)
|
|||||||
SendNotification("Du har ikke nok penge")
|
SendNotification("Du har ikke nok penge")
|
||||||
end
|
end
|
||||||
end, Type, price)
|
end, Type, price)
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
@ -386,7 +413,7 @@ setblip = function(name, coords)
|
|||||||
AddTextComponentSubstringPlayerName(name)
|
AddTextComponentSubstringPlayerName(name)
|
||||||
EndTextCommandSetBlipName(help)
|
EndTextCommandSetBlipName(help)
|
||||||
SetBlipRoute(help, true)
|
SetBlipRoute(help, true)
|
||||||
SetBlipRouteColour(help,29)
|
SetBlipRouteColour(help, 29)
|
||||||
elseif name == "ends" then
|
elseif name == "ends" then
|
||||||
ends = AddBlipForCoord(coords[1], coords[2], coords[3])
|
ends = AddBlipForCoord(coords[1], coords[2], coords[3])
|
||||||
SetBlipSprite(ends, 1)
|
SetBlipSprite(ends, 1)
|
||||||
@ -397,7 +424,7 @@ setblip = function(name, coords)
|
|||||||
AddTextComponentSubstringPlayerName(name)
|
AddTextComponentSubstringPlayerName(name)
|
||||||
EndTextCommandSetBlipName(ends)
|
EndTextCommandSetBlipName(ends)
|
||||||
SetBlipRoute(ends, true)
|
SetBlipRoute(ends, true)
|
||||||
SetBlipRouteColour(ends,29)
|
SetBlipRouteColour(ends, 29)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -406,28 +433,28 @@ function EndCam()
|
|||||||
|
|
||||||
RenderScriptCams(false, true, 1000, true, false)
|
RenderScriptCams(false, true, 1000, true, false)
|
||||||
DestroyCam(cam, false)
|
DestroyCam(cam, false)
|
||||||
|
|
||||||
cam = nil
|
cam = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
function hintToDisplay(text,coords)
|
function hintToDisplay(text, coords)
|
||||||
local dist = Vdist(coords.x,coords.y,coords.z,GetEntityCoords(PlayerPedId(-1)))
|
local dist = Vdist(coords.x, coords.y, coords.z, GetEntityCoords(PlayerPedId(-1)))
|
||||||
if dist < 1.5 then
|
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
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
function DrawText3Ds(x, y, z, text)
|
function DrawText3Ds(x, y, z, text)
|
||||||
SetTextScale(0.35, 0.35)
|
SetTextScale(0.35, 0.35)
|
||||||
SetTextFont(4)
|
SetTextFont(4)
|
||||||
SetTextProportional(1)
|
SetTextProportional(1)
|
||||||
SetTextColour(255, 255, 255, 215)
|
SetTextColour(255, 255, 255, 215)
|
||||||
SetTextEntry("STRING")
|
SetTextEntry("STRING")
|
||||||
SetTextCentre(true)
|
SetTextCentre(true)
|
||||||
AddTextComponentString(text)
|
AddTextComponentString(text)
|
||||||
SetDrawOrigin(x,y,z, 0)
|
SetDrawOrigin(x, y, z, 0)
|
||||||
DrawText(0.0, 0.0)
|
DrawText(0.0, 0.0)
|
||||||
ClearDrawOrigin()
|
ClearDrawOrigin()
|
||||||
end
|
end
|
||||||
@ -437,16 +464,16 @@ AnimationInfinite = function(anim, anim2, jugador)
|
|||||||
while not HasAnimDictLoaded(anim) do
|
while not HasAnimDictLoaded(anim) do
|
||||||
Citizen.Wait(0)
|
Citizen.Wait(0)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
LoadAnimDict = function(dict)
|
LoadAnimDict = function(dict)
|
||||||
if not HasAnimDictLoaded(dict) then
|
if not HasAnimDictLoaded(dict) then
|
||||||
RequestAnimDict(dict)
|
RequestAnimDict(dict)
|
||||||
while not HasAnimDictLoaded(dict) do
|
while not HasAnimDictLoaded(dict) do
|
||||||
Wait(1)
|
Wait(1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
SendNotification = function(message)
|
SendNotification = function(message)
|
||||||
@ -458,10 +485,9 @@ end
|
|||||||
|
|
||||||
-- Progress = function(time, text)
|
-- Progress = function(time, text)
|
||||||
-- exports['progressbar']:Progress({
|
-- exports['progressbar']:Progress({
|
||||||
-- time = time,
|
-- time = time,
|
||||||
-- text = text,
|
-- text = text,
|
||||||
-- color = "linear-gradient(20.5deg, #00E4FF 9.83%, rgba(172, 65, 222, 0) 93.95%)",
|
-- color = "linear-gradient(20.5deg, #00E4FF 9.83%, rgba(172, 65, 222, 0) 93.95%)",
|
||||||
-- color2 = "#00C1FF",
|
-- color2 = "#00C1FF",
|
||||||
-- })
|
-- })
|
||||||
-- end
|
-- end
|
||||||
|
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
Configuration = {
|
Configuration = {
|
||||||
FrameWork = "qbcore", -- esx | qbcore
|
FrameWork = "qbcore", -- esx | qbcore
|
||||||
|
|
||||||
CoreFolderName = "qb-core",
|
CoreFolderName = "qb-core",
|
||||||
|
|
||||||
Prices = {500, 1000, 1500},
|
Prices = {500, 1000, 1500},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Locations = {
|
Locations = {
|
||||||
@ -58,7 +61,9 @@ Locations = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name = "Bilvask",
|
Name = "Bilvask",
|
||||||
|
|
||||||
Coord = vector3(-77.52, 6430.34, 31.04),
|
Coord = vector3(-77.52, 6430.34, 31.04),
|
||||||
|
|
||||||
Npc = {
|
Npc = {
|
||||||
['BASIC'] = {
|
['BASIC'] = {
|
||||||
{
|
{
|
||||||
@ -103,7 +108,9 @@ Locations = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name = "Bilvask",
|
Name = "Bilvask",
|
||||||
|
|
||||||
Coord = vector3(1345.2, 3600.44, 34.24),
|
Coord = vector3(1345.2, 3600.44, 34.24),
|
||||||
|
|
||||||
Npc = {
|
Npc = {
|
||||||
['BASIC'] = {
|
['BASIC'] = {
|
||||||
{
|
{
|
||||||
@ -148,7 +155,9 @@ Locations = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name = "Bilvask",
|
Name = "Bilvask",
|
||||||
|
|
||||||
Coord = vector3(-700.27, -947.79, 19.12),
|
Coord = vector3(-700.27, -947.79, 19.12),
|
||||||
|
|
||||||
Npc = {
|
Npc = {
|
||||||
['BASIC'] = {
|
['BASIC'] = {
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
author 'TreyTrey23'
|
author 'TreyTrey23'
|
||||||
version 'V1.0'
|
version 'V1.0'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
game 'gta5'
|
game 'gta5'
|
||||||
author 'Atiysu & frosty'
|
author 'Atiysu & frosty'
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
|
|
||||||
shared_scripts {
|
shared_scripts {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
|
||||||
description 'travel'
|
description 'travel'
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
--<!>-- BOII | DEVELOPMENT --<!>--
|
--<!>-- BOII | DEVELOPMENT --<!>--
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
version 'V1.0'
|
version 'V1.0'
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta5' }
|
games { 'gta5' }
|
||||||
|
|
||||||
version 'V1.0'
|
version 'V1.0'
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game "gta5"
|
game "gta5"
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game "gta5"
|
game "gta5"
|
||||||
|
|
||||||
version '1.0.0'
|
version '1.0.0'
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta5' }
|
games { 'gta5' }
|
||||||
|
|
||||||
author "Swkeep#7049"
|
author "Swkeep#7049"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta5' }
|
games { 'gta5' }
|
||||||
|
|
||||||
author "Swkeep#7049"
|
author "Swkeep#7049"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
|
||||||
client_scripts {
|
client_scripts {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta5' }
|
games { 'gta5' }
|
||||||
|
|
||||||
version 'V1.0'
|
version 'V1.0'
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean';
|
fx_version 'adamant';
|
||||||
games {"gta5"};
|
games {"gta5"};
|
||||||
lua54 "yes";
|
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")
|
BeginTextCommandSetBlipName("STRING")
|
||||||
AddTextComponentString(name)
|
AddTextComponentString(name)
|
||||||
EndTextCommandSetBlipName(ourBlip)
|
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
|
return ourBlip
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta5' }
|
games { 'gta5' }
|
||||||
|
|
||||||
client_scripts {
|
client_scripts {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
shared_scripts {
|
shared_scripts {
|
||||||
|
@ -1122,7 +1122,7 @@ function BigPacketSell()
|
|||||||
end
|
end
|
||||||
|
|
||||||
Citizen.CreateThread(function()
|
Citizen.CreateThread(function()
|
||||||
local blip = AddBlipForCoord(Config.Blip)
|
local blip = AddBlipForCoord(vector3(-1183.37, -884.14, 13.86))
|
||||||
SetBlipSprite(blip, 106)
|
SetBlipSprite(blip, 106)
|
||||||
SetBlipDisplay(blip, 2)
|
SetBlipDisplay(blip, 2)
|
||||||
SetBlipScale(blip, 0.5)
|
SetBlipScale(blip, 0.5)
|
||||||
|
@ -19,7 +19,6 @@ Config.CoffeeBag = { 'burgershot_coffee', 'burgershot_macaroon' }
|
|||||||
|
|
||||||
---------Burger Shot Job Coords---------
|
---------Burger Shot Job Coords---------
|
||||||
|
|
||||||
Config.Blip = vector3(-1183.37, -884.14, 13.86)
|
|
||||||
Config.Duty = vector3(-1194.72, -900.11, 14.50)
|
Config.Duty = vector3(-1194.72, -900.11, 14.50)
|
||||||
Config.Tray = vector3(-1193.90, -894.37, 14.0)
|
Config.Tray = vector3(-1193.90, -894.37, 14.0)
|
||||||
Config.Tray2 = vector3(-1195.26, -892.42, 14.0)
|
Config.Tray2 = vector3(-1195.26, -892.42, 14.0)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
|
||||||
client_script {
|
client_script {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
games { 'gta5' }
|
games { 'gta5' }
|
||||||
--dependency 'MenuAPI'
|
--dependency 'MenuAPI'
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
|
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
|
||||||
|
@ -394,6 +394,7 @@ function DeleteSkinCam(isCanceled)
|
|||||||
if Config.TeleportToNewSpawn then
|
if Config.TeleportToNewSpawn then
|
||||||
SetEntityCoords(PlayerPedId(), Config.afterCreateCharSpawn.x, Config.afterCreateCharSpawn.y, Config.afterCreateCharSpawn.z)
|
SetEntityCoords(PlayerPedId(), Config.afterCreateCharSpawn.x, Config.afterCreateCharSpawn.y, Config.afterCreateCharSpawn.z)
|
||||||
SetEntityHeading(PlayerPedId(), Config.afterCreateCharSpawn.w)
|
SetEntityHeading(PlayerPedId(), Config.afterCreateCharSpawn.w)
|
||||||
|
TriggerServerEvent("hp_charcreator:server:tp")
|
||||||
else
|
else
|
||||||
SetEntityCoords(PlayerPedId(), lastCoords.x, lastCoords.y, lastCoords.z)
|
SetEntityCoords(PlayerPedId(), lastCoords.x, lastCoords.y, lastCoords.z)
|
||||||
SetEntityHeading(PlayerPedId(), lastCoords.w)
|
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.HandsUpKey = 'x' -- Key JS (key.code) - https://www.toptal.com/developers/keycode
|
||||||
Config.HandsUpAnimation = {'missminuteman_1ig_2', 'handsup_enter', 50}
|
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.TeleportToNewSpawn = true -- 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.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.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
|
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'
|
game 'gta5'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
author 'vames™'
|
author 'vames™'
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
local QBCoreF = exports['qb-core']:GetCoreObject()
|
||||||
|
|
||||||
QBCore = Config.CoreExport()
|
QBCore = Config.CoreExport()
|
||||||
if Config.AdminCommand.Enabled then
|
if Config.AdminCommand.Enabled then
|
||||||
QBCore.Commands.Add(Config.AdminCommand.Name, Config.AdminCommand.Help, { {
|
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)
|
cb(result[1].skin)
|
||||||
end
|
end
|
||||||
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 VRP"
|
||||||
description "Object Cleanup - Hyperion QBCore"
|
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"
|
description "Hides stuff from the map until you discover it"
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
|
||||||
client_script 'config.lua'
|
client_script 'config.lua'
|
||||||
|
@ -12,8 +12,10 @@ Citizen.CreateThread(function()
|
|||||||
SetBlipScale(info.blip, info.scale)
|
SetBlipScale(info.blip, info.scale)
|
||||||
SetBlipColour(info.blip, info.colour)
|
SetBlipColour(info.blip, info.colour)
|
||||||
SetBlipAsShortRange(info.blip, true)
|
SetBlipAsShortRange(info.blip, true)
|
||||||
BeginTextCommandSetBlipName("STRING")
|
BeginTextCommandSetBlipName("STRING")
|
||||||
AddTextComponentString(info.title)
|
AddTextComponentString(info.title)
|
||||||
EndTextCommandSetBlipName(info.blip)
|
EndTextCommandSetBlipName(info.blip)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
print(GetClockHours()..":"..GetClockMinutes()..":"..GetClockSeconds())
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
|
||||||
description 'Hyperion Fixes / Addons'
|
description 'Hyperion Fixes / Addons'
|
||||||
@ -11,6 +11,6 @@ client_scripts {
|
|||||||
'client/**.lua'
|
'client/**.lua'
|
||||||
}
|
}
|
||||||
|
|
||||||
-- server_scripts {
|
server_scripts {
|
||||||
-- 'server/**.lua'
|
'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
|
end
|
||||||
|
|
||||||
local function spawnTargetMenu(x, y, z, h)
|
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,
|
name = currentVan,
|
||||||
heading = h,
|
heading = h,
|
||||||
minZ = z - 1.0,
|
minZ = z - 1.0,
|
||||||
@ -44,14 +44,19 @@ local function spawnTargetMenu(x, y, z, h)
|
|||||||
num = 1,
|
num = 1,
|
||||||
type = "client",
|
type = "client",
|
||||||
icon = "fas fa-gun",
|
icon = "fas fa-gun",
|
||||||
label = Config.Lang.Buy ..
|
label = function()
|
||||||
" " .. activeItems[1].label .. " | " .. activeItems[1].price .. Config.Lang.Currency,
|
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)
|
action = function(entity)
|
||||||
if IsPedAPlayer(entity) then return false end
|
if IsPedAPlayer(entity) then return false end
|
||||||
|
|
||||||
TriggerServerEvent('_hp_gv:server:_giveItem', 1)
|
TriggerServerEvent('_hp_gv:server:_giveItem', 1)
|
||||||
end,
|
end,
|
||||||
canInteract = function(entity, distance, data)
|
canInteract = function(entity)
|
||||||
if IsPedAPlayer(entity) then return false end
|
if IsPedAPlayer(entity) then return false end
|
||||||
return true
|
return true
|
||||||
end,
|
end,
|
||||||
@ -60,14 +65,19 @@ local function spawnTargetMenu(x, y, z, h)
|
|||||||
num = 2,
|
num = 2,
|
||||||
type = "client",
|
type = "client",
|
||||||
icon = "fas fa-gun",
|
icon = "fas fa-gun",
|
||||||
label = Config.Lang.Buy ..
|
label = function()
|
||||||
" " .. activeItems[2].label .. " | " .. activeItems[2].price .. Config.Lang.Currency,
|
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)
|
action = function(entity)
|
||||||
if IsPedAPlayer(entity) then return false end
|
if IsPedAPlayer(entity) then return false end
|
||||||
|
|
||||||
TriggerServerEvent('_hp_gv:server:_giveItem', 2)
|
TriggerServerEvent('_hp_gv:server:_giveItem', 2)
|
||||||
end,
|
end,
|
||||||
canInteract = function(entity, distance, data)
|
canInteract = function(entity)
|
||||||
if IsPedAPlayer(entity) then return false end
|
if IsPedAPlayer(entity) then return false end
|
||||||
return true
|
return true
|
||||||
end,
|
end,
|
||||||
@ -78,10 +88,7 @@ local function spawnTargetMenu(x, y, z, h)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function spawnProp(car)
|
local function spawnProp(car)
|
||||||
local prop = "xm3_prop_xm3_crate_ammo_01a"
|
object = CreateObject(GetHashKey("xm3_prop_xm3_crate_ammo_01a"), 0, 0, 0, true, true, true)
|
||||||
local model = GetHashKey(prop)
|
|
||||||
|
|
||||||
object = CreateObject(model, 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)
|
AttachEntityToEntity(object, car, -1, 0, 0.0 - 1.2, 0.0 - 0.2, 0, 0, 0, false, false, false, false, 1, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -128,12 +135,14 @@ local function addCar(x, y, z, h)
|
|||||||
Citizen.Wait(100)
|
Citizen.Wait(100)
|
||||||
end
|
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)
|
SetVehicleOnGroundProperly(car)
|
||||||
|
|
||||||
SetEntityInvincible(car, true)
|
SetEntityInvincible(car, true)
|
||||||
SetVehicleNumberPlateText(car, "GUN00VAN")
|
SetVehicleNumberPlateText(car, "GUN00VAN")
|
||||||
SetVehicleDoorsLocked(car, 2)
|
SetVehicleDoorsLocked(car, 7)
|
||||||
|
|
||||||
SetVehicleDoorOpen(car, 2, true, true)
|
SetVehicleDoorOpen(car, 2, true, true)
|
||||||
SetVehicleDoorOpen(car, 3, true, true)
|
SetVehicleDoorOpen(car, 3, true, true)
|
||||||
@ -146,32 +155,37 @@ local function addCar(x, y, z, h)
|
|||||||
|
|
||||||
addNPC(x, y, z)
|
addNPC(x, y, z)
|
||||||
spawnTargetMenu(x, y, z, h)
|
spawnTargetMenu(x, y, z, h)
|
||||||
|
|
||||||
|
Wait(1000)
|
||||||
|
SoundVehicleHornThisFrame(car)
|
||||||
|
SetEntityLights(car, true)
|
||||||
|
Wait(100)
|
||||||
|
SoundVehicleHornThisFrame(car)
|
||||||
|
SetEntityLights(car, false)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
RegisterNetEvent('_hp_gv:client:_spawnVan')
|
RegisterNetEvent('_hp_gv:client:_spawnVan')
|
||||||
AddEventHandler('_hp_gv:client:_spawnVan', function(van)
|
AddEventHandler('_hp_gv:client:_spawnVan', function()
|
||||||
activeVan = van
|
activeVan = GlobalState.ActiveVan
|
||||||
currentVan = "GunVan"..math.random(100000000, 999999999)
|
currentVan = "GunVan" .. (activeVan*2)
|
||||||
|
activeItems = GlobalState.ActiveItems
|
||||||
|
|
||||||
if Config.perVanItems then
|
addCar(Config.Gunvans.vehicles[activeVan].coords['x'], Config.Gunvans.vehicles[activeVan].coords['y'],
|
||||||
activeItems = Config.Gunvans.vehicles[activeVan].items
|
Config.Gunvans.vehicles[activeVan].coords['z'], Config.Gunvans.vehicles[activeVan].heading)
|
||||||
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)
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
RegisterNetEvent('_hp_gv:client:_destroyVan')
|
RegisterNetEvent('_hp_gv:client:_destroyVan')
|
||||||
AddEventHandler('_hp_gv:client:_destroyVan', function(van)
|
AddEventHandler('_hp_gv:client:_destroyVan', function()
|
||||||
ds()
|
ds()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
AddEventHandler('onResourceStop', function(resourceName)
|
if Config.Debug then
|
||||||
if (GetCurrentResourceName() ~= resourceName) then
|
AddEventHandler('onResourceStop', function(resourceName)
|
||||||
return
|
if (GetCurrentResourceName() ~= resourceName) then
|
||||||
end
|
return
|
||||||
|
end
|
||||||
ds()
|
|
||||||
end)
|
ds()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
|
|
||||||
description 'Hyperion Rebooted - Gun Van'
|
description 'Hyperion Rebooted - Gun Van'
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
QBCore = exports['qb-core']:GetCoreObject()
|
QBCore = exports['qb-core']:GetCoreObject()
|
||||||
|
|
||||||
local ActiveVan = -1
|
|
||||||
local ActiveItems = {}
|
|
||||||
local LastVan = nil
|
|
||||||
local totalVans = #Config.Gunvans.vehicles
|
|
||||||
|
|
||||||
math.randomseed(os.time())
|
math.randomseed(os.time())
|
||||||
|
|
||||||
local function firstLaunch()
|
GlobalState.ActiveVan = -1
|
||||||
if not LastVan then
|
GlobalState.ActiveItems = {}
|
||||||
LastVan = os.time()
|
GlobalState.LastVan = os.time()
|
||||||
end
|
GlobalState.totalVans = #Config.Gunvans.vehicles
|
||||||
end
|
|
||||||
firstLaunch()
|
|
||||||
|
|
||||||
|
|
||||||
--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 function deepcopy(orig)
|
||||||
local orig_type = type(orig)
|
local orig_type = type(orig)
|
||||||
local copy
|
local copy
|
||||||
@ -31,71 +32,102 @@ local function deepcopy(orig)
|
|||||||
return copy
|
return copy
|
||||||
end
|
end
|
||||||
|
|
||||||
-- #### Spawn Van
|
|
||||||
|
-- Func: **spawnVan()**
|
||||||
|
-- - Type: **Local function**
|
||||||
|
-- - Spawns the van and sets the active items
|
||||||
local function spawnVan()
|
local function spawnVan()
|
||||||
if ActiveVan ~= -1 or Config.Debug then
|
if GlobalState.ActiveVan ~= -1 or Config.Debug then
|
||||||
LastVan = os.time()
|
GlobalState.LastVan = os.time()
|
||||||
if Config.perVanItems then
|
if Config.perVanItems then
|
||||||
ActiveItems = deepcopy(Config.Gunvans.vehicles[ActiveVan].items)
|
GlobalState.ActiveItems = deepcopy(Config.Gunvans.vehicles[GlobalState.ActiveVan].items)
|
||||||
else
|
else
|
||||||
ActiveItems = deepcopy(Config.VanItems)
|
GlobalState.ActiveItems = deepcopy(Config.VanItems)
|
||||||
end
|
end
|
||||||
|
|
||||||
print("Van spawned at Coordinates: " ..
|
local time = os.date("%X - %d/%m/%Y", GlobalState.LastVan)
|
||||||
Config.Gunvans.vehicles[ActiveVan].coords.x ..
|
|
||||||
" " .. Config.Gunvans.vehicles[ActiveVan].coords.y .. " " .. Config.Gunvans.vehicles[ActiveVan].coords.z)
|
|
||||||
|
|
||||||
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
|
||||||
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()
|
local function deleteVan()
|
||||||
Citizen.CreateThread(function()
|
Citizen.CreateThread(function()
|
||||||
Citizen.Wait(Config.duration * 60000)
|
Citizen.Wait(Config.duration * 60000)
|
||||||
ActiveVan = -1
|
GlobalState.ActiveVan = -1
|
||||||
ActiveItems = {}
|
GlobalState.ActiveItems = {}
|
||||||
TriggerClientEvent('_hp_gv:client:_destroyVan', -1)
|
TriggerClientEvent('_hp_gv:client:_destroyVan', -1)
|
||||||
startCountdown()
|
startCountdown()
|
||||||
end)
|
end)
|
||||||
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()
|
function startCountdown()
|
||||||
Citizen.CreateThread(function()
|
Citizen.CreateThread(function()
|
||||||
Citizen.Wait(Config.minutesBetweenVans * 60000)
|
Wait(10000)
|
||||||
ActiveVan = math.random(1, totalVans)
|
if Config.SpawnDuringNight then
|
||||||
spawnVan()
|
if GetClockHours() > 20 and GetClockHours() < 5 then
|
||||||
deleteVan()
|
Citizen.Wait(Config.minutesBetweenVans * 60000)
|
||||||
|
triggerVanSpawn()
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Citizen.Wait(Config.minutesBetweenVans * 60000)
|
||||||
|
triggerVanSpawn()
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
end
|
end
|
||||||
startCountdown()
|
-- startCountdown()
|
||||||
|
|
||||||
-- #### Give Item
|
|
||||||
|
-- GiveItem(src, item)
|
||||||
|
--
|
||||||
|
-- src = Player source
|
||||||
|
--
|
||||||
|
-- item = item index
|
||||||
local function GiveItem(src, item)
|
local function GiveItem(src, item)
|
||||||
if ActiveItems[item].iAmount <= 0 then
|
if GlobalState.ActiveItems[item].iAmount <= 0 then
|
||||||
return Config.NotifyEmpty(src, ActiveItems[item].label)
|
return Config.NotifyEmpty(src, GlobalState.ActiveItems[item].label)
|
||||||
end
|
end
|
||||||
|
|
||||||
local Player = QBCore.Functions.GetPlayer(src)
|
local Player = QBCore.Functions.GetPlayer(src)
|
||||||
|
|
||||||
if Player.Functions.GetMoney('cash') < ActiveItems[item].price then
|
if Player.Functions.GetMoney('cash') < GlobalState.ActiveItems[item].price then
|
||||||
return Config.NotifyNoMoney(src, ActiveItems[item].label)
|
return Config.NotifyNoMoney(src, GlobalState.ActiveItems[item].label)
|
||||||
end
|
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)
|
Config.InventoryExport(src, GlobalState.ActiveItems[item].item, 1)
|
||||||
if ActiveItems[item].weaponType == "pistol" then
|
|
||||||
Config.InventoryExport(src, "pistol_ammo", ActiveItems[item].aAmount)
|
if GlobalState.ActiveItems[item].weaponType == "pistol" then
|
||||||
|
Config.InventoryExport(src, "pistol_ammo", GlobalState.ActiveItems[item].aAmount)
|
||||||
end
|
end
|
||||||
if ActiveItems[item].triggerCops then
|
|
||||||
|
if GlobalState.ActiveItems[item].triggerCops then
|
||||||
Config.EmergencyTrigger()
|
Config.EmergencyTrigger()
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -103,13 +135,13 @@ end
|
|||||||
if Config.Debug then
|
if Config.Debug then
|
||||||
QBCore.Commands.Add('gv', '', {}, false, function(source, args)
|
QBCore.Commands.Add('gv', '', {}, false, function(source, args)
|
||||||
TriggerClientEvent('_hp_gv:client:_destroyVan', -1)
|
TriggerClientEvent('_hp_gv:client:_destroyVan', -1)
|
||||||
ActiveVan = math.random(1, totalVans)
|
GlobalState.ActiveVan = math.random(1, GlobalState.totalVans)
|
||||||
spawnVan()
|
spawnVan()
|
||||||
end, Config.Permission)
|
end, Config.Permission)
|
||||||
|
|
||||||
QBCore.Commands.Add('dgv', '', {}, false, function(source, args)
|
QBCore.Commands.Add('dgv', '', {}, false, function(source, args)
|
||||||
ActiveVan = -1
|
GlobalState.ActiveVan = -1
|
||||||
ActiveItems = {}
|
GlobalState.ActiveItems = {}
|
||||||
TriggerClientEvent('_hp_gv:client:_destroyVan', -1)
|
TriggerClientEvent('_hp_gv:client:_destroyVan', -1)
|
||||||
end, Config.Permission)
|
end, Config.Permission)
|
||||||
end
|
end
|
||||||
@ -121,7 +153,7 @@ AddEventHandler('_hp_gv:server:_giveItem', function(item)
|
|||||||
local playerPed = GetPlayerPed(src)
|
local playerPed = GetPlayerPed(src)
|
||||||
local Player = QBCore.Functions.GetPlayer(source)
|
local Player = QBCore.Functions.GetPlayer(source)
|
||||||
local playerCoords = GetEntityCoords(playerPed)
|
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
|
if #(playerCoords - targetCoords) > 5.5 then
|
||||||
Config.LogHandler(Player.PlayerData.citizenid .. " " .. Config.Lang.OutsideRange)
|
Config.LogHandler(Player.PlayerData.citizenid .. " " .. Config.Lang.OutsideRange)
|
||||||
@ -135,13 +167,11 @@ AddEventHandler('_hp_gv:server:_giveItem', function(item)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if ActiveVan ~= -1 or Config.Debug then
|
if GlobalState.ActiveVan ~= -1 or Config.Debug then
|
||||||
GiveItem(src, item)
|
GiveItem(src, item)
|
||||||
else
|
else
|
||||||
Config.LogHandler("GunVan | " .. Player.PlayerData.citizenid .. " " .. Config.Lang.OutsideBuyHours)
|
Config.LogHandler("GunVan | " .. Player.PlayerData.citizenid .. " " .. Config.Lang.OutsideBuyHours)
|
||||||
Config.LogHandler("GunVan | " ..
|
Config.LogHandler("GunVan | " .. Config.Lang.TimeUntilNext .. " " .. Config.minutesBetweenVans * 60 - (os.time() - GlobalState.LastVan) .. " " .. Config.Lang.Seconds)
|
||||||
Config.Lang.TimeUntilNext ..
|
|
||||||
" " .. Config.minutesBetweenVans * 60 - (os.time() - LastVan) .. " " .. Config.Lang.Seconds)
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
@ -9,6 +9,8 @@ Config.Debug = false
|
|||||||
-- If false, the resource will not spawn a Gun Van on resource-start.
|
-- 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.
|
-- 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.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.
|
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.
|
-- Recommended to keep true, to avoid players from cheating and buying items from a distance.
|
||||||
Config.DropPlayer = false
|
Config.DropPlayer = false
|
||||||
|
|
||||||
-- Permission for using the Gun Van commands.
|
-- Permission level for using the Gun Van commands.
|
||||||
Config.Permission = "admin"
|
Config.Permission = "admin"
|
||||||
|
|
||||||
|
-- Server-side function.
|
||||||
-- Function to trigger the emergency event.
|
-- Function to trigger the emergency event.
|
||||||
-- This is triggered, if "triggerCops" is set to true for the specific item.
|
-- This is triggered, if "triggerCops" is set to true for the specific item.
|
||||||
Config.EmergencyTrigger = function()
|
Config.EmergencyTrigger = function()
|
||||||
@ -35,18 +38,22 @@ Config.LogHandler = function(msg)
|
|||||||
print(msg)
|
print(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Server-side function.
|
||||||
Config.NotifyEmpty = function(src, item)
|
Config.NotifyEmpty = function(src, item)
|
||||||
TriggerClientEvent('HudNotification', src, 'error', 'Gun Van', item.."? Jeg er sgu løbet tør makker....")
|
TriggerClientEvent('HudNotification', src, 'error', 'Gun Van', item.."? Jeg er sgu løbet tør makker....")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Server-side function.
|
||||||
Config.NotifyNoMoney = function(src, item)
|
Config.NotifyNoMoney = function(src, item)
|
||||||
TriggerClientEvent('HudNotification', src, 'error', 'Gun Van', "Du har ikke råd til at købe en "..item..".")
|
TriggerClientEvent('HudNotification', src, 'error', 'Gun Van', "Du har ikke råd til at købe en "..item..".")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Server-side function.
|
||||||
Config.Notify = function(src, item)
|
Config.Notify = function(src, item)
|
||||||
TriggerClientEvent('HudNotification', src, 'success', 'Gun Van', 'Du købte en '..item)
|
TriggerClientEvent('HudNotification', src, 'success', 'Gun Van', 'Du købte en '..item)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Client-side function.
|
||||||
Config.InventoryExport = function(src, item, amount) -- Change this to your inventory system.
|
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))})
|
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
|
end
|
||||||
@ -152,401 +159,401 @@ Config.Gunvans = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
-- {
|
||||||
coords = vector3(-1269.17, -2661.21, 13.94),
|
-- coords = vector3(-1269.17, -2661.21, 13.94),
|
||||||
heading = 329.6,
|
-- heading = 329.6,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-1018.11, -2193.89, 8.98),
|
-- coords = vector3(-1018.11, -2193.89, 8.98),
|
||||||
heading = 352.8,
|
-- heading = 352.8,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-559.84, -1799.59, 22.61),
|
-- coords = vector3(-559.84, -1799.59, 22.61),
|
||||||
heading = 153.56,
|
-- heading = 153.56,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-559.6, -1681.66, 19.31),
|
-- coords = vector3(-559.6, -1681.66, 19.31),
|
||||||
heading = 350.13,
|
-- heading = 350.13,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-1083.81, -1671.52, 4.7),
|
-- coords = vector3(-1083.81, -1671.52, 4.7),
|
||||||
heading = 126.03,
|
-- heading = 126.03,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-1155.1, -1564.93, 4.43),
|
-- coords = vector3(-1155.1, -1564.93, 4.43),
|
||||||
heading = 168.59,
|
-- heading = 168.59,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-659.96, -735.03, 31.27),
|
-- coords = vector3(-659.96, -735.03, 31.27),
|
||||||
heading = 327.81,
|
-- heading = 327.81,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-1265.44, -820.3, 17.1),
|
-- coords = vector3(-1265.44, -820.3, 17.1),
|
||||||
heading = 252.0,
|
-- heading = 252.0,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-2021.38, -362.03, 44.11),
|
-- coords = vector3(-2021.38, -362.03, 44.11),
|
||||||
heading = 208.51,
|
-- heading = 208.51,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-1601.67, 3093.5, 32.57),
|
-- coords = vector3(-1601.67, 3093.5, 32.57),
|
||||||
heading = 323.71,
|
-- heading = 323.71,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-2166.33, 4284.34, 48.96),
|
-- coords = vector3(-2166.33, 4284.34, 48.96),
|
||||||
heading = 332.96,
|
-- heading = 332.96,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-598.55, 5349.68, 70.47),
|
-- coords = vector3(-598.55, 5349.68, 70.47),
|
||||||
heading = 7.98,
|
-- heading = 7.98,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-678.79, 5797.2, 17.33),
|
-- coords = vector3(-678.79, 5797.2, 17.33),
|
||||||
heading = 64.67,
|
-- heading = 64.67,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(-176.42, 6405.17, 31.86),
|
-- coords = vector3(-176.42, 6405.17, 31.86),
|
||||||
heading = 225.81,
|
-- heading = 225.81,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(1539.5, 6335.8, 23.81),
|
-- coords = vector3(1539.5, 6335.8, 23.81),
|
||||||
heading = 241.77,
|
-- heading = 241.77,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(2195.82, 5609.29, 53.33),
|
-- coords = vector3(2195.82, 5609.29, 53.33),
|
||||||
heading = 166.43,
|
-- heading = 166.43,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(1969.08, 5178.88, 47.6),
|
-- coords = vector3(1969.08, 5178.88, 47.6),
|
||||||
heading = 334.39,
|
-- heading = 334.39,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
coords = vector3(1296.1, 4331.41, 38.24),
|
-- coords = vector3(1296.1, 4331.41, 38.24),
|
||||||
heading = 84.15,
|
-- heading = 84.15,
|
||||||
items = {
|
-- items = {
|
||||||
{
|
-- {
|
||||||
label = "Pistol", -- Label of the item
|
-- label = "Pistol", -- Label of the item
|
||||||
item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
-- item = "weapon_pistol", -- Name of the item from QBCore/Shared/Items.lua
|
||||||
weaponType = "pistol", -- Only used for ammo. Specify the type of gun.
|
-- 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?
|
-- 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.
|
-- 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.
|
-- 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
|
-- triggerCops = true -- If cops should be alerted about a suspicious activity. If not set, it won't trigger Config.EmergencyTrigger
|
||||||
},
|
-- },
|
||||||
{
|
-- {
|
||||||
label = "Foldekniv",
|
-- label = "Foldekniv",
|
||||||
item = "weapon_switchblade",
|
-- item = "weapon_switchblade",
|
||||||
iAmount = 1,
|
-- iAmount = 1,
|
||||||
price = 5000,
|
-- price = 5000,
|
||||||
triggerCops = false
|
-- triggerCops = false
|
||||||
}
|
-- }
|
||||||
}
|
-- }
|
||||||
},
|
-- },
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1760,11 +1760,13 @@ html {
|
|||||||
height: 30rem;
|
height: 30rem;
|
||||||
width: 30rem;
|
width: 30rem;
|
||||||
left: 100rem;
|
left: 100rem;
|
||||||
top: 33rem;
|
top: 22rem;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
animation-name: zoomInRight;
|
animation-name: zoomInRight;
|
||||||
animation-duration: 1s;
|
animation-duration: 1s;
|
||||||
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%);
|
||||||
}
|
}
|
||||||
.notification .border {
|
.notification .border {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -2320,7 +2320,7 @@ html {
|
|||||||
height: 30rem;
|
height: 30rem;
|
||||||
width: 30rem;
|
width: 30rem;
|
||||||
left: 100rem;
|
left: 100rem;
|
||||||
top: 33rem;
|
top: 22rem;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
-webkit-animation-name: zoomInRight;
|
-webkit-animation-name: zoomInRight;
|
||||||
animation-name: zoomInRight;
|
animation-name: zoomInRight;
|
||||||
@ -2328,6 +2328,8 @@ html {
|
|||||||
animation-duration: 1s;
|
animation-duration: 1s;
|
||||||
-webkit-animation-fill-mode: both;
|
-webkit-animation-fill-mode: both;
|
||||||
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 {
|
.border {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
|
|
||||||
version '1.0.0'
|
version '1.0.0'
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
lua54 "yes"
|
lua54 "yes"
|
||||||
game "gta5"
|
game "gta5"
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
lua54 'yes'
|
lua54 'yes'
|
||||||
version '1.0'
|
version '1.0'
|
||||||
|
@ -136,13 +136,10 @@
|
|||||||
<script>
|
<script>
|
||||||
// Brug øverste setting på lokal test, udenfor spillet.
|
// 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.
|
// 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 jsonUrl = 'https://csaber.ovh/Hyperion/Public/raw/branch/main/info/changelog.json';
|
||||||
const teamUrl = 'https://git.thnght.pro/Hyperion/Public/raw/branch/main/info/staff.json';
|
const teamUrl = 'https://csaber.ovh/Hyperion/Public/raw/branch/main/info/staff.json';
|
||||||
|
|
||||||
|
|
||||||
const newsContainer = document.getElementById('newscontainer');
|
const newsContainer = document.getElementById('newscontainer');
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
-- AUTOMATICALLY GENERATED FILE
|
-- AUTOMATICALLY GENERATED FILE
|
||||||
-- ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN
|
-- ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN
|
||||||
|
|
||||||
fx_version 'cerulean'
|
fx_version 'adamant'
|
||||||
game 'gta5'
|
game 'gta5'
|
||||||
client_script 'map.js'
|
client_script 'map.js'
|
@ -1,13 +1,40 @@
|
|||||||
// AUTOMATICALLY GENERATED FILE
|
// AUTOMATICALLY GENERATED FILE
|
||||||
// ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN
|
// 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);
|
setTimeout(EnableEditorRuntime, 0);
|
||||||
on('onResourceStop', (name) => { if (name === GetCurrentResourceName()) DisableEditorRuntime(); });
|
on('onResourceStop', (name) => { if (name === GetCurrentResourceName()) DisableEditorRuntime(); });
|
||||||
// Map patches
|
// Map patches
|
||||||
function applyPatch(md,_e,u){const e=GetEntityIndexFromMapdata(md,_e);if(e===-1)return
|
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)}
|
||||||
UpdateMapdataEntity(md,e,u)}
|
|
||||||
const
|
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_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_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]},
|
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_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_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__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){
|
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:{
|
case 236008257:{
|
||||||
const m=GetMapdataFromHashKey(md);
|
const m=GetMapdataFromHashKey(md);
|
||||||
applyPatch(m,703531412,mp236008257_703531412)
|
applyPatch(m,703531412,mp236008257_703531412)
|
||||||
@ -286,7 +345,8 @@ applyPatch(m,1772692473,mp734012453_1772692473)
|
|||||||
applyPatch(m,2018138497,mp734012453_2018138497)
|
applyPatch(m,2018138497,mp734012453_2018138497)
|
||||||
applyPatch(m,2120723262,mp734012453_2120723262)
|
applyPatch(m,2120723262,mp734012453_2120723262)
|
||||||
applyPatch(m,2144199542,mp734012453_2144199542)
|
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,-748114659,mp734012453__748114659)
|
||||||
applyPatch(m,-1815248636,mp734012453__1815248636)
|
applyPatch(m,-1815248636,mp734012453__1815248636)
|
||||||
applyPatch(m,-2104140191,mp734012453__2104140191)
|
applyPatch(m,-2104140191,mp734012453__2104140191)
|
||||||
@ -395,6 +455,10 @@ applyPatch(m,1855434985,mp_1244069447_1855434985)
|
|||||||
applyPatch(m,-1819475074,mp_1244069447__1819475074)
|
applyPatch(m,-1819475074,mp_1244069447__1819475074)
|
||||||
applyPatch(m,-1662987169,mp_1244069447__1662987169)
|
applyPatch(m,-1662987169,mp_1244069447__1662987169)
|
||||||
break}
|
break}
|
||||||
|
case -806765581:{
|
||||||
|
const m=GetMapdataFromHashKey(md);
|
||||||
|
applyPatch(m,1811928400,mp_806765581_1811928400)
|
||||||
|
break}
|
||||||
}})
|
}})
|
||||||
/**
|
/**
|
||||||
* GCC compiled flatbush package
|
* GCC compiled flatbush package
|
||||||
@ -435,7 +499,7 @@ break}
|
|||||||
g<<1)&1431655765)<<1|(a|a<<1)&1431655765)>>>0};
|
g<<1)&1431655765)<<1|(a|a<<1)&1431655765)>>>0};
|
||||||
|
|
||||||
// Map additions
|
// 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=[
|
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],"",""],
|
[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],"",""],
|
[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.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.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.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 additionCreatedEventName='mapfixes:additionCreated', additionDeletedEventName='mapfixes:additionDeleted'
|
||||||
const LOAD_MODEL = -2;
|
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