Ana içeriğe geç

OnPlayerDeath

Açıklama

Bu geri çağırma bir oyuncu öldüğünde, intihar ettiğinde ya da başka bir oyuncu tarafından öldürüldüğünde çağırılır.

ParametreAçıklama
playeridÖlen oyuncunun ID'si.
killeridÖldüren oyuncunun ID'si, eğer öldüren bir oyuncu yoksa INVALID_PLAYER_ID değeri döndürülür.
WEAPON:reasonOyuncunun ölüm sebebinin ID'si.

Çalışınca Vereceği Sonuçlar

0 - Diğer filterscriptlerin bu geri çağırmayı çağırmasını engeller.

1 - Bu geri çağırmanın sonraki filterscriptlere geçeceğini belirtir.

Filterscriptlerde her zaman ilk olarak çağırılır.

Örnek

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

public OnPlayerDeath(playerid, killerid, WEAPON:reason)
{
SendDeathMessage(killerid, playerid, reason); // killfeed(Sağdaki öldüren, silah ve ölen oyuncu) listesine ölen, öldüren ve ölüm nedenini gösterir.

// killerid ile herhangi bir işlem yapmadan önce, killerid'nin geçerli olup olmadığını kontrol eder.
if (killerid != INVALID_PLAYER_ID)
{
PlayerKills[killerid] ++;
}

// Kontrolün dışında, playerid için gerekli işlemleri yapar. (playerid her zaman geçerlidir.)
PlayerDeaths[playerid] ++;
return 1;
}

Notlar

ipucu

Herhangi bir ateş kaynağından gelen hasarlarda(örnek: molotov, 18) weaponid değeri 37 (flame thrower) olarak döndürülür. Herhangi bir patlama kaynağından gelen hasarlarda (örnek: roketatar, el bombası) weapondid değeri 51 olarak geri döndürülür. SendDeathMessage fonksiyonunu kullanmadan önce killerid'nin geçerli olup olmadığını kontrol etmenize gerek yok. INVALID_PLAYER_ID geçerli bir killerid ID parametresidir. Yalnızca playerid tarafından çağırılabilir. (anti fake death için bilmeniz iyi olur.)

warning

Bir dizi içerisinde kullanmadan önce killerid'nin geçerli olup olmadığını kontrol ETMELİSİNİZ, yoksa OnPlayerDeath scriptinin çökmesine neden olur (Bütün script değil). Bunun nedeni INVALID_PLAYER_ID'nin 65535 olarak belirlenmiş olmasıdır ve bu değer MAX_PLAYERS'dan yüksek olacağı için scripti çökertir.

Bağlantılı Fonksiyonlar