NetPlayerName$ ( player )
Parameters
| player - a player id, typically from CreateNetPlayer or NetMsgFrom |
Description
|
Returns the name of a player in the current network game. This is the name given to CreateNetPlayer on whichever machine owns the player - the string to show in chat lines, score tables and join/leave notices. It works for local and remote players alike, so NetPlayerName$(NetMsgFrom()) labels any message's sender. Two special results: passing 0 (the broadcast id) returns "<all>", and an id that is not in the game - for instance a player who already left - returns "<unknown>". Names are not forced to be unique, so keep ids, not names, as your player keys. See also: CreateNetPlayer, NetPlayerLocal, NetMsgFrom, RecvNetMsg. |
Example
; NetPlayerName Example ; --------------------- ; Run TWO copies of this program on one machine: the first copy ; hosts "demo game", the second finds it over loopback and joins. ; NetPlayerName$ turns any player id back into a readable name. SeedRnd MilliSecs() ; Join an existing demo game if one is running, else host one status=JoinNetGame("demo game","127.0.0.1") If status=1 Then Print "Joined an existing demo game as a client" Else If HostNetGame("demo game")=2 Then status=2 If status=2 Then Print "No game found - hosting a new demo game" EndIf If status=0 Then Print "Could not host or join a network game." Else ; A player must exist before messages can be sent or received me=CreateNetPlayer("Player"+Rand(100,999)) ; NetPlayerName$ works on our own player id... Print "My id "+me+" belongs to '"+NetPlayerName$(me)+"'" ; Broadcast a greeting for the other copy to receive SendNetMsg 1,"Hello!",me,0,1 ; ...and on the ids of remote players taken from NetMsgFrom Print "Listening for messages for 6 seconds..." start=MilliSecs() heard=0 While MilliSecs()-start<6000 If RecvNetMsg() Then mtype=NetMsgType() If mtype>=1 And mtype<=99 Then heard=heard+1 Print "'"+NetMsgData$()+"' was sent by '"+NetPlayerName$(NetMsgFrom())+"'" If mtype=1 Then SendNetMsg 2,"Hello back!",me,NetMsgFrom(),1 EndIf If mtype=100 Then Print "'"+NetPlayerName$(NetMsgFrom())+"' joined the game" EndIf Delay 10 Wend If heard=0 Then Print "No messages arrived - a program only hears OTHER copies." Print "Start a second copy of this example to see remote names." EndIf StopNetGame Print "Left the game" EndIf Print "" Print "Press any key to close the example" WaitKey End
Index