web/
загрузите на Ваш веб-сервер в директорию, из которой веб-панель будет доступна из браузера (как правило, такая папка называется public_html
или document_root
).game/
загрузите на Ваши игровые сервера, соблюдая структуру файлов, в папку игрового мода (tf
, cstrike
, csgo
, и так далее...)./config.php
. В этом файле располагаются данные от базы данных./demos/
. В этой директории располагаются все загруженные администраторами демо-записи. Они загружаются при выдаче банов./themes_c/
. В этой директории SourceBans++ располагает свой внутренний кеш для скомпилированных шаблонов./images/games/
. В этой директории SourceBans++ располагает все иконки игр, отображаемые в мониторинге серверов, а так же на странице списка модов./images/maps/
. В этой директории SourceBans++ располагает все превью для карт, отображаемые в мониторинге серверов.chmod
.https://example.com/
.https://example.com/install/
) в Вашем браузере для начала установки.I have read, and accept the license
, нажмите кнопку OK
.Server Hostname
- адрес сервера Базы данных. Используйте localhost
, если Вы уверены, что сервер БД находится на одной машине, что и веб-панель. В противном случае, укажите IP-адрес или домен сервера БД.Server Port
- порт сервера Базы данных. Как правило, используется порт 3306
. Если Ваш хостинг-провайдер использует отличный порт, укажите его.Username
- имя пользователя для авторизации на сервере Базы данных.Password
- пароль от учётной записи пользователя для авторизации на сервере Базы данных. Может быть оставлено пустым, если пароля нет.Database
- имя Базы данных, используемой для хранения данных.Table Prefix
- используемый префикс таблиц при формировании имён таблиц. Может быть использовано для выполнения установки нескольких копий веб-панели в одну базу данных. В противном случае, оставьте значение по-умолчанию.Steam API Key
- ключ Steam Web API. Может быть получен здесь.SourceBans URL
- адрес веб-панели вместе с протоколом (https://example.com/
).SourceBans EMail
- используемый почтовый адрес для отправки писем касательно сброса пароля, добавления жалоб на игроков и протестов банов. Оставьте пустым, если Вы не планируете отправлять письма.Next
.OK
, как только вылезит всплывающее окно.OK
, как только Вы закончите./addons/sourcemod/configs/
, откройте файл databases.cfg
любым удобным текстовым редактором с поддержкой кодировки UTF-8 без BOM, добавьте в файле подключение sourcebans
, чтобы вышло что-то вроде:"Databases"
{
"default_driver" "sqlite"
"default"
{
// ...
}
// ... много других подключений к БД ...
"sourcebans"
{
"driver" "mysql"
"host" "ОТРЕДАКТИРУЙ МЕНЯ! АДРЕС СЕРВЕРА БАЗЫ ДАННЫХ"
"database" "ОТРЕДАКТИРУЙ МЕНЯ! ИМЯ БАЗЫ ДАННЫХ"
"user" "ОТРЕДАКТИРУЙ МЕНЯ! ИМЯ ПОЛЬЗОВАТЕЛЯ"
"pass" "ОТРЕДАКТИРУЙ МЕНЯ! ПАРОЛЬ ОТ УЧЁТНОЙ ЗАПИСИ"
"port" "3306" // ОТРЕДАКТИРУЙ, ЕСЛИ НЕОБХОДИМО
"timeout" "10"
}
}
/index.php?p=admin&c=settings
. Настройки от базы данных, адрес сайта и так далее прописываются в конфиге сайта (/config.php
)./addons/sourcemod/configs/sourcebans/
.sourcebans.cfg
. Конфигурационный файл основного плагина SourceBans++, отвечающего за загрузку администраторов из СУБД, управление банами.sourcecomms.cfg
. Конфигурационный файл вспомогательного плагина SourceComms++, отвечающего за управление голосовым и текстовым чатом (возможность включать, отключать перечисленные виды чатов для определённых игроков на время).sourcesleuth_whitelist.cfg
. Белый список игроков, баны для которых игнорируются вспомогательным плагином SourceSleuth.sb_admins.cfg
и sb_admin_groups.cfg
не являются конфигурационными, и играют роль хранилища загруженных администраторов из СУБД.// *************************************************************************
// This file is part of SourceBans++.
//
// Copyright (C) 2014-2016 SourceBans++ Dev Team <https://github.com/sbpp>
//
// SourceBans++ is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, per version 3 of the License.
//
// SourceBans++ is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with SourceBans++. If not, see <http://www.gnu.org/licenses/>.
//
// This file based off work(s) covered by the following copyright(s):
//
// SourceBans 1.4.11
// Copyright (C) 2007-2015 SourceBans Team - Part of GameConnect
// Licensed under GNU GPL version 3, or later.
// Page: <http://www.sourcebans.net/> - <https://github.com/GameConnect/sourcebansv1>
//
// *************************************************************************
#if defined _sourcebanspp_included
#endinput
#endif
#define _sourcebanspp_included
public SharedPlugin __pl_sourcebanspp =
{
name = "sourcebans++",
file = "sbpp_main.smx",
#if defined REQUIRE_PLUGIN
required = 1
#else
required = 0
#endif
};
#if !defined REQUIRE_PLUGIN
public void __pl_sourcebanspp_SetNTVOptional()
{
MarkNativeAsOptional("SBBanPlayer");
MarkNativeAsOptional("SBPP_BanPlayer");
MarkNativeAsOptional("SBPP_ReportPlayer");
}
#endif
/*********************************************************
* Ban Player from server
*
* @param iAdmin The client index of the admin who is banning the client
* @param iTarget The client index of the player to ban
* @param iTime The time to ban the player for (in minutes, 0 = permanent)
* @param sReason The reason to ban the player from the server
* @noreturn
*********************************************************/
#pragma deprecated Use SBPP_BanPlayer() instead.
native void SBBanPlayer(int iAdmin, int iTarget, int iTime, const char[] sReason);
/*********************************************************
* Ban Player from server
*
* @param iAdmin The client index of the admin who is banning the client
* @param iTarget The client index of the player to ban
* @param iTime The time to ban the player for (in minutes, 0 = permanent)
* @param sReason The reason to ban the player from the server
* @noreturn
*********************************************************/
native void SBPP_BanPlayer(int iAdmin, int iTarget, int iTime, const char[] sReason);
/*********************************************************
* Reports a player
*
* @param iReporter The client index of the reporter
* @param iTarget The client index of the player to report
* @param sReason The reason to report the player
* @noreturn
*********************************************************/
native void SBPP_ReportPlayer(int iReporter, int iTarget, const char[] sReason);
/*********************************************************
* Called when the admin banning the player.
*
* @param iAdmin The client index of the admin who is banning the client
* @param iTarget The client index of the player to ban
* @param iTime The time to ban the player for (in minutes, 0 = permanent)
* @param sReason The reason to ban the player from the server
*********************************************************/
forward void SBPP_OnBanPlayer(int iAdmin, int iTarget, int iTime, const char[] sReason);
/*********************************************************
* Called when a new report is inserted
*
* @param iReporter The client index of the reporter
* @param iTarget The client index of the player to report
* @param sReason The reason to report the player
* @noreturn
*********************************************************/
forward void SBPP_OnReportPlayer(int iReporter, int iTarget, const char[] sReason);
//Yarr!
// *************************************************************************
// This file is part of SourceBans++.
//
// Copyright (C) 2014-2016 SourceBans++ Dev Team <https://github.com/sbpp>
//
// SourceBans++ is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, per version 3 of the License.
//
// SourceBans++ is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with SourceBans++. If not, see <http://www.gnu.org/licenses/>.
//
// This file based off work(s) covered by the following copyright(s):
//
// SourceComms 0.9.266
// Copyright (C) 2013-2014 Alexandr Duplishchev
// Licensed under GNU GPL version 3, or later.
// Page: <https://forums.alliedmods.net/showthread.php?p=1883705> - <https://github.com/d-ai/SourceComms>
//
// *************************************************************************
#if defined _sourcecomms_included
#endinput
#endif
#define _sourcecomms_included
/**
* @section Int definitions for punishments types.
*/
#define TYPE_MUTE 1 /**< Voice Mute */
#define TYPE_GAG 2 /**< Gag (text chat) */
#define TYPE_SILENCE 3 /**< Silence (mute + gag) */
#define TYPE_UNMUTE 4 /**< Voice Unmute*/
#define TYPE_UNGAG 5 /**< Ungag*/
#define TYPE_UNSILENCE 6 /**< Unsilence */
#define TYPE_TEMP_UNMUTE 14 /**< Temp mute removed */
#define TYPE_TEMP_UNGAG 15 /**< Temp gag removed */
#define TYPE_TEMP_UNSILENCE 16 /**< Temp silence removed */
/* Punishments types */
enum bType {
bNot = 0, // Player chat or voice is not blocked
bSess, // ... blocked for player session (until reconnect)
bTime, // ... blocked for some time
bPerm // ... permanently blocked
}
/**
* Sets a client's mute state.
*
* @param client Client index.
* @param muteState True to mute client, false to unmute.
* -------------------------------------Parameters below this line are used only for muteState=true-------------------------------------
* ----------------------------------for muteState=false these parameters are ignored (saveToDB=false)----------------------------------
* @param muteLength Length of punishment in minutes. Value < 0 muting client for session. Permanent (0) is not allowed at this time.
* @param saveToDB If true, punishment will be saved in database.
* @param reason Reason for punishment.
* @return True if this caused a change in mute state, false otherwise.
*/
native bool SourceComms_SetClientMute(int client, bool muteState, int muteLength = -1, bool saveToDB = false, const char[] reason = "Muted through natives");
/**
* Sets a client's gag state.
*
* @param client Client index.
* @param gagState True to gag client, false to ungag.
* --------------------------------------Parameters below this line are used only for gagState=true--------------------------------------
* -----------------------------------for gagState=false these parameters are ignored (saveToDB=false)-----------------------------------
* @param gagLength Length of punishment in minutes. Value < 0 gagging client for session. Permanent (0) is not allowed at this time.
* @param saveToDB If true, punishment will be saved in database.
* @param reason Reason for punishment.
* @return True if this caused a change in gag state, false otherwise.
*/
native bool SourceComms_SetClientGag(int client, bool gagState, int gagLength = -1, bool saveToDB = false, const char[] reason = "Gagged through natives");
/**
* Returns the client's mute type
*
* @param client The client index of the player to check mute status
* @return The client's current mute type index (see enum bType in the begin).
*/
native bType SourceComms_GetClientMuteType(int client);
/**
* Returns the client's gag type
*
* @param client The client index of the player to check gag status
* @return The client's current gag type index (see enum bType in the begin).
*/
native bType SourceComms_GetClientGagType(int client);
/**
* Called when added communication block for player.
*
* @param client The client index of the admin who is blocking the client.
* @param target The client index of the player to blocked.
* @param time The time to blocked the player for (in minutes, 0 = permanent).
* @param type The type of block. See section "Int definitions for punishments types".
* @param reason The reason to block the player.
*/
forward void SourceComms_OnBlockAdded(int client, int target, int time, int type, char[] reason);
public SharedPlugin __pl_sourcecomms =
{
name = "sourcecomms++",
file = "sbpp_comms.smx",
#if defined REQUIRE_PLUGIN
required = 1
#else
required = 0
#endif
};
public void __pl_sourcecomms_SetNTVOptional()
{
MarkNativeAsOptional("SourceComms_SetClientMute");
MarkNativeAsOptional("SourceComms_SetClientGag");
MarkNativeAsOptional("SourceComms_GetClientMuteType");
MarkNativeAsOptional("SourceComms_GetClientGagType");
}