SYNOPSIS void call_out(string fun, int delay, mixed arg, ...) void call_out(closure cl, int delay, mixed arg, ...) BESCHREIBUNG Ruft zeitverzoegert die Funktion im aktuellen Objekt oder die Closure auf. Der Aufruf erfolgt in Sekunden. Die Funktion / Closure wird mit den Argumenten aufgerufen. Die minimale Verzoegerung ist 0 (negative werden implizit als 0 behandelt). Allerdings ist die reale Verzoegerung etwas zwischen und __ALARM_TIME__. call_out() merkt sich den aktuellen User und ruft die Funktion entsprechend auf. call_out() kann nur Funktionen aufrufen, die oeffentlich zugaenglich sind, das heisst "public" und "static" deklarierte Funtionen. "private" und "protected" deklarierte Funktionen koennen nicht aufgerufen werden. Die Ausfuehrung von call_out()s erfordert einen einfachen (nicht zu aufwendigen) Schutz gegen Rabbits: die Evalkosten aller gleichzeitig anstehenden call_out()s werden auf einer pro-UID-Basis summiert. Uebersteigt die Summe ein vorgegebenes Maximum, wird ein Fehler 'too long evaluation' erzeugt, und es werden alle call_out()s des betreffenden Benutzers, die zur gleichen Zeit faellig werden, entfernt. Wenn zwei call_out()s zum gleichen Zeitpunkt ausgefuehrt werden sollen, wird der zuerst gestartete zuerst ausgefuehrt. BEISPIELE call_out("RefreshMe", 10); Dies ruft die Funktion RefreshMe() nach Ablauf von 10 Sekunden ohne irgendwelche Argumente auf. Die Funktion RefresMe() kann dann wiederum selbst call_out()s starten, auch auf sich selbst, was eine Schleife erzeugt (keine Rekursion). Mit einer solchen Schleife koennen Anweisungen in einem Objekt in regelmaessigen Zeitintervallen ausgefuehrt werden. Es ist allerdings zu beachten, dass call_out()s in einer linearen Liste gespeichert werden, und deshalb ziemlich rechenaufwendig fuer den Treiber sind. Und JA: selbst-replizierende call_out()s, bei denen jeder call_out() selbst zwei oder mehr call_out()s in einem Loop erzeugt (sogenannte Rabbits) verlangsamen das Mud ungemein und koennen es sogar zum Crash bringen. Kein Grund, es selbst auszuprobieren. SIEHE AUCH remove_call_out(E), call_out_info(E), find_call_out(E), this_player(E), reset(A), heart_beat(A)