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

no3jour

Участник
55
0
ребят помогите делал ахк для работы на водолазах Amazing RP суть такого что-бы я нажал f11 персонаж начал бежать(w) и быстро плыть( быстрые нажатия space ) Все нормально вроде работает но в этот момент я не могу нырнуть ( либо клик мышкой либо lctrl) и после нажатия f12 скрипт полностью выключается а не останавливает работу.
PHP:
F11::
    Loop
    {
        Send, {w Down}
        1:
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
    }
    Return
    

F12::
Send, {Space Up}
ExitApp
 

CaJlaT

Овощ
Модератор
2,806
2,609
ребят помогите делал ахк для работы на водолазах Amazing RP суть такого что-бы я нажал f11 персонаж начал бежать(w) и быстро плыть( быстрые нажатия space ) Все нормально вроде работает но в этот момент я не могу нырнуть ( либо клик мышкой либо lctrl) и после нажатия f12 скрипт полностью выключается а не останавливает работу.
PHP:
F11::
    Loop
    {
        Send, {w Down}
        1:
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
        Send, {Space Down}
        sleep, 1
        Send, {Space Up}
        sleep, 1
    }
    Return
   

F12::
Send, {Space Up}
ExitApp
Ответил в твоей теме
 

kovshik

Известный
109
60
Мне нужно сделать чтобы после того как сработал скрипт на ф5, скрипт в ф4 определял что появилось определённое изображение которое запустит скрипт и при изменении цвета изображения скрипт стопался ждал пока изменится цвет и снова флудил кликом и был зациклен это повторять. Дайте какие то советы куда мне идти что смотреть , я уже устал из говна и палок лепить нихуя не регает
рыбалка:
F5::
{
    BlockInput, SendAndMouse
        SendInput, {sc17}
        sleep, 100
        Click Left 550,394 ,
        sleep, 100
        Click Left 550, 520,
    BlockInput, Default
}

F4::
Loop
{
if not GetKeyState("F4", "P")
break
Send {F4}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
}
return
 

CaJlaT

Овощ
Модератор
2,806
2,609
Мне нужно сделать чтобы после того как сработал скрипт на ф5, скрипт в ф4 определял что появилось определённое изображение которое запустит скрипт и при изменении цвета изображения скрипт стопался ждал пока изменится цвет и снова флудил кликом и был зациклен это повторять. Дайте какие то советы куда мне идти что смотреть , я уже устал из говна и палок лепить нихуя не регает
рыбалка:
F5::
{
    BlockInput, SendAndMouse
        SendInput, {sc17}
        sleep, 100
        Click Left 550,394 ,
        sleep, 100
        Click Left 550, 520,
    BlockInput, Default
}

F4::
Loop
{
if not GetKeyState("F4", "P")
break
Send {F4}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
Send {Click}
}
return
Тебе нужна функция PixelGetColor - определение цвета пикселя по кордам, подробный гайд тут
 
  • Нравится
Реакции: kovshik

kovshik

Известный
109
60
Тебе нужна функция PixelGetColor - определение цвета пикселя по кордам, подробный гайд тут
Вот смотри , я попробывал просто для пробы я прописал условие но оно не пашет, оно проверяет но не видет пиксель
46013
У меня на красной кнопке мыши проверяет её цвет, ТО есть когда красным горит клик отсылается , когда горит цветом правой кнопки должно ждать две секунды. Проблема в том что условие проверяется , но не исполняется когда условие верное.
46014

рыбалка:
F5::
MouseMove, 1051, 898
{   
    if ( PixelGetColor, C10000, 1051, 898, alt ) {
        Send {Click}
        }
    else if ( PixelGetColor, CECFD1, 1051, 898, alt )  {
        sleep 2000   
            }   
}
я кажись сам понял, проблема в синтаксисе. Я по ебанутому как то сделал
Скажите я должен объявлять переменную для хранения значения цвета?
 
Последнее редактирование:
  • Нравится
Реакции: Samp_Love_Ahk_Lua_Cleo

Randewoo

Потрачен
110
33
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот смотри , я попробывал просто для пробы я прописал условие но оно не пашет, оно проверяет но не видет пиксель
Посмотреть вложение 46013 У меня на красной кнопке мыши проверяет её цвет, ТО есть когда красным горит клик отсылается , когда горит цветом правой кнопки должно ждать две секунды. Проблема в том что условие проверяется , но не исполняется когда условие верное.
Посмотреть вложение 46014
рыбалка:
F5::
MouseMove, 1051, 898
{  
    if ( PixelGetColor, C10000, 1051, 898, alt ) {
        Send {Click}
        }
    else if ( PixelGetColor, CECFD1, 1051, 898, alt )  {
        sleep 2000  
            }  
}
я кажись сам понял, проблема в синтаксисе. Я по ебанутому как то сделал
Скажите я должен объявлять переменную для хранения значения цвета?
Да, естественно
Посмотри в документации, какие аргументы принимает функция
 

NOOBPAndA

Участник
101
12
как зарегать какую либо команду, парпимер ввел /ban и в addChatMessage выводится типо Введите ИД и кол-во дней.
Де то видел но когда понадобилось не могу найти
 

CaJlaT

Овощ
Модератор
2,806
2,609
как зарегать какую либо команду, парпимер ввел /ban и в addChatMessage выводится типо Введите ИД и кол-во дней.
Де то видел но когда понадобилось не могу найти
возможно я кому-то помогал этим вариантом:

AutoHotKey:
#IfWinActive GTA:SA:MP
#NoEnv
#Include, SAMP.ahk
#SingleInstance, force

$~NumpadEnter::
$~Enter::
if (!isInChat()) || (isDialogOpen())
    Return
