Вопросы по AHK-скриптингу

Whatd

Новичок
1
0
Помогите насчет скрипта AHK, у меня уже он есть, я его использую в играх, типа кликера. Когда я нажимаю `, он готов к использованию, я зажимаю ЛКМ
и он начинает очень быстро кликать на автомате, работает все идеально, но не работает с горячими клавишами, например когда зажимаю W и лкм то все работает, но например с левым контроллом уже нет, зажму левый контролл и зажимаю лкм, он не кликает, а мне нужно что бы кликало, вот сам скрипт
`:: Suspend
LButton::


while GetKeyState("vk01", "P")
{
MouseClick, left, , , 1, 99, D
Sleep 1
MouseClick, left, , , 1, 99, U
Sleep 1

}
return

Помогите, буду очень благодерн
 

BuLLDoZeR

Новичок
4
0
Привет форумчане !!! У меня такой вопрос читал что с помощью хоткея можно запускать и контролировать Программы .Так вот хочу что бы данный скрипт посмотрели что то не получается у меня , на серве у нас рестарт в 5:30 по москве так вот после этого всех выкидывает хочу что бы после рестарта данный скрипт автоматически выходил через /q ну это есть там потом открывал самп кликарпо середине окна 1 раз потом задержка и снова двойной клик задержка и Enter после этого задержка ипосле запуска игры прописал пароль в открытой строке ввода. Сам четвертый день уже голову ломаю только по ходу знаний нехватает все перерыл помогите если это возможо Всем Спасибо!!!


!2::
{
SendInput , {f6}/q{enter}
Sleep, 4000,
Run, D:\Games\GTA San Andreas\samp.exe,
Sleep, 3000,
SendInput {f7};
f7::MouseClick, Left, 300, 300, 2
Sleep, 1500,
Send ,MouseClick, Left, 15, 60,
Sleep, 3000,
SendInput , {Enter}
}
return
пока это все включается кнопкой число ради проверки скрипта надо бы сделать автоматом так как в это время я сплю
 

Вложения

  • Запуск сампп.txt
    248 байт · Просмотры: 6

RellaX

Известный
80
9
Привет форумчане !!! У меня такой вопрос читал что с помощью хоткея можно запускать и контролировать Программы .Так вот хочу что бы данный скрипт посмотрели что то не получается у меня , на серве у нас рестарт в 5:30 по москве так вот после этого всех выкидывает хочу что бы после рестарта данный скрипт автоматически выходил через /q ну это есть там потом открывал самп кликарпо середине окна 1 раз потом задержка и снова двойной клик задержка и Enter после этого задержка ипосле запуска игры прописал пароль в открытой строке ввода. Сам четвертый день уже голову ломаю только по ходу знаний нехватает все перерыл помогите если это возможо Всем Спасибо!!!


!2::
{
SendInput , {f6}/q{enter}
Sleep, 4000,
Run, D:\Games\GTA San Andreas\samp.exe,
Sleep, 3000,
SendInput {f7};
f7::MouseClick, Left, 300, 300, 2
Sleep, 1500,
Send ,MouseClick, Left, 15, 60,
Sleep, 3000,
SendInput , {Enter}
}
return
пока это все включается кнопкой число ради проверки скрипта надо бы сделать автоматом так как в это время я сплю

На, юзал такое в 2014, проверку на диалог сам делай, если он тебе нужен
PHP:
$~!1::
Loop
{
    FileRead, clog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
    if (RegExMatch(clog, "`r`n\Q[" A_Hour ":" A_Min ":" A_Sec "] Server closed\E"))
    {
        Process, Close,  gta_sa.exe
        Sleep, 5000
        Run, samp://127.0.0.1:7777 ; IP сервера для подключения
        WinWaitActive, SA-MP URL
        Sleep, 1000
        SendInput, {Tab 2}
        Sleep 1000
        Sendinput, {Enter}
    }
    else if (RegExMatch(clog, "`r`n\Q[" A_Hour ":" A_Min ":" A_Sec "] Connected to\E"))
    {
        Sleep, 5000
        Sendinput, Ввод_пароля{enter}
    }
    else
    {
        Sleep, 10
    }
}
Return
 

BuLLDoZeR

