Skip to main content

Exports et événements

Exports serveur

-- Un foyer → fireId, incidentId (ou nil, erreur)
local fireId, incId = exports.MasterFire:CreateFire(coords, 'liquid', {
    size = 20, preset = nil, label = 'Station-service', dispatch = true,
    difficulty = 1.0, spreadChance = 35, bleve = false, visual = nil,
})

-- Plusieurs foyers = une intervention (un appel, un rapport) → incidentId, fireIds
local incId, fireIds = exports.MasterFire:CreateIncident({ c1, c2, c3 }, nil, { preset = 'house', dispatch = true })

exports.MasterFire:RemoveIncident(incId)
exports.MasterFire:RemoveFire(fireId)
exports.MasterFire:RemoveAllFires()

exports.MasterFire:GetIncidents()               -- interventions en cours (résumé)
exports.MasterFire:GetFire(fireId)              -- foyer : flammes, phase, chaleur, intérieur, BLEVE…
exports.MasterFire:GetFires()
exports.MasterFire:GetNearestFire(coords, radius) -- → foyer, distance
exports.MasterFire:IsOnFire(coords, radius)
exports.MasterFire:IsLicensed()

-- Appel de confiance (canon, échelle, bras élévateur) : pas de contrôle de portée
local flammes = exports.MasterFire:ApplyAgent('cannon', impact, 2.5, 1.0, sourceJoueur)

exports.MasterFire:StartScenario(scenarioId, dispatch) -- → incidentId
exports.MasterFire:SetSpawner(true)

Erreurs possibles : license (licence non validée), limit (trop de feux), origins (foyers invalides), type, coords.

Exports client

exports.MasterFire:SprayAt('water', impact, 1.5)          -- validé par le serveur
exports.MasterFire:SetBreathingApparatus(true [, silencieux])
exports.MasterFire:HasBreathingApparatus()
exports.MasterFire:GetNearestFlame(coords, radius)        -- → fireId, flameId, distance
exports.MasterFire:IsNearFire(coords, radius)
exports.MasterFire:GetFires()

Événements serveur (AddEventHandler)

Événement Paramètres
masterfire:server:incidentStarted incidentId, { label, type, coords, fires, scenarioId }
masterfire:server:incidentClosed incidentId, résumé (outcome extinguished / burned_out / cancelled, durée, intervenants, agents, phénomènes…)
masterfire:server:fireCreated fireId, { type, coords, size, scenarioId, incidentId }
masterfire:server:fireRemoved fireId, raison, { scenarioId, incidentId }
masterfire:server:phaseChanged fireId, nouvellePhase, anciennePhase
masterfire:server:phenomenon fireId, 'flashover' | 'backdraft' | 'bleve'
masterfire:server:dispatch { incidentId, label, typeLabel, foyers, coords, jobs }
masterfire:server:licenseChanged valide