MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | FUNKTION: |
| 2 | int find_call_out(string func) |
| 3 | int find_call_out(closure cl) |
| 4 | |
| 5 | BESCHREIBUNG: |
| 6 | Findet den ersten call_out() auf die Funktion 'func' im aktuellen Objekt |
| 7 | (bzw. auf die Closure 'cl') der ausgefuehrt werden soll. |
| 8 | Zurueck gegeben wird die verbleibende Zeit bis zum Aufruf in Sekunden. |
| 9 | Wenn kein call_out() gefunden wird, wird -1 zurueck gegeben. |
| 10 | |
| 11 | BEISPIELE: |
| 12 | // Findet sich kein call_out auf die Funktion 'func', so kann er |
| 13 | // gestartet werden. (Wichtig falls der call_out nicht mehrfach |
| 14 | // aufgerufen werden soll). |
| 15 | |
| 16 | if(find_call_out("func")==-1) |
| 17 | call_out("func",5); |
| 18 | |
| 19 | // Alle call_out auf Funktion 'func' werden gefunden und gestoppt. |
| 20 | // (Beispielsweise weil ein Spieler den Raum verlaesst oder sich |
| 21 | // disconnectet). |
| 22 | |
| 23 | while(find_call_out("func") > -1) |
| 24 | remove_call_out("func"); |
| 25 | |
| 26 | // Die Suche nach call_out()s auf Closures funktioniert nur, wenn der |
| 27 | // genaue Wert der Closure gesucht wird. |
| 28 | |
| 29 | // Das funktioniert: |
| 30 | closure cl = symbol_function("main", obj); |
| 31 | call_out(cl, 2); |
| 32 | find_call_out(cl); |
| 33 | |
| 34 | // Das funktioniert nicht: |
| 35 | call_out(symbol_function("main", obj), 2); |
| 36 | find_call_out(symbol_function("main", obj)); |
| 37 | |
| 38 | SIEHE AUCH: |
| 39 | call_out(E), remove_call_out(E), call_out_info(E) |
| 40 | |
| 41 | 4.Aug 2007 Gloinson |