Hamalov
Ученик
Привет, у меня есть команда /offban которая банит на 30 дней, я хочу сделать, чтобы я мог банить на 30 (от 1 до 30) (как и сейчас) и чтобы можно было снести на -1 и всё это в одной команде, подскажите как сделать, вот код:
C++:
CMD:soffban(playerid, params[])
{
if(GetPlayerAdminEx(playerid) < 4) return 1;
if(!strlen(params)) return SendClientMessage(playerid, 0xCECECEFF, "Используйте: /soffban [ник игрока] [срок в днях] [причина (необязательно)]");
extract params -> new string: player_name[21], days, string: reason[30];
if(!(1 <= days <= 999)) return SendClientMessage(playerid, 0x999999FF, "Количество дней от 1 до 999");
if(IsPlayerConnected(GetPlayerID(player_name))) return SendClientMessage(playerid, 0x999999FF, "Игрок с таким именем находится на сервере");
new query[144],
Cache: result,
rows,
uid,
admin,
uip[16];
mysql_format(mysql, query, sizeof query, "SELECT id, admin, last_ip FROM accounts WHERE name='%s'", player_name);
result = mysql_query(mysql, query, true);
rows = cache_num_rows();
if(rows)
{
uid = cache_get_row_int(0, 0);
admin = cache_get_row_int(0, 1);
cache_get_row(0, 2, uip);
}
cache_delete(result);
if(!rows || !uid) return SendClientMessage(playerid, 0x999999FF, "Игрок с таким именем не найден");
if(GetPlayerAdminEx(playerid) < admin) return SendClientMessage(playerid, 0x999999FF, "Нельзя забанить администратора выше по рангу");
mysql_format(mysql, query, sizeof query, "SELECT * FROM ban_list WHERE user_id=%d", uid);
result = mysql_query(mysql, query, true);
rows = cache_num_rows();
cache_delete(result);
if(rows) return SendClientMessage(playerid, 0x999999FF, "Аккаунт игрока уже заблокирован");
format(query, sizeof query, "[A] Администратор %s оффлайн навсегда забанил игрока %s без лишнего шума", GetPlayerNameEx(playerid), player_name, days);
if(strlen(reason) > 0)
format(query, sizeof query, "%s. Причина: %s", query, reason);
if(!strlen(reason)) reason = "None";
SendMessageToAdmins(query, 0x999999FF);
format(query, sizeof query, "Оффлайн забанил %s[acc:%d] на %d дней. Причина: %s", player_name, uid, days, reason);
SendLog(playerid, LOG_TYPE_SUPERADMIN_ACTION, query);
format(reason, sizeof reason, "[OFFLINE]%s", reason);
AddBan(uid, gettime(), days, uip, reason, GetPlayerNameEx(playerid));
return 1;
}
Последнее редактирование модератором:
