May 102013
 

Авторы: Arkshine & xPaw

Как вы знаете вывести в MOTD страничку, сформированную в вашем плагине довольно просто, а вот добиться двустороннего взаимодействия MOTD уже не такая тривиальная задача. В этой статье вы узнаете, как это сделать.
Зачем же это нужно? Например, для создания своего классного магазина или выбора класса игрока, применений масса.

Вот пример:
80_screenshots_2012-07-31_00001

Требования:

Для осуществления взаимодействия вам понадобятся:

Так же вы должны в какой-то мере владеть:

  • PAWN
  • PHP
  • HTML/CSS (желательно)

Приступаем!

В этой статье будет описано, то, как сделать MOTD для выбора класса игрока.

План статьи:

  • Как это работает?
  • PHP код
  • AMXX плагин
  • Итоги и Скриншоты

Как это работает?

Мы будем показывать игроку меню в MOTD, в котором он сможет куда-либо нажать.
Когда игрок сделает действие (нажмёт на ссылку), вебсайт отошлёт всю нужную информацию на сервер (hlds), и затем плагин обработает эту информацию.

Для реализации мы регистрируем серверную команду через register_concmd.
Например register_concmd(“php_result”, “callback”).
При выполнении команды php_result через RCON мы передаём ей некоторые параметры, которые затем читаем в функции callback.

В итоге получается такая схема взаимодействия:
Сервер -> Вебсайт -> Сервер

PHP код

Скрипт получает следующую информацию:

  • Id игрока
  • IP игрока
  • Текущий класс игрока

Итак, начинаем:

После этой проверки, мы можем показать игроку меню:

Теперь мы должны отослать серверу информацию о том какой класс выбрал игрок.

Но мы отошлём команду, только в том случае, если текущий класс игрока отличается от того, который игрок выбрал.
Теперь пришло время подключить SourceQuery.class.php в скрипт.

Окончательный вариант кода: (в коде есть дефайны, которые нужно поменять)

На этом с PHP всё.

AMXX плагин

Для начала получим информацию отосланную с вебсайта (через RCON)
Мы использовали команду php_result.

Отлично, мы получили всю информацию, которая нужна.
Теперь завершим плагин, добавим следующую функциональность:

  • Выдача оружия игроку при респавне
  • Показ MOTD, если у игрока нет класса

Так же сразу будем выдавать оружие игроку при выборе класса, если до этого игрок был без класса.

В заключение

Единственное, что можно ещё сказать, не делайте изображения больше чем 600х350 в MOTD.
Картинка с таким размером будет приемлемо выглядеть на всех разрешениях экрана.

Теперь вы можете создать свой магазин или что угодно, со своим дизайном и прочим.


SourceQuery.class.php

Перевод: Polarhigh
Источник: http://forums.alliedmods.net/showthread.php?t=198774

По поводу неточностей или ошибок в переводе пишите в комментарии.

Оставить комментарий

Пожалуйста, авторизуйтесь чтобы добавить комментарий.
  Подписаться  
Уведомление о