Понедельник, 21.08.2017, 09:29
Приветствую Вас Гость
Главная | Раздел DirectPlay - Форум | Регистрация | Вход
Меню сайта
Наш опрос
Где вы планируете встретить новый год?
1. Дома
2. Не дома
Всего ответов: 8
Форма входа
Друзья сайта
Статистика
Форум
[ Новые сообщения · Участники · Правила форума · Поиск ]
Страница 1 из 11
Форум » Творчество » Ваши Переводы (Статьи) » Раздел DirectPlay
Раздел DirectPlay
TadeusDate: Понедельник, 26.03.2007, 20:02 | Message # 1
Аццкий Магичег
Группа: Пользователи
Сообщений: 169
Статус: Offline
StartNetGame()

Параметры

Отсутствуют.

Описание

Отображает диалоговое окно Windows с возможностью присоединится или начать новую многопользовательскую сетевую игру, через модем последовательное соединение или TCP/IP(Интернет).

Примечание: Эта команда должна присутствовать перед любыми другими сетевыми командами, иначе они не заработают.

Возвращаемое значение 0 означает неудачу, 1 означает, что пользователь был успешно подключен к игре и 2 означает, что сеанс был создан пользователем и в роли сервера будет выступать его компьютер.

Пример

newGame = StartNetGame()
; Проверяем статус новой игры.
If newGame = 0 Then
print "Нельзя начать или присоединится к игре."
ElseIf newGame = 1
print "Удачное подключение к игре.."
ElseIf newGame = 2
print "Сетевая игра не была начата."
EndIf

HostNetGame (gamename$)

Параметры

gamename$ = текстовая строка, обозначающая название игры

Описание

Это позволяет вам пропустить "стандартное" диалоговое окно сетевой игры (обычно используя StartNetGame) и начать сразу же хостировать сетевую игру. Возвращаемое значение 2 свидетельствует об удачном начале хостирования.

Пример

; пример HostNetGame

joinResults=HostNetGame("ShaneGame")

Select joinResults
Case 2
Print "Удачное начало хотсирования игры!"
Default
Print "Игра не была начата!"
End Select
waitkey()

JoinNetGame (gamename$,serverIP$)

Параметры

gamename$ = строка, сообщающая об имени игры, к которой надо подключится
serverIP$ = IP адрес компьютера-сервера

Описание

Используйте это команду, пропуская диалоговое окно запускаемое с помощью команды StartNetGame. Возвращает 0 если соединение неудачно или 1 если подключение прошло успешно.

Пример

; пример JoinNetGame
; Заметка; запустите пример HostNetGame на другом компьютере
; к которому вы хотите подключится

gamename$="ShaneGame"
; измините этот IP в соответствии с с IP сервера!
serverIP$="0.0.0.0"

; Попытка соединения
joinResults=JoinNetGame(gamename$,serverIP$)

Select joinResults
Case 1
Print "Подключение прошло удачно!"
Default
Print "Подключение прошло неудачно.."
End Select
WaitKey()

StopNetGame

Параметры

Отсутствуют.

Описание

Используйте эту команду для завершения настоящей сетевой игры (начатой с помощью команды StartNetGame()). Если возможно, хостинг игровой сессии будет передан другой машине, присоединившийся к этой игре.

Пример

; пример stopNetGame()

newGame = StartNetGame()
; Проверка стутуса сетевой игры
If newGame = 0 Then
print "Невозможно начать сетевую игру."
ElseIf newGame = 1
print "Подключение успешно."
ElseIf newGame = 2
print "Новая сетевая игра не была начата."
EndIf
waitkey()
StopNetGame()
print "Сетевая игра закончена."

CreateNetPlayer (name$)

Пармаметры

name$ = имя создающегося игрока

Описание

Создает нового локального игрока. Эта команда также посылает всем подключенным компьютерам специальное сообщение (смотри NetMsgType). Возвращает номер игрока, который будет использоваться для посылки и приема сообщений. Заметка: вы должны создать как минимум одного игрока перед тем, как будете отправлять или принимать сообщения.

Пример

; пример CreateNetPlayer

