Помощь по ахк нужна!

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

sanchezzzz

Новичок
Автор темы
18
0
У меня есть скрипт, нужно чтобы он активировался ровно тогда, когда в чате появляется определенный текст.(сама)
 

darksoor

Известный
674
353

Kvisk

Известный
204
209
Почему-то тему не закрыли, по этому напишу..

Без UDF c файлом чатлога:
AutoHotKey:
Numpad0::             ; Любая ваша клавиша активации
sleep, 300            ; не больная задержка что бы не открылось несколько скриптов
reload                ; перезагрузка скрипта, так как у нас используются циклы
return                ; остановка скрипта (что бы не шел дальше)

Numpad1::             ; Любая ваша клавиша активации
act1:                 ; метка к которой будет прыгать скрипт, может иметь любое название
FileRead, chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt    ; Читаем чатлог и записываем в переменную
StringSplit, LineArr, chatlog, `n        ; Делим чатлог на строчки
number := LineArr0 - 1                ; записываем номер последний строки
loop, 5                ; Начинаем цикл, число означает сколько последниx строк мы будем читать(в нашем случаи 5)
{
    if LineArr%number% contains Вы играли слишком мало чтобы получить Pay Day ; сравниваем есть ли в строке данный текст
        goto act2     ; если есть то прыгаем к метке с таким названием
    if LineArr%number% contains =============================== ; сравниваем есть ли в строке данный текст
        goto act2     ; если есть то прыгаем к метке с таким названием
    number --         ; Если нечего не нашли, убавляем на 1 из числа строки и читаем предыдущею строку
    sleep, 1             ; минимальная задержка, что бы скрипт ниxавал 8-15 ЦП
}
goto act1                ; Если среди 5 последниx строк нечего не нашли, читаем чатлог заново, для того прыгаем к метке с таким именем
act2:                 ; метка к которой будет прыгать скрипт, может иметь любое название
; тут уже идёт ваш код
sendinput, {F6}Hello World{enter}         ; для примера написано
return                 ; Конец скрипта

С UDF напрямую из памяти:
AutoHotKey:
#include sampUDF.ahk ; библиотека UDF должна находится в одной папке со скриптом
Numpad0::             ; Любая ваша клавиша активации
sleep, 300            ; не больная задержка что бы не открылось несколько скриптов
reload                ; перезагрузка скрипта, так как у нас используются циклы
return                ; остановка скрипта (что бы не шел дальше)

Numpad1::                ; Любая ваша клавиша активации
act1:                ; метка к которой будет прыгать скрипт, может иметь любое название
number := 0            ; Записываем в перемену номер строки с которого будем читать чат(0 = самая нижняя строка)
loop, 5                ; Начинаем цикл, число означает сколько последниx строк мы будем читать(в нашем случаи 5)
{
    if getChatLineEx(number) contains Вы играли слишком мало чтобы получить Pay Day ; читаем из памяти строку и сравниваем её
        goto act2        ; если есть то прыгаем к метке с таким названием
    if getChatLineEx(number) contains =============================== ; читаем из памяти строку и сравниваем её
        goto act2        ; если есть то прыгаем к метке с таким названием
    number ++            ; Если нечего не нашли, прибавляем на 1 и читаем следующею строку
    sleep, 1            ; минимальная задержка, что бы скрипт ниxавал 8-15 ЦП
}
goto act1                ; Если среди 5 последниx строк нечего не нашли, читаем чатлог заново, для того прыгаем к метке с таким именем
act2:                 ; метка к которой будет прыгать скрипт, может иметь любое название
; тут уже идёт ваш код
sendchat("Hello World") ; для примера написано
return                 ; Конец скрипта ()
 
Последнее редактирование:
  • Нравится
Реакции: sanchezzzz
Статус
В этой теме нельзя размещать новые ответы.