OnPlayerEditAttachedObject

OnPlayerEditAttachedObject

Description:
Callback OnPlayerEditAttachedObject is called when a player ends attached object edition mode.
Callback OnPlayerEditAttachedObject was added in 0.3e and will not work in earlier versions!
Editions should be discarded if response was '0' (cancelled). This must be done by storing the offsets etc. in an array BEFORE using EditAttachedObject.


Parameters:
(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
int playerid The ID of the player that ended edition mode.
int response 0 if they cancelled (ESC) or 1 if they clicked the save icon.
int index -
int modelid The model of the attached object that was edited.
int boneid The bone of the attached object that was edited.
float fOffsetX The X offset for the attached object that was edited.
float fOffsetY The Y offset for the attached object that was edited.
float fOffsetZ The Z offset for the attached object that was edited.
float fRotX The X rotation for the attached object that was edited.
float fRotY The Y rotation for the attached object that was edited.
float fRotZ The Z rotation for the attached object that was edited.
float fScaleX The X scale for the attached object that was edited.
float fScaleY The Y scale for the attached object that was edited.
float fScaleZ The Z scale for the attached object that was edited.


Return Values:
  • 1 - Will prevent other scripts from receiving this callback.
  • 0 - Indicates that this callback will be passed to the next script.
  • It is always called first in filterscripts.


Examples:
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];
 
// The data should be stored in the above array when attached objects are attached.
 
public OnPlayerEditAttachedObject(playerid, 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, "Attached object edition saved.");
 
        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, "Attached object edition not saved.");
 
        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 0;
}


Related Functions
The following functions may be useful, as they are related to this function in one way or another.