Инструкции многопользовательские

Инструкции multiplayer пересылают информации между клиентами и сервером в системе клиента/сервер. Они симметричные: выполняясь на клиенте они посылают что-то серверу; выполняясь на сервере они посылают что-то некоторому клиенту или всем клиентам. Нет никаких специальных инструкций чтобы синхронизировать уровень и обновлять сущности — это делается автоматически.

send (entity.skill);
send_vec (entity.skill);
Этой инструкцией клиент может изменить skill сущности или параметр на сервере, или наоборот. Параметр этой инструкции должен быть таким: указателем на сущность — точка — skill сущности. Send_vec посылает три последовательных skill’а. Тот же самый skill той же самой сущности на принимающем PC получит переданное значение. Эта инструкция обычно используется чтобы послать нажатые клавиши и усилия сущности игрока-клиента на сервер, или посылать события — подобно тому, что предмет подняли — от сервера клиенту. Пример:
send(my.skill17);

send_string (string);
Посылает строку string от клиента серверу, или от сервера всем клиентам. Событийная функция On_server или on_client будет вызвана на каждом PC, который получил строку, и содержимое этой строки будет заменено полученной строкой. Эта инструкция может использоваться для обмена сообщениями, или для выполнения инструкций на всех клиентах одновременно. Пример:
inkey message_str; // юзер набирает сообщение
if (result == 13) { // если нажат [ENTER] (f yt уыс)
send_string(message_str); } // send that string to all players
// After that, message_str on all clients contains the entered message

send_var (var)
Посылает переменную или массив от клиента серверу, или от сервера всем клиентам. Событийная функция on_server или on_client будет вызвана на каждом PC, который получил переменную, содержимое переменной или массив будет заменен новыми значениями. Только определенные пользователем переменные могут быть посланы; предопределенные переменные системы или old-style skill’ы не могут быть посланы. Если переменная — вектор или массив, все элементы посланы.

session_connect (sessionname, hostname)
Переключается на другую сессию на другом сервере. Первый параметр строки содержит имя новой сессии, второй параметр дает имя, домен или IP-адрес нового сервера. Таким образом в среде multiplayer можно легко изменить уровень или зону :
session_connect(«zone2″,»169.254.73.29»);
level_load(«zone2.wmb»);
Если hostname — пустая строка, появится окно диалога для ввода имени сервера или его IP. Если сервер или сессия не найдены, будет выбано сообщение об ошибке.

Добавить комментарий