Version 2.0!
Features
Tutorials
Files
Glossary
Projects
Contact
Links
Message Board
Extras
LuckyCam
Old News
Sign Guestbook
View Guestbook
VB Horoscope
VB Photo Album
.
ATTENTION READERS! Lucky's VB Gaming Site is no longer active. For updated game programming information and tutorials, please visit The Game Programming Wiki!

Spielbeginn überwachen

Wenn ein Spiel gestartet wurde, müssen wir prüfen, wie viele Leute dem Spiel beigetreten sind. In anderen Worten, wir listen die Spieler auf.
 

Dim i As Integer
Dim intPlayersWaiting As Integer
Dim objEnumPlayers As DirectPlayEnumPlayers

    Set objEnumPlayers = dp.GetDPEnumPlayers("", 0)

    intPlayersWaiting = objEnumPlayers.GetCount

    For i = 1 To intPlayersWaiting
        LstBox.AddItem objEnumPlayers.GetShortName(i)
    Next

Dieser Code listet die Rufnamen aller verbundenen Spieler der momentanen Session auf ("LstBox" bezieht sich wieder auf ein Listenfeld-Objekt). Der Spieler (gewöhnlich der Host) kann diese Infos nutzen und dann entscheiden, wann er das Spiel starten will.
Ein Spiel könnte z.B. für maximal vier Spieler gedacht sein, der Host entscheidet aber,  bereits mit nur drei Spielern anzufangen. Wenn das Spiel einmal gestartet wurde, sollte der Host unterbinden, dass neue Spieler später in die Session einsteigen können:

Dim objSessionData As DirectPlaySessionData

    Set objSessionData = dp.CreateSessionData
    dp.GetSessionDesc objSessionData
    objSessionData.SetFlags objSessionData.GetFlags Or DPSESSION_JOINDISABLED
    dp.SetSessionDesc objSessionData

Fülle ein DirectPlaySessionData-Objekt mit den Daten der Session. Benutze die bereits gesetzten Flags in Verbindung mit der DPSESSION_JOINDISABLED Flag um das Einsteigen zu unterbinden. Wurden die Flags gesetzt, setze die Daten der Session wieder, in dem du das selbe Objekt mit der Methode DirectPlay4.SetSessionDesc verwendest.

Du willst nicht noch länger warten? Wir sind ja schon so nahe dran: Nachrichten während des Spiels versenden! (oder hol dir den Quellcode runter!)