Question
Лучший ответ
Не забывай что это только мой пример, весь код ты должен оптимизировать под себя:
// Переменные для хранения IP и порта
new ServerIP[16];
new ServerPort;
}
stock LoadServerConfig() {
new File:configFile = fopen("server.cfg", io_read);
if (configFile == 0) {
printf("Ошибка открытия server.cfg");
return 0;
}
new line[128];
while (fread(configFile, line)) {
if (sscanf(line, "bind %s", ServerIP)) {
continue;
}
if (sscanf(line, "port %d", ServerPort)) {
continue;
}
}
fclose(configFile);
return 1;
}
// Функция подключения к базе данных и проверки наличия IP:Port
stock CheckServerInDatabase() {
new MySQL:connection;
new query[256];
// Подключение к базе данных
connection = mysql_connect("host", "user", "password", "database");
if (connection == MYSQL_INVALID_HANDLE) {
printf("Ошибка подключения к базе данных");
return 0;
}
// Формирование запроса
format(query, sizeof(query), "SELECT COUNT(*) FROM servers WHERE ip='%s' AND port=%d", ServerIP, ServerPort);
new result[1];
if (mysql_query(connection, query)) {
printf("Ошибка выполнения запроса: %s", mysql_error(connection));
mysql_close(connection);
return 0;
}
// Обработка результата запроса
mysql_store_result(connection);
if (mysql_fetch_row_format(connection, "%d", result)) {
if (result[0] == 0) {
printf("Сервер с IP %s и портом %d не найден в базе данных. Отключение...", ServerIP, ServerPort);
mysql_close(connection);
SendRconCommand("exit");
return 0;
}
}
mysql_free_result(connection);
mysql_close(connection);
return 1;
}
public OnGameModeInit() {
// Считывание конфигурации сервера
if (!LoadServerConfig()) {
printf("Ошибка при загрузке конфигурации сервера");
return 0;
}
// Проверка сервера в базе данных
if (!CheckServerInDatabase()) {
return 0;
}
// Продолжение инициализации игрового режима
return 1;
}
Подробно объясню что оно делает:
В функции LoadServerConfig читаются IP и порт из файла server.cfg.
В функции CheckServerInDatabase происходит подключение к базе данных и выполняется запрос на проверку наличия записи с соответствующими IP и портом.
Если запись не найдена, сервер отключается с помощью команды SendRconCommand("exit").
Если запись найдена, инициализация сервера продолжается.
-
Recently Browsing 0 members
No registered users viewing this page.
-
Similar Content
-
By d7.KrEoL
Datalink filterscript - передача тактической информации об игроках на карту sampmap.ru
Скачать файл Данный скрипт позволяет передавать информацию об игроках на тактическую карту проекта sampmap. Управление функциями через RCON команды, сам скрипт хоть и полностью готов к использованию, но скорее является примером, на его основе можно писать свои системы для взаимодействия с тактической картой.
Тактическая карта проекта sampmap - это подобие даталинк системы, которая позволяет координировать действия отряда, либо просто отслеживать местоположение игроков в режиме радара. Для каждого переданного в datalink систему (на тактическую карту) игрока выводится его основная информация о скорости, азимуте, высоте, величине и направлении вектора скорости, а так же принадлежность свой/чужой
Несколько скринов:
Архивы:
Исходники:
Команды (ркон) для dlink:
Помимо серверной версии скрипта существуют так же клиентские для обычного клиента с moonloader и для RakSAMP Lite бота. Все эти скрипты распространяются по открытой лицензии MIT, здесь находится git с исходниками. Проект открыт для ваших предложений относительно кода, или дальнейшего развития, вы можете оставить свои предложения на официальной странице github.
Добавил d7.KrEoL Добавлено 09.12.2024 Категория Скрипты Автор d7.KrEoL
-
By d7.KrEoL
Данный скрипт позволяет передавать информацию об игроках на тактическую карту проекта sampmap. Управление функциями через RCON команды, сам скрипт хоть и полностью готов к использованию, но скорее является примером, на его основе можно писать свои системы для взаимодействия с тактической картой.
Тактическая карта проекта sampmap - это подобие даталинк системы, которая позволяет координировать действия отряда, либо просто отслеживать местоположение игроков в режиме радара. Для каждого переданного в datalink систему (на тактическую карту) игрока выводится его основная информация о скорости, азимуте, высоте, величине и направлении вектора скорости, а так же принадлежность свой/чужой
Несколько скринов:
Архивы:
Исходники:
Команды (ркон) для dlink:
Помимо серверной версии скрипта существуют так же клиентские для обычного клиента с moonloader и для RakSAMP Lite бота. Все эти скрипты распространяются по открытой лицензии MIT, здесь находится git с исходниками. Проект открыт для ваших предложений относительно кода, или дальнейшего развития, вы можете оставить свои предложения на официальной странице github.
-
By Мемен Томорли
Как сделать табличку после бана аккаунта? Типо как на малиновке, когда тебя банят, выдают табличку(скрин приложил), и при входе на сервер такую же табличку давало??
-
Posted (edited) · Report post
Всем привет, нужно в моде сделать, чтобы при загрузке сервера брало айпи и порт с server.cfg и подключалось к базе данных, после чего в ней искало bind:port с server.cfg , и если этого айпи там не окажется, то сервер выключится, а если айпи найдется, то ничего не произойдет
Edited by kekkomomek1941
Share this post
Link to post