newGame = StartNetGame()
; Проверка статуса сетевой игры.
If newGame = 0 Then
Print "Игра не может быть начата."
End

ElseIf newGame = 1
Print "Соединение было удачно."
ElseIf newGame = 2
Print "Новая сетевая игра начата!"
EndIf

; Создание случайного имени игрока
name$="Player" + Rand(100)

; Получение уникального ID для каждого игрока
; и создание самого игрока
playerID=CreateNetPlayer(name$)

If playerID = 0 Then
Print "Игрок не может быть создан!"
Else
Print "Игрок" + name$ + " создан и получил ID#" + playerID
End If
WaitKey()

DeleteNetPlayer playerID

Параметры

playerID = значение ID игрока, даваемое ему командой CreateNetPlayer

Описание

Используя ID игрока, сгенерированное командой CreteNetPlayer, эта команда удаляет созданного игрока из сетевой игры. Также отправляется специальное сообщение всем подключенным машинам (смотри NetMsgType).

Пример

; пример DeleteNetPlayer

newGame = StartNetGame()
; Проверка статуса сетевой игры. If newGame = 0 Then
Print "Невозможно начать новую игру."
End

ElseIf newGame = 1
Print "Подключение к игре было удачным!"
ElseIf newGame = 2
Print "Новая сетевая игра начата!"
EndIf

; Создание случайного имени игрока
name$="Player" + Rand(100)

; Получение уникального ID игрока
; и создание самого игрока
playerID=CreateNetPlayer(name$)

If playerID = 0 Then
Print "Игрок не был создан!"
Else
Print "Игрок " + name$ + " создан и получил ID#" + playerID
WaitKey()
; удаление игрока!
DeleteNetPlayer playerID
Print "Локальный игрок был удален!"
End If
waitkey()

NetPlayerName$ (playerID)

Параметры

playerID = ID игрока, данный ему командой CreateNetPlayer

Описание

Для начала, эта команда работает ТОЛЬКО если вы уже подключились к сетевой игре через StartNetGame или JoinNetGame и вы уже создали игрока через СreateNetPlayer (вы должны создать игрока, чтобы эта команда не бездействовала).Используйте эту команду вместе с командой NetMsgFrom(для получения ID игрока) чтобы узнать имя игрока, приславшего вам сообщение. Эта команда возвращает текстовую строку.
Вы будете использовать NetMsgType, NetMsgFrom и NetMsgTo чтобы получить больше информации о сообщении.
Пример требует, чтобы вы запустить его на локальной машине вместе с примером SendNetMsg.

Пример

; пример NetPlayerName$()
; --------------------
; Запустите этот пример с подключающимся компьютером, чтобы "посмотреть"
; на действие команды SendNetMsg. Запустите тот пример
; на локальной машине.
;
; Эта программа сообщит вам, когда игрок коснется стенки

; Используйте это вместo JoinNetGame - проще будет
StartNetGame()

; Создание игрока. Игрок должен быть создан для получения сообщений!
playerID=CreateNetPlayer("Shane")

; Цикл с проверкой статуса
While Not KeyHit(1)

; Проверка получения сообщений
If RecvNetMsg() Then

; если да, мы должны узнать тип сообщения
msgType=NetMsgType()

; тип 1-99 означает сообщение пользователя
If msgType>0 And msgType<100 Then

; Давайте посмотрим, от кого пришло сообщение.
msgFrom=NetMsgFrom()

; Давайте примем само сообщение!
msgData$=NetMsgData$()

; Вывод сообщения на экран
Print msgData$
Print "(Сообщение пришло от:"+ NetPlayerName$(NetMsgFrom()) + ")"
End If
End If
Wend

NetPlayerLocal (playerID)

Параметры

playerID = номер ID игрока (данный командой CreateNetPlayer)

Описание

Для начала, эта команда работает ТОЛЬКО если вы уже подключились к сетевой игре через StartNetGame или JoinNetGame и вы уже создали игрока через СreateNetPlayer (вы должны создать игрока, чтобы эта команда не бездействовала).

