# addEventHandler (Compartido)

> 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.

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

## Sintaxis

```lua
bool addEventHandler(string eventName, element attachedTo, function handler [, bool propagate = true, string priority = "normal"])
```

## Parámetros

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `eventName` | `string` | Nombre de un evento registrado (integrado o creado con `addEvent`). |
| `attachedTo` | `element` | Elemento que escucha el handler. Usa `root` para oír el evento en cualquier elemento. |
| `handler` | `function` | Función que se llama con los argumentos del evento. |
| `propagate` | `bool` | Llamarse también cuando el evento ocurre en un descendiente de `attachedTo`. Con `false`, solo cuando la fuente es el propio `attachedTo`. *(por defecto: `true`)* |
| `priority` | `string` | `"high"`, `"normal"` o `"low"`. Los handlers de mayor prioridad se ejecutan antes; entre iguales, en el orden en que se añadieron. *(por defecto: `"normal"`)* |

## Retorno

`true` si lo añadió, `false` si el evento no existe o esa función ya está en ese evento de ese elemento.

Dentro del handler, las globales `source` (donde ocurrió el evento), `this` (el elemento al que está unido el handler), `eventName`, `client` (en el servidor, el jugador que disparó un evento remoto) y `sourceResource` dicen de dónde vino el evento. Los handlers de un recurso se eliminan cuando se detiene.

## Ejemplo

```lua
addEventHandler("onPlayerJoin", root, function()
    outputDebugString(getPlayerName(source) .. " joined")
end, true, "high")
```

### Si vienes de MTA

Solo cuentan los nombres `high`, `normal` y `low`. Un ajuste como `"high+5"` vale lo mismo que `"normal"`.

## Ver también

- [removeEventHandler (Compartido)](https://wiki.mymp.gg/es/removeEventHandler.md): Quita una función de un evento de un elemento, donde la puso addEventHandler.
- [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.
- [triggerEvent (Compartido)](https://wiki.mymp.gg/es/triggerEvent.md): 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.
- [getEventHandlers (Compartido)](https://wiki.mymp.gg/es/getEventHandlers.md): Lista las funciones que este recurso puso en un evento de un elemento con addEventHandler.
