|
type = число от 1 до 99
data$ = строка, содержащая сообщение для отправки from = номер ID игрока - отправителя to = номер ID игрока - получателя (0= всем ) reliable = флажок для надежности передачи сообщения |
Учтите, что эта команда работает, ТОЛЬКО когда Вы присоединились к сетевой игре с помощью команд StartNetGame или JoinNetGame и создали игрока командой CreateNetPlayer (Вы должны создать игрока, даже если он будет скрыт). Параметр Data$ - строка, которая содержит текст сообщения, которое Вы хотите послать. Для того, чтобы сохранять низкий трафик, Вы можете захотеть объединить несколько сообщений в одно единственное сообщение вместо того, чтобы посылать много сообщений с единственным элементом. Например, Вы могли бы послать X, Y, и номер кадра в единственной строке как "200,100,4" и анализировать её в программе получателя. From - логин игрока, который посылает сообщение. Это - значение, возвращенное командой CreateNetPlayer(). To - логин игрока, которому Вы желаете послать сообщение. Значение по умолчанию 0 передаст его ВСЕМ игрокам. Reliable поместит приоритет в сообщение, и это будет гарантировать, что в полученном сообщении нет никаких искажений информации. Однако это работает по крайней мере в 3 раза медленнее, чем регулярное ненадежное сообщение. Пример требует, чтобы Вы выполняли его на локальной машине, в то время как удаленный компьютер выполняет пример из команды RecvNetMsg(). |
|
; Пример SendNetMsg
; ------------------ ; Установим графический режим Graphics 640,480,16 SetBuffer BackBuffer() ; Создаем сетевую игру joinStatus=HostNetGame("ShaneGame") ; тип для сохранения инфы игрока Type multi Field x Field y Field id Field name$ Field xspeed Field boxColor End Type ; проверяем начало игры... If joinStatus=2 Then Print "Игра начата... " Else Print "Игра не начата!" End End If ; Создаем 5 локальных игроков For t = 1 To 5 player.multi = New Multi ; Создаем игрока с номером и именем playerID=CreateNetPlayer("Player" + t) ; если игрок создан, задаем ему случайные параметры If playerID <> 0 Then player ame$="Player" + t player/x = Rand(640) player/y = Rand(480) player/boxColor = Rand(255) player/xspeed = Rand(1,5) ; Печатаем результат Print "Игрок " + t + " присоединен к игре под номером ID=" + playerID Else Print "Игрок не присоединен к игре " End If Next ; Игроки созданы! Ждем нажатия клавиши Print "Все игроки созданы Нажмите любую клавишу ..." WaitKey() ; Цикл While Not KeyHit(1) Cls ; для каждого игрока обновляем положение на экране For player = Each multi Color player/boxColor,player/boxColor,player/boxColor Rect player/x,player/y,10,10,1 Text player/x-10,player/y-15,player/name$ player/x = player/x + player/xspeed If player/x > 640 Or player/x < 0 Then player/xspeed=-player/xspeed message$="Игрок ID #" + playerID + " попал в стену!" ; Послать всем сообщение, если игрок попал в стену ; Оно будет видно на удаленных машинах SendNetMsg Rand(1,99),message$,playerid,0 End If Next Flip Wend End |