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

PutPlayerInVehicle

توضیحات

یک بازیکن رو در وسیله نقلیه قرار می‌ده.

نامتوضیحات
playeridآی‌دی بازیکنی که باید در وسیله نقلیه قرار بگیره.
vehicleidآی‌دی وسیله نقلیه ای که بازیکن باید توش قرار بگیره.
seatidآی‌دی صندلی که بازیکن باید روی قرار بگیره.

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

true - تابع با موفقیت اجرا شد.

false - تابع اجرا نشد. بازیکن یا وسیله نقلیه وجود نداره.

مثال‌ها

// Global array baraye radgirigiye inke kodum vehicle motealeq be har player hast.
// INVALID_VEHICLE_ID baraye placeholder playerhayi ke vehicle nadarand estefade mishe.
static s_PlayerVehicle[MAX_PLAYERS] = { INVALID_VEHICLE_ID, ... };

public OnPlayerSpawn(playerid)
{
// Check mikonim age player ghablan vehicle dashteh ya na.
if (!IsValidVehicle(s_PlayerVehicle[playerid]))
{
// Age nadareh, ye vehicle jadid barash misazim va ID esh ro zakhire mikonim.
s_PlayerVehicle[playerid] = CreateVehicle(411, 0.0, 0.0, 3.5, 0.0, -1, -1, -1);
}

// Moshakhas mikonim ke player bayad dar vehicle gharar begireh vaghti ke kamel load shod.
// In az moshkelat jologirigiri mikone ke vehicle hanuz dar samte client load nashode bashe.
SetPVarInt(playerid, "PutPlayerInVehicle", 1);

return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
// In callback vaghti ejra mishe ke ye vehicle baraye player stream in mishe (yaani dar hafeze load mishe).
// Check mikonim age vehicle ke stream in shode motealeq be hamun player bashe va lazem bashe dar un gharar begire.
if (vehicleid == s_PlayerVehicle[forplayerid] && GetPVarInt(forplayerid, "PutPlayerInVehicle"))
{
// Player ro dar vehicle gharar midim.
PutPlayerInVehicle(forplayerid, vehicleid, 0);

// Marker ro pak mikonim ta az tekrar gharar dadan player dar vehicle
// jologirigiri konim (meslan age player az vehicle biyad birun va dobre stream in beshe).
DeletePVar(forplayerid, "PutPlayerInVehicle");
}

return 1;
}
آی‌دیصندلی
0راننده
1مسافر جلو
2مسافر عقب چپ
3مسافر عقب راست
4+صندلی‌های مسافر (اتوبوس و غیره)

نکات

نکته

می‌تونی از GetPlayerVehicleSeat در یک حلقه استفاده کنی تا چک کنی که آیا یک صندلی توسط کسی اشغال شده یا نه.

هشدار
  • اگه صندلی نامعتبر باشه یا قبلاً گرفته شده باشه، کلاینت هنگ می‌کنه وقتی از وسیله نقلیه خارج می‌شه.
  • قرار دادن بازیکن در وسیله نقلیه ای که stream نشده می‌تونه غیرقابل اعتماد باشه. این به خاطر مشکل احتمالی کلاینت هست که وسیله نقلیه ممکنه هنوز کاملاً در حافظه لود نشده باشه.
  • این موضوع وقتی هم اعمال می‌شه که می‌خوای بازیکن رو در وسیله نقلیه ای بذاری که تازه ساخته شده.

توابع مرتبط

  • RemovePlayerFromVehicle: بازیکن رو از وسیله نقلیه‌ش بیرون انداختن.
  • GetPlayerVehicleID: دریافت آی‌دی وسیله نقلیه ای که بازیکن توش هست.
  • GetPlayerVehicleSeat: بررسی اینکه بازیکن روی کدوم صندلی نشسته.
  • GetVehicleSeats: دریافت تعداد صندلی‌های موجود در وسیله نقلیه.

Callback های مرتبط

  • OnPlayerEnterVehicle: وقتی فراخوانی می‌شه که بازیکن شروع به ورود به وسیله نقلیه می‌کنه.