setupPursuitGameplay
Definition
-- @/lua/ge/extensions/gameplay/police.lua:413
local function setupPursuitGameplay(suspectId, policeIds, options) -- helper function for setting up pursuit gameplay
-- sets traffic data for suspect and police vehicles; prevents the suspect from respawning
options = options or {}
options.playerId = options.playerId or be:getPlayerVehicleID(0)
options.pursuitMode = options.pursuitMode or 2 -- default pursuit mode
options.preventAutoStart = options.preventAutoStart and true or false -- prevents the pursuit from automatically starting
if not suspectId then
suspectId = be:getPlayerVehicleID(0) -- assumes that the player vehicle should be the suspect
end
gameplay_traffic.insertTraffic(suspectId, suspectId == options.playerId, true) -- the third argument prevents the vehicle from becoming deactivated due to the vehicle pooling system
local veh = gameplay_traffic.getTrafficData()[suspectId]
if veh then
veh.enableRespawn = false
veh:setRole('suspect')
veh.role.pursuitMode = options.pursuitMode
if veh.pursuit.mode ~= 0 then
setPursuitMode(0, suspectId) -- resets the pursuit mode if it was active
end
if not options.preventAutoStart then
veh.role:setAction('watchPolice')
veh.role.flags.driveCheck = 1 -- special flag that delays the pursuit if the vehicle is not driving
end
else
log('W', logTag, string.format('Failed to start pursuit gameplay, suspect vehicle not found: %d', suspectId))
return false
end
-- if policeIds is not provided, uses current existing police vehicles
if policeIds then
for _, id in ipairs(policeIds) do
gameplay_traffic.insertTraffic(id, id == options.playerId, true)
veh = gameplay_traffic.getTrafficData()[id]
if veh then
veh:setRole('police') -- force sets police role
end
end
end
if not next(policeVehs) then
log('W', logTag, 'Failed to start pursuit gameplay, no police vehicles exist!')
return false
end
return true
end
Callers
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/setupPursuitGameplay.lua
local options = {pursuitMode = self.pinIn.pursuitMode.value, preventAutoStart = self.pinIn.preventAutoStart.value}
self.pinOut.success.value = gameplay_police.setupPursuitGameplay(suspectId, policeIds, options)
self.pinOut.fail.value = not self.pinOut.success.value