Помощь с диалогом

Статус
В этой теме нельзя размещать новые ответы.

Flokich

Новичок
Автор темы
9
0
Подскажите, как создать такой диалог, чтобы при активации одного пункта из него, открывался еще один диалог с рабочими пунктами.
 

Kvisk

Известный
205
209
И так, взял пример из своего телепорта. Данный диалог работает только с одной кнопкой, что я имею в виду:
Так работать будет:
Правильно.jpg

Так работать не будет:
Не правильно.jpg

Диалог поддерживает как и клавиатуру, так и мышку..
Можно нажать: Enter; NumpadEnter; Esc; Левую кнопку мыши: двойной клик по нужной строке или выбрать нужную строку и нажать кнопку.

Вот код, думаю тут всё понятно, если что спрашивай.
AutoHotKey:
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#include sampUDF.ahk

; перезагрузка скрипта
F12::
sleep, 300
reload
return

; блок клавиш
$~LButton::
key = LeftButtonMouse
return
$~esc::
key = Esc
return
$~NumpadEnter::
$~Enter::
key = Enter
return

; вызов первого диалога
F11::
dialog1:
key = Ошибка ; если диалог как то не правильно закроется, то ничего не произойдёт
; ниже наш диалог
showDialog(2, "{ffff00}Telepoet{aaaaaa} by Kvisk", "1. Респа LCN`n2. Казино Калигула`n3. Таверна", "Teleport", , 9779)
while (isDialogOpen()) ; цикл, который ждёт закрытия диалога
    Continue
sleep, 250
; так же мы сравниваем id диалога, делается это для того, что если открыть с начало наш,
; а потом сервер нам пришлёт свой диалог и мы закроем его. Скрипт не сработал.
if (getDialogID() <> 9779) or (key = "Esc") or (key = "Ошибка") ; как только диалог был закрыт он смотрит как именно он был закрыт
    return
NumberLine := getDialogLineNumber()
goto act_d1_%NumberLine% ; прыгаем на метку с номером строки
return

act_d1_1:
addChatMessage("1 строка первого диалога")
return
act_d1_2:
key = Ошибка
; наш второй диалог, открывается второй строкой
showDialog(2, "{ffff00}test{aaaaaa} by Kvisk", "1. Первая`n2. Вторая", "Ok", , 9669)
while (isDialogOpen())
    Continue
sleep, 250
if (getDialogID() <> 9669) or (key = "Ошибка")
    return
if (key = "Esc") ; если второй диалог был закрыт, то открывается первый
    goto dialog1
NumberLine := getDialogLineNumber()
goto act_d2_%NumberLine%
return
act_d1_3:
addChatMessage("3 строка первого диалога")
return

act_d2_1:
addChatMessage("Первая строка второго диалога")
return
act_d2_2:
addChatMessage("Вторая строка второго диалога")
return
Код полностью рабочий, можешь вставить и посмотреть как он работает в игре
 
Статус
В этой теме нельзя размещать новые ответы.