[Полезное] Полноценное управление диалогами - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Полезное] Полноценное управление диалогами
[CM]James17 Дата: Четверг, 16.08.2018, 13:23 | Сообщение # 1
Новичок
Сообщений: 22
Статус: Offline
Всем привет, на форуме видел достаточное количество тем по "системам" управления диалогов и т.д., но они были или только для клавиатуры, или слишком сложны и непонятны для новичков. Поэтому я решил потратить немного времени и сделать полноценную "систему".

Проверка введенных данных в диалог с одной кнопкой "Закрыть".
Работает для 1 и 3 стиля.

Код
#SingleInstance Force
#Include UDF.ahk
AntiCrash()
F2::
ShowDialog(1, "Проверка", "Введите данные:", "Закрыть")
while (isDialogOpen())
{
    if (getKeyState("Enter", "P"))
  break
    if (getKeyState("Escape", "P"))
  return
}
sleep 150
output := readString(hGTA, dwSAMP + 0x12D8F8, 256)
sleep 150
addChatMessage("{BDBDBD}Вы ввели: {FFFFFF}" output)
return


Проверка введенных данных в диалог с двумя кнопками "Далее" и "Закрыть".

Код
#SingleInstance Force
#Include UDF.ahk
AntiCrash()
F2::
ShowDialog(1, "Проверка", "Введите данные:", "Далее", "Закрыть")
while (isDialogOpen())
{
    if (getKeyState("Enter", "P"))
  break
    if (getKeyState("Escape", "P"))
  return
}
if isDialogButtonSelected("2")
    return
sleep 150
output := readString(hGTA, dwSAMP + 0x12D8F8, 256)
sleep 150
addChatMessage("{BDBDBD}Вы ввели: {FFFFFF}" output)
return


Естественно, можно добавить проверку на пустоту введенных данных (перед addChatMessage()):
Код
if output =
    return


Выбор пункта из меню с одной кнопкой "Закрыть".
Работает для 2 стиля.

Код
#SingleInstance Force
#Include UDF.ahk
AntiCrash()
F2::
ShowDialog(2, "Проверка", "Первая строка`nВторая строка`nТретья строка", "Закрыть")
while (isDialogOpen())
{
    if (getKeyState("Enter", "P"))
  break
    if (getKeyState("Escape", "P"))
  return
}
sleep 100
if isDialogButtonSelected("1")
    return
line := getDialogIndex()
addChatMessage("{BDBDBD}Вы выбрали: {FFFFFF}" line " строку")
return


Выбор пункта из меню с двумя кнопками "Далее" и "Закрыть".

Код
#SingleInstance Force
#Include UDF.ahk
AntiCrash()
F2::
ShowDialog(2, "Проверка", "Первая строка`nВторая строка`nТретья строка", "Далее", "Закрыть")
while (isDialogOpen())
{
    if (getKeyState("Enter", "P"))
  break
    if (getKeyState("Escape", "P"))
  return
}
sleep 100
if isDialogButtonSelected("2")
    return
line := getDialogIndex()
addChatMessage("{BDBDBD}Вы выбрали: {FFFFFF}" line " строку")
return

Автор: я


Сообщение отредактировал [CM]James17 - Понедельник, 20.08.2018, 17:36
CZAR Дата: Четверг, 16.08.2018, 17:16 | Сообщение # 2
Czar Of Scripts
Сообщений: 1373
Статус: Offline
[CM]James17, ты хоть код проверяешь перед тем как выкладываешь?
Код
if (getKeyState("Enter", "P") getCheckDialogButton()==1)

Насчет функции isDialogButtonSelected, она не у всех работает..
Цитата
"но они были или только для клавиатуры"

В твоем случае скрипт вообще останавливается, пока активен цикл..





Я в ВК
Ушел в веб.

• Ничего не покупаю.
• Способы не проверяю.


У меня теперь новый домен, если ссылка не работает - напишите.

Гарант 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
CZAR Дата: Четверг, 16.08.2018, 17:30 | Сообщение # 3
Czar Of Scripts
Сообщений: 1373
Статус: Offline
И да.. Функция GetCheckDialogButton() вообще в вечный цикл уходит, магия какая-то..
Цитата [CM]James17 ()
P.S. Еще одновременно возникает вопрос. Стоит ли перед ShowDialog() делать AntiCrash()? Иногда, при открытии диалога, крашит, а точнее картинка начинает жутко дрыгаться и лагать, а потом процесс игры закрывается, увидел вот функцию эту и решил спросить про нее, может она поможет.

Можешь anticrash() вшить в функцию ShowDialog().





Я в ВК
Ушел в веб.

• Ничего не покупаю.
• Способы не проверяю.


У меня теперь новый домен, если ссылка не работает - напишите.

Гарант 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
[CM]James17 Дата: Понедельник, 20.08.2018, 13:43 | Сообщение # 4
Новичок
Сообщений: 22
Статус: Offline
Phoenixxx_Czar, сглупил с оператором if, много раз приходилось обновлять код, забыл вставить "or". Исправил все ошибки, обновил все коды, избавился от ненужной функции GetCheckDialogButton(). Осталось избавиться от проблемы с циклом.

Сообщение отредактировал [CM]James17 - Понедельник, 20.08.2018, 14:18
Ghost29 Дата: Понедельник, 20.08.2018, 15:37 | Сообщение # 5
Новичок
Сообщений: 23
Статус: Offline
Зачем у тебя функция антикраша вызывается каждый раз при нажатии?
Её достаточно использовать 1 раз при включении скрипта
[CM]James17 Дата: Понедельник, 20.08.2018, 17:35 | Сообщение # 6
Новичок
Сообщений: 22
Статус: Offline
Ghost29, хм, не знал. Думал эта функция требует постоянного ее вызова. Исправил.
CZAR Дата: Вторник, 21.08.2018, 00:44 | Сообщение # 7
Czar Of Scripts
Сообщений: 1373
Статус: Offline
[CM]James17, осталась проблема с isDialogButtonSelected, не у всех она работает.




Я в ВК
Ушел в веб.

• Ничего не покупаю.
• Способы не проверяю.


У меня теперь новый домен, если ссылка не работает - напишите.

Гарант 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
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи