Для начала разберем функцию getarg.
Wiki Samp: getarg() - Получает указанный аргумент из функции, очень удобно использовать с функциями, которые имеют динамическое число аргументов.
С этим все понятно, но есть одно "НО"!
Wiki Samp: Важное замечание: НЕ работает с массивами в качестве параметра !
Недавно мне строчно нужно было сделать функцию с динамическим кол-вом аргументов и + ко всему, чтобы поддерживались массивы.
Вот такое решение придумал для себя:
PHP код:
#define get_str_arg(%0,%1,%2); \
for(new x = 0; x < (%2); ++x) { \
if((%1[x] = getarg((%0), x)) != EOS) continue; \
else %1[x] = EOS; break; \
}
пример использования:
PHP код:
stock BlaBla(...) {
new str[20];
for(new i = 0; i < numargs(); ++i) {
get_str_arg(i, str, sizeof(str)); // i - ID агргумента, значение которого вы хотите получить.
}
return print(str);
}
//numargs(); - функция возвращает число аргументов, переданных в функцию с динамическим числом аргументов.
BlaBla("Текст1","Текст 2","Текст3");
// вставим ее в OnGameModeInit и при старте сервера в консоль выведет текст последнего аргумента.
функция BlaBla чисто для примера, особо сверхестественного в ней ничего нету :)