GE Lua Documentation

Press F to search!

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