Sleep 250
blockChatInput()
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
unblockChatInput()
if (tempCmd == "/mode")
{
    if (RegExMatch(tempText, "^" tempCmd "\s(\d{1,3})$", string))
    {
        if (string1 = 1)
        {
            dalnoboymode := 1
            addChatMessageEx("800080", "[Дальнобойщик GRP] {66CDAA}Режим загрузки/разгрузки установлен на {ff0000}древесину.")
            return
        }
        if (string1 = 2)
        {
            dalnoboymode := 2
            addChatMessageEx("800080", "[Дальнобойщик GRP] {66CDAA}Режим загрузки/разгрузки установлен на {ff0000}руду.")
            return
        }
        if (string1 >= 3)
        {
            addChatMessageEx("800080", "{800080}[Дальнобойщик GRP] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [1/2].")
            return
        }
        return
    }
    Else
    addChatMessageEx("800080", "{800080}[Дальнобойщик GRP] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [1/2].")
}
return
Это из моего хелпера для дальнобоев на ГРП
Если не понял, могу объяснить как что работает
 
  • Нравится
Реакции: NOOBPAndA

NOOBPAndA

Участник
101
12
возможно я кому-то помогал этим вариантом:

AutoHotKey:
#IfWinActive GTA:SA:MP
#NoEnv
#Include, SAMP.ahk
#SingleInstance, force

$~NumpadEnter::
$~Enter::
if (!isInChat()) || (isDialogOpen())
    Return
Sleep 250
blockChatInput()
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
unblockChatInput()
if (tempCmd == "/mode")
{
    if (RegExMatch(tempText, "^" tempCmd "\s(\d{1,3})$", string))
    {
        if (string1 = 1)
        {
            dalnoboymode := 1
            addChatMessageEx("800080", "[Дальнобойщик GRP] {66CDAA}Режим загрузки/разгрузки установлен на {ff0000}древесину.")
            return
        }
        if (string1 = 2)
        {
            dalnoboymode := 2
            addChatMessageEx("800080", "[Дальнобойщик GRP] {66CDAA}Режим загрузки/разгрузки установлен на {ff0000}руду.")
            return
        }
        if (string1 >= 3)
        {
            addChatMessageEx("800080", "{800080}[Дальнобойщик GRP] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [1/2].")
            return
        }
        return
    }
    Else
    addChatMessageEx("800080", "{800080}[Дальнобойщик GRP] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [1/2].")
}
return
Это из моего хелпера для дальнобоев на ГРП
Если не понял, могу объяснить как что работает
Да, объясни как эт работает)
 

CaJlaT

Овощ
Модератор
2,806
2,609
Подсветил строки с пояснениями
AutoHotKey:
#IfWinActive GTA:SA:MP
#NoEnv
#Include, SAMP.ahk
#SingleInstance, force
; До этой строчки думаю всё ясно


$~NumpadEnter:: ;хоткей на энтр на нумпаде на всякий, если вдруг будешь активировать на нумпаде
$~Enter:: ;хоткей на стандартный энтр
if (!isInChat()) || (isDialogOpen())
    Return ; если не в чате или если в диалоге - игнорирует
Sleep 250
blockChatInput() ; блокирует чат, чтобы считать данные, введённые в чат
tempText := readString(hGTA, dwSAMP + 0x12D8F8, 256)
tempCmd := StrSplit(tempText, " ")[1]
unblockChatInput() ; До этой строки читает ввод в чат и разблокирует ввод текста в чат
if (tempCmd == "/mode") ; если ввёл команду /mode
{
    if (RegExMatch(tempText, "^" tempCmd "\s(\d{1,3})$", string)) ; если после /mode есть один численный аргумент
    {
        if (string1 = 1)
        {
            dalnoboymode := 1
            addChatMessageEx("800080", "[Дальнобойщик GRP] {66CDAA}Режим загрузки/разгрузки установлен на {ff0000}древесину.")
            return
        }
        if (string1 = 2)
        {
            dalnoboymode := 2
            addChatMessageEx("800080", "[Дальнобойщик GRP] {66CDAA}Режим загрузки/разгрузки установлен на {ff0000}руду.")
            return
        } ; до этой подгоняет данные в аргументе (убрал >= 3, ибо понял, что она не нужна xD)
    }
    Else ; иначе (если нет аргумента или он не численный или там что-то кроме 1/2)
    addChatMessageEx("800080", "{800080}[Дальнобойщик GRP] {66CDAA}Ошибка, введите {ff0000}" tempCmd " [1/2].") ; выводит ошибку
}
return
если будут вопросы, пиши
 
  • Нравится
Реакции: NOOBPAndA

NHacker1271

Известный
156
16
Пацаны, как сделать вывод введённого текста?
AutoHotKey:
#SingleInstance, Force
#include samp.ahk
~$Enter::
if (isDialogOpen() && getDialogCaption() == "Заголовок") {
    ; Тут бы вывести значение введённого текста..
}
return
!1::
showDialog(1, "Заголовок", "Текст", "Закрыть!")
return
 

CaJlaT

Овощ
Модератор
2,806
2,609
Можно гайд по RegExMatch ?
Вариант 1
Вариант 2


Пацаны, как сделать вывод введённого текста?
AutoHotKey:
#SingleInstance, Force
#include samp.ahk
~$Enter::
if (isDialogOpen() && getDialogCaption() == "Заголовок") {
    ; Тут бы вывести значение введённого текста..
}
return
!1::
showDialog(1, "Заголовок", "Текст", "Закрыть!")
return
в аргументе команды или что? не совсем понял
 
  • Нравится
Реакции: NOOBPAndA