• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Невалидная строка "static"

Статус
В этой теме нельзя размещать новые ответы.

Steve_Stage

Начинающий
Пользователь
Регистрация
12 Июл 2019
Сообщения
35
Лучшие ответы
0
Репутация
2
Вот код:

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;
}
Но вылазит ошибка, что в проблемной строке невалидный код (пробовал и static, и static const), а что в нем невалидного? Ведь выше точно такой же формат бана игрока с причиной и временем бана!
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу