Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.
Зарегистрироваться!#include <a_samp>
#include <Dini> // Для работы с файлами .ini
#define DIALOG_BLOCK_INFO 1337
#define ADMIN_LEVEL 1337 // Уровень доступа для админов
new blockedPlayers[MAX_PLAYERS][MAX_PLAYER_NAME];
public OnPlayerCommandText(playerid, cmdtext[]) {
if (strcmp("/block", cmdtext, true, 6) == 0) {
if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Недостаточно прав!");
new targetid, reason[128], filename[64];
if (sscanf(cmdtext, "s[6]us[128]", "block", targetid, reason))
return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /block [ID] [причина]");
GetPlayerName(targetid, blockedPlayers[targetid], MAX_PLAYER_NAME);
// Сохраняем данные блокировки
format(filename, sizeof(filename), "blocked/%s.ini", blockedPlayers[targetid]);
dini_Create(filename);
dini_Set(filename, "Блокирующий", GetPlayerNameEx(playerid));
dini_Set(filename, "Причина", reason);
dini_Set(filename, "Дата_начала", "22.04.2025"); // Можно использовать getdate()
dini_Set(filename, "Дата_окончания", "Никогда");
// Кик или другие действия
SendClientMessage(targetid, 0xFF0000AA, "Вы были заблокированы администратором!");
return 1;
}
if (strcmp("/blockinfo", cmdtext, true, 10) == 0) {
ShowBlockInfoDialog(playerid);
return 1;
}
return 0;
}
ShowBlockInfoDialog(playerid) {
new info[1024], filename[64];
format(filename, sizeof(filename), "blocked/%s.ini", GetPlayerNameEx(playerid));
if (!dini_Exists(filename)) {
SendClientMessage(playerid, 0xFFFFFFFF, "Вы не заблокированы.");
return;
}
format(info, sizeof(info),
"БЛОКИРОВКА\n\n"
"Заблокировал(а): %s\n"
"Начало: %s\n"
"Окончание: %s\n"
"Причина: %s",
dini_Get(filename, "Блокирующий"),
dini_Get(filename, "Дата_начала"),
dini_Get(filename, "Дата_окончания"),
dini_Get(filename, "Причина")
);
ShowPlayerDialog(playerid, DIALOG_BLOCK_INFO, DIALOG_STYLE_MSGBOX, "Информация о блокировке", info, "Закрыть", "");
}
Файлом есть?#include <a_samp> #include <Dini> // Для работы с файлами .ini #define DIALOG_BLOCK_INFO 1337 #define ADMIN_LEVEL 1337 // Уровень доступа для админов new blockedPlayers[MAX_PLAYERS][MAX_PLAYER_NAME]; public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/block", cmdtext, true, 6) == 0) { if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Недостаточно прав!"); new targetid, reason[128], filename[64]; if (sscanf(cmdtext, "s[6]us[128]", "block", targetid, reason)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /block [ID] [причина]"); GetPlayerName(targetid, blockedPlayers[targetid], MAX_PLAYER_NAME); // Сохраняем данные блокировки format(filename, sizeof(filename), "blocked/%s.ini", blockedPlayers[targetid]); dini_Create(filename); dini_Set(filename, "Блокирующий", GetPlayerNameEx(playerid)); dini_Set(filename, "Причина", reason); dini_Set(filename, "Дата_начала", "22.04.2025"); // Можно использовать getdate() dini_Set(filename, "Дата_окончания", "Никогда"); // Кик или другие действия SendClientMessage(targetid, 0xFF0000AA, "Вы были заблокированы администратором!"); return 1; } if (strcmp("/blockinfo", cmdtext, true, 10) == 0) { ShowBlockInfoDialog(playerid); return 1; } return 0; } ShowBlockInfoDialog(playerid) { new info[1024], filename[64]; format(filename, sizeof(filename), "blocked/%s.ini", GetPlayerNameEx(playerid)); if (!dini_Exists(filename)) { SendClientMessage(playerid, 0xFFFFFFFF, "Вы не заблокированы."); return; } format(info, sizeof(info), "БЛОКИРОВКА\n\n" "Заблокировал(а): %s\n" "Начало: %s\n" "Окончание: %s\n" "Причина: %s", dini_Get(filename, "Блокирующий"), dini_Get(filename, "Дата_начала"), dini_Get(filename, "Дата_окончания"), dini_Get(filename, "Причина") ); ShowPlayerDialog(playerid, DIALOG_BLOCK_INFO, DIALOG_STYLE_MSGBOX, "Информация о блокировке", info, "Закрыть", ""); }
Это только пример плагина, подкорректируйте если нужно будет.
Файлом - нету.Файлом есть?
блииин, и как я уставлю, без файла я не смогуФайлом - нету.
блииин, и как я уставлю, без файла я не смогу
#include <a_samp> #include <Dini> // Для работы с файлами .ini #define DIALOG_BLOCK_INFO 1337 #define ADMIN_LEVEL 1337 // Уровень доступа для админов new blockedPlayers[MAX_PLAYERS][MAX_PLAYER_NAME]; public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/block", cmdtext, true, 6) == 0) { if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000AA, "Ошибка: Недостаточно прав!"); new targetid, reason[128], filename[64]; if (sscanf(cmdtext, "s[6]us[128]", "block", targetid, reason)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /block [ID] [причина]"); GetPlayerName(targetid, blockedPlayers[targetid], MAX_PLAYER_NAME); // Сохраняем данные блокировки format(filename, sizeof(filename), "blocked/%s.ini", blockedPlayers[targetid]); dini_Create(filename); dini_Set(filename, "Блокирующий", GetPlayerNameEx(playerid)); dini_Set(filename, "Причина", reason); dini_Set(filename, "Дата_начала", "22.04.2025"); // Можно использовать getdate() dini_Set(filename, "Дата_окончания", "Никогда"); // Кик или другие действия SendClientMessage(targetid, 0xFF0000AA, "Вы были заблокированы администратором!"); return 1; } if (strcmp("/blockinfo", cmdtext, true, 10) == 0) { ShowBlockInfoDialog(playerid); return 1; } return 0; } ShowBlockInfoDialog(playerid) { new info[1024], filename[64]; format(filename, sizeof(filename), "blocked/%s.ini", GetPlayerNameEx(playerid)); if (!dini_Exists(filename)) { SendClientMessage(playerid, 0xFFFFFFFF, "Вы не заблокированы."); return; } format(info, sizeof(info), "БЛОКИРОВКА\n\n" "Заблокировал(а): %s\n" "Начало: %s\n" "Окончание: %s\n" "Причина: %s", dini_Get(filename, "Блокирующий"), dini_Get(filename, "Дата_начала"), dini_Get(filename, "Дата_окончания"), dini_Get(filename, "Причина") ); ShowPlayerDialog(playerid, DIALOG_BLOCK_INFO, DIALOG_STYLE_MSGBOX, "Информация о блокировке", info, "Закрыть", ""); }
Это только пример плагина, подкорректируйте если нужно будет.
Я уже нашел спасибо.