Il te suffit de fair un IsPlayerAiming(Si le Joueur tire sur ce joueur) je vais te faire un système pour t'aider
En Haut de ton Script :
forward OnPlayerAimingOnPlayer(PlayerAiming,PlayerTouchAimming);
Dans OnPlayerKeyStatChange :
if(((oldkeys & KEY_FIRE) && !(newkeys & KEY_FIRE)) || ((newkeys & KEY_FIRE) && !(oldkeys & KEY_FIRE)) || (newkeys & KEY_FIRE))
{
if(GetPlayerWeapon(playerid)==0)
{
return 1;
}
for(new i = 0; i < MAX_PLAYERS(); i++)
{
if(IsPlayerConnected(i) && playerid != i)
{
if(IsPlayerAiming(playerid, i))
{
OnPlayerAimingOnPlayer(playerid,i);
return 1;
}
}
}
}
En bas de ton script :
OnPlayerAimingOnPlayer(PlayerAiming,PlayerTouchAimming)
{
//PlayerAiming = Le Joueur qui tire
//PlayerTouchAimming = Le Joueur touché par le tire
return 1;
}
Toujour en bas de ton script(SOURCE:http://woot-is-awesome.pastebin.com/f5d45cbd7):
stock IsPlayerAiming(playerid, aimid)
{
// Not my function, can't remember who made it though.
new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
GetPlayerPos(playerid, X1, Y1, Z1);
GetPlayerPos(aimid, X2, Y2, Z2);
new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 100)
{
new Float:A;
GetPlayerFacingAngle(playerid, A);
X1 += (Distance * floatsin(-A, degrees));
Y1 += (Distance * floatcos(-A, degrees));
Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 0.5)
{
return true;
}
}
return false;
}