I want to correct myself ad someone else on something. After 24 hours or so of testing DB's multiplayer features, I discovered:
Don't use the index#'s in the checklist for players... they are just for retrieving the player's data. The checklist value a(index) is their ID# and will NOT report the same across all player's machines. However, it remains the same under each app for that player throughout the session no matter who comes and goes. Use the ID# in any way you like. The string$(index) function is the NAME for that ID#.
In a 5-player game, if players 2 and 3 quit, SURE.. the player checklist reports 3 players in the game and lets you see their entries as indexes 1-3, but in each entry, you'll notice that the ID#'s for the remaining 3 players have NOT changed.
Also, when others join back in, they get the empty "ID#" slots (not neccessarily checklist entries) that were freed when the other players quit.
The ID# of a player never climbs above the player limit set in the CREATE NET GAME command.
Now, in a client/server game using the same players, etc. Only the host/server app sees a reporting of all the players in his checklist. All the clients see in their checklist is INDEX#1) theirself INDEX#2) the host
So sending to 0 or 2 causes the same result. And you can't send anything to yourself so that narrows it down.
A client sending to everybody still only goes to the host.
I have had 5 windowed apps running at a time, 1 host and 4 players and send messages back and forth under every circumstance, and the thing I see that is constant through all the shuffling is the PLAYER ID# and NAME found in each checklist entry are firm.
However, I did find that in a P2P game, the last player to join is always listed as the 1st entry of the checklist. Entries below this are almost always not the same across apps or players.
So, forget about the checklist index# and focus on the ID# found in Checklist Value A(index).
This all may sound easy as hell, but I it's actually a shuffled mess to have so many dern flags and references, indexes, etc. just to track a player in your game, and the DB docs are short to explain anything useful over a simple 2-player game WHICH BY THE WAY can happen even by accident since there's only 2 entries in the checklist! see? SO, many of the demos you see are not even fully coded right. They just asume things and it usually works for 2 players.
No, I'm not an expert but I did a long study and that is what I found to be the case when simulating a TCP/IP connection to say, 127.0.0.2 locally between 2 to 5 cloned DP apps.