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

Отображаем репорты игроков с сервера 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.

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

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

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

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

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

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

Войти

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

Войти
×
×
  • Создать...