Используйте эту команду вместе с NetMsgFrom (для получения ID игрока) для проверки: этот игрок на локальной машине? Вы наверняка желаете добавить в ваше приложение возможность переписываться. А для этого нужно знать, кто писал сообщение: игрока на локальной или удаленной машине.Вы будете использовать NetMsgType, NetMsgFrom и NetMsgTo чтобы получить больше информации о сообщении.

Пример требует, чтобы вы запустить его на локальной машине вместе с примером SendNetMsg.

Пример

; пример NetPlayerLocal
; --------------------
; --------------------
; Запустите этот пример с подключающимся компьютером, чтобы "посмотреть"
; на действие команды SendNetMsg. Запустите тот пример
; на локальной машине.
;
; Эта программа сообщит вам, когда игрок коснется стенки

; Используйте это вместo JoinNetGame - проще будет
StartNetGame()

; Создание игрока. Игрок должен быть создан для получения сообщений!
playerID=CreateNetPlayer("Shane")

; Цикл с проверкой статуса
While Not KeyHit(1)

; Проверка получения сообщений
If RecvNetMsg() Then

; если да, мы должны узнать тип сообщения
msgType=NetMsgType()

; тип 1-99 означает сообщение пользователя
If msgType>0 And msgType<100 Then

; Давайте посмотрим, от кого пришло сообщение.
msgFrom=NetMsgFrom()

; Давайте примем само сообщение!
msgData$=NetMsgData$()

; Вывод сообщения на экран
Print msgData$
if NetPlayerLocal(NetMsgFrom()) then
print "(Это сообщение было отправлено от локального игрока)"
end if
End If
End If
Wend

RecvNetMsg()

Параметры

Отсутствуют.

Описание

Для начала, эта команда работает ТОЛЬКО если вы уже подключились к сетевой игре через StartNetGame или JoinNetGame и вы уже создали игрока через СreateNetPlayer (вы должны создать игрока, чтобы эта команда не бездействовала).

Возвращает TRUE, если получено новое сообщение или FALSE если нет новых сообщений. Обычно получив сообщение, запускается функция, анализирующая его и берущая из него информацию. Вы будете использовать NetMsgType, NetMsgFrom и NetMsgTo чтобы получить больше информации о сообщении.

Пример требует, чтобы вы запустить его на локальной машине вместе с примером SendNetMsg.

Пример

; пример RecvNetMsg
; --------------------
; Запустите этот пример с подключающимся компьютером, чтобы "посмотреть"
; на действие команды SendNetMsg. Запустите тот пример
; на локальной машине.
;
; Эта программа сообщит вам, когда игрок коснется стенки

; Используйте это вместo JoinNetGame - проще будет
StartNetGame()

; Создание игрока. Игрок должен быть создан для получения сообщений!
playerID=CreateNetPlayer("Shane")

; Цикл с проверкой статуса
While Not KeyHit(1)

; Проверка получения сообщений
If RecvNetMsg() Then

; если да, мы должны узнать тип сообщения
msgType=NetMsgType()

; тип 1-99 означает сообщение пользователя
If msgType>0 And msgType<100 Then

; Давайте посмотрим, от кого пришло сообщение.
msgFrom=NetMsgFrom()

; Давайте примем само сообщение!
msgData$=NetMsgData$()

; Вывод сообщения на экран
Print msgData$
end if
End If
End If
Wend

NetMsgType()

Параметры

Отсутствуют.

Описание

Для начала, эта команда работает ТОЛЬКО если вы уже подключились к сетевой игре через StartNetGame или JoinNetGame и вы уже создали игрока через СreateNetPlayer (вы должны создать игрока, чтобы эта команда не бездействовала). Возвращаемое значение 1-99 означает, что это пользовательское сообщение, 100 означает, что к игре подключился новый игрок, 101 означает, что игрок покинул сетевую игру(NetMsgFrom возвращает имя ушедшего игрока), 102 означает что сервер покинул игру и ДАННАЯ машина теперь будет сервером.
Если вы получили 200, это свидетельствует о том, что сессия прервана, и вы должны покинуть игру
Вы будете использовать NetMsgType, NetMsgFrom и NetMsgTo чтобы получить больше информации о сообщении.
Пример требует, чтобы вы запустить его на локальной машине вместе с примером SendNetMsg.

