SA-MP Forums Archive
Помогите с диалогом - 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: Помогите с диалогом (/showthread.php?tid=222588)



Помогите с диалогом - 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) ) хватит.