Новичок
4
0
На, юзал такое в 2014, проверку на диалог сам делай, если он тебе нужен
PHP:
$~!1::
Loop
{
    FileRead, clog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
    if (RegExMatch(clog, "`r`n\Q[" A_Hour ":" A_Min ":" A_Sec "] Server closed\E"))
    {
        Process, Close,  gta_sa.exe
        Sleep, 5000
        Run, samp://127.0.0.1:7777 ; IP сервера для подключения
        WinWaitActive, SA-MP URL
        Sleep, 1000
        SendInput, {Tab 2}
        Sleep 1000
        Sendinput, {Enter}
    }
    else if (RegExMatch(clog, "`r`n\Q[" A_Hour ":" A_Min ":" A_Sec "] Connected to\E"))
    {
        Sleep, 5000
        Sendinput, Ввод_пароля{enter}
    }
    else
    {
        Sleep, 10
    }
}
Return
Спасибо большое я не очень допонял что нужно изменить тут ? ну кроме серва и пароля это я понял получается этот скрипт сам при перезагрузке закрывает и снова открывает самп + логинится?
 
Последнее редактирование:

#Rin

Известный
Всефорумный модератор
1,214
1,037
На, юзал такое в 2014, проверку на диалог сам делай, если он тебе нужен
PHP:
$~!1::
Loop
{
    FileRead, clog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
    if (RegExMatch(clog, "`r`n\Q[" A_Hour ":" A_Min ":" A_Sec "] Server closed\E"))
    {
        Process, Close,  gta_sa.exe
        Sleep, 5000
        Run, samp://127.0.0.1:7777 ; IP сервера для подключения
        WinWaitActive, SA-MP URL
        Sleep, 1000
        SendInput, {Tab 2}
        Sleep 1000
        Sendinput, {Enter}
    }
    else if (RegExMatch(clog, "`r`n\Q[" A_Hour ":" A_Min ":" A_Sec "] Connected to\E"))
    {
        Sleep, 5000
        Sendinput, Ввод_пароля{enter}
    }
    else
    {
        Sleep, 10
    }
}
Return
Смысл в чат логе ещё и время проверять, лишняя нагрзука.
Зачем закрывать самп и снова его открывать, можно ведь изменить статус на переподключение к серверу.

Спасибо большое я не очень допонял что нужно изменить тут ?
Ставить проверку на диалог с вводом пароля.
 

BuLLDoZeR

Новичок
4
0
Смысл в чат логе ещё и время проверять, лишняя нагрзука.
Зачем закрывать самп и снова его открывать, можно ведь изменить статус на переподключение к серверу.


Ставить проверку на диалог с вводом пароля.
а где именно?
я новичек не понимаю в этом толком
 

RellaX

Известный
80
9
Смысл в чат логе ещё и время проверять, лишняя нагрзука.
Зачем закрывать самп и снова его открывать, можно ведь изменить статус на переподключение к серверу.
hz

а где именно?
я новичек не понимаю в этом толком
Мб тебе напишут, ибо мне лень. Если у тебя не появляется диалоговое окно с вводом пароля за 5 сек, после подключения к серву, то меняй задержку в "18" строчке
 

Andrye2323

Новичок
10
2
Всем кулити, скачал вот такие overlay.ahk и dx9_overlay.dll.
Поместил overlay.ahk, dx9_overlay.dll и сам скрипт на рабочий стол.
Кодировка стоит ANSI-32, ошибку не выдает, пробовал компилировать, но скрипт не работает.
Голову сломал уже, не знаю в чем проблема, надеюсь на вашу помощь))
Если кто помочь может, мб vk or skype свой оставите, очень нужно разобраться)
Код скрипта:

Код:
#SingleInstance, force
#NoEnv
#include overlay.ahk

text_overlay:= -1

Dx9SetParam("use_window", "1")
Dx9SetParam("window", "GTA:SA:MP")
return

~1::
text_overlay := Dx9TextCreate("Arial", 25, bold, italic, 800, 560, 00ff00, "TEST-TEST-TEST", shadow, show)
return

~2::
Dx9TextDestroy(text_overlay)
text_overlay := -1
return
Rinat_Namazov, Vlad Horii или другие разбирающиеся люди, help me pls...
:thinking:​
 
Последнее редактирование:

Basho

