Guten Mittag euch allen,
ich habe mich mal ein bisschen umgeschaut und gesehen, dass einige Personen nach einer sleep Funktion in Pawn suchen.
Doch wie sie festgestellt haben gibt es sowas wie in Java (Thread.sleep(1000);) nicht...
Also habe ich mal so eine Funktion geschrieben:
1. Beispiele:
Also, so funktioniert die Funktion:
public OnGameModeInit() //Mal als Beispiel genommen
{
	print("test"); //Wird normal ohne Verzögerung aufgerufen
	sleep(1000)<a>; //Hier findet ein Timeout von 1000ms statt
	print("test2"); //Dann wird das geprintet
	sleep(1000)<b>; //Wieder Timeout von 1000ms 
	print("test3"); //und dann wird geprintet
	return 1;
}
//Oder wenn man Parameter noch übergeben will
public OnPlayerConnect(playerid) //Mal als Beispiel
{
    SendClientMessage(playerid,-1,"hi");
    pSleep(1000)<a,"i",playerid>; //Unten ist eine nähere Erklärung
    SendClientMessage(playerid,-1,"hallo nach 1000ms!");
}
2. Nähere Funktions Erklärung
Also, das sleep(1000)...sollte jedem klar sein 
 sleep so heißt halt die Funktion und 1000 ist das Attribut für die Millisekunden von dem Timeout ![]()
Was ich dann noch gemacht habe, z.B. dieses <a> steht für den Namen des Callbacks der Aufgerufen wird, sobald der Timeout zuende ist!
Wichtig: Das darf nicht doppelt vorkommen, man kann in einem Script nicht 2x <a> machen oder 2x <b>, diese Reihe weiter fortführen!! Egal wie! Nichts doppelt machen!
Einfach so: <a>, dann <b>, dann <c>,...usw und wenn man dann 26 Buchstaben durch hat, dann <aa>, <bb> usw ![]()
Zu pSleep, ist zu sagen, dass mit dem "i" ist halt wie bei SetTimerEx und steht für den Typ der Variable (i = Integer) und danach kommen halt die ganzen Variablen.
//Wenn man mehr Variablen übergeben will, macht man einfach:
pSleep(1000)<a,"ii",playerid,x);
3. Source Code:
Der Source Code beschränkt sich nur auf ein kleines Makro, was ihr oben im Script einfügen könnt und sieht folgender maßen aus:
//(c) by Kaliber
#define sleep(%0)<%1>; SetTimer("@sleep_"#%1#,%0,0); return 1;}\
    @sleep_%1();@sleep_%1() {
#define pSleep(%0)<%1,%2,%3>; SetTimerEx("@sleep_"#%1#,%0,0,%2,%3); return 1;}\
    @sleep_%1(%3);@sleep_%1(%3) {
4. Schlusswort
Ich würde mich über ein kleines Feedback freuen ![]()
mfg. 
 
//Edited: pSleep
		
		
		
	
