PDA

Просмотр полной версии : [Вопрос] Проверить ввел ли игрок что то в диалог



KrutoyKrosch
16.12.2016, 13:59
Можно каким то способом проверить ввел ли игрок что то в диалог INPUT до того как он нажал на одну из клавиш? Плагин там может какой то

VVWVV
16.12.2016, 14:43
Нет. Для этого придётся переписывать клиентскую часть SA:MP.

DmX
16.12.2016, 16:24
if(!strlen(inputtext))

m1n1vv
16.12.2016, 16:30
if(!strlen(inputtext))
Выделил

Можно каким то способом проверить ввел ли игрок что то в диалог INPUT до того как он нажал на одну из клавиш? Плагин там может какой то

qwezert
16.12.2016, 16:55
К сожалению в SAMP это невозможно. Только такие проверки очень редко когда нужны в сампе.

KrutoyKrosch
16.12.2016, 19:53
Ну почему же клиент переписывать? Я думаю можно создать такой плагин который бы отправлял серверу ложные пакеты о том что нажата одна из кнопок диалога, проверял бы внутри себя что ввел игрок - если что то ввел вызывался бы публик. При этом перехватывать пакеты от сервера к клиенту о том что диалог нужно закрыть (хотя даже не надо, клиент закрывает диалог сам).

Знатоки C++ считай вам описал плагин.

VVWVV
16.12.2016, 20:49
Ну почему же клиент переписывать? Я думаю можно создать такой плагин который бы отправлял серверу ложные пакеты о том что нажата одна из кнопок диалога, проверял бы внутри себя что ввел игрок - если что то ввел вызывался бы публик. При этом перехватывать пакеты от сервера к клиенту о том что диалог нужно закрыть (хотя даже не надо, клиент закрывает диалог сам).

Знатоки C++ считай вам описал плагин.

Вы сами себе противоречите:

Я думаю можно создать такой плагин который бы отправлял серверу ложные пакеты...

KrutoyKrosch
17.12.2016, 20:58
Получается клиент текст отправляет, а не сервер извлекает?

DeimoS
18.12.2016, 00:44
Получается клиент текст отправляет, а не сервер извлекает?

А как ещё?
По-твоему, клиент отправляет серверу информацию о том, что нажата одна из кнопок диалога и диалог является DIALOG_STYLE_INPUT, на что сервер отправляет клиенту запрос для извлечения введённого текста и возвращает этот текст на сервер? Не кажется странным?

При нажатии на одну из кнопок диалога клиент отправляет серверу информацию для всех параметров OnDialogResponse (dialogid, response, listitem, inputtext). Не важно, был ли диалог списком или окном для ввода текста - заполняются и отправляются все данные. И уже потом скриптер прописывает из каких параметров брать нужную информацию.

То бишь, даже если ты показал игроку диалог формата DIALOG_STYLE_MSGBOX, игрок, при нажатии на одну из кнопок, всё равно пришлёт информацию для параметров listitem и inputtext, хоть стиль диалога и не подразумевает заполнение этих данных.
Именно поэтому, например, в случае с DIALOG_STYLE_LIST, в inputtext попадает текст, который хранится в выбранном пункте диалога (от \n и до \n).


Теперь касаемо плагина. Чтоб такое реализовать, в любом случае нужна клиентская часть (иначе кто будет посылать информацию о вводе текста?). Следовательно, это практически сравнимо с внесением изменений в клиентскую часть SA-MP.