trenisk, только вод определение выделена ли вторая кнопка не пашет у многих, так что твой способ не подойдет под всех. К тому же в кавычки брать числа - тупенько малех (если оно не вместе с текстом)
А как сделать так, чтобы при ответе выполнялось что-то, например писало в чат "привет" (может это написано в коде, просто я тупенький и не нашёл )
Добавлено (08.09.2018, 22:58) --------------------------------------------- Привет, у меня такая проблемка, когда у меня открывается меню, у меня все действия выполняются одновременно вне зависимости от моего выбора, как бы я не пытался сделать что-то. Так вот, хотел бы попросить тебя, напиши какой то код, чтобы в диалоге при выборе "подтвердить", в чат писалось слово "Привет", а если выбрать "отмена", писалось "пока", а не одновременно Привет Пока
Дата: Воскресенье, 09.09.2018, 11:24 | Сообщение # 42
Новичок
Сообщений: 6
Статус: Offline
Код
#Persistent #Include SAMP.ahk ;=========================================================== ;C O D E ;=========================================================== SetTimer, report, on File := % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt" ;Чекает чатлог
~ESC:: ~F6:: menu:=0 ; Обнуляем меню при нажатии ESC и F6 return
~LButton:: if (isDialogOpen()==0) { KeyWait, LButton } if (A_PriorHotkey <> "~LButton" or A_TimeSincePriorHotkey > 500) ; Проверяем нажато ли два раза ЛКМ за 500мс, если нет ждем второе нажатие и ретурним { KeyWait, LButton return } ; Если нажато два раза, то делаем то что ниже if (menu==1) ; Если "menu" равно 1 { menu:=0 ; деактивирует меню line:=getDialogLineNumber() ; В переменную "line" будет номер выбранной строки sleep, 100 ; задержка перед телепортом на метку (можно делать под себя) Gosub, menu_1_%line% ; переходит на мету выбранного пункта return }
menu_1_1: ; это Первая строка в 1 диалоге AntiCrash() SendChat("/mute " c_id " " c_one " " c_two " • " c_admn " "c_adml) return return menu_1_2: ; это Вторая строка в 1 диалоге AntiCrash() addChatMessage("Отмена") return return
;=========================================================== ;М У С О Р ;===========================================================
GetNewLine(filename) { static old static new if !old {
FileGetSize, old, %filename% new := old } while old = new { sleep 100 FileGetSize, new, %filename% } old := new Loop, read, %filename% if A_LoopReadLine
{ last := A_LoopReadLine } return last }
Исправил сегодня чуть-чуть код, теперь выдача наказания хоть как-то зависит от диалогового окна, но появилась вторая проблема: на enter не работает, только ЛКМ, а когда два раза кликаю лкм, то выскакивает это диалоговое окно, в общем оно открывается от двойного нажатия ЛКМ и если в чате напишут [A] Nick_Name[id]: /mute 228 1000 ты крутой, посмотрев твой код, я добавил
Код
~Enter:: gosub, checkdialogMenu return
Но это всё равно не помогло, после него вообще скрипт не запускался и не понимал что такое checkdialogmenu P.S. Код украл у человека со 2 страницы твоей темы и чуть-чуть изменил под себя.
Сообщение отредактировал samartinell - Воскресенье, 09.09.2018, 11:48
Дата: Воскресенье, 09.09.2018, 14:10 | Сообщение # 43
Czar Of Scripts
Сообщений: 1373
Статус: Offline
samartinell, никогда не используй метки для диалогов.. Это овер тупо. Зачем вообще такое через диалог делать? Сделай в чате уведомление мол нажмите Alt+1, чтобы выполнить команду и после выполнения очищай переменную.