Известный
148
52
Пасаны, как сделать автоматический тег в /r и /f рации, когда сам тег вписывается в GUI, Edit, потом получаются TagR и TagF, так вот, в какую сторону мне думать, чтобы при вводе "/r TEXT" выходило "/r %TagR% TEXT", аналогично с /f, но при /r (( и /f (( ничего не выводилось?
 

Andrye2323

Новичок
10
2
Пасаны, как сделать автоматический тег в /r и /f рации, когда сам тег вписывается в GUI, Edit, потом получаются TagR и TagF, так вот, в какую сторону мне думать, чтобы при вводе "/r TEXT" выходило "/r %TagR% TEXT", аналогично с /f, но при /r (( и /f (( ничего не выводилось?
Через CommandProcessor удобнее всего.
Ниже сама функция, подключи SAMP UDF(#Include SAMP.ahk) и ниже вставь эту функцию(Если у тебя в UDF её нет)
Код:
class CommandProcessor
{
    StatusProcessor := false
    CommandArray := {}

    TempText := ""
    TempCmd := ""

    SetStatusProcessor(status) {
        this.StatusProcessor := status
    }

    RegisterCommand(cmd, metka) {
        ObjRawSet(this.CommandArray, cmd, metka)
    }

    DeleteCommand(cmd) {
        this.CommandArray.Delete(cmd)
    }
}
Далее, в самом начале кода(даже выше GUI) ставишь эти 4 строки:
Код:
CommandProcessor := new CommandProcessor()
CommandProcessor.SetStatusProcessor(true)
CommandProcessor.RegisterCommand("/r",             "kp")
CommandProcessor.RegisterCommand("/f",             "kp")
Потом идёт твой код, и в самом конце уже вставляешь последнюю часть:
Код:
~Enter::
if(CommandProcessor.StatusProcessor)
{
    if(IsChatActive() == 1)
    {
    
        blockChatInput()
        while(IsChatActive() == 1)
            continue
    
        unBlockChatInput()
    
        TextChat := GetChatText()
    
        if(SubStr(TextChat, 1, 1) == "/")
        {
            InputCMD := StrSplit(TextChat, A_Space)
            InputCMD := InputCMD[1]
            CommandProcessor.TempCmd := InputCMD
            CommandProcessor.TempText := TextChat
        
            if(CommandProcessor.CommandArray.HasKey(InputCMD))
            {
                ClearTextDialog()
                SetTimer, % CommandProcessor.CommandArray[InputCMD], -1
            }
            else
            {
                SendChat(TextChat)
                ClearTextDialog()
            }
        }
        else
        {
            if(TextChat != "")
            {
                CommandProcessor.TempText := TextChat
                SendChat(TextChat)
                ClearTextDialog()
            }
        }
    }
}
return

kp:
chatInput := CommandProcessor.TempText
if (RegExMatch(chatInput, "i)^/r"))
{
    if (RegExMatch(chatInput, "i)^/r \(\((.*)\)\)", out))
    {
    SendChat("/r ((" out1 "))")
    }
    else if (RegExMatch(chatInput, "i)^/r (.*)", out))
    {
    SendChat("/r [" TegR "]: " out1)
    }
 
}
else if (RegExMatch(chatInput, "i)^/f"))
{
    if (RegExMatch(chatInput, "i)^/f \(\((.*)\)\)", out))
    {
    SendChat("/f ((" out1 "))")
    }
    else if (RegExMatch(chatInput, "i)^/f (.*)", out))
    {
    SendChat("/f [" TegF "]: " out1)
    }
 
}
Return
 
Последнее редактирование:
  • Нравится
Реакции: Basho

BuLLDoZeR

Новичок
4
0
hz


Мб тебе напишут, ибо мне лень. Если у тебя не появляется диалоговое окно с вводом пароля за 5 сек, после подключения к серву, то меняй задержку в "18" строчке
Короч что то не то он не подключился или его активировать нужно как то?
 

davkek

Известный
120
23
Подскажите, в чём трабл, почему не работает?
 

Вложения

  • source.txt
    163.1 KB · Просмотры: 9

Vlad Horii

Известный
Проверенный
310
171
Подскажите, в чём трабл, почему не работает?
upload_2018-5-8_18-40-54.png
тут всё не так((
Что именно не работает, и почему оно должно работать?
 
  • Нравится
Реакции: #Rin