San0
Новичок
Всем привет. На днях тстирвал мод, и не смог забанить читера. Пришлось банить 3 wanr ами
Вот собственно команды
/ban
Команда /oban
stock бана (AddBanList)
Прошу помочь, так как не могу понять в чм проблема, весь сток пересмтрел, что-то не втуплю
Вот собственно команды
/ban
Код:
CMD:ban(playerid, params[]) { new string[144];
if(!pl->isAdmin(playerid, STD_ADMIN)) return Send(playerid, COLOR_GREY, "* Недостаточно прав!");
if(sscanf(params, "uis[64]", params[0], params[1], temp)) return Send(playerid, COLOR_GREY, "Введите: /ban [id] [days (1-360)] [reason]");
if(!IsPlayerConnected(params[0])) return Send(playerid, COLOR_GREY, "* Этот игрок не подлючен!");
if(pl->Info[params[0]][pID] == -1) return Send(playerid, COLOR_GREY, "* Этот игрок не зарегистрирован!");
if(pl->isAdmin(params[0], 1) && !IsPlayerAdmin(playerid)) return Send(playerid, COLOR_GREY, "* Нельзя банить админа!");
static const maxdays[] = {0, 10, 20, 60, 90, 360};
if(!(1 <= params[1] <= maxdays[pl->Info[playerid][pAdmin]])) {
format(string, sizeof string, "* Кол-во дней бана может быть от 1 до %i!", maxdays[pl->Info[playerid][pAdmin]]);
Send(playerid, COLOR_GREY, string);
} else {
AddBanList(params[0], playerid, params[1]*1440, temp, 1);
}
return 1;
}
Код:
CMD:oban(playerid, params[]) { new string[144], sendername[24], playername[24];
if(!pl->isAdmin(playerid, SENIOR_ADMIN)) return Send(playerid, COLOR_GREY, "* Недостаточно прав!");
if(sscanf(params, "s[24]is[64]", playername, params[0], temp)) return Send(playerid, COLOR_GREY, "Введите: /oban [id] [days (1-360)] [reason]");
if(IsPlayerConnected(ReturnUser(playername))) return Send(playerid, COLOR_GREY, "* Этот игрок подлючен!");
static const maxdays[] = {0, 10, 20, 60, 90, 360};
if(!(1 <= params[0] <= maxdays[pl->Info[playerid][pAdmin]])) {
format(string, sizeof string, "* Кол-во дней бана может быть от 1 до %i!", maxdays[pl->Info[playerid][pAdmin]]);
Send(playerid, COLOR_GREY, string);
}
new banid = GetIDFormName(playername);
if(banid == -1) return Send(playerid, COLOR_GREY, "* Нет такого игрока на сервере!");
if(isBanned(banid)) return Send(playerid, COLOR_GREY, "* Этот игрок уже забанен!");
new unbandate, currdate = gettime(), reason[64];
unbandate = currdate + (params[0]*1440)*60;
db->real_escape_string(temp, reason);
GetPlayerName(playerid, sendername, 24);
format(query, sizeof query, "INSERT INTO `"#db_PREFIX"banned` (`user_id`,`admin_id`,`date`,`unbandate`,`reason`) VALUES (");
scf(query, src, "'%i','%i',", banid, pl->Info[playerid][pID]);
scf(query, src, "'%i','%i','%s')", currdate, unbandate, reason);
db->query(query, playerid);
format(query, sizeof query, "[OFFBAN] Админ %s забанил игрока %s, причина: %s", sendername, playername, reason);
SendToAdmin(COLOR_LIGHTBLUE, query, 1, 3);
return 1;
}
Код:
stock AddBanList(playerid, adminid, mins, reason[], type = 1) {
new unbandate, currdate = gettime();
unbandate = currdate + mins*60;
new safestr[36];
db->real_escape_string(reason, safestr);
format(query, sizeof query, "INSERT INTO `"#db_PREFIX"banned` (`user_id`,`admin_id`,`ip`,`date`,`unbandate`,`reason`) VALUES (");
scf(query, src, "'%i','%i','%s',", pl->Info[playerid][pID], adminid==-1 ? adminid : pl->Info[adminid][pID], GetPIP(playerid));
scf(query, src, "'%i','%i','%s')", currdate, unbandate, safestr);
db->query(query, playerid);
switch(type) {
case 1 : {
format(query, sizeof query, "*[RP]GrandWorld: %s был забанен администратором %s, причина: %s", GetName(playerid), GetName(adminid), reason);
SendToAll(COLOR_LIGHTRED, query);
}
case 2 : {
format(src, sizeof(src), "* Вы были забанены, причина: %s", reason);
Send(playerid, COLOR_LIGHTRED, src);
format(src, sizeof(src), "[AdmWarn] * %s[%i] был забанен, причина: %s", GetName(playerid), playerid, reason);
SendToAdmin(COLOR_LIGHTRED, src, 1, 3);
}
case 3 : {
format(src, sizeof(src), "* Вы были забанены, причина: %s", reason);
Send(playerid, COLOR_LIGHTRED, src);
format(src, sizeof(src), "[античит] * %s[%i] был забанен, причина: %s", GetName(playerid), playerid, reason);
SendToAdmin(COLOR_LIGHTRED, src, 1, 1);
}
default : {
format(query, sizeof query, "[SBAN] Админ %s забанил игрока %s[%i], причина: %s", GetName(adminid), GetName(playerid), playerid, reason);
SendToAdmin(COLOR_LIGHTBLUE, query, 1, 3);
}
}
return BanEx(playerid, reason);
}
