[Помощь] Диалоги
|
|
Louis_Capo |
Дата: Среда, 03.01.2018, 03:19 | Сообщение # 1
|
Новичок
Сообщений: 17
Статус: Offline
|
Скажем после ввода команды /moto должно выползти диалоговое окно:
Код $~NumpadEnter:: $~Enter:: sleep, 30 if (isInChat() = 0) or (isDialogOpen() = 1) return sleep 150 dwAddress := dwSAMP + 0x12D8F8 chatInput := readString(hGTA, dwAddress, 256) If chatInput contains /moto { showdialog("1", "{FFFAFA}Кого вы хотите cкинуть с мотоцикла?:", "id игрока, которого вы хотите скинуть с мотоцикла:", "Далее") input, moto, V, {Enter} Далее должна следовать отыгровка. Но если я передумаю и скрою диалог через ESC, то после ввода в чат любого сообщения выползает отыгровка, где переменной "moto" автоматически присваивается значение 0. Как исправить?
Сообщение отредактировал Louis_Capo - Среда, 03.01.2018, 03:23 |
|
|
|
Rinat_Namazov |
Дата: Среда, 03.01.2018, 13:11 | Сообщение # 2
|
Боец
Сообщений: 122
Статус: Offline
|
Для отправки сообщения в чат используется Enter, и в диалоге для подтверждения используется Enter. Можно по нажатию Esc в коде отменять все. Диалог с вводом текста в AHK считаются самыми худшими. И вашем примере кода зачем использовать диалог для ввода ID'a, можно же после команды вводить ID.
|
|
|
|
CZAR |
Дата: Среда, 03.01.2018, 14:18 | Сообщение # 3
|
Czar Of Scripts
Сообщений: 1373
Статус: Offline
|
Rinat_Namazov, ну не сказал что самым худшим, вытащить инфу то можно. так же как и с чата.
Я в ВК Ушел в веб.
• Ничего не покупаю. • Способы не проверяю.
У меня теперь новый домен, если ссылка не работает - напишите.
Гарант Cheat-Master: *тема* AHK [S-RP] House Finder / House Teleporter [SAMP] Online Counter [S-RP] [For Event] Show Star [S-RP] AntiCasino [S-RP] [BOT] Auto Fisher + Auto Find Worm + Auto Cook [S-RP] [BOT] /dance Winner | Делаем розыгрыши среди участников темы. SAMP-UDF [AHK Урок] Выбор в диалогах мышкой и enter`ом [SAMP] Быстрый ответ на СМС [ERP] Помощник для адвоката [DRP] FakeTime Достижения: - 26.02.2017 - 03.01.2018 - 26.05.2018 - 22.09.2018 - 04.04.2019
Сообщение отредактировал Phoenixxx_Czar - Среда, 03.01.2018, 14:25 |
|
|
|
[CM]cron |
Дата: Среда, 10.01.2018, 23:46 | Сообщение # 4
|
Новичок
Сообщений: 7
Статус: Offline
|
Делай лучше на командах. С диалогами столько проблем...Если очень хочешь вывести диалог - выводи диалоги со стилем 0 Ибо диалог может запросто закрыться на серверный (серверный диалог откроется поверх твоего), и ты уже ничего не сделаешь
|
|
|
|
Joni228 |
Дата: Четверг, 11.01.2018, 08:30 | Сообщение # 5
|
Бывалый
Сообщений: 314
Статус: Offline
|
Цитата [CM]cron ( ) Делай лучше на командах. С диалогами столько проблем...Если очень хочешь вывести диалог - выводи диалоги со стилем 0 Ибо диалог может запросто закрыться на серверный (серверный диалог откроется поверх твоего), и ты уже ничего не сделаешь
Можно воспользоваться функционалом диалога от Царя, он не как не взаимодействует с ID, и не может пересечься с серверным
|
|
|
|
[CM]cron |
Дата: Четверг, 11.01.2018, 12:38 | Сообщение # 6
|
Новичок
Сообщений: 7
Статус: Offline
|
Joni228, если, к примеру, человек введет /mn, то откроется меню, и твой диалог пропадет.
|
|
|
|
|
[CM]cron |
Дата: Пятница, 12.01.2018, 00:46 | Сообщение # 8
|
Новичок
Сообщений: 7
Статус: Offline
|
Phoenixxx_Czar, а теперь открой глазки пожалуйста, и посмотри - там стоит Input. О каких кнопках идет речь? Надо будет ждать, когда юзер нажмет Enter, а юзер может и не понять, в чем проблема.
|
|
|
|
Artur_iOS |
Дата: Пятница, 12.01.2018, 01:26 | Сообщение # 9
|
Боец
Сообщений: 94
Статус: Offline
|
Думаю самый простой вариант, а вообще в данном случае лучше бы использовал ввод ид при команде типа /moto 123
Код $~Enter:: if (isInChat() && !isDialogOpen()) { Sleep 200 chatInput := readString(hGTA, dwSAMP + 0x12D8F8, 256) if (chatInput = "/moto") { showDialog(1, "{FFFAFA}Кого вы хотите cкинуть с мотоцикла?:", "Id игрока, которого вы хотите скинуть с мотоцикла:", "Далее") Result := InputResult() addChatMessageEx(0xFFFFFF, "Введен ид: " Result) } } return
InputResult() { if (!isDialogOpen() || getDialogStyle() = 0 || getDialogStyle() = 2 || getDialogStyle() = 4 || getDialogStyle() = 5) return false while (isDialogOpen()) continue if(GetKeyState("Esc", "P")) return false return readString(hGTA, dwSAMP + 0x12D8F8 , 256) }
|
|
|
|
|