# triggerEvent (Compartilhado)

> Dispara um evento neste lado, em `source`. Os handlers do próprio elemento e os de seus ancestrais que propagam são chamados na hora, antes de a função retornar.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Compartilhado
- **Categoria**: Eventos
- **URL**: https://wiki.mymp.gg/pt/triggerEvent

## Sintaxe

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

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `eventName` | `string` | Nome de um evento registrado. |
| `source` | `element` | Elemento onde o evento acontece. Vira a global `source` dos handlers. |
| `...` | `any` | Argumentos passados a cada handler. |

## Retorno

`false` se o evento não existe ou se algum handler o cancelou com `cancelEvent`, senão `true`.

Para levar um evento ao outro lado, use `triggerServerEvent` ou `triggerClientEvent`. Nos handlers, `sourceResource` é o recurso que chamou `triggerEvent`.

## Exemplo

```lua
addEvent("onRaceFinish")

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

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

## Veja também

- [addEvent (Compartilhado)](https://wiki.mymp.gg/pt/addEvent.md): Registra um evento novo com esse nome. Só depois disso é possível adicionar handlers a ele e dispará-lo.
- [addEventHandler (Compartilhado)](https://wiki.mymp.gg/pt/addEventHandler.md): Faz uma função ser chamada sempre que o evento acontece no elemento indicado ou, com propagate, em qualquer descendente dele.
- [cancelEvent (Compartilhado)](https://wiki.mymp.gg/pt/cancelEvent.md): Marca o evento que está rodando como cancelado. O que o cancelamento impede depende do evento.
- [triggerClientEvent (Servidor)](https://wiki.mymp.gg/pt/triggerClientEvent.md): Envia um evento aos clientes dos jogadores, que o disparam em source. A função retorna antes de os clientes receberem.