Пример

; примерм NetMsgType()
; --------------------
; Запустите этот пример с подключающимся компьютером, чтобы "посмотреть"
; на действие команды SendNetMsg. Запустите тот пример
; на локальной машине.
;
; Эта программа сообщит вам, когда игрок коснется стенки

; Используйте это вместo JoinNetGame - проще будет
StartNetGame()

; Создание игрока. Игрок должен быть создан для получения сообщений!
playerID=CreateNetPlayer("Shane")

; Цикл с проверкой статуса
While Not KeyHit(1)

; Проверка получения сообщений
If RecvNetMsg() Then

; если да, мы должны узнать тип сообщения
msgType=NetMsgType()

; тип 1-99 означает сообщение пользователя
If msgType>0 And msgType<100 Then

; Давайте посмотрим, от кого пришло сообщение.
msgFrom=NetMsgFrom()

; Давайте примем само сообщение!
msgData$=NetMsgData$()

; Вывод сообщения на экран
Print msgData$
End If
End If
Wend

NetMsgFrom()

Параметры

Отсутствуют.

Описание

Для начала, эта команда работает ТОЛЬКО если вы уже подключились к сетевой игре через StartNetGame или JoinNetGame и вы уже создали игрока через СreateNetPlayer (вы должны создать игрока, чтобы эта команда не бездействовала).

Возвращаемое значение показывает ID игрока (данный ему командой CreateNetPlayer), который послал сообщение. Используйте эту команду для совершения действий на локальном компьютере.

Вы будете использовать NetMsgType, NetMsgFrom и NetMsgTo чтобы получить больше информации о сообщении.
Пример требует, чтобы вы запустить его на локальной машине вместе с примером SendNetMsg.

Пример

; NetMsgFrom() example
; --------------------
; Запустите этот пример с подключающимся компьютером, чтобы "посмотреть"
; на действие команды SendNetMsg. Запустите тот пример
; на локальной машине.
;
; Эта программа сообщит вам, когда игрок коснется стенки

; Используйте это вместo JoinNetGame - проще будет
StartNetGame()

; Создание игрока. Игрок должен быть создан для получения сообщений!
playerID=CreateNetPlayer("Shane")

; Цикл с проверкой статуса
While Not KeyHit(1)

; Проверка получения сообщений
If RecvNetMsg() Then

; если да, мы должны узнать тип сообщения
msgType=NetMsgType()

; тип 1-99 означает сообщение пользователя
If msgType>0 And msgType<100 Then

; Давайте посмотрим, от кого пришло сообщение.
msgFrom=NetMsgFrom()

; Давайте примем само сообщение!
msgData$=NetMsgData$()

; Вывод сообщения на экран
Print msgData$
End If
End If
Wend

NetMsgTo()

Параметры

Отсутствуют.

Описание

Для начала, эта команда работает ТОЛЬКО если вы уже подключились к сетевой игре через StartNetGame или JoinNetGame и вы уже создали игрока через СreateNetPlayer (вы должны создать игрока, чтобы эта команда не бездействовала).

Возвращаемое значение этой команды показывает, ID игрока(данный ему командой CreateNetPlayer), которому предназначалось сообщение

Вы будете использовать NetMsgType, NetMsgFrom и NetMsgTo чтобы получить больше информации о сообщении.

Пример требует, чтобы вы запустить его на локальной машине вместе с примером SendNetMsg.

Пример

; NetMsgTo() example
;--------------------
; Запустите этот пример с подключающимся компьютером, чтобы "посмотреть"
; на действие команды SendNetMsg. Запустите тот пример
; на локальной машине.
;
; Эта программа сообщит вам, когда игрок коснется стенки

; Используйте это вместo JoinNetGame - проще будет
StartNetGame()

; Создание игрока. Игрок должен быть создан для получения сообщений!
playerID=CreateNetPlayer("Shane")

; Цикл с проверкой статуса
While Not KeyHit(1)

