mirror of
https://github.com/Michatec/wk_wars2x.git
synced 2026-04-01 08:26:27 +02:00
Fast label changes
When a speed is now locked, if the speed is a strong speed, then the fast label is not lit, if it is a fast speed then it stays lit.
This commit is contained in:
@@ -10,7 +10,7 @@ resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'
|
|||||||
name 'Wraith ARS 2X'
|
name 'Wraith ARS 2X'
|
||||||
description 'An advanced radar system for FiveM'
|
description 'An advanced radar system for FiveM'
|
||||||
author 'WolfKnight'
|
author 'WolfKnight'
|
||||||
version 'beta2a'
|
version 'beta2b'
|
||||||
|
|
||||||
ui_page "nui/radar.html"
|
ui_page "nui/radar.html"
|
||||||
|
|
||||||
|
|||||||
57
cl_radar.lua
57
cl_radar.lua
@@ -124,8 +124,9 @@ RADAR.vars =
|
|||||||
fastSpeed = 0, -- Speed of the fastest vehicle caught by the front antenna
|
fastSpeed = 0, -- Speed of the fastest vehicle caught by the front antenna
|
||||||
fastDir = nil, -- Direction the fastest vehicle is going
|
fastDir = nil, -- Direction the fastest vehicle is going
|
||||||
speedLocked = false, -- A speed has been locked for this antenna
|
speedLocked = false, -- A speed has been locked for this antenna
|
||||||
lockedSpeed = 0, -- The locked speed
|
lockedSpeed = nil, -- The locked speed
|
||||||
lockedDir = 0 -- The direction of the vehicle that was locked
|
lockedDir = nil, -- The direction of the vehicle that was locked
|
||||||
|
lockedType = nil -- The locked type, 1 = strongest, 2 = fastest
|
||||||
},
|
},
|
||||||
|
|
||||||
[ "rear" ] = {
|
[ "rear" ] = {
|
||||||
@@ -136,8 +137,9 @@ RADAR.vars =
|
|||||||
fastSpeed = 0, -- Speed of the fastest vehicle caught by the front antenna
|
fastSpeed = 0, -- Speed of the fastest vehicle caught by the front antenna
|
||||||
fastDir = nil, -- Direction the fastest vehicle is going
|
fastDir = nil, -- Direction the fastest vehicle is going
|
||||||
speedLocked = false, -- A speed has been locked for this antenna
|
speedLocked = false, -- A speed has been locked for this antenna
|
||||||
lockedSpeed = 0, -- The locked speed
|
lockedSpeed = nil, -- The locked speed
|
||||||
lockedDir = 0 -- The direction of the vehicle that was locked
|
lockedDir = nil, -- The direction of the vehicle that was locked
|
||||||
|
lockedType = nil -- The locked type, 1 = strongest, 2 = fastest
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -285,12 +287,18 @@ end
|
|||||||
|
|
||||||
-- Sends an update to the NUI side with the current state of the antennas and if the fast system is enabled
|
-- Sends an update to the NUI side with the current state of the antennas and if the fast system is enabled
|
||||||
function RADAR:SendSettingUpdate()
|
function RADAR:SendSettingUpdate()
|
||||||
-- Grab the antennas table and the fast system state
|
local antennas = {}
|
||||||
local antennas = self.vars.antennas
|
|
||||||
local fast = self:IsFastDisplayEnabled()
|
|
||||||
|
|
||||||
-- Send a message to the NUI side with the current state of the antennas and the fast mode
|
for ant in UTIL:Values( { "front", "rear" } ) do
|
||||||
SendNUIMessage( { _type = "settingUpdate", antennaData = antennas, fast = fast } )
|
antennas[ant] = {}
|
||||||
|
antennas[ant].xmit = self:IsAntennaTransmitting( ant )
|
||||||
|
antennas[ant].mode = self:GetAntennaMode( ant )
|
||||||
|
antennas[ant].speedLocked = self:IsAntennaSpeedLocked( ant )
|
||||||
|
antennas[ant].fast = self:ShouldFastBeDisplayed( ant )
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Send a message to the NUI side with the current state of the antennas
|
||||||
|
SendNUIMessage( { _type = "settingUpdate", antennaData = antennas } )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Returns if a main task can be performed
|
-- Returns if a main task can be performed
|
||||||
@@ -795,6 +803,15 @@ function RADAR:DoesAntennaHaveValidFastData( ant )
|
|||||||
return self:GetAntennaFastSpeed( ant ) ~= nil
|
return self:GetAntennaFastSpeed( ant ) ~= nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Returns if the fast label should be displayed
|
||||||
|
function RADAR:ShouldFastBeDisplayed( ant )
|
||||||
|
if ( self:IsAntennaSpeedLocked( ant ) ) then
|
||||||
|
return self:GetAntennaLockedType( ant ) == 2
|
||||||
|
else
|
||||||
|
return self:IsFastDisplayEnabled()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Returns if the given antenna has a locked speed
|
-- Returns if the given antenna has a locked speed
|
||||||
function RADAR:IsAntennaSpeedLocked( ant )
|
function RADAR:IsAntennaSpeedLocked( ant )
|
||||||
return self.vars.antennas[ant].speedLocked
|
return self.vars.antennas[ant].speedLocked
|
||||||
@@ -806,12 +823,13 @@ function RADAR:SetAntennaSpeedIsLocked( ant, state )
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Sets a speed and direction to be locked in for the given antenna
|
-- Sets a speed and direction to be locked in for the given antenna
|
||||||
function RADAR:SetAntennaSpeedLock( ant, speed, dir )
|
function RADAR:SetAntennaSpeedLock( ant, speed, dir, lockType )
|
||||||
-- Check that the passed speed and direction are actually valid
|
-- Check that the passed speed and direction are actually valid
|
||||||
if ( speed ~= nil and dir ~= nil ) then
|
if ( speed ~= nil and dir ~= nil and lockType ~= nil ) then
|
||||||
-- Set the locked speed and direction to the passed values
|
-- Set the locked speed and direction to the passed values
|
||||||
self.vars.antennas[ant].lockedSpeed = speed
|
self.vars.antennas[ant].lockedSpeed = speed
|
||||||
self.vars.antennas[ant].lockedDir = dir
|
self.vars.antennas[ant].lockedDir = dir
|
||||||
|
self.vars.antennas[ant].lockedType = lockType
|
||||||
|
|
||||||
-- Tell the system that a speed has been locked for the given antenna
|
-- Tell the system that a speed has been locked for the given antenna
|
||||||
self:SetAntennaSpeedIsLocked( ant, true )
|
self:SetAntennaSpeedIsLocked( ant, true )
|
||||||
@@ -831,11 +849,17 @@ function RADAR:GetAntennaLockedDir( ant )
|
|||||||
return self.vars.antennas[ant].lockedDir
|
return self.vars.antennas[ant].lockedDir
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Returns the lock type for the given antenna
|
||||||
|
function RADAR:GetAntennaLockedType( ant )
|
||||||
|
return self.vars.antennas[ant].lockedType
|
||||||
|
end
|
||||||
|
|
||||||
-- Resets the speed lock info to do with the given antenna
|
-- Resets the speed lock info to do with the given antenna
|
||||||
function RADAR:ResetAntennaSpeedLock( ant )
|
function RADAR:ResetAntennaSpeedLock( ant )
|
||||||
-- Blank the locked speed and direction
|
-- Blank the locked speed and direction
|
||||||
self.vars.antennas[ant].lockedSpeed = nil
|
self.vars.antennas[ant].lockedSpeed = nil
|
||||||
self.vars.antennas[ant].lockedDir = nil
|
self.vars.antennas[ant].lockedDir = nil
|
||||||
|
self.vars.antennas[ant].lockedType = nil
|
||||||
|
|
||||||
-- Set the locked state to false
|
-- Set the locked state to false
|
||||||
self:SetAntennaSpeedIsLocked( ant, false )
|
self:SetAntennaSpeedIsLocked( ant, false )
|
||||||
@@ -851,30 +875,33 @@ function RADAR:LockAntennaSpeed( ant )
|
|||||||
if ( self:IsAntennaSpeedLocked( ant ) ) then
|
if ( self:IsAntennaSpeedLocked( ant ) ) then
|
||||||
self:ResetAntennaSpeedLock( ant )
|
self:ResetAntennaSpeedLock( ant )
|
||||||
else
|
else
|
||||||
-- Set up a temporary table with 2 nil values, this way if the system isn't able to get a speed or
|
-- Set up a temporary table with 3 nil values, this way if the system isn't able to get a speed or
|
||||||
-- direction, the speed lock function won't work
|
-- direction, the speed lock function won't work
|
||||||
local data = { nil, nil }
|
local data = { nil, nil, nil }
|
||||||
|
|
||||||
-- As the lock system is based on which speed is displayed, we have to check if there is a speed in the
|
-- As the lock system is based on which speed is displayed, we have to check if there is a speed in the
|
||||||
-- fast box, if there is then we lock in the fast speed, otherwise we lock in the strongest speed
|
-- fast box, if there is then we lock in the fast speed, otherwise we lock in the strongest speed
|
||||||
if ( self:IsFastDisplayEnabled() and self:DoesAntennaHaveValidFastData( ant ) ) then
|
if ( self:IsFastDisplayEnabled() and self:DoesAntennaHaveValidFastData( ant ) ) then
|
||||||
data[1] = self:GetAntennaFastSpeed( ant )
|
data[1] = self:GetAntennaFastSpeed( ant )
|
||||||
data[2] = self:GetAntennaFastDir( ant )
|
data[2] = self:GetAntennaFastDir( ant )
|
||||||
|
data[3] = 2
|
||||||
else
|
else
|
||||||
data[1] = self:GetAntennaSpeed( ant )
|
data[1] = self:GetAntennaSpeed( ant )
|
||||||
data[2] = self:GetAntennaDir( ant )
|
data[2] = self:GetAntennaDir( ant )
|
||||||
|
data[3] = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Lock in the speed data for the antenna
|
-- Lock in the speed data for the antenna
|
||||||
self:SetAntennaSpeedLock( ant, data[1], data[2] )
|
self:SetAntennaSpeedLock( ant, data[1], data[2], data[3] )
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Attempt for fixing speed lock bugging every now and then, doesn't seem to happen as often
|
-- Attempt for fixing speed lock bugging every now and then, doesn't seem to happen as often
|
||||||
-- with this wait in place
|
-- with this wait in place
|
||||||
Citizen.Wait( 10 )
|
-- Citizen.Wait( 10 )
|
||||||
|
|
||||||
-- Send an NUI message to change the lock label, otherwise we'd have to wait until the next main loop
|
-- Send an NUI message to change the lock label, otherwise we'd have to wait until the next main loop
|
||||||
SendNUIMessage( { _type = "antennaLock", ant = ant, state = self:IsAntennaSpeedLocked( ant ) } )
|
SendNUIMessage( { _type = "antennaLock", ant = ant, state = self:IsAntennaSpeedLocked( ant ) } )
|
||||||
|
SendNUIMessage( { _type = "antennaFast", ant = ant, state = self:ShouldFastBeDisplayed( ant ) } )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
beta2a
|
beta2b
|
||||||
@@ -289,13 +289,13 @@ function menu( optionText, option )
|
|||||||
elements.patrolSpeed.html( option );
|
elements.patrolSpeed.html( option );
|
||||||
}
|
}
|
||||||
|
|
||||||
function settingUpdate( ants, fast )
|
function settingUpdate( ants )
|
||||||
{
|
{
|
||||||
for ( let ant in ants )
|
for ( let ant in ants )
|
||||||
{
|
{
|
||||||
setAntennaXmit( ant, ants[ant].xmit );
|
setAntennaXmit( ant, ants[ant].xmit );
|
||||||
setAntennaMode( ant, ants[ant].mode );
|
setAntennaMode( ant, ants[ant].mode );
|
||||||
setAntennaFastMode( ant, fast );
|
setAntennaFastMode( ant, ants[ant].fast );
|
||||||
setAntennaLock( ant, ants[ant].speedLocked );
|
setAntennaLock( ant, ants[ant].speedLocked );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -433,12 +433,15 @@ window.addEventListener( "message", function( event ) {
|
|||||||
break;
|
break;
|
||||||
case "antennaLock":
|
case "antennaLock":
|
||||||
setAntennaLock( item.ant, item.state );
|
setAntennaLock( item.ant, item.state );
|
||||||
|
break;
|
||||||
|
case "antennaFast":
|
||||||
|
setAntennaFastMode( item.ant, item.state );
|
||||||
break;
|
break;
|
||||||
case "menu":
|
case "menu":
|
||||||
menu( item.text, item.option );
|
menu( item.text, item.option );
|
||||||
break;
|
break;
|
||||||
case "settingUpdate":
|
case "settingUpdate":
|
||||||
settingUpdate( item.antennaData, item.fast );
|
settingUpdate( item.antennaData );
|
||||||
break;
|
break;
|
||||||
case "audio":
|
case "audio":
|
||||||
playAudio( item.name, item.vol );
|
playAudio( item.name, item.vol );
|
||||||
|
|||||||
Reference in New Issue
Block a user