Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

3 страниц V   1 2 »

Вывод информации в MOTD-окне

Safety1st
сообщение 28.11.2013, 14:37
Сообщение #1
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

MOTD - аббревиатура от 'Message Of The Day'.

Для показа игроку MOTD-окна служит натива:
Код
show_motd( player, const message[], const title[]="" )
• player - число: индекс игрока, которому нужно показать MOTD, для показа всем используем индекс 0;
• message - содержимое для окна; это может быть текст, имя файла на сервере или URL;
• title - заголовок окна. если он не указан, в качестве заголовка будет использоваться имя сервера (hostname).


Способы вывода информации в MOTD-окне:
1. Формирование текста в плагине и показ игроку либо вывод текста из файла
Примеры:
Формирование в плагине:
Код
new szMotdTpl[] = "Простой текст с именем игрока^nПривет, %s!"
new szMotdText[128], szName[32]

get_user_name( id, szName, charsmax(szName) )
formatex( szMotdText, charsmax(szMotdText), szMotdTpl, szName )
show_motd( id, szMotdText, "Welcome to server" )

Код
static const szMotdTpl[] = "<html><head><meta http-equiv=^"Content-Type^" content=^"text/html; charset=utf-8^">\
    </head><body style='overflow:auto;overflow-x:hidden'><p align=^"center^">\
    <font color=^"Lime^" size=^"5^">Добро пожаловать, %s!</font></p></body></html>"

static szMotdText[300], szName[32]
get_user_name( id, szName, charsmax(szName) )
formatex( szMotdText, charsmax(szMotdText), szMotdTpl, szName )
show_motd( id, szMotdText, "Welcome to server" )

Показ файла:
Код
show_motd( id, "blabla.txt", "Welcome to server" )

Код
static const szMotdFile[] = "blabla.txt"
show_motd( id, szMotdFile, "Welcome to server" )

2. Показ игроку MOTD, открывающегося по ссылке с внешнего сайта - show_motd( index, url, title )
Примеры:
Код
show_motd( id, "http://example.ru/file.htm", "Welcome to server" )

Код
static const szUrl[] = "http://example.ru/file.htm"
show_motd( id, szUrl, "Welcome to server" )


Сравнение способов
Вариант 1:
минус: длина текста ограничена 1536-ю символами (стили можно подключать внешним CSS-файлом, экономия!)
плюс: (иногда критично) без наличия базы может вывести актуальную инфу по игроку (текущий ник, фраги и т.д.)
плюс: (иногда критично) не требует использования внешнего сайта

Вариант 2:
плюс: нет ограничения на длину текста
плюс: только здесь доступны динамические страницы (php и всё такое)
плюс: можно делать интерактивные страницы (например, клик по позиции игрока в top15 открывает детальную инфу по нему)
плюс: можно различать старые/новые билды по user-agent'у (соответственно, клиентам с поддержкой скриптов показывать более функциональные окна)
плюс: можно выводить мессагу на время загрузки окна
минус: (иногда) требует доступа к общей базе по игрокам. Обычно базу предоставляет хостер, но не всегда возможен доступ к ней извне. Наверное, в этом случае игровым сервером используется сторонняя база сайта для обхода ограничения

Также используется комбинация этих вариантов: игроку показывается файл, вызывающий редирект на страницу, размещённую уже на внешнем сайте. Это оправдано применять для дефолтного motd.txt сервера и для плагинов с закрытым исходным кодом, поведение которых не изменить.
Пример файла-перенаправления
Код
<html><head><meta http-equiv="refresh" content="0; url=http://example.ru/file.htm"></head></html>


Прокрутка на билдах ниже 6xxx
У игроков с пираток не самых последних билдов, на компьютере которых установлен Internet Explorer 10 и выше, в MOTD может не работать полоса прокрутки. Для исправления ситуации необходимо:

1. убрать директиву<!DOCTYPE>, задающую тип документа, чтобы 'заставить' IE отображать страницу в режиме IE 5, т.н. режиме Quirks. Важно помнить, что IE 10 и выше в этом случае всё же поддерживает все стандарты (в частности, HTML5 и CSS3), а IE 9 и ниже - только те, что поддерживал IE 5.5. Поэтому для лучшей совместимости рекомендуется в MOTD-страницах не использовать возможности, существующие только в HTML5 и CSS3.

2. добавить в документ вторую, 'внутреннюю' полосу прокрутки с помощью параметра к тэгу body (необходимо только для IE10):
Код
<body style='overflow:auto;overflow-x:hidden'>

Назначение этих же свойств через CSS:
Код
body
{
    overflow:auto;
    overflow-x:hidden;
}

Тщательное тестирование с различными версиями IE не проводилось, только с IE 11 и 9.


Другие гайды:
как узнать адрес картинки в MOTD
подсчёт посещений сервера


TODO:
тэги bgsound и audio

Отредактировал: Safety1st, - 23.7.2014, 17:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 8 раз
   Цитировать сообщение
serfreeman1337
сообщение 28.11.2013, 15:16
Сообщение #2
Стаж: 11 лет

Сообщений: 912
Благодарности: выкл.

С помощью 1ого варианта еще можно выводить содержимое файла на сервере в MOTD окно.
Например, следующий код выведет SQL данные в MOTD окно:
Код
show_motd(id,"addons\amxmodx\configs\sql.cfg")


Отредактировал: serfreeman1337, - 29.4.2014, 16:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
exec1337
сообщение 28.11.2013, 15:28
Сообщение #3
Стаж: 11 лет

Сообщений: 6490
Благодарностей: 2558
Полезность: 491

Вариант 2:
плюс: всегда рабочие кнопки прокрутки и т.д.
плюс: можно выводить мессагу на время загрузки окна
плюс: удобство настройки самого окна (html-файла)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 28.11.2013, 15:29
Сообщение #4
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

serfreeman1337, спасибо, добавил.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
exec1337
сообщение 28.11.2013, 15:29
Сообщение #5
Стаж: 11 лет

Сообщений: 6490
Благодарностей: 2558
Полезность: 491

плюс: нет проблем с кодировкой (всякие там буквы я корректно отображаются)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 28.11.2013, 15:32
Сообщение #6
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(exec1337 @ 28.11.2013, 17:28) *
Вариант 2:
плюс: всегда рабочие кнопки прокрутки и т.д.

Не уверен) Что мешает добавить нужный код в вариант 1? там всего 1 строчка.

Цитата(exec1337 @ 28.11.2013, 17:28) *
плюс: можно выводить мессагу на время загрузки окна

Принимается!

Цитата(exec1337 @ 28.11.2013, 17:28) *
плюс: удобство настройки самого окна (html-файла)

Поясните подробнее?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sweet
сообщение 28.11.2013, 15:34
Сообщение #7
Стаж: 13 лет

Сообщений: 1920
Благодарностей: 597
Полезность: 431

2 вариант

Safety1st, не всегда можно прокручивать страницу вниз (не знаю от чего зависит).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 28.11.2013, 15:37
Сообщение #8
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(exec1337 @ 28.11.2013, 17:29) *
плюс: нет проблем с кодировкой (всякие там буквы я корректно отображаются)

Хм... Может в быдлоплагинах только такие траблы?
Ситуацию 'плагин/сайт пытается вывести в одном окне 2 текста с различными кодировками я не считаю': это не поддерживаемая реализация.
--

Добавил к варианту 2:
Цитата
плюс: только здесь доступны динамические страницы (php и всё такое)


Цитата(sweet @ 28.11.2013, 17:34) *
2 вариант

??

Цитата(sweet @ 28.11.2013, 17:34) *
Safety1st, не всегда можно прокручивать страницу вниз (не знаю от чего зависит).

