Версия: 1.3.11
Описание:
Все сообщения* в чате записываются в базу данных и выводятся на веб-сайте.
* - team сообщения, которые начинаются на @ не логируются; сообщения, которые начинаются на / зависит от квара amx_webchat_ignore_sim
Сообщения на сайте отображаются через 5 минут, после отправки на сервере.
Требования:
Веб-хостинг с поддержкой PHP 5.4-7.1 и .htaccess
База данных Mysql
Используемые модули:
Mysql
Cstrike
Настройки:
// Хост базы данных
amx_webchat_host "localhost"
// Пользователь базы данных
amx_webchat_user "root"
// Пароль базы данных
amx_webchat_pass ""
// База данных
amx_webchat_db ""
// IP сервера(обязательно заполнять для серверов на хостинге DGH)
// Если автоматически IP определяет некорректно, то тоже надо его вписать
// Если поле пустое, то IP будет определен автоматически
amx_webchat_ipfix ""
// Игнорировать сообщения с символами: / в начале? 0 - записать в таблицу; 1 - игнорировать
amx_webchat_ignore_sim "1"
// Переподключаться к базе данных при потере соединения?
// 1 - переподключиться, 0 - не переподключаться(плагин будет остановлен)
amx_webchat_reconnectmysql "1"
// Через сколько секунд переподключаться к базе данных
// Значение должно быть от 5 до 60
amx_webchat_reconnecttime "20"
// При значение 1 все русские символы будут нормально отображаться в чате(на старых версиях сервера)
// Не рекомендуется включать этот параметр, если на сервере стоят сторонние плагины, связанные с чатом
// В базу русский текст записывается в любом случае нормально
// Параметр не действует, если раскомментирован #define COLORED_TRANSLIT
amx_webchat_rusfix "0"
// Игроки видят весь чат(кроме командный чата соперника)
// Не рекомендуется включать этот параметр, если на сервере стоят сторонние плагины, связанные с чатом
// При включенном параметре обязательно удалить allchat.amxx
// Параметр не действует, если раскомментирован #define COLORED_TRANSLIT
amx_webchat_allchat "0"
// Админ видит весь в чат(включая командный чат соперника)
// Не рекомендуется включать этот параметр, если на сервере стоят сторонние плагины, связанные с чатом
// При включенном параметре обязательно удалить adminlisten.amxx
// Параметр не действует, если раскомментирован #define COLORED_TRANSLIT
amx_webchat_listen "0"
// Отправлять rcon пароль в базу? (rcon в базе нужен для отправки сообщений из веб-чата на сервер)
// rcon пароль можно указать в админчасти веб-чата, отправлять в базу автоматически не обязательно
// 1 - отправить, 0 - не отправлять
amx_webchat_sendrcon "0"
// Наказывать ли игрока за использование багов с цветным чатом (можно сделать сообщение зеленым или цветом команды)
// 0 - не наказывать (сообщение не блокируются, выводится в чат, при этом цвет сообщения не изменится)
// 1 - кикнуть игрока (сообщение блокируется, не выводится в чат и не отправляется в лог)
// 2 - свое наказание, которое указано в amx_webchat_cc_exec (сообщение блокируется, не выводится в чат и не отправляется в лог)
amx_webchat_cc_punish "2"
// Свое наказание игрока (работает только при amx_webchat_cc_punish = 2)
// %ip% - ip игрока
// %authid% - steamid игрока
// %userid% - userid игрока
// %name% - ник игрока
// Примеры:
// "addip 60 %ip%" - забанить ип игрока на 60 минут (при бане навсегда не забывайте прописывать writeip)
// "banid 0 %authid%;writeid" - забанить steamid игрока навсегла (при бане навсегда не забывайте прописывать writeid)
// "amx_ban 0 %userid% ^"Баг с цветным чатом^"" - забанить игрока навсегда в amxbans с причной "Баг с цветным чатом"
// "amx_superban %userid% 60 Баг_с_цветным_чатом^"" - забанить игрока на 60 минут в superban с причной "Баг_с_цветным_чатом"
amx_webchat_cc_exec "addip 60 %ip%"
Список изменений:
1.0 Релиз плагина
1.1 Убран баг: не логировались сообщения в которых был символ ' или "
Добавлены запросы CREATE TABLE при запуске плагина
1.2 Добавлена кодировка UTF-8 при подключении к базе данных, теперь русское название сервера и русские сообщения будут отображаться корректно
Добавлен квар amx_webchat_reconnectmysql
Исправлены мелкие ошибки
+Немного обновлена веб-часть
1.2.1
Исправлены ошибки, из-за которых могли быть сильные лаги из-за бесконечного реконнекта к БД
1.2.2
Исправлены ошибки: Run time error 10 (plugin "webchat.amxx") (native "SQL_FreeHandle")
1.2.3
Вместо 2-ух функций, теперь одна функция, которая отсылает лог в mysql
Исправлены мелкие ошибки
1.2.4
Добавлено нормальное отображение русского текста в чате(зависит от квара amx_webchat_rusfix)
Если включен параметр amx_webchat_ignore_sim, то сообщения со слешом вначале скрываются в чате(раньше сообщения просто не записывались в базу)
Добавлен квар amx_webchat_reconnecttime, теперь можно указать время, через которое сервер будет переподключаться к базе данных, при потере соединения
1.2.5
Исправлен баг с кодировкой сообщений
1.3
Добавлено логирование русских сообщений из colored translit 3.0 (необходимо уставить измененный мною colored translit)
Исправлены многочисленные дублирования сообщений в консоле
1.3.1
cs_get_user_team -> get_user_team, модуль Cstrike теперь не используется
Изменен алгоритм вывода русского чата в игре, теперь русский чат в игре выводится в любом случае
Добавлены функции allchat и adminlisten, настраиваются кварами
1.3.2
Добавлен квар amx_webchat_sendrcon для новой веб-части
1.3.3
Стандартный лог теперь не блокируется
Модуль cstrike добавлен обратно, т.к. get_user_team работает некорректно
1.3.4
Исправлено дублирование сообщений в стандартном логе(в некоторых случаях)
Добавлено наказание за использование багов с цветным чатом, настраивается кварами
1.3.10
Убрана функция SQL_Connect, т.к. из-за нее зависает сервер, если БД недоступна
Теперь все запросы асинхронно выполняются в отдельном потоке(создание таблиц был синхронно), что тоже предотвращает зависание сервера
Функция SQL_QuoteString заменена на свою функцию, т.к. она требует наличие подключения к БД.
1.3.11
Добавлено экранирование name и steam при использовании их в кваре amx_webchat_cc_exec
Требования для работы плагина с colored translit 3.0:
-Измененный мною Colored Translit v3.0(прикреплен ниже), для тех, у кого он изменен, ниже(в спойлере) будет инструкция, какие изменения надо внести
-Раскомментировать #define COLORED_TRANSLIT и скомпилировать плагин, для тех, кто не хочет компилировать, версия с translit выложена в архиве webchat_translit(прикреплен ниже)
Инструкция по изменению Colored Translit
Файлы для изменения: scripting/colored_translit/defines.inl, scripting/colored_translit/init.inl, scripting/colored_translit/say.inl, scripting/colored_translit/say_team.inl
1) В файле scripting/colored_translit/defines.inl ПОСЛЕ [pawn]new fwd_Format[/pawn] НИЖЕ добавить [pawn]new fwd_Translit[/pawn]
2) В файле scripting/colored_translit/init.inl ПОСЛЕ [pawn]fwd_Format = CreateMultiForward("ct_message_format", ET_IGNORE, FP_CELL)[/pawn] НИЖЕ добавить [pawn]fwd_Translit = CreateMultiForward("ct_message_translit", ET_IGNORE, FP_CELL, FP_STRING, FP_CELL)[/pawn]
3) В файле scripting/colored_translit/say.inl ПЕРЕД
[pawn] get_user_name(id, s_Name, charsmax(s_Name))
if(get_pcvar_num(g_SwearFilter))[/pawn]
ВЫШЕ добавить
[pawn]ExecuteForward(fwd_Translit, fwdResult, id, s_Msg, 0)[/pawn]
4) В scripting/colored_translit/say_team.inl ПЕРЕД
[pawn] get_user_name(id, s_Name, charsmax(s_Name))
if(get_pcvar_num(g_SwearFilter))[/pawn]
ВЫШЕ добавить
[pawn]ExecuteForward(fwd_Translit, fwdResult, id, s_Msg, 1)[/pawn]
5) Скомпилировать
Файлы для изменения: scripting/colored_translit/defines.inl, scripting/colored_translit/init.inl, scripting/colored_translit/say.inl, scripting/colored_translit/say_team.inl
1) В файле scripting/colored_translit/defines.inl ПОСЛЕ [pawn]new fwd_Format[/pawn] НИЖЕ добавить [pawn]new fwd_Translit[/pawn]
2) В файле scripting/colored_translit/init.inl ПОСЛЕ [pawn]fwd_Format = CreateMultiForward("ct_message_format", ET_IGNORE, FP_CELL)[/pawn] НИЖЕ добавить [pawn]fwd_Translit = CreateMultiForward("ct_message_translit", ET_IGNORE, FP_CELL, FP_STRING, FP_CELL)[/pawn]
3) В файле scripting/colored_translit/say.inl ПЕРЕД
[pawn] get_user_name(id, s_Name, charsmax(s_Name))
if(get_pcvar_num(g_SwearFilter))[/pawn]
ВЫШЕ добавить
[pawn]ExecuteForward(fwd_Translit, fwdResult, id, s_Msg, 0)[/pawn]
4) В scripting/colored_translit/say_team.inl ПЕРЕД
[pawn] get_user_name(id, s_Name, charsmax(s_Name))
if(get_pcvar_num(g_SwearFilter))[/pawn]
ВЫШЕ добавить
[pawn]ExecuteForward(fwd_Translit, fwdResult, id, s_Msg, 1)[/pawn]
5) Скомпилировать
Изменения в web части:
-Все поля добавлены в таблицу, чтобы все было ровно
-Добавлена возможность удаления сервера из базы
-Добавлены ссылки на профиль стим(у стим игроков)
-Оптимизированы mysql запросы
-Добавлен debug режим
UPDATE 14.12.2013 полностью переписана веб-часть
[-]Убран debug режим, ибо он не нужен
[+]В основу дизайна взят Вы должны зарегистрироваться, чтобы видеть ссылки.
[!]Улучшен пагинатор
[+]Удобный установочник
[+]Добавлена проверка на motd_rewrite
[+]Добавлен поиск по промежутку времени
[+]Добавлена админ-часть(root админа нельзя удалить, у него всегда будет доступ ко всем функциям, независимо от настроек уровня)
[+]Добавлена возможность отправлять сообщение из веб-чата на сервер
[+]Добавлен шаблонизатор smarty, изменить дизайн теперь проще
[!]В админ-части все на ajax, изменения вступают в силу без перезагрузки страницы, быстро и удобно
UPDATE 03.12.2015
[+]Добавлена функция автоматического удаления старых сообщений
UPDATE 05.09.2016
[!]Обновлена веб-часть под php 7. Тестировал на php 5.4, 5.6, 7.0 - ошибок не было.
Установка:
Из папки cstrike загрузить все файлы на сервер, настроить webchat.cfg
Вы должны зарегистрироваться, чтобы видеть ссылки. (В атач прикрепить не могу, ограничение 2 mb)
Из папки web загрузить все на веб-хостинг, перейти к установке скрипта. После выполнения первого шага привязывается сессия, после этого с другого браузера продолжить установку нельзя
Вы должны зарегистрироваться, чтобы видеть ссылки.
Несколько скриншотов
