Removed old stage code from RADAR:Main(), changed thread wait

This commit is contained in:
Dan
2019-12-03 14:48:44 +00:00
parent 4ae2fe41b1
commit 95fd11ed21

View File

@@ -926,7 +926,7 @@ Citizen.CreateThread( function()
while ( true ) do while ( true ) do
RADAR:RunDynamicThreadWaitCheck() RADAR:RunDynamicThreadWaitCheck()
Citizen.Wait( 2500 ) Citizen.Wait( 2000 )
end end
end ) end )
@@ -958,98 +958,83 @@ end )
function RADAR:Main() function RADAR:Main()
-- Check to make sure the player is in the driver's seat, and also that the vehicle has a class of VC_EMERGENCY (18) -- Check to make sure the player is in the driver's seat, and also that the vehicle has a class of VC_EMERGENCY (18)
if ( DoesEntityExist( PLY.veh ) and PLY.inDriverSeat and PLY.vehClassValid and self:CanPerformMainTask() ) then if ( DoesEntityExist( PLY.veh ) and PLY.inDriverSeat and PLY.vehClassValid and self:CanPerformMainTask() ) then
-- local plyVehPos = GetEntityCoords( PLY.veh ) local data = {}
-- First stage of the radar - get all of the vehicles hit by the radar -- Get the player's vehicle speed
--if ( self:GetRadarStage() == 0 ) then local entSpeed = GetEntitySpeed( PLY.veh )
--[[if ( self:GetRayTraceState() == 0 ) then self:SetPatrolSpeed( entSpeed )
local vehs = self:GetVehiclePool()
self:ResetCapturedVehicles() if ( entSpeed == 0 ) then
self:ResetRayTraceState() data.patrolSpeed = "¦[]"
self:CreateRayThreads( PLY.veh, vehs ) else
elseif ( self:GetRayTraceState() == self:GetNumOfRays() ) then local speed = self:GetVehSpeedFormatted( entSpeed )
self:IncreaseRadarStage()]] data.patrolSpeed = UTIL:FormatSpeed( speed )
--end end
--elseif ( self:GetRadarStage() == 1 ) then
local data = {}
-- Get the player's vehicle speed -- Only grab data to send if there have actually been vehicles captured by the radar
local entSpeed = GetEntitySpeed( PLY.veh ) if ( not UTIL:IsTableEmpty( self:GetCapturedVehicles() ) ) then
self:SetPatrolSpeed( entSpeed ) local vehsForDisplay = self:GetVehiclesForAntenna()
if ( entSpeed == 0 ) then self:SetActiveVehicles( vehsForDisplay )
data.patrolSpeed = "¦[]" else
else self:SetActiveVehicles( { ["front"] = { nil, nil }, ["rear"] = { nil, nil } } )
local speed = self:GetVehSpeedFormatted( entSpeed ) end
data.patrolSpeed = UTIL:FormatSpeed( speed )
end
-- Only grab data to send if there have actually been vehicles captured by the radar -- Work out what has to be sent
if ( not UTIL:IsTableEmpty( self:GetCapturedVehicles() ) ) then local av = self:GetActiveVehicles()
local vehsForDisplay = self:GetVehiclesForAntenna() data.antennas = { ["front"] = nil, ["rear"] = nil }
self:SetActiveVehicles( vehsForDisplay ) for ant in UTIL:Values( { "front", "rear" } ) do
else if ( self:IsAntennaTransmitting( ant ) ) then
self:SetActiveVehicles( { ["front"] = { nil, nil }, ["rear"] = { nil, nil } } ) data.antennas[ant] = {}
end
-- Work out what has to be sent for i = 1, 2 do
local av = self:GetActiveVehicles() data.antennas[ant][i] = { speed = "¦¦¦", dir = 0 }
data.antennas = { ["front"] = nil, ["rear"] = nil }
for ant in UTIL:Values( { "front", "rear" } ) do if ( i == 2 and self:IsAntennaSpeedLocked( ant ) ) then
if ( self:IsAntennaTransmitting( ant ) ) then data.antennas[ant][i].speed = self.vars.antennas[ant].lockedSpeed
data.antennas[ant] = {} data.antennas[ant][i].dir = self.vars.antennas[ant].lockedDir
else
-- The vehicle data exists for this slot
if ( av[ant][i] ~= nil ) then
-- We already have the vehicle speed as we needed it earlier on for filtering
local uSpeed = GetEntitySpeed( av[ant][i].veh )
data.antennas[ant][i].speed = UTIL:FormatSpeed( self:GetVehSpeedFormatted( uSpeed ) )
for i = 1, 2 do -- Work out if the vehicle is closing or away
data.antennas[ant][i] = { speed = "¦¦¦", dir = 0 } local ownH = UTIL:Round( GetEntityHeading( PLY.veh ), 0 )
local tarH = UTIL:Round( GetEntityHeading( av[ant][i].veh ), 0 )
data.antennas[ant][i].dir = UTIL:GetEntityRelativeDirection( ownH, tarH )
if ( i == 2 and self:IsAntennaSpeedLocked( ant ) ) then -- Set the internal antenna data as this actual dataset is valid
data.antennas[ant][i].speed = self.vars.antennas[ant].lockedSpeed if ( i % 2 == 0 ) then
data.antennas[ant][i].dir = self.vars.antennas[ant].lockedDir self:SetAntennaFastSpeed( ant, data.antennas[ant][i].speed )
else self:SetAntennaFastDir( ant, data.antennas[ant][i].dir )
-- The vehicle data exists for this slot
if ( av[ant][i] ~= nil ) then
-- We already have the vehicle speed as we needed it earlier on for filtering
local uSpeed = GetEntitySpeed( av[ant][i].veh )
data.antennas[ant][i].speed = UTIL:FormatSpeed( self:GetVehSpeedFormatted( uSpeed ) )
-- Work out if the vehicle is closing or away
local ownH = UTIL:Round( GetEntityHeading( PLY.veh ), 0 )
local tarH = UTIL:Round( GetEntityHeading( av[ant][i].veh ), 0 )
data.antennas[ant][i].dir = UTIL:GetEntityRelativeDirection( ownH, tarH )
-- Set the internal antenna data as this actual dataset is valid
if ( i % 2 == 0 ) then
self:SetAntennaFastSpeed( ant, data.antennas[ant][i].speed )
self:SetAntennaFastDir( ant, data.antennas[ant][i].dir )
else
self:SetAntennaSpeed( ant, data.antennas[ant][i].speed )
self:SetAntennaDir( ant, data.antennas[ant][i].dir )
end
else else
-- If the active vehicle is not valid, we reset the internal data self:SetAntennaSpeed( ant, data.antennas[ant][i].speed )
if ( i % 2 == 0 ) then self:SetAntennaDir( ant, data.antennas[ant][i].dir )
self:SetAntennaFastSpeed( ant, nil ) end
self:SetAntennaFastDir( ant, nil ) else
else -- If the active vehicle is not valid, we reset the internal data
self:SetAntennaSpeed( ant, nil ) if ( i % 2 == 0 ) then
self:SetAntennaDir( ant, nil ) self:SetAntennaFastSpeed( ant, nil )
end self:SetAntennaFastDir( ant, nil )
else
self:SetAntennaSpeed( ant, nil )
self:SetAntennaDir( ant, nil )
end end
end end
end end
end end
end end
end
-- Send the update to the NUI side -- Send the update to the NUI side
SendNUIMessage( { _type = "update", speed = data.patrolSpeed, antennas = data.antennas } ) SendNUIMessage( { _type = "update", speed = data.patrolSpeed, antennas = data.antennas } )
self:ResetTempVehicleIDs() self:ResetTempVehicleIDs()
self:ResetRadarStage() self:ResetRadarStage()
self:ResetRayTraceState() self:ResetRayTraceState()
--end
end end
end end