Saltar al contenido principal

OnPlayerEditAttachedObject

Descripción

Este callback se llama cuando un jugador sale del modo edición de objetos adjuntos.

NombreDescripción
playeridEl ID del jugador que salió del modo de edición.
EDIT_RESPONSE:response0 si canceló o 1 si clickeó el ícono de guardar.
indexThe index of the attached object (0-9)
modelidEl modelo del objeto adjunto que fue editado.
boneidEl hueso del objeto adjunto que fue editado.
Float:fOffsetXLa coordenada X para el objeto adjunto que fue editado.
Float:fOffsetYLa coordenada Y para el objeto adjunto que fue editado.
Float:fOffsetZLa coordenada Z para el objeto adjunto que fue editado.
Float:fRotXLa rotación X para el objeto adjunto que fue editado.
Float:fRotYLa rotación Y para el objeto adjunto que fue editado.
Float:fRotZLa rotación Z para el objeto adjunto que fue editado.
Float:fScaleXLa escala X para el objeto adjunto que fue editado.
Float:fScaleYLa escala Y para el objeto adjunto que fue editado.
Float:fScaleZLa escala Z para el objeto adjunto que fue editado.

Devoluciones

1 - Prevendrá a otros filterscripts de recibir este callback.

0 - Indica que este callback será pasado al siguiente filterscript.

Siempre se llama primero en filterscripts.

Ejemplos

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];

// Los datos deberían ser guardados en el array anterior cuando objetos son adjuntados.

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, "Edición de objeto adjunto guardada.");

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, "Edición de objeto adjunto no guardada.");

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

Las ediciones deberían descartarse si response fue '0' (cancelado). Esto debe hacerse almacenando los valores en un array ANTES de usar EditAttachedObject.

Funciones Relacionadas