stock AtATM(playerid)
{
for(new atm=0; atm<sizeof(ATMs); atm++)
{
if(IsPlayerInRangeOfPoint(playerid,2.5,ATMs[atm][0],ATMs[atm][1],ATMs[atm][2]))
{
GameTextForPlayer(playerid, "~w~/ATM", 3000, 3);//Fehler
return 1;
}
}
return 0;
}
Du kannst diese stock-Funktion nicht mit einem Timer aufrufen, dazu müsstest du es forwarden und zu einem public machen.
Erstell am besten pickups, läuft man in diese kommt der GameText, die AtATM Funktion kannst du dann für solche abfragen nutzen:
if(AtATM(playerid) == 1)
Sonst macht der GameText in der stock-Funktion keinen sinn
return gibt wie der Name sagt etwas zurück, meißtens eine 1 , oder auch true (wahr) was die Funktion oder das public/callback sofort abbricht und halt 1 zurückgibt.
Bei 0, bzw false (falsch) wird ebenfalls abgebrochen, manche returns haben sonder Funktionen, wenn sie in bestimmten publics stehen kann der Spieler z.B. keine Nachricht schreiben da das public mit return 0 also false abgebrochen wird.
Grundlegend gilt aber das du wie mit dieser ATM Funktion solche Abfragen machen kannst: if(AtATM(playerid) == 1) wenn der rückgabewert der Funktion gleich 1 ist, ist die abfrage erfüllt und geht weiter. Wenn das return true nicht erreicht wird sondern das return false stimmt die Abfrage nichtmehr, folglich steht der Spieler nicht am ATM.
Lässt man in Funktionen das return weg gibt der Compiler auch eine Warnung raus.
return ist eigentlich auch so ein Thema, wenn man alles darüber weiß kommt es einem garnicht so wichtig oder viel vor, tatsächlich steckt aber sogar dahinter einiges an Wissen...