# Intégrations

## MasterLadder
La lance canon de la nacelle éteint les feux MasterFire : chaque impact compte comme agent `cannon`, avec son efficacité selon le type de feu, et le porteur de la lance est crédité dans le rapport d'intervention.

Côté MasterLadder (`config/config.lua`) :
```lua
Config.WaterMonitor = {
    -- …
    masterFire = { enabled = true, resource = "MasterFire", radius = 3.0, multiplier = 1.0 },
}
```

## Scripts de lance à incendie
Deux possibilités :
- le script appelle l'export client `SprayAt` pendant que l'eau coule (environ toutes les 250 ms) :
  ```lua
  exports.MasterFire:SprayAt('water', pointImpact, 1.5)
  ```
- sans intégration : si le script éteint les feux natifs de GTA (`StopFireInRange`), MasterFire le détecte et compte un impact d'eau pour le joueur à portée (`Config.ReportUnknownAsWater`).

## Appareil respiratoire (ARI)
L'ARI protège des dégâts de fumée (pas de la perte de visibilité). Un script d'ARI le déclare côté client :
```lua
exports.MasterFire:SetBreathingApparatus(true)   -- ou false à la dépose
-- ou :
LocalPlayer.state:set('masterfire:scba', true, true)
```

## Dispatch
- `Config.DispatchSystem = "ps-dispatch"` ou `"cd_dispatch"` : les appels partent vers ces scripts, pour les métiers qui ont l'action `dispatch`.
- Autre système : `Config.DispatchSystem = "none"` et écoutez l'événement serveur :
```lua
AddEventHandler('masterfire:server:dispatch', function(data)
    -- data.incidentId, data.label, data.typeLabel, data.foyers, data.coords, data.jobs
end)
```

## Autres scripts (braquages, accidents…)
```lua
-- feu de véhicule après un accident, avec appel des pompiers
exports.MasterFire:CreateFire(coords, nil, { preset = 'car', dispatch = true })
```
Voir [Exports et événements](exports-et-evenements).