Moin
Ich wollte Überprüfen ob ein Auto weniger Energie hat als Vorher, und das mit einem Timer.
Das sieht nun so aus:
SetTimer("Schadentimer",1000,true);
forward Schadentimer();
enum schad
{
Float:OldEnergie,
Schaden1, //Achsenschaden
Schaden2
}
new Vehikeldaten[MAX_VEHICLES][schad];
public OnVehicleSpawn(vehicleid)
{
Vehikeldaten[vehicleid][OldEnergie] = 1000.0;
Vehikeldaten[vehicleid][Schaden1] = 0;
Vehikeldaten[vehicleid][Schaden2] = 0;
return 1;
}
stock GetVehicleDriver(vehicleid)
{
for(new i;i<MAX_PLAYERS;i++) if(GetPlayerVehicleID(i)==vehicleid) return i;
return 0;
}
public Schadentimer()
{
for(new i = 0; i < MAX_VEHICLES; i++)
{
new Float:Energiee;
GetVehicleHealth(i,Energiee);
if(Energiee < Vehikeldaten[i][OldEnergie])
{
new rand = random(1);
if(rand == 1)
{
Vehikeldaten[i][Schaden1] = 1;
new drive = GetVehicleDriver(i);
SendClientMessage(drive,0xAA3333AA,"Du hast einen Achsenschaden!");
}
}
Vehikeldaten[i][OldEnergie] = Energiee;
}
return 1;
}
(Das Random ist mit Absicht auf 1 Gestellt, um es zu Testen, bei 50 würde das zu Lange brauchen)
Leider Passiert nie etwas wenn ein Wagen Schaden nimmt, wieso?
MfG
Edit: Überschrift und Schreibfehler