64 lines
1.8 KiB
Lua
64 lines
1.8 KiB
Lua
local PlayerData = nil
|
|
|
|
local function notify(message)
|
|
BeginTextCommandThefeedPost('STRING')
|
|
AddTextComponentSubstringPlayerName(message)
|
|
EndTextCommandThefeedPostTicker(false, false)
|
|
end
|
|
|
|
exports('GetPlayerData', function()
|
|
return PlayerData
|
|
end)
|
|
|
|
exports('IsPlayerLoaded', function()
|
|
return PlayerData ~= nil
|
|
end)
|
|
|
|
exports('Notify', notify)
|
|
|
|
RegisterNetEvent('devx_core:client:playerData', function(data)
|
|
PlayerData = data
|
|
LocalPlayer.state:set('devxCharacterId', data.characterId, true)
|
|
TriggerEvent('devx_core:client:playerLoaded', data)
|
|
end)
|
|
|
|
CreateThread(function()
|
|
while true do
|
|
Wait(DevXConfig.PositionSaveIntervalMs)
|
|
if PlayerData then
|
|
local ped = PlayerPedId()
|
|
if DoesEntityExist(ped) and not IsEntityDead(ped) then
|
|
local coords = GetEntityCoords(ped)
|
|
TriggerServerEvent('devx_core:server:updatePosition', {
|
|
x = coords.x,
|
|
y = coords.y,
|
|
z = coords.z,
|
|
heading = GetEntityHeading(ped)
|
|
})
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterCommand('coords', function()
|
|
local ped = PlayerPedId()
|
|
local coords = GetEntityCoords(ped)
|
|
local text = ('vector4(%.2f, %.2f, %.2f, %.2f)'):format(
|
|
coords.x, coords.y, coords.z, GetEntityHeading(ped)
|
|
)
|
|
print(text)
|
|
notify(text)
|
|
end, false)
|
|
|
|
RegisterCommand('unstuck', function()
|
|
if not PlayerData then return end
|
|
local spawn = DevXConfig.StreetSpawn
|
|
SetEntityCoords(PlayerPedId(), spawn.x, spawn.y, spawn.z, false, false, false, false)
|
|
SetEntityHeading(PlayerPedId(), spawn.heading)
|
|
notify('Du wurdest zum Straßenstart teleportiert.')
|
|
end, false)
|
|
|
|
RegisterNetEvent('devx_core:client:returnedToWorld', function()
|
|
notify('Du wurdest in die öffentliche Welt zurückgesetzt.')
|
|
end)
|