; Проверка получения сообщений
If RecvNetMsg() Then

; если да, мы должны узнать тип сообщения
msgType=NetMsgType()

; тип 1-99 означает сообщение пользователя
If msgType>0 And msgType<100 Then

; Давайте посмотрим, от кого пришло сообщение.
msgFrom=NetMsgFrom()

; Давайте примем само сообщение!
msgData$=NetMsgData$()

; Вывод сообщения на экран
Print msgData$
Print "(Сообщение адресовалось игроку:"+ NetMsgTo() + ")"
End If
End If
Wend

NetMsgData$()

Параметры

Отсутствуют.

Описание

Для начала, эта команда работает ТОЛЬКО если вы уже подключились к сетевой игре через StartNetGame или JoinNetGame и вы уже создали игрока через СreateNetPlayer (вы должны создать игрока, чтобы эта команда не бездействовала).

Возвращаемое текстовое значение показывает текст сообщения.

Вы будете использовать NetMsgType, NetMsgFrom и NetMsgTo чтобы получить больше информации о сообщении.

Пример требует, чтобы вы запустить его на локальной машине вместе с примером SendNetMsg.

Пример

; пример NetMsgData$()
;--------------------
; Запустите этот пример с подключающимся компьютером, чтобы "посмотреть"
; на действие команды SendNetMsg. Запустите тот пример
; на локальной машине.
;
; Эта программа сообщит вам, когда игрок коснется стенки

; Используйте это вместo JoinNetGame - проще будет
StartNetGame()

; Создание игрока. Игрок должен быть создан для получения сообщений!
playerID=CreateNetPlayer("Shane")

; Цикл с проверкой статуса
While Not KeyHit(1)

; Проверка получения сообщений
If RecvNetMsg() Then

; если да, мы должны узнать тип сообщения
msgType=NetMsgType()

; тип 1-99 означает сообщение пользователя
If msgType>0 And msgType<100 Then

; Давайте посмотрим, от кого пришло сообщение.
msgFrom=NetMsgFrom()

; Давайте примем само сообщение!
msgData$=NetMsgData$()

; Вывод сообщения на экран
Print msgData$
Print "(Сообщение адресовалось игроку:"+ NetMsgTo() + ")"
End If
End If
Wend

SendNetMsg type,data$,from,to,reliable

Параметры

type = число 1-99
data$ = текстовое содержание сообщения
from = ID отправителя
to = ID получателя (0=общее)
reliable = режим посылки сообщения

Описание

Для начала, эта команда работает ТОЛЬКО если вы уже подключились к сетевой игре через StartNetGame или JoinNetGame и вы уже создали игрока через СreateNetPlayer (вы должны создать игрока, чтобы эта команда не бездействовала).Это самая распространенная из сетевых команд. Эта команда позволяет посылать сообщения отдельному игроку или всем сразу в сетевой игре. Другие игроки используют RecvNetMsg для получения ваших сообщений.
Параметр TYPE это число между 1 и99. Эти значения говорят о том, что это пользовательские сообщения.

Параметр Data$ содержит строку, посылаемую сообщением. Полезно знать, что из-за низкого трафика, вы должны совмещать разные сообщения в одно. Для примера, вы должны отправить X, Y и номер кадра одной строкой, например такой: "200,100,4" и получатель должен разобрать её.

FROM - это ID игрока посылающего сообщение, это значение дает команда CreateNetPlayer.

TO - это ID игрока, которому вы хотите послать сообщения. Значение по умолчанию 0, означает, что сообщение отошлется ВСЕМ игрокам.
Параметр RELIABLE ставит приоритет сообщения. Если приоритет высокий, то сообщение посылается очень быстро, иначе отошлется раза в 3 медленее.

Пример требует, чтобы вы запустили эту программу на локальной машине, а на удаленном компьютере вы должны запустить пример команды RecvNetMsg.

Пример

; пример SendNetMsg
; ------------------
; Запустите этот пример на локальном компьютере
; запустите пример RecvNetMsg с удаленного компьютера

; Графический режим с двойной буферизацией
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
; заполнение значения ID'a игрока
playerID=CreateNetPlayer("Player" + t)

