just something i cooked up hope this helps someone.
- i will update it here once i've improved the camera animations and smoothness of transitions
- feel free to do any PRs
- i will add later on for it to work with apartments and any housing script
PLEASE PLEASE JOIN MY DISCORD FOR MORE CONTENT https://discord.gg/9Z5cdJhsRM
PREVIEW: https://streamable.com/g0t87h
Just trigger this event with the right coords in "pos"
TriggerEvent("jays-spawn-anim:doSpawnAnimationAndSpawnIn", pos)
MAKE SURE TO REMOVE PostSpawnPlayer() OR ADD A WAIT TIME BEFORE DELETING CAMERAS ETC
THANKS GUYS <3
EXAMPLE: QB-SPAWN
RegisterNUICallback('spawnplayer', function(data, cb)
local location = tostring(data.spawnloc)
local type = tostring(data.typeLoc)
local ped = PlayerPedId()
local PlayerData = QBCore.Functions.GetPlayerData()
local insideMeta = PlayerData.metadata["inside"]
if type == "current" then
PreSpawnPlayer()
QBCore.Functions.GetPlayerData(function(pd)
ped = PlayerPedId()
TriggerEvent("jays-spawn-anim:doSpawnAnimationAndSpawnIn", pd.position)
SetEntityCoords(ped, pd.position.x, pd.position.y, pd.position.z)
SetEntityHeading(ped, pd.position.a)
FreezeEntityPosition(ped, false)
end)
if insideMeta.house ~= nil then
local houseId = insideMeta.house
TriggerEvent('qb-houses:client:LastLocationHouse', houseId)
elseif insideMeta.apartment.apartmentType ~= nil or insideMeta.apartment.apartmentId ~= nil then
local apartmentType = insideMeta.apartment.apartmentType
local apartmentId = insideMeta.apartment.apartmentId
TriggerEvent('qb-apartments:client:LastLocationHouse', apartmentType, apartmentId)
end
TriggerServerEvent('QBCore:Server:OnPlayerLoaded')
TriggerEvent('QBCore:Client:OnPlayerLoaded')
PostSpawnPlayer()
elseif type == "house" then
PreSpawnPlayer()
TriggerEvent('qb-houses:client:enterOwnedHouse', location)
TriggerServerEvent('QBCore:Server:OnPlayerLoaded')
TriggerEvent('QBCore:Client:OnPlayerLoaded')
TriggerServerEvent('qb-houses:server:SetInsideMeta', 0, false)
TriggerServerEvent('qb-apartments:server:SetInsideMeta', 0, 0, false)
PostSpawnPlayer()
elseif type == "normal" then
local pos = QB.Spawns[location].coords
PreSpawnPlayer()
SetEntityCoords(ped, pos.x, pos.y, pos.z)
TriggerServerEvent('QBCore:Server:OnPlayerLoaded')
TriggerEvent('QBCore:Client:OnPlayerLoaded')
TriggerServerEvent('qb-houses:server:SetInsideMeta', 0, false)
TriggerServerEvent('qb-apartments:server:SetInsideMeta', 0, 0, false)
Wait(500)
SetEntityCoords(ped, pos.x, pos.y, pos.z)
SetEntityHeading(ped, pos.w)
TriggerEvent("jays-spawn-anim:doSpawnAnimationAndSpawnIn", pos)
Wait(10000)
PostSpawnPlayer()
end
cb('ok')
end)