03.08.2016, 05:38
Sure. The callback you're using has a parameter called 'weaponid'. It holds the ID of the weapon that is used to damage the player. You can use that parameter to see if it is a sniper that damaged the player or not.
Weapon ids: https://sampwiki.blast.hk/wiki/Weapons
The OnPlayerTakeDamage callback: https://sampwiki.blast.hk/wiki/OnPlayerTakeDamage
Bodyparts: https://sampwiki.blast.hk/wiki/Body_Parts
Your code with that check:
I added the following:
Translation of the code:
Weapon ids: https://sampwiki.blast.hk/wiki/Weapons
The OnPlayerTakeDamage callback: https://sampwiki.blast.hk/wiki/OnPlayerTakeDamage
Bodyparts: https://sampwiki.blast.hk/wiki/Body_Parts
Your code with that check:
PHP код:
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) {
if ((GetPlayerTeam(playerid) == NO_TEAM && GetPlayerTeam(issuerid) == NO_TEAM) || GetPlayerTeam(issuerid) != GetPlayerTeam(playerid)) {
if (bodypart == 9 && ! g_Player[playerid][playerHelmet] && weaponid == 34) {
SetPlayerHealth(playerid, 0.0);
SendClientMessage(issuerid, COLOR_ORANGE, "Good job gangsta! You made a perfect headshot over that nigga! [+$3000 +1 Score]");
GivePlayerMoney(issuerid, 3000);
SetPlayerScore(issuerid, GetPlayerScore(issuerid) + 1);
return 0;
}
}
return 1;
}
PHP код:
if (bodypart == 9 && ! g_Player[playerid][playerHelmet] && weaponid == 34)
// I added '&& weaponid == 34'
Код:
IF bodypart equals 9 AND the player isn't wearing a helmet AND the weapon used to damage him is a sniper rifle: instant kill the player