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.
- EditAttachedObject: Edit an attached object.
- SetPlayerAttachedObject: Attach an object to a player.