session_connect(STRING* session,STRING* hostname)
Welchselt zu einer anderen Session auf einem anderen Server. Der erste Stringparameter
enthält den Namen der neuen Session, der zweite Parameter gibt den Namen
- Domain-Name oder IP-Adresse des neuen Servers an. Auf diese Weise lassen sich
Level- oder Zonen-Wechsel in einer Multiplayerumgebung einfach realisieren.
Rückgabewert
0 falls die neue Verbindung nicht aufgebaut werden konnte, ansonsten ungleich
0.
Parameter
session |
Name der Session |
hostname |
Domain- oder IP-Adresse, oder Leerstring für eine Session auf dem
gleichen PC |
Edition
P
Geschwindigeit
Sehr langsam (bis zu 5 Sekunden)
Bemerkungen
- Diese Anweisung kann dazu verwendet, die Engine in den Client-Modus zu schalten, auch wenn diese nicht mit -cl gestartet wurde.
- Nach dem Umschalten vom normalen zum Klientenmodus, muß das Level von neuem gestartet werden.
- Nach erfolgreichem Beitreten einer Session wird dplay_id auf die individuelle Nummer des Klienten gesetzt.
- Sämtliche Klienten-relevanten Funktionen oder Initialisierungen munnen nach dem Verbinden mit einer Session laufen. Das Ertsellen eines Klienten-Players in der Main-Funktion beispielsweise wird nicht funktionieren, wenn die Engine nicht im Klienten-Modus ist, während main() läuft .Ein guter Platz zum Erstellen des Klienten-Players ist nach dem Neuladen eines Levels nach dem
Verbindungsaufbau.
- Zum Definieren, dass die Session verbunden und das Level auf dem neuesten Stand ist, verwenden Sie dplay_status.
- Um zu einem anderen Server, der eine andere Portardresse benutzt, zu schalten, verwenden Sie dplay_port.
- Die Vebindung zu einem Server wird fehlschlagen wenn die IP oder die Port-Nummer falsch ist, der session-Name nicht passt, dplay_encrypt auf dem Server einen anderen Wert hat oder wenn das Klientenskript nicht zum Serverskript passt. Schlägt die Verbindung fehl, wird der Event on_client mit EVENT_LEAVE getriggert.
Beispiel:
if (session_connect("office","127.0.0.1"))
{
level_load("office.wmb"); // load level anew
while (dplay_status < 6) wait(1); // wait until the level state is received from the server
player_create(); // user function to place the player into the level
}
Siehe auch:
session_open, session_close, connection, dplay_status
► Aktuelle Version Online