; если игрок создан, задаем случайные параметры
If playerID <> 0 Then
player
ame$="Player" + t
playerx = Rand(640)
playery = Rand(480)
playeroxColor = Rand(255)
playerxspeed = Rand(1,5)
; Print some text results
Print "Игрок" + t + " был подключен к игре с ID=" + playerID
Else
Print "Игрок не может подключится!"
End If
Next

; Созданы все. Ожидание нажатия клавиши
Print "Все локальные игроки подключены! Нажмите любую клавишу для продолжения..."
WaitKey()

; Цикл
While Not KeyHit(1)
Cls
; обновления для всех игроков
For player = Each multi
Color playeroxColor,playeroxColor,playeroxColor
Rect playerx,playery,10,10,1
Text playerx-10,playery-15,player
ame$
playerx = playerx + playerxspeed
If playerx > 640 Or playerx < 0 Then
playerxspeed=-playerxspeed
message$="Игрок с ID #" + playerID + " стукнулся об стенкуll!"
;Посылка сообщений всем игрокам
SendNetMsg Rand(1,99),message$,playerid,0
End If
Next
Flip
Wend
End

Вот перевел раздел справки именуемый ДиректПлэйем. Если кому-то понадобится буду очень рад... happy

Сообщение отредактировал JohnK - Суббота, 14.04.2007, 04:48
 
JohnKDate: Среда, 28.03.2007, 20:21 | Message # 2
EA FAN
Группа: Администраторы
Сообщений: 408
Статус: Offline
Ого! Респект, Tadeus! Надеюсь многим понадобится!


 
TadeusDate: Четверг, 05.04.2007, 17:52 | Message # 3
Аццкий Магичег
Группа: Пользователи
Сообщений: 169
Статус: Offline
bb Кто сделает перевод длинее? smile
 
JohnKDate: Пятница, 06.04.2007, 03:30 | Message # 4
EA FAN
Группа: Администраторы
Сообщений: 408
Статус: Offline
Я! smile


 
LaZZZeRDate: Понедельник, 09.04.2007, 11:59 | Message # 5
Рядовой
Группа: Пользователи
Сообщений: 44
Статус: Offline
Quote (JohnK)
Я! smile

Посмотрим wink


 
JohnKDate: Понедельник, 09.04.2007, 15:04 | Message # 6
EA FAN
Группа: Администраторы
Сообщений: 408
Статус: Offline
Quote (LaZZZeR)
Посмотрим wink

Начало положено cool





Сообщение отредактировал JohnK - Понедельник, 09.04.2007, 15:04
 
TadeusDate: Вторник, 10.04.2007, 09:51 | Message # 7
Аццкий Магичег
Группа: Пользователи
Сообщений: 169
Статус: Offline
Ну это да smile
ЗЫ. я перевел все за 30 мин, а то и меньше. Кто побьет такой объем за такое же время или быстрее? cool


Сообщение отредактировал Tadeus - Вторник, 10.04.2007, 09:52
 
JohnKDate: Вторник, 10.04.2007, 15:41 | Message # 8
EA FAN
Группа: Администраторы
Сообщений: 408
Статус: Offline
Ой Tadeus, ой молодец! вах вах biggrin


 
TadeusDate: Четверг, 12.04.2007, 16:24 | Message # 9
Аццкий Магичег
Группа: Пользователи
Сообщений: 169
Статус: Offline
Я серьезно wink
 
LaZZZeRDate: Вторник, 17.07.2007, 21:39 | Message # 10
Рядовой
Группа: Пользователи
Сообщений: 44
Статус: Offline
Quote (JohnK)
Начало положено

ну и хде?


 
ArchiXDate: Пятница, 03.08.2007, 13:36 | Message # 11
Рядовой
Группа: Пользователи
Сообщений: 49
Статус: Offline
Молодчина, Tadeus.

Уважение - вот мое кредо.
 
Форум » Творчество » Ваши Переводы (Статьи) » Раздел DirectPlay
Страница 1 из 11
Поиск:
Copyright JohnK© 2017