Chuyển tới nội dung chính

OnPlayerDeath

Mô Tả

Callback này được gọi khi một người chơi chết, có thể là tự sát hoặc bị giết bởi một người chơi khác.

TênMô Tả
playeridID của người chơi đã chết.
killeridID của người chơi đã giết người chơi đó, hoặc INVALID_PLAYER_ID nếu không có ai cả.
WEAPON:reasonID của lý do (xem danh sách vũ khí) cho cái chết của người chơi.

Trả Về

0 - Sẽ ngăn các filterscripts khác nhận được callback này.

1 - Chỉ ra rằng callback này sẽ được chuyển đến filterscript tiếp theo.

Callback này luôn được gọi đầu tiên trong filterscripts.

Ví Dụ

new PlayerDeaths[MAX_PLAYERS];
new PlayerKills[MAX_PLAYERS];

public OnPlayerDeath(playerid, killerid, WEAPON:reason)
{
SendDeathMessage(killerid, playerid, reason); // Hiển thị cái chết trong killfeed

// Kiểm tra rằng killerid là hợp lệ trước khi thực hiện bất kỳ hành động nào với nó
if (killerid != INVALID_PLAYER_ID)
{
PlayerKills[killerid]++;
}

// Ngoài kiểm tra, xử lý thông tin cho playerid (luôn hợp lệ)
PlayerDeaths[playerid]++;
return 1;
}

Ghi Chú

mẹo
  • Lý do sẽ trả về 37 (vũ khí phun lửa) từ bất kỳ nguồn lửa nào (ví dụ: molotov, 18).
  • Lý do sẽ trả về 51 từ bất kỳ vũ khí nào tạo ra vụ nổ (ví dụ: RPG, grenade).
  • Bạn không cần kiểm tra xem killerid có hợp lệ không trước khi sử dụng nó trong SendDeathMessage. INVALID_PLAYER_ID là một tham số ID hợp lệ trong hàm đó.
  • playerid là người duy nhất có thể gọi callback này (hữu ích cho chống giả chết).
cảnh báo

Bạn PHẢI kiểm tra xem 'killerid' có hợp lệ (không phải INVALID_PLAYER_ID) trước khi sử dụng nó trong một mảng (hoặc bất kỳ đâu), vì điều này sẽ gây ra sự cố với script OnPlayerDeath (không phải toàn bộ script). INVALID_PLAYER_ID được định nghĩa là 65535, và nếu một mảng chỉ có 'MAX_PLAYERS' phần tử, ví dụ 500, bạn đang cố gắng truy cập một chỉ số vượt quá 499, điều này sẽ ra ngoài phạm vi.

Các Callback Liên Quan

  • OnPlayerSpawn: Callback này được gọi khi một người chơi xuất hiện lại.

Các Hàm Liên Quan

Tài Nguyên Liên Quan