proc_local(ENTITY*,void *function)
proc_client(ENTITY*,void *function)
Weist der gegebenen Entity eine Client-side Funktion zu. Proc_local startet
die Function auf allen Klienten, proc_client startet
sie nur auf dem Klienten,
der die Entity oder ihre Erzeuger-Entity erstellt hatte. Client-side
Entity-Funktionen für das Aufspüren lokaler Mausevents verwenden oder
zum Starten lokaler Sounds oder Partikeleffekte sowie für lokale
Entity Animationen. In einem Multiplayer-System kann dies eine Menge
an Bandbreite sparen.
Parameter:
ENTITY* |
Entity, der die Funktion zugewiesen wird |
function |
Auf den Klienten zu startender Funktionsponter |
Bemerkungen:
- Diese Anweisungen können nur auf dem Server aufgerufen
werden. Die Funktion wird nicht
auf dem Server, aber auf den Clients ausgeführt. Die angegebene Entity
muss auf dem Client existieren. Diese bekommt für die lokalen Funktionen
den my Pointer zugewiesen.
- Proc_local und proc_client dürfen
frühestens einen Frame nach Erzeugung
der Entity ausgeführt werden. Verwenden Sie daher wait() oder sleep() vorher.
- Die letzte proc_local Anweisung
jeder Entity wird gespeichert. Wenn ein neuer Client sich zum Server verbindet,
wird die Funktion auf diesem Client erneut gestartet. Bei allen Clients die
nach der proc_local Anweisungen connecten, wird
die Funktion gestartet. Aus diesem Grund sollte
pro Entity nur eine proc_local Anweisung ausgeführt
werden.
- Die dplay_localfunction Variable kann alternativ verwendet
werden, um jede Entity-Funktionen zunächst auch auf den Clients zu starten.
Durch
Auswertung der connection Variablen
kann die Funktion dann verschiedene Dinge tun, abhängig davon, ob sie
auf dem Server, Client oder auf Client/Server läuft.
Beispiel:
// the following function sets the my entity invisible only on its creator client
function hide_me() { set(me,INVISIBLE); }
...
proc_client(me,hide_me);
...
Siehe auch:
connection, dplay_localfunction
► Aktuelle Version Online