---
title: "OnPlayerEditObject | open.mp"
description: "Esta callback é chamada quando um jogador termina de editar um objeto (EditObject/EditPlayerObject)."
canonical: https://omp.itsneufox.com/pt-BR/docs/scripting/callbacks/OnPlayerEditObject
language: pt-BR
---

# OnPlayerEditObject

## Descição

Esta callback é chamada quando um jogador termina de editar um objeto (EditObject/EditPlayerObject).

| Name | Descrição |
| --- | --- |
| playerid | O ID do jogador que edtiou um objeto |
| playerobject | 0 se for global, ou 1 se for um playerobject. |
| objectid | O ID do objeto que foi editado. |
| EDIT\_RESPONSE:response | O [tipo de resposta](https://omp.itsneufox.com/pt-BR/docs/scripting/resources/objecteditionresponsetypes) |
| Float:fX | O desclocamento de X para o objeto editado. |
| Float:fY | O desclocamento de Y para o objeto editado. |
| Float:fZ | 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. |

## 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
public OnPlayerEditObject(playerid, playerobject, objectid, EDIT_RESPONSE:response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
    new
        Float: oldX,
        Float: oldY,
        Float: oldZ,
        Float: oldRotX,
        Float: oldRotY,
        Float: oldRotZ;

    GetObjectPos(objectid, oldX, oldY, oldZ);
    GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
    if (!playerobject) // Se for um objeto global, sincronize a posição para os outros jogadores
    {
        if (!IsValidObject(objectid))
        {
            return 1;
        }
        SetObjectPos(objectid, fX, fY, fZ);
        SetObjectRot(objectid, fRotX, fRotY, fRotZ);
    }

    switch (response)
    {
        case EDIT_RESPONSE_FINAL:
        {
            // O jogador clicou no botão de salvar
            // Faça qualquer coisa aqui para salvar o objeto (posição, rotação etc.)
        }

        case EDIT_RESPONSE_CANCEL:
        {
            //O jogador canceloun então coloque o objeto de volta na velha posição
            if (!playerobject) //Object is not a playerobject
            {
                SetObjectPos(objectid, oldX, oldY, oldZ);
                SetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
            }
            else
            {
                SetPlayerObjectPos(playerid, objectid, oldX, oldY, oldZ);
                SetPlayerObjectRot(playerid, objectid, oldRotX, oldRotY, oldRotZ);
            }
        }
    }
    return 1;
}
```

## Notas

aviso

Ao usar 'EDIT\_RESPONSE\_UPDATE' fique ciente que esta callback não será chamada quando sair de uma edição em progresso resultando na última atualização do 'EDIT\_RESPONSE\_UPDATE' ficando fora de sincronia com os objetos.

## Funções Relacionadas

-   [EditObject](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/EditObject): Edita um objeto.
-   [CreateObject](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/CreateObject): Cria um objeto.
-   [DestroyObject](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/DestroyObject): Destroi um objeto.
-   [MoveObject](https://omp.itsneufox.com/pt-BR/docs/scripting/functions/MoveObject): Move um objeto.

## Recursos relacionados

-   [Tipos de Resposta da Edição de Objeto](https://omp.itsneufox.com/pt-BR/docs/scripting/resources/objecteditionresponsetypes)
