Сообщение от
vovandolg
Как мне перенести
пачку аргументов с переменными в таком случае:
(не сталкивался с таким и не знаю как правильно спросить)
Код:
stock SendMes(playerid, color, fstring[], {Float, _}:...)
{
new skr[145];
format(skr, 145, fstring, {Float, _}:...);
SendClientMessage(playerid, color, skr);
}
Данную функцию можно использовать в сумме с глобальной переменной.
Например:
Мы объявим глобальную переменную:
PHP код:
new
global_string[ 256 ];
После этого, мы добавляем в тело функции, данный участок кода. (Иными словами, мы очищаем глобальную переменную)
PHP код:
global_string[0] = EOS;
Далее, нам необходимо будет статичные аргументы отделить от динамичных и пустить цикл, с которыми в свою очередь будут работать функции - getarg(...).
Таким образом, глобальная переменная, будет автоматически очищаться при инициализации функции.
Ну, а идеальный вариант, это конечно же использование директивы #define.
PHP код:
#define prepare(%0,%1,%2,%3) global_string[0] = EOS; format(global_string, sizeof global_string, %2, %3); SendClientMessage(%0, %1, %2)
Но опять же и здесь нас ожидают подводные камни.
Например, будет проблема для тех, кто привык писать функции подобным образом:
PHP код:
prepare( playerid, C_WHITE, "Playerid: %d",
playerid
);