DirectX:DirectPlay:Tutorials:VB:DX7:Commencing Gameplay
From GDWiki
| The source code or techniques discussed in this article may be deprecated. Please see Network for a better solution. |
When a session has been started, we need to be able to monitor how many people have joined that session. In other words, we need to enumerate the players.
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
This code will list the short names of every player connected to the current session (again, LstBox refers to a valid listbox object). The user (usually the host) can use this information to decide when to commence the game. For example, a game may allow 4 players to join, but the host could start the game when there were only two or three if desired. Once the game starts, the host should disable the "join" ability to keep new players from joining the session late.
Dim objSessionData As DirectPlaySessionData Set objSessionData = dp.CreateSessionData dp.GetSessionDesc objSessionData objSessionData.SetFlags objSessionData.GetFlags Or DPSESSION_JOINDISABLED dp.SetSessionDesc objSessionData
Fill a DirectPlaySessionData object with session data. Use the current flags in conjunction with the DPSESSION_JOINDISABLED flag to disable joining. Once the flags are defined, set the session data using the same object and the DirectPlay4.SetSessionDesc method.
Continue with the In-Game Messaging tutorial; we're almost there! (Click here to download this tutorial's source code.)

