dcmd & params[] - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (
https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: dcmd & params[] (
/showthread.php?tid=434133)
dcmd & params[] -
Seregamil1 - 01.05.2013
Добрый день
Недавно заметил такой косяк в dcmd, при указании нескольких параметров, одним из которых будет являться число например деньги, будет неверно считываться, например
PHP код:
...
//addhouse
//первый параметр - интерьер
//второй - сумма денег - и после него начинает мозги
//третий, допустим класс - он тоже пиздит если перед ним стоит параметр, в котором указываю число > 9
if(strlen(params[0]) == 0 || strlen(params[1]) == 0|| strlen(params[2]) == 0) return false;//это для примера
...
соответственно отображает неверно, однако, если параметры будут в порядке interior/class/money, то глючить будет только money
в чем может быть проблема
Re: dcmd & params[] -
Slava[LSW] - 01.05.2013
В dcmd, params[] - это одна строка с параметрами, введенными после команды, само название команды не входит туда.
Надо сначала строку разделить, через пробелы, а потом уже получать число.
Пример:
PHP код:
new tmp[20], idx;
tmp = strtok(params, idx);
if(!strlen(tmp))
{
//Ошибка
return 0;
}
new interior = strval(tmp);
tmp = strtok(params, idx);
if(!strlen(tmp))
{
//Ошибка
return 0;
}
new moneys = strval(tmp);
tmp = strtok(params, idx);
if(!strlen(tmp))
{
//Ошибка
return 0;
}
new class = strval(tmp);
Это всего лишь пример с strtok, но он давным давно устарел, лучше используй
sscanf плагин.
Re: dcmd & params[] -
Seregamil1 - 02.05.2013
дак и без strtok должно работать
Re: dcmd & params[] -
Slava[LSW] - 02.05.2013
Нет, так не будет.