bereg101
Умник
Первый вопрос:
Почему возникает ошибка, в условии else, если в любом случае, как я понимаю, сработает только одно условие или if или else и fmt_string определится только 1 раз.
И 2й вопрос:
Почему часто используют такую конструкцию?
А не что-то типа:
Почему возникает ошибка, в условии else, если в любом случае, как я понимаю, сработает только одно условие или if или else и fmt_string определится только 1 раз.
Код с ошибкой. Ошибка в else(42288) : error 021: symbol already defined: "fmt_string"
(42289) : error 021: symbol already defined: "str"
Код:
if(AdminInfo[params[0]][aLevel] < 1)
{
makeAdmin(playerid, params[0], params[1], 0);
static const fmt_string[] = "[A] %s выдал игроку %s права администратора %i-го уровня";
new str[sizeof(fmt_string)+2+MAX_PLAYER_NAME+4+32];
format(str, sizeof(str), fmt_string,PlayerInfo[playerid][pSendername],PlayerInfo[params[0]][pSendername],params[1]);
SendAdminMessage(CGREY,str);
SendClientMessage(params[0],CGREY,str);
SendClientMessage(params[0],CYELLOW,"Вы назначены администратором. Команды администратора: /ah");
}
else
{
AdminInfo[params[0]][aLevel] = params[1];
saveAdmin(playerid);
static const fmt_string[] = "[A] %s изменил уровень права доступа администратора %s на %i-й уровень"; // ошибка возникает тут
new str[sizeof(fmt_string)+2+MAX_PLAYER_NAME+4+32]; // и тут
format(str, sizeof(str), fmt_string,PlayerInfo[playerid][pSendername],PlayerInfo[params[0]][pSendername],params[1]);
SendAdminMessage(CGREY,str);
static const fmt_string[] = "[A] Администратор %s изменил вам уровень права доступа администратора на %i-й уровень";
new str[sizeof(fmt_string)+2+MAX_PLAYER_NAME+4+32];
format(str, sizeof(str), fmt_string,PlayerInfo[playerid][pSendername],PlayerInfo[params[0]][pSendername],params[1]);
SendClientInfoMessage(playerid, str);
}
И 2й вопрос:
Почему часто используют такую конструкцию?
Код:
static const fmt_string[] = "какой то тпекст %s"
new str[sizeof(fmt_string)+2+MAX_PLAYER_NAME+4+32];
format(str, sizeof(str), fmt_string, someVar)
Код:
new string[300];
format(string, sizeof(string), "Какой то текст %s", someVar);
