---
title: "OnPlayerEditAttachedObject | open.mp"
description: "Esta callback é chamada quando um jogador termina o modo de edição de objetos anexados."
canonical: https://omp.itsneufox.com/pt-BR/docs/scripting/callbacks/OnPlayerEditAttachedObject
language: pt-BR
---

# OnPlayerEditAttachedObject

## Descrição

Esta callback é chamada quando um jogador termina o modo de edição de objetos anexados.

| Name | Descrição |
| --- | --- |
| playerid | O ID do jogador que terminou a edição |
| EDIT\_RESPONSE:response | 0 se foi cancelado (ESC), ou 1 se o botão de salvar foi clicado. |
| index | The index of the attached object (0-9) |
| modelid | O modelo do objeto que foi anexado |
| boneid | O ID da parte em que o modelo foi anexado |
| Float:fOffsetX | O desclocamento de X para o objeto editado. |
| Float:fOffsetY | O desclocamento de Y para o objeto editado. |
| Float:fOffsetZ | O desclocamento de Z para o objeto editado. |
| Float:fRotX | A rotação de X para o objeto editado. |
| Float:fRotY | A rotação de Y para o objeto editado. |
| Float:fRotZ | A rotação de Z para o objeto editado. |
| Float:fScaleX | A escala de X para o objeto editado. |
| Float:fScaleY | A escala de Y para o objeto editado. |
| Float:fScaleZ | A escala de Z para o objeto editado. |

## Retorno

1 - Irá previnir que outro filterscript receba esta callback.

0 - Indica que esta callback será passada para o próximo filterscript.

Sempre é chamada primeiro em filterscripts.

## Exemplos

```c
enum attached_object_data
{
    Float:ao_x,
    Float:ao_y,
    Float:ao_z,
    Float:ao_rx,
    Float:ao_ry,
    Float:ao_rz,
    Float:ao_sx,
    Float:ao_sy,
    Float:ao_sz
}

new ao[MAX_PLAYERS][MAX_PLAYER_ATTACHED_OBJECTS][attached_object_data];

// Os dados devem ser armazenados na array acima.

public OnPlayerEditAttachedObject(playerid, EDIT_RESPONSE:response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
{
    if (response)
    {
        SendClientMessage(playerid, COLOR_GREEN, "Anexo de objeto salvo.");

        ao[playerid][index][ao_x] = fOffsetX;
        ao[playerid][index][ao_y] = fOffsetY;
        ao[playerid][index][ao_z] = fOffsetZ;
        ao[playerid][index][ao_rx] = fRotX;
        ao[playerid][index][ao_ry] = fRotY;
        ao[playerid][index][ao_rz] = fRotZ;
        ao[playerid][index][ao_sx] = fScaleX;
        ao[playerid][index][ao_sy] = fScaleY;
        ao[playerid][index][ao_sz] = fScaleZ;
    }
    else
    {
        SendClientMessage(playerid, COLOR_RED, "Anexo de objeto não salvo.");

        new i = index;
        SetPlayerAttachedObject(playerid, index, modelid, boneid, ao[playerid][i][ao_x], ao[playerid][i][ao_y], ao[playerid][i][ao_z], ao[playerid][i][ao_rx], ao[playerid][i][ao_ry], ao[playerid][i][ao_rz], ao[playerid][i][ao_sx], ao[playerid][i][ao_sy], ao[playerid][i][ao_sz]);
    }
    return 1;
}
```

## Notas

aviso

Edições devem ser discartadas se a resposta for '0' (cancelado). Isso deve ser feito armazenando os valores em uma arrat ANTES de usar EditAttachedObject.

## Funções Relacionadas

-   [EditAttachedObject](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/EditAttachedObject): Edita um objeto anexado.
-   [SetPlayerAttachedObject](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/SetPlayerAttachedObject): Anexa um objeto a um jogador.
