dcmd & params[]
#1

Добрый день
Недавно заметил такой косяк в dcmd, при указании нескольких параметров, одним из которых будет являться число например деньги, будет неверно считываться, например

PHP код:

...
//addhouse
//первый параметр - интерьер
//второй - сумма денег - и после него начинает  мозги
//третий, допустим класс - он тоже пиздит если перед ним стоит параметр, в котором указываю число > 9
if(strlen(params[0]) == || strlen(params[1]) == 0|| strlen(params[2]) == 0) return false;//это для примера
... 
соответственно отображает неверно, однако, если параметры будут в порядке interior/class/money, то глючить будет только money

в чем может быть проблема
Reply
#2

В dcmd, params[] - это одна строка с параметрами, введенными после команды, само название команды не входит туда.

Надо сначала строку разделить, через пробелы, а потом уже получать число.
Пример:
PHP код:
new tmp[20], idx;
tmp strtok(paramsidx);
if(!
strlen(tmp))
{
    
//Ошибка
    
return 0;
}
new 
interior strval(tmp);
tmp strtok(paramsidx);
if(!
strlen(tmp))
{
    
//Ошибка
    
return 0;
}
new 
moneys strval(tmp);
tmp strtok(paramsidx);
if(!
strlen(tmp))
{
    
//Ошибка
    
return 0;
}
new class = 
strval(tmp); 
Это всего лишь пример с strtok, но он давным давно устарел, лучше используй sscanf плагин.
Reply
#3

дак и без strtok должно работать
Reply
#4

Нет, так не будет.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)