# triggerEvent (Compartido)

> Dispara un evento en este lado, en `source`. Los handlers del propio elemento y los de sus ancestros que propagan se llaman en el acto, antes de que la función vuelva.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Función Lua
- **Lado**: Compartido
- **Categoría**: Eventos
- **URL**: https://wiki.mymp.gg/es/triggerEvent

## Sintaxis

```lua
bool triggerEvent(string eventName, element source, any ...)
```

## Parámetros

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `eventName` | `string` | Nombre de un evento registrado. |
| `source` | `element` | Elemento donde ocurre el evento. Pasa a ser la global `source` de los handlers. |
| `...` | `any` | Argumentos pasados a cada handler. |

## Retorno

`false` si el evento no existe o algún handler lo canceló con `cancelEvent`; si no, `true`.

Para llevar un evento al otro lado, usa `triggerServerEvent` o `triggerClientEvent`. En los handlers, `sourceResource` es el recurso que llamó a `triggerEvent`.

## Ejemplo

```lua
addEvent("onRaceFinish")

addEventHandler("onRaceFinish", root, function(position)
    if position > 3 then
        cancelEvent(true, "no podium")
    end
end)

local podium = triggerEvent("onRaceFinish", resourceRoot, 2)
```

## Ver también

- [addEvent (Compartido)](https://wiki.mymp.gg/es/addEvent.md): Registra un evento nuevo con este nombre. Solo entonces se le pueden añadir handlers y dispararlo.
- [addEventHandler (Compartido)](https://wiki.mymp.gg/es/addEventHandler.md): Hace que una función se llame cada vez que el evento ocurre en el elemento indicado o, con propagate, en cualquiera de sus descendientes.
- [cancelEvent (Compartido)](https://wiki.mymp.gg/es/cancelEvent.md): Marca el evento en curso como cancelado. Lo que impide la cancelación depende del evento.
- [triggerClientEvent (Servidor)](https://wiki.mymp.gg/es/triggerClientEvent.md): Envía un evento a los clientes de los jugadores, que lo disparan en source. La función vuelve antes de que los clientes lo reciban.
