Wie der titel schon sagt, was ist schneller bzw resourcensparender?
Methode 1:
new TachoTimerID[MAX_PLAYERS];
forward TachoTimer(playerid);
Public TachoTimer(playerid)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
KillTimer(TachoTimerID[playerid]);
format(str, sizeof(str), "~n~~n~~n~~n~~n~~n~Geschwindigkeit: %i Km/h", GetPlayerSpeed(playerid, true));
GameTextForPlayer(playerid, str, 1000, 3);
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
TachTimerID[playerid] = SetTimerEx("TachoTimer", 1000, 1, "i", playerid);
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
KillTimer(TachoTimerID[playerid]);
}
Methode 2:
Public MainTimer() // Interval: 1000
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if(!IsPlayerConnected || PlayerInfo[playerid][pIsLoggedIn] == 0 || IsPlayerNPC(playerid)) continue;
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
format(str, sizeof(str), "~n~~n~~n~~n~~n~~n~Geschwindigkeit: %i Km/h", GetPlayerSpeed(playerid, true));
GameTextForPlayer(playerid, str, 1000, 3);
}
}
return 1;
}
Beide Funktionen laufen auf das gleiche aus, erklärung:
Methode 1, der Timer wird für jeden Spieler einzel aufgerufen sobald er in einem Fahrzeug ist, hier wird keine for schleife benötigt.
Methode 2, Ein Timer, wo eine for schleife für jeden Spieler läuft und hier wird gecheckt ob er in einem Fahrzeug ist oder nicht.
Welche methode ist jetzt eigentlich besser? ich zerbrech mir schon den ganzen abend den kopf 
Man beachte folgendes -->
Methode 1: Führt den Timer für jeden Spieler in einer Sekunde aus der in einem Fahrzeug sitzt, zeigt dann die Geschwindigkeit an..
Methode 2: Führt den Timer jede sekunde mit einer for schleife aus und checkt ob der Spieler in einem Fahrzeug ist oder nicht, zeigt dann die Geschwindigkeit an.
Edit: Pseudo Methode 1 editiert.
Edit 2: Text hinzugefügt