Помогите с диалогом -
dmstealth - 07.02.2011
Например, я вызвал DIALOG_STYLE_INPUT допустим с id == 1
Хочу сделать так что бы игрок отправлял команду с введенным текстом, реально ли это?
Вот пример того что щас сделал:
if(dialogid == 1 && response == 1){
new msginpt[10], inpt;
if(!strlen(inputtext))
{
OnPlayerCommandText(playerid,"/command");
}
else
{
inpt = strval(inputtext);
format(msginpt,10,"/command %i",inpt);
OnPlayerCommandText(playerid,msginpt);
}
return 1;
}
Вообще оно работать должно или нет?)))
Re: Помогите с диалогом -
iEnemY - 07.02.2011
Оформляй пост нормально...
pawn Код:
if(dialogid == 1 && response)
{
new string[64];
if(!strlen(inputtext)) return OnPlayerCommandText(playerid,"/command");
new inpt = strval(inputtext);
format(string,64,"/command %d",inpt);
OnPlayerCommandText(playerid, string);
return 1;
}
Вот это должно работать. Только нахрена отправлять команду из диалога? О_о лишний гемор.
Я так понял, игроку открывается диалог; если он ничего не ввел - ему отправляется команда с параметрами; если что то ввел - отправляется команда с введенным параметром. Так? Если да, то работать будет.
Re: Помогите с диалогом -
dmstealth - 07.02.2011
Оформление сорри, забыл.
Огромное спасибо! Помогло, работает. У меня хелп текстовый, переводить его весь в диалоги как-то времени маловато, вот и решил таким способом немного упростить задачу:
набирая /help игроку выводится диалог с разделами помощи, просится ввести номер раздела, после чего показывает выбранный текстовый раздел.
Но не пойму почему не работает
pawn Код:
if(!strlen(inputtext)) return OnPlayerCommandText(playerid,"/command");
если поле оставить пустым, то все равно выскакивает сообщение "введен неправильный номер раздела" (получается вместо пустого /help отправляет еще что-то) вместо обратно диалога с разделами. Все таки интересно
Re: Помогите с диалогом -
iEnemY - 07.02.2011
попробуй
pawn Код:
if(!strval(inputtext) && strlen(inputtext) <= 0) return OnPlayerCommandText(playerid,"/command");
Re: Помогите с диалогом -
dmstealth - 08.02.2011
Заработало вот так:
pawn Код:
if(!strval(inputtext) || (strlen(inputtext) <= 0)) return OnPlayerCommandText(playerid,"/command");
спасибо за помощь!
Re: Помогите с диалогом -
iEnemY - 08.02.2011
Я так понял, что inputtext всегда равен нулю. Не пустоте, не пробелу, а нулю. Так что if( !strval(inputtext) ) хватит.