На официальном форуме задали вопрос: как вывести иконку в килл-лист, если игрока убили в транспорте. Другими словами, если 2 тачки толкались и одна взорвалась, то сейчас киллер не имеет отношения к убийству по показаниям килл-листа. Код ниже это исправит. Может пригодиться для дерби-серверов.
Код
public OnPlayerSpawn(playerid)
{
SetPVarInt(playerid, "killerid", INVALID_PLAYER_ID); // устанавливаем несуществующего убийцу
return 1;
}
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
if(GetPlayerVehicleID(playerid) != vehicleid)
{
for(new i = GetMaxPlayers() - 1; i != -1; i--)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || !IsPlayerInVehicle(i, vehicleid)) continue; // нашли водителя авто, который наносил повреждения другому авто
SetPVarInt(i, "killerid", playerid); // нашли убийцу и записали в переменную
break; // если только водителя убивать, если и пассажиров - убирай строку
}
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid == INVALID_PLAYER_ID) killerid = GetPVarInt(playerid, "killerid"); // если не самоубийство, то проверяем переменную убицйы
if(killerid != INVALID_PLAYER_ID) SendDeathMessage(killerid, playerid, 49); // если убийца найден, то отправляем сообщение
return 1;
}
Автор OKStyle.