Перейти к содержанию

Отображаем репорты игроков с сервера CS:S на форуме Invision Community (IPS 4.6.1)


Рекомендуемые сообщения

  • Администратор

Предисловие:

  • Я потратил весь день на адаптацию этого плагина, и в процессе создания темы, я мог что ни будь забыть или упустить. Поэтому не стесняйтесь предоставлять обратную связь (Вам ведь все равно придется зарегистрироваться, что бы скачать необходимые файлы).
  • Метод установки плагина для IPS 4.6 немного отличается от стандартного. Это кустарное решение, и только этим решением я смог реализовать работу плагина.
  • Я проверял плагин только на версии IPS 4.6.1. Я не уверен, будет ли он работать на других версиях.

Описание:

Система максимально проста. Игрок на сервере CS:S отправляет жалобу на игрока через команду !report. Если администратор на сервере, он сразу получит уведомление. Помимо этого, плагин транслирует жалобу в базу данных, а база данных отображается в виджете плагина для IPS 4.6.1.

Игрок набирает команду !report и выбирает необходимого игрока:

Спойлер

20211122184202_1.jpg

Игрок выбирает причину:

Спойлер

20211122184204_1.jpg

Получаем ответ от плагина:

Спойлер

20211122184215_1.jpg

На форуме invision community, в виджете отображаются последние жалобы:

Спойлер

image.png

 

Проверить как все работает можно на нашем сервере.

Установка:

  • Создайте базу данных с любым удобным именем и пользователем, в которую будут отправляться репорты.
  • В addons/sourcemod/configs/databases.cfg введите новый массив:
"mReport"
	{
		"driver"			"default"
		"host"				"localhost"
		"database"			"Имя базы данных"
		"user"				"Имя пользователя"
		"pass"				"Пароль"
		//"timeout"			"0"
		"port"			"3306"
	}
  • В папку /addons/sourcemod/plugins поместите готовый плагин Report.smx
  • Либо отредактируйте и скомпилируйте исходник плагина Report.sp
  • Сделайте рестарт сервера и плагин сгенерирует вам следующий cfg:
// This file was auto-generated by SourceMod (v1.10.0.6501)
// ConVars for plugin "Report.smx"


// Следует ли уведомлять администратора о жалобе, если он находится на сервере?
// -
// Default: "1"
mAnnounceAdmin "1"

// Сколько времени в секундах должно пройти с последней жалобы !report?
// -
// Default: "30"
mCommandTimeInterval "30"

// Название сервера (Полезно тем, у кого несколько серверов.
// -
// Default: "|IP-Gamers.Net| Classic"
mServerName "|IP-Gamers.Net| Classic"
  • Настройте конфиг на свой вкус и измените карту.

На этом серверная часть установлена, теперь переходим к Invision Community.

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

  • Устанавливаем в IPS 4.6.1 этот плагин(DF) Zgloszenia graczy 1.0.1.xml
  • Далее в админке форума переходим на Кастомизация>Языки и жмем на глобус возле необходимого языка.
  • Нажимаем на вкладку "Не переведеноimage.png
  • Сортируем строки по названию плагина image.png
  • Переводим все строки плагина (DF) Zgloszenia graczy. У меня получился следующий перевод:
Спойлер

image.png

  • Далее в настройках плагина пропишите параметры вашей базы данных для репортов
Спойлер

image.png

  • На удобной странице установите виджет в горизонтальной (Широкой форме)
Спойлер

image.png

  • После всех этих процедур по адресу вашфорум/plugins/dfzgloszeniagraczy/widgets через ftp положите следующий файл dfzgloszeniagraczy.php и согласитесь перезаписать оригинальный файл.
  • После в админке форума перейдите в раздел Кастомизация > Темы > Редактирование темы
  • В поиске шаблонов введите слово dfzgloszeniagraczy.
  • У вас найдется один единственный шаблон, замените в этом шаблоне ваш код на следующий:
<h3 class='ipsWidget_title ipsType_reset'>
	{lang="dfZgloszeniaGraczy_title"}
</h3>
<div class='ipsWidget_inner dfzgloszeniagraczyDiv'>
	<ul class='ipsDataList ipsDataList_reducedSpacing'>
		{{if !empty($data['error'])}}
		<li class='ipsDataItem dfzgloszeniagraczyPad'>
			<div class='ipsList_inline'>
				{$data['error']}
			</div>
		</li>
	</ul>
	{{else}}
		<ul class='ipsDataList ipsDataList_reducedSpacing'>
			{{foreach $data as $row}}
			<li class='ipsDataItem dfzgloszeniagraczyPad'>
				<span class='ipsPos_right ipsType_small ipsType_light'>{datetime="$row['time']"}</span>
				<div class='ipsList_inline'>
					<img src="{$row['type']}" alt="{$row['typeAlt']}" data-ipstooltip="" _title="{$row['typeName']}">
					<strong><a href="https://steamcommunity.com/profiles/{$row['client_steamid']}" target="_blank" data-ipstooltip="" _title="Если у игрока лицензия, откроется Steam страница {$row['client_name']}">
					{$row['client_name']}</a></strong> отправил жалобу на игрока
					<strong><a href="https://steamcommunity.com/profiles/{$row['target_steamid']}" target="_blank" data-ipstooltip="" _title="Если у игрока лицензия, откроется Steam страница {$row['target_name']}">
					{$row['target_name']}</a></strong>
					 по причине
					<strong>{$row['report_reason']}</strong> на сервере <strong>{$row['server_name']}</strong>
				</div>
			</li>
			{{endforeach}}
		</ul>
		{{endif}}
