Pular para o conteúdo principal

OnPlayerEditAttachedObject

Descrição

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

NameDescrição
playeridO ID do jogador que terminou a edição
EDIT_RESPONSE:response0 se foi cancelado (ESC), ou 1 se o botão de salvar foi clicado.
indexThe index of the attached object (0-9)
modelidO modelo do objeto que foi anexado
boneidO ID da parte em que o modelo foi anexado
Float:fOffsetXO desclocamento de X para o objeto editado.
Float:fOffsetYO desclocamento de Y para o objeto editado.
Float:fOffsetZO desclocamento de Z para o objeto editado.
Float:fRotXA rotação de X para o objeto editado.
Float:fRotYA rotação de Y para o objeto editado.
Float:fRotZA rotação de Z para o objeto editado.
Float:fScaleXA escala de X para o objeto editado.
Float:fScaleYA escala de Y para o objeto editado.
Float:fScaleZA 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

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

atenção

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