پرش به مطلب اصلی

OnPlayerEditAttachedObject

توضیحات​

این کالبک زمانی فراخوانده می‌شود که بازیکن حالت ویرایش شیء متصل شده را پایان می‌دهد.

نامتوضیحات
playeridشناسه بازیکنی که حالت ویرایش را پایان داد
EDIT_RESPONSE:response0 اگر آنها لغو کرده‌اند (ESC) یا 1 اگر آیکون ذخیره را کلیک کرده‌اند
indexاندیس شیء متصل شده (0-9)
modelidمدل شیء متصل شده‌ای که ویرایش شد
boneidاستخوان شیء متصل شده‌ای که ویرایش شد
Float:fOffsetXافست X برای شیء متصل شده‌ای که ویرایش شد
Float:fOffsetYافست Y برای شیء متصل شده‌ای که ویرایش شد
Float:fOffsetZافست Z برای شیء متصل شده‌ای که ویرایش شد
Float:fRotXچرخش X برای شیء متصل شده‌ای که ویرایش شد
Float:fRotYچرخش Y برای شیء متصل شده‌ای که ویرایش شد
Float:fRotZچرخش Z برای شیء متصل شده‌ای که ویرایش شد
Float:fScaleXمقیاس X برای شیء متصل شده‌ای که ویرایش شد
Float:fScaleYمقیاس Y برای شیء متصل شده‌ای که ویرایش شد
Float:fScaleZمقیاس Z برای شیء متصل شده‌ای که ویرایش شد

مقادیر برگشتی​

1 - مانع از دریافت این کالبک توسط اسکریپت‌های دیگر می‌شود.

0 - نشان می‌دهد که این کالبک به اسکریپت بعدی منتقل خواهد شد.

همیشه ابتدا در فیلتراسکریپت‌ها فراخوانده می‌شود.

مثال‌ها​

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, 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 == EDIT_RESPONSE_FINAL)
{
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 if (response == EDIT_RESPONSE_CANCEL)
{
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 1;
}

نکته‌ها​

هشدار

ویرایش‌ها باید در صورتی که پاسخ '0' (لغو شده) بود، نادیده گرفته شوند. این کار باید با ذخیره کردن افست‌ها و غیره در یک آرایه قبل از استفاده از EditAttachedObject انجام شود.

توابع مرتبط​

توابع زیر ممکن است مفید باشند، زیرا به نوعی با این کالبک در ارتباط هستند.