</div>

На этом установка завершена, и в теории у вас все должно работать. Если нет, пишите, вместе разберемся.

Ссылка на комментарий
Поделиться на другие сайты

  • Администратор

Кстати, я совсем забыл упомянуть. Ссылка на оригинальный продукт:

https://forum.go-code.pl/index.php?/temat/2139-mreport-darmowy-system-reportów-na-twoje-serwery-gier-integracja-ze-skryptami-cmsaplikacjami/

С моей стороны было неправильно не оставить ссылку.

Ссылка на комментарий
Поделиться на другие сайты

  • Администратор
В 22.11.2021 в 19:18, Райан сказал:

Игрок на сервере CS:S отправляет жалобу на игрока через команду !report.

Если из исходника плагина вырезать все, что связано со звуком:

sound/mReport/mNotification_admin.mp3

То плагин будет работать и на сервере L4D2.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Похожий контент

    • Автор Райан
      Данный плагин SourceMod до банального прост. Вы в конфиге биндите необходимое вам ключевое слово на команду и после этого команду можно вызывать с помощью привязанного слова. Полезно для плагинов с длинными командами. Пример !resetscore>!rs>!r.
      В версии которую я выложил, в конфиге, вместо флагов администратора можно использовать SteamID.
      Переменные:
      sm_commandshortcuts_notification - Отображать сообщение при срабатывании команды. 1 = включено, 0 = отключено. sm_commandshortcuts_publicinfo - разрешить всем клиентам просматривать о ярлыках, набрав !commandshortcuts. 1 = все клиенты, 0 = только администраторы Команды:
      sm_reloadshortcuts - Перезагружает файл конфигурации. sm_commandshortcuts - Дает информацию о сочетаниях клавиш. Пример конфига:
      "commandshortcuts" { "1" { "shortcut" "!restartgame" "flag" "d" "command" "mp_restartgame 5" "type" "1" "registershortcut" "0" } "2" { "shortcut" "sm_fly" "flag" "STEAM_0:1:175038461" "command" "sm_noclip {player}" "type" "1" "registershortcut" "1" } "3" { "shortcut" "!shortcuts" "flag" "" "command" "sm_commandshortcuts" "type" "2" "registershortcut" "0" } } Установка:
      Поместите содержимое архива в FTP вашего сервера и сделайте рестарт. sm_commandshortcuts_v1.2.zip
      Я плагин не тестировал. Это обычный перепост оригинального плагина.
    • Автор Райан
      У Google AdSense есть очень классная функция, автоматические рекламные объявления. Как это работает? Вы вставляете всего один код, одну строчку в тело <head> и роботы Google, сами, вместо админа принимают решения, где лучше отображать рекламу.
      Примеры:

      И если с удалением ненужных рекламных блоков проблем не возникает, то вот с тем, что бы сделать так, что бы автоматические объявления от Google не отображались различным премиум группам на форуме, это уже достаточно сложно. Хотя нет, сложности нет, надо просто идти нестандартными путями.
      Итак, мы все привыкли к тому, что, что бы в Invision Community (IPS 4.6) вставить какой ни будь код в тело <head>, мы все в админке отправляемся в раздел Главная>Система>Продвижение>Аналитика, и мы все туда вставляли коды Яндекс метрик, Google и AdSense.
      Но в этот раз, мы пойдем в раздел Главная>Система>Продвижение>Реклама и нажмем там на кнопку создать, что бы создать новой рекламное объявление. Заголовок ставите любой Тип выбираете HTML код В тело HTML кода вставляете ваш код, который вас просили вставить в AdSense во время проверки сайта: <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-" crossorigin="anonymous"></script> В показе объявлений выбираете пункт Создать собственное местоположение. В Ключи пользовательских местоположений вводите ключ head. И выбираете каким группам не показывать эту рекламу. Сохраняете рекламное объявление и идете в управление шаблонами IPS 4.6 (Внешний вид>Темы>Редактирование темы) Уже в редактировании темы, в шаблоне globalTemplate  вы вставляете следующий ключ: {advertisement="head"} Нажимаете кнопку "Сохранить". Все сделано.
    • Автор Райан
      Обновил плагин отвечающий за переход на следующую кампанию в Left 4 Dead 2. Включил в него кампанию "Последний Рубеж".
      l4d2vsmapfinalenext.smx l4d2vsmapfinalenext.sp
    • Автор Райан
      Если у тебя тоже есть форум, с таким же движком как у нас IPS 4.4.10, и тебя тоже бесит что когда ты читаешь посты, а у автора поста группа отображается и в виде иконки, и в текстовом виде одновременно, то эта тема для тебя. Я помогу вырезать текстовое отображение группы из дизайна.
      Переходим: Админка>Кастомизация>Темы Жмем на кнопку "Редактировать HTML и CSS" нужного стиля В открывшемся редактировании темы переходим в категорию forums>topics>postContainer Удаляем следующую строку (Обычно она 47 по счету): <li>{expression="\IPS\Member\Group::load( $comment->author()->member_group_id )->formattedName" raw="true"}</li> Жмем на кнопку сохранить. Это все.
    • Автор Райан
      Я не думаю что здесь у кого то продаются файлы на торговой площадке Invision Community, но все же...
      После того, как вышел финальный релиз IPS 4.6.0 администраторы сообщества Invision Community стали удалять файлы из торговой площадки сообщества, предназначенные для версий 4.2, 4.3 или ниже. Если у вас были покупки приложений, который уже долгое время не получали обновлений, рекомендую их выкачать с торговой площадки.
      Кстати, доброе утро.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...