Das mit dem Feuerwehrwagen Klappt immer noch nicht 
Ich schätze mal, dass die "In-Der-Nähe"-Abfrage nicht passt.
public f_OnPlayerUpdate(playerid)
{
new newkeys,l,u;
GetPlayerKeys(playerid, newkeys, l, u);
new i;
if(Holding(KEY_FIRE))
{
if(GetPlayerWeapon(playerid) == 42)
{
for(i = 0; i<MaxFire; i++)
{
if(PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 1) && IsPlayerInRangeOfPoint(playerid, 4, FirePos[i][0], FirePos[i][1], FirePos[i][2]))
{
FireHealth[i]-=2;
#if defined Labels
new fwstring[128];
format(fwstring, sizeof(fwstring), "%d/%d", FireHealth[i], FireHealthMax[i]);
Update3DTextLabelText(FireText[i], 0xFFFFFFFF, fwstring);
//Delete3DTextLabel(FireText[i]);
//FireText[i] = Create3DTextLabel(fwstring, 0xFFFFFFFF, FirePos[i][0], FirePos[i][1], FirePos[i][2], 20, 0);
#endif
if(FireHealth[i] <= 0)
{
DeleteFire(i);
CallRemoteFunction("OnFireDeath", "dd", i, playerid);
}
}
}
}
}
if(Holding(KEY_FIRE))
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 407)
{
for(i = 0; i<MaxFire; i++)
{
printf("i: %d | Face: %d | Range: %d", i, PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 1), IsPlayerInRangeOfPoint(playerid, 4, FirePos[i][0], FirePos[i][1], FirePos[i][2]));
if(PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 1) && IsPlayerInRangeOfPoint(playerid, 4, FirePos[i][0], FirePos[i][1], FirePos[i][2]))
{
FireHealth[i]-=2;
#if defined Labels
new fwstring[128];
format(fwstring, sizeof(fwstring), "%d/%d", FireHealth[i], FireHealthMax[i]);
Update3DTextLabelText(FireText[i], 0xFFFFFFFF, fwstring);
//Delete3DTextLabel(FireText[i]);
//FireText[i] = Create3DTextLabel(fwstring, 0xFFFFFFFF, FirePos[i][0], FirePos[i][1], FirePos[i][2], 20, 0);
#endif
if(FireHealth[i] <= 0)
{
DeleteFire(i);
CallRemoteFunction("OnFireDeath", "dd", i, playerid);
}
}
}
}
}
return 1;
}
Was wird dir so ausgegeben im Server Log?
Wenn bei einem der beiden 0 ist, dann weißt du, dass das nicht passt. Gegebenenfalls musst du den Range vergrößern, oder die PlayerFaces Funktion anpassen, da GetPlayerFacingAngle im Fahrzeug nicht richtig klappt.