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

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 انجام شود.

توابع مرتبط

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