forked from Simnation/Main
ed
This commit is contained in:
parent
6d22d5f77c
commit
63fbc60a00
86 changed files with 8352 additions and 3428 deletions
210
resources/[Developer]/mh_Parking/client.lua
Normal file
210
resources/[Developer]/mh_Parking/client.lua
Normal file
|
@ -0,0 +1,210 @@
|
|||
local enabled = true
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while (true) do
|
||||
local playerPed = PlayerPedId()
|
||||
if (DoesEntityExist(playerPed)) then
|
||||
TriggerServerEvent("mh_Parking:syncPlayerPosition", GetEntityCoords(playerPed))
|
||||
end
|
||||
|
||||
Citizen.Wait(3000)
|
||||
end
|
||||
end)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while (true) do
|
||||
Citizen.Wait(5 * 60 * 1000)
|
||||
|
||||
local vehicle = GetVehiclePedIsIn(PlayerPedId())
|
||||
if (DoesEntityExist(vehicle)) then
|
||||
TriggerEvent("mh_Parking:updateVehicle", vehicle)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
Citizen.Wait(3000)
|
||||
|
||||
local isInVehicle = false
|
||||
local currentVehiclePlate = nil
|
||||
local wasDead = false
|
||||
|
||||
while (true) do
|
||||
Citizen.Wait(50)
|
||||
|
||||
local playerPed = PlayerPedId()
|
||||
|
||||
if (not isInVehicle and IsPedInAnyVehicle(playerPed)) then
|
||||
-- entered vehicle
|
||||
|
||||
isInVehicle = true
|
||||
|
||||
if (enabled) then
|
||||
local vehicle = GetVehiclePedIsIn(playerPed, false)
|
||||
if (NetworkGetEntityIsNetworked(vehicle) and not IsVehicleBlacklisted(vehicle)) then
|
||||
local networkId = NetworkGetNetworkIdFromEntity(vehicle)
|
||||
SetNetworkIdCanMigrate(netId, true)
|
||||
local modifications = GetVehicleModifications(vehicle)
|
||||
|
||||
currentVehiclePlate = GetVehicleNumberPlateText(vehicle)
|
||||
|
||||
TriggerServerEvent("mh_Parking:enteredVehicle", networkId, currentVehiclePlate, modifications)
|
||||
|
||||
Log("Vehicle " .. currentVehiclePlate .. " entered")
|
||||
end
|
||||
end
|
||||
elseif (isInVehicle and not IsPedInAnyVehicle(playerPed, false)) then
|
||||
-- left vehicle
|
||||
|
||||
isInVehicle = false
|
||||
|
||||
if (enabled and not wasDead) then
|
||||
local vehicle = GetVehiclePedIsIn(playerPed, true)
|
||||
|
||||
if (vehicle ~= 0) then
|
||||
if (NetworkGetEntityIsNetworked(vehicle) and not IsVehicleBlacklisted(vehicle)) then
|
||||
local networkId = NetworkGetNetworkIdFromEntity(vehicle)
|
||||
SetNetworkIdCanMigrate(netId, true)
|
||||
local modifications = GetVehicleModifications(vehicle)
|
||||
|
||||
TriggerServerEvent("mh_Parking:leftVehicle", networkId, modifications)
|
||||
|
||||
Log("Vehicle " .. GetVehicleNumberPlateText(vehicle) .. " left")
|
||||
|
||||
-- if vehicle is deleted soon after
|
||||
Citizen.CreateThread(function()
|
||||
local veh = vehicle
|
||||
local plate = GetVehicleNumberPlateText(veh)
|
||||
local startTime = GetGameTimer()
|
||||
local playerPed = PlayerPedId()
|
||||
local playerPos
|
||||
|
||||
while (true) do
|
||||
Citizen.Wait(0)
|
||||
|
||||
if (GetGameTimer() - startTime >= 1000) then
|
||||
break
|
||||
end
|
||||
|
||||
if (not DoesEntityExist(veh)) then
|
||||
TriggerServerEvent("mh_Parking:deleteVehicle", plate, false)
|
||||
|
||||
Log("Vehicle " .. currentVehiclePlate .. " left and deleted after exit")
|
||||
|
||||
currentVehiclePlate = nil
|
||||
break
|
||||
end
|
||||
|
||||
playerPed = PlayerPedId()
|
||||
playerPos = GetEntityCoords(playerPed)
|
||||
vehPos = GetEntityCoords(veh)
|
||||
|
||||
if (Vdist(playerPos.x, playerPos.y, playerPos.z, vehPos.x, vehPos.y, vehPos.z) > 50.0) then
|
||||
currentVehiclePlate = nil
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
currentVehiclePlate = nil
|
||||
end)
|
||||
end
|
||||
elseif (currentVehiclePlate) then
|
||||
TriggerServerEvent("mh_Parking:deleteVehicle", currentVehiclePlate, false)
|
||||
|
||||
Log("Vehicle " .. currentVehiclePlate .. " left and deleted")
|
||||
|
||||
currentVehiclePlate = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (not wasDead and IsPlayerDead(PlayerId())) then
|
||||
wasDead = true
|
||||
elseif (wasDead and not IsPlayerDead(PlayerId())) then
|
||||
Citizen.CreateThread(function()
|
||||
Citizen.Wait(1000)
|
||||
|
||||
wasDead = false
|
||||
end)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("mh_Parking:setVehicleMods")
|
||||
AddEventHandler("mh_Parking:setVehicleMods", function(netId, plate, modifications)
|
||||
if (not IsModelInCdimage(modifications[1])) then
|
||||
Log("Setting mods for " .. plate .. " failed. The model does NOT exist.")
|
||||
TriggerServerEvent("mh_Parking:modelDoesNotExist", plate)
|
||||
return
|
||||
end
|
||||
|
||||
local timer = GetGameTimer()
|
||||
while (not NetworkDoesEntityExistWithNetworkId(netId)) do
|
||||
Citizen.Wait(0)
|
||||
|
||||
if (GetGameTimer() - 10000 > timer) then
|
||||
Log("Setting mods for " .. plate .. " failed after 10s")
|
||||
TriggerServerEvent("mh_Parking:setVehicleModsFailed", plate)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local vehicle = NetworkGetEntityFromNetworkId(netId)
|
||||
|
||||
if (DoesEntityExist(vehicle) and NetworkHasControlOfEntity(vehicle)) then
|
||||
Log("Setting modifications for vehicle " .. plate)
|
||||
|
||||
SetVehicleModifications(vehicle, plate, modifications)
|
||||
TriggerServerEvent("mh_Parking:setVehicleModsSuccess", plate)
|
||||
else
|
||||
Log("Setting mods failed for vehicle " .. plate .. ". Vehicle does not exist")
|
||||
TriggerServerEvent("mh_Parking:setVehicleModsFailed", plate)
|
||||
end
|
||||
end)
|
||||
|
||||
AddEventHandler("mh_Parking:updateVehicle", function(vehicle)
|
||||
if (vehicle == nil) then
|
||||
Log("^1[ERROR] \"vehicle\" was nil while trying to update a vehicle!")
|
||||
return
|
||||
end
|
||||
|
||||
if (DoesEntityExist(vehicle) and NetworkGetEntityIsNetworked(vehicle) and not IsVehicleBlacklisted(vehicle)) then
|
||||
Log("Triggering manual update of vehicle")
|
||||
|
||||
local networkId = NetworkGetNetworkIdFromEntity(vehicle)
|
||||
local modifications = GetVehicleModifications(vehicle)
|
||||
|
||||
TriggerServerEvent("mh_Parking:updateVehicle", networkId, modifications)
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("mh_Parking:enable")
|
||||
AddEventHandler("mh_Parking:enable", function(enable)
|
||||
if (enable == nil) then
|
||||
Log("^1[ERROR] \"enable\" was nil while trying to enable/disable script!")
|
||||
return
|
||||
end
|
||||
|
||||
enabled = enable
|
||||
|
||||
if (enabled) then
|
||||
Log("AdvancedParking enabled")
|
||||
else
|
||||
Log("AdvancedParking disabled")
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent("mh_Parking:notification")
|
||||
AddEventHandler("mh_Parking:notification", function(msg)
|
||||
SetNotificationTextEntry('STRING')
|
||||
AddTextComponentSubstringPlayerName(msg)
|
||||
DrawNotification(false, true)
|
||||
end)
|
||||
|
||||
RegisterNetEvent("mh_Parking:renderScorched")
|
||||
AddEventHandler("mh_Parking:renderScorched", function(vehicleNetId, scorched)
|
||||
local vehicle = NetworkGetEntityFromNetworkId(vehicleNetId)
|
||||
if (DoesEntityExist(vehicle)) then
|
||||
SetEntityRenderScorched(vehicle, scorched)
|
||||
end
|
||||
end)
|
Loading…
Add table
Add a link
Reference in a new issue