NetMsgFrom ( )
Parameters
| None. |
Description
|
Returns the id of the player the last received message came from. After RecvNetMsg returns 1, this identifies the sender - the id that player was given by CreateNetPlayer on their machine. Feed it to NetPlayerName$ for a display name, or use it as the key to find that player's ship or score in your own data. For the system messages it identifies the subject instead: on a join (type 100) it is the new player, on a leave (type 101) the player who left. Since local-to-local messages are never delivered, the id is always a player on another machine. See also: RecvNetMsg, NetMsgType, NetMsgTo, NetMsgData, NetPlayerName. |
Example
; NetMsgFrom Example ; ------------------ ; Run TWO copies of this program on one machine: the first copy ; hosts "demo game", the second finds it over loopback and joins. ; NetMsgFrom identifies who sent each received message. 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)) Print "Playing as '"+NetPlayerName$(me)+"' (id "+me+")" ; Broadcast a greeting for the other copy to receive SendNetMsg 1,"Hello from "+NetPlayerName$(me),me,0,1 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 ; NetMsgFrom returns the sender's player id - ; NetPlayerName$ turns it back into a name sender=NetMsgFrom() Print "Message '"+NetMsgData$()+"'" Print " NetMsgFrom = "+sender+" ('"+NetPlayerName$(sender)+"')" If mtype=1 Then SendNetMsg 2,"Reply!",me,sender,1 EndIf 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 the senders." EndIf StopNetGame Print "Left the game" EndIf Print "" Print "Press any key to close the example" WaitKey End
Index