- Регистрация
- 12 Июл 2019
- Сообщения
- 35
- Лучшие ответы
- 0
- Репутация
- 2
Вот код:
Но вылазит ошибка, что в проблемной строке невалидный код (пробовал и static, и static const), а что в нем невалидного? Ведь выше точно такой же формат бана игрока с причиной и временем бана!
PHP:
CMD:ban(playerid, params[])
{
if(player[playerid][pAdmin] == 0)
{
SCM(playerid, COLOR_RED, !"Вы не администратор!");
return false;
}
new
targetid,
targettime,
reason[51];
if(sscanf(params, "uus[51]", targetid, targettime, reason))
return SCM(playerid, COLOR_RED, !"Образец бана: /ban [playerid] [days] [reason]");
if(!IsPlayerConnected(targetid))
return SCM(playerid, COLOR_RED, !"Игрок с введенным вами ID не в сети!");
if(reason[50] != EOS)
return SCM(playerid, COLOR_RED, !"Максимальная длина причины бана: 50 символов");
if(targetid == playerid)
return SCM(playerid, COLOR_RED, !"Вы не можете забанить себя!");
if(targettime > 30 && player[playerid][pAdmin] <= 3)
return SCM(playerid, COLOR_RED, !"Вы не можете забанить игрока больше, чем на 1 месяц!");
if(targettime > 365 && player[playerid][pAdmin] >= 4)
return SCM(playerid, COLOR_RED, !"Вы не можете забанить игрока больше, чем на 1 год!");
static const
fmt_str[] = "Администратор %s забанил игрока %s на %d дней по причине: %s";
new
str[sizeof(fmt_str)-8+MAX_PLAYER_NAME*2+50+2+1];
format(str, sizeof(str), fmt_str, GetName(playerid), GetName(targetid), targettime, reason);
SCMTA(COLOR_RED, str);
new year_today, mounth_today, day_today;
getdate(year_today, mounth_today, day_today);
day_today = day_today + targettime;
if(mounth_today % 2 == 0)
{
if(day_today > 30)
{
day_today=day_today-29;
mounth_today++;
}
return true;
}
else
{
if(day_today > 31)
{
day_today=day_today-30;
mounth_today++;
}
return true;
}
static const // проблемная строка
fmt_str_date[] = "%d%d%d";
new
string_date[sizeof(fmt_str_date)-6+8+1];
format(string_date, sizeof(string_date), fmt_str_date, year_today, mounth_today, day_today);
player[targetid][bBan] = 1;
strmid(player[playerid][bReason], reason, 0, 50+1);
strmid(player[playerid][bGiver], GetName(playerid), 0, MAX_PLAYER_NAME+1);
strmid(player[playerid][bDateUnban], string_date, 0, 8+1);
Tkick(targetid);
return true;
}
Последнее редактирование: