addTrigger
Definition
-- @/lua/ge/extensions/freeroam/specialTriggers.lua:109
local function addTrigger(key, data) -- creates data for a trigger; "key" should be the trigger or zone name
data = data or {}
triggers[key] = {
type = data.type or 'trigger', -- "trigger", "zone"
triggers = data.triggers, -- optional array of multiple trigger names
enabled = true,
active = false,
stack = 0,
vehIds = {}, -- table of occupying vehicle ids
subjectType = data.subjectType or 'player', -- "player", "notPlayer", "all"
subjectIds = data.subjectIds, -- optional table of valid vehicle ids to check for
enterCommand = data.enterCommand, -- GELua
exitCommand = data.exitCommand,
enterVehCommand = data.enterVehCommand, -- vLua
exitVehCommand = data.exitVehCommand
}
-- table of linked scenetree objects or SimGroups
if type(data.objects) == 'table' then
triggers[key].objects = {}
for k, v in pairs(data.objects) do
triggers[key].objects[k] = {
timer = -1,
stepTimer = -1,
currIdx = 0,
maxIdx = 0,
randomOrder = v.randomOrder and true or false,
enterDelay = tonumber(v.enterDelay) or 0,
exitDelay = tonumber(v.exitDelay) or 0,
enterRandomMin = tonumber(v.enterRandomMin) or 0,
enterRandomMax = tonumber(v.enterRandomMax) or 0,
exitRandomMin = tonumber(v.exitRandomMin) or 0,
exitRandomMax = tonumber(v.exitRandomMax) or 0
}
end
end
if data.triggers then -- creates aliases if there are multiple triggers assigned
for _, tName in ipairs(data.triggers) do
triggers[tName] = {alias = key, active = false}
end
end
processTriggerObjects(key)
end
Callers
@/lua/common/jbeam/sections/events.lua
_cleanupRows(ab)
local abid = vehicleObj:addTrigger()
if abid < 0 then
@/lua/ge/extensions/freeroam/specialTriggers.lua
for k, v in pairs(data) do
addTrigger(k, v)
end