Ну так правьте тэг body на:
Код
<body style='overflow:auto;overflow-x:hidden'>

и прокручивайте)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 28.11.2013, 17:10
Сообщение #9


Иконка группы

Стаж: 14 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

А js не выводит после стим обнов?


Гнилой фашистской нечисти
Загоним пулю в лоб,
Отродью человечества
Сколотим крепкий гроб!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя counterstrikec4
сообщение 28.11.2013, 17:28
Сообщение #10
Стаж: 13 лет

Сообщений: 191
Благодарностей: 32
Полезность: 34

Цитата
Цитата(exec1337 @ 28.11.2013, 17:28) *
плюс: удобство настройки самого окна (html-файла)

Поясните подробнее?

Наверно он имел введу удобство вёрстки и правки в html, motd окна.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 28.11.2013, 17:40
Сообщение #11


Иконка группы

Стаж: 14 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Ну размеры не только вертикальные, а и горизонтальные можно устанавливать.


Гнилой фашистской нечисти
Загоним пулю в лоб,
Отродью человечества
Сколотим крепкий гроб!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FFA
сообщение 29.11.2013, 15:24
Сообщение #12


Стаж: 13 лет

Сообщений: 115
Благодарностей: 71
Полезность: 341

Цитата(Safety1st @ 28.11.2013, 16:32) *
Цитата
плюс: удобство настройки самого окна (html-файла)

Поясните подробнее?

В обновлённой Steam кс можно создавать окна нужного размера.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 29.11.2013, 15:26
Сообщение #13
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(Fred Perry @ 28.11.2013, 19:40) *
Ну размеры не только вертикальные, а и горизонтальные можно устанавливать.
Цитата(FFA @ 29.11.2013, 17:24) *
В обновлённой Steam кс можно создавать окна нужного размера.

Имелось ввиду сравнение способов. Не хотите же вы сказать, что управлять размером окон можно только способом 2? ;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FFA
сообщение 29.11.2013, 15:34
Сообщение #14


Стаж: 13 лет

Сообщений: 115
Благодарностей: 71
Полезность: 341

Не конечно там и там можно.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 1.12.2013, 22:25
Сообщение #15
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Видимо, теперь перечислены все отличия. Получается, при наличии сайта обычно лучше пользоваться им (способом 2), даже если url идёт на обычный html-файл.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя HoHoL
сообщение 1.12.2013, 22:28
Сообщение #16


Иконка группы

Стаж: 12 лет

Сообщений: 962
Благодарностей: 918
Полезность: 1174

Меценат Меценат

Возможно вывести отображение top15 по сылке с внешнего сайта. Речь идет о том , что делая в стиле таблицы , все пункты топа распространить на 15 человек нереально не вырезав нечего .
Так вот возможно ли это ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 1.12.2013, 22:33
Сообщение #17
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

При выводе с сайта ограничения на размер нет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя HoHoL
сообщение 7.12.2013, 15:46
Сообщение #18


Иконка группы

Стаж: 12 лет

Сообщений: 962
Благодарностей: 918
Полезность: 1174

Меценат Меценат

Цитата(Safety1st @ 1.12.2013, 22:33) *
При выводе с сайта ограничения на размер нет.

Я понял . Вопрос в другом , как это реализовать .
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 7.12.2013, 16:10
Сообщение #19
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(HoHoL @ 7.12.2013, 17:46) *
Вопрос в другом , как это реализовать .

Вы спрашивали - возможно или нет:
Цитата(HoHoL @ 2.12.2013, 0:28) *
Так вот возможно ли это ?

Какой вопрос - такой и ответ :)

Реализовывайте) Вам либо в раздел с плагинами, либо в раздел со скриптами.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 17.12.2013, 5:53
Сообщение #20
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Ещё вспомнил про вариант 2:
- плюс: можно делать интерактивные страницы (например, клик по позиции игрока в top15 открывает детальную инфу по нему)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
3 страниц V   1 2 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: