Hello. I want to implement vehicle lock (close/open) and engine status (on/off) so it’s gonna show these when you are sitting in a car. Here’s a code:
client.lua
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
TriggerEvent('es:setMoneyDisplay', 0.0)
ESX.UI.HUD.SetDisplay(0.0)
if isTalking == false then
if NetworkIsPlayerTalking(PlayerId()) then
isTalking = true
SendNUIMessage({action = "setTalking", value = true})
end
else
if NetworkIsPlayerTalking(PlayerId()) == false then
isTalking = false
SendNUIMessage({action = "setTalking", value = false})
end
end
if inVehicle == false then
if IsPedInAnyVehicle(GetPlayerPed(-1)) and GetPedInVehicleSeat(GetVehiclePedIsIn(GetPlayerPed(-1)), -1) == GetPlayerPed(-1) then
inVehicle = true
SendNUIMessage({action = "toggleCar", show = true})
end
else
if IsPedInAnyVehicle(GetPlayerPed(-1)) and GetPedInVehicleSeat(GetVehiclePedIsIn(GetPlayerPed(-1)), -1) == GetPlayerPed(-1) then
local MyPedVeh = GetVehiclePedIsIn(GetPlayerPed(-1),false)
local VehEngineHP = GetVehicleEngineHealth(MyPedVeh)
local VehBodyHP = GetVehicleBodyHealth(MyPedVeh)
local VehDoorStatus = GetVehicleDoorLockStatus(MyPedVeh)
local VehEngineRun = GetIsVehicleEngineRunning(MyPedVeh)
SendNUIMessage({action = "updateCarStatus", status = status})
SendNUIMessage({
show = IsPauseMenuActive(),
damage = VehEngineHP,
lock = VehDoorStatus,
engine = VehEngineRun
})
else
inVehicle = false
SendNUIMessage({action = "toggleCar", show = false})
end
end
end
end)
main.js
$(function(){
window.addEventListener('message', function(event) {
$('#health .bg').css('height', event.data.health+'%')
$('#armor .bg').css('height', event.data.armor+'%')
if (event.data.action == "setValue"){
if (event.data.key == "job"){
setJobIcon(event.data.icon)
}
setValue(event.data.key, event.data.value)
}else if (event.data.action == "updateStatus"){
updateStatus(event.data.status)
}else if (event.data.action == "setTalking"){
setTalking(event.data.value)
}else if (event.data.action == "setProximity"){
setProximity(event.data.value)
}else if (event.data.action == "toggle"){
if (event.data.show){
$('#ui').show();
} else{
$('#ui').hide();
}
} else if (event.data.action == "toggleCar"){
if (event.data.show){
$('.carStats').show();
} else{
$('.carStats').hide();
}
}else if (event.data.action == "updateCarStatus"){
updateCarStatus(event.data.status)
}else if (event.data.action == "updateWeight"){
updateWeight(event.data.weight)
}
});
});
function updateCarStatus(status){
var fuel = status[0]
var damage = status[1]
var lock = status[2]
var engine = status[3]
$('#fuel .bg').css('height', fuel.percent+'%')
$('#damage .bg').css('height', damage.percent+'%')
$('#lock .bg').css('height', lock.status)
if (lock.status == 0){
color = "#f44336";
}else{
color = "#d65600";
}
$('#engine .bg').css('height', engine.status)
if (engine.status == 0){
color = "#f44336";
}else{
color = "#d65600";
}
}
It doesn’t recognize status for vehicle at all, because it keeps saying in the console:
It went pretty well with catching HP and Armor on the UI, but I can’t get this to work 