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

Andy Safino

Участник
69
4
Это для того что бы определить можно ли включать 2 копии скрипта и т.п.


#Persistent
Это вообще вырезанный кусок кода как бы.
Код:
SetWorkingDir %A_ScriptDir%
#Include samp udf.ahk
#Persistent

blfind:
            SendChat("/find")
            sleep, 600
            a := GetDialogText()
            a := RegExReplace(a, "[\s]+")
            RegExMatch(a, "Изнихонлайн:(.*)Напау",p)
            a1 := p1
            a2 := 2
            Result := 0
            filename := "bl.txt"
            ftestt := ""
            Loop, %a1%
            {
                a2 ++
                RegExMatch(getDialogLine(a2),"\[([0-9]*)\]",s)
                name := getPlayerNameById(s1)
                name2 := RegExReplace(name,"_"," ")
                FileEncoding, UTF-8
                test := 0
                Loop, Read, %filename%
                {
                    str := RegExReplace(A_LoopReadLine,"""")
                    dol := ",(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),"
                    RegExMatch(str,dol,p)
                   if (p2 == name || p2 == name2)
                    {
                        Result ++
                        test := 1
                        if (ftestt == "")
                        ftestt := name
                        else
                        ftestt := ", " name
                    }
                }
            }
addChatMessageEx(0x4285F4, MvdTitl "Результат проверки /find на ЧС: {ff5c33}" result " в ЧС МВД")
            sleep, 300
            if (result != 0)
addChatMessageEx(0x4285F4, MvdTitl "Для списка того кто в ЧС МВД введите /bfcheck")
            return




bfcheck:
            if (ftestt == "")
            {
addChatMessageEx(0x4285F4, MvdTitl "Проверка не осуществлена: {ff5c33}/blfind")
                return
            }
            else
            {
                dial := RegExReplace(ftestt,", ","`n")
                sleep, 300
                AntiCrash()
ShowDialog("0","" MvdTitl "Список","{ffffff}" dial,"Закрыть")
                AntiCrash()
                return
            }
return
Вот так вот лучше или лучше запихнуть в диалог?
 

darksoor

Известный
674
353
Ты о чем вообще? Что это за отрывки откуда то, какая у тебя задумка?
Лучше бы помог, а не задавал такие вопросы. Если пролистаешь выше, то человек ему скинул код для проверки финда на ЧС, но он не полный.

Поставь какую-нибудь кнопку или команду перед метками, будет все работать.
 
  • Нравится
Реакции: Andy Safino

BenMaklain

Новичок
8
0
Помогите сделать ахк для закупки в магазине.Нужно закупить 5 бронежилетов,меню покупки ниже в скринах.
 

Вложения

  • cr-mp-018.png
    cr-mp-018.png
    6.4 KB · Просмотры: 221
  • cr-mp-015.png
    cr-mp-015.png
    12.5 KB · Просмотры: 204
  • cr-mp-016.png
    cr-mp-016.png
    4.1 KB · Просмотры: 200
  • cr-mp-017.png
    cr-mp-017.png
    7.6 KB · Просмотры: 126

HURACAN

Известный
42
3
Код:
SetWorkingDir %A_ScriptDir%
#Include samp udf.ahk
#Persistent

blfind:
            SendChat("/find")
            sleep, 600
            a := GetDialogText()
            a := RegExReplace(a, "[\s]+")
            RegExMatch(a, "Изнихонлайн:(.*)Напау",p)
            a1 := p1
            a2 := 2
            Result := 0
            filename := "bl.txt"
            ftestt := ""
            Loop, %a1%
            {
                a2 ++
                RegExMatch(getDialogLine(a2),"\[([0-9]*)\]",s)
                name := getPlayerNameById(s1)
                name2 := RegExReplace(name,"_"," ")
                FileEncoding, UTF-8
                test := 0
                Loop, Read, %filename%
                {
                    str := RegExReplace(A_LoopReadLine,"""")
                    dol := ",(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),"
                    RegExMatch(str,dol,p)
                   if (p2 == name || p2 == name2)
                    {
                        Result ++
                        test := 1
                        if (ftestt == "")
                        ftestt := name
                        else
                        ftestt := ", " name
                    }
                }
            }
addChatMessageEx(0x4285F4, MvdTitl "Результат проверки /find на ЧС: {ff5c33}" result " в ЧС МВД")
            sleep, 300
            if (result != 0)
addChatMessageEx(0x4285F4, MvdTitl "Для списка того кто в ЧС МВД введите /bfcheck")
            return




bfcheck:
            if (ftestt == "")
            {
addChatMessageEx(0x4285F4, MvdTitl "Проверка не осуществлена: {ff5c33}/blfind")
                return
            }
            else
            {
                dial := RegExReplace(ftestt,", ","`n")
                sleep, 300
                AntiCrash()
ShowDialog("0","" MvdTitl "Список","{ffffff}" dial,"Закрыть")
                AntiCrash()
                return
            }
return
Вот так вот лучше или лучше запихнуть в диалог?

Код:
!1::
ShowDialog(2, "text","Проверить find на ЧС`nСписок ЧС","Закрыть")
Result := LineResult()
if (!Result)
    return
Gosub, chscheck%Result%
return


chscheck1:
sleep 250
            SendChat("/find")
            sleep, 600
            a := GetDialogText()
            a := RegExReplace(a, "[\s]+")
            RegExMatch(a, "Изнихонлайн:(.*)Напау",p)
            a1 := p1
            a2 := 2
            Result := 0
            filename := "bl.txt"
            ftestt := ""
            Loop, %a1%
            {
                a2 ++
                RegExMatch(getDialogLine(a2),"\[([0-9]*)\]",s)
                name := getPlayerNameById(s1)
                name2 := RegExReplace(name,"_"," ")
                FileEncoding, UTF-8
                test := 0
                Loop, Read, %filename%
                {
                    str := RegExReplace(A_LoopReadLine,"""")
                    dol := ",(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),(.*?),"
                    RegExMatch(str,dol,p)
                   if (p2 == name || p2 == name2)
                    {
                        Result ++
                        test := 1
                        if (ftestt == "")
                        ftestt := name
                        else
                        ftestt := ", " name
                    }
                }
            }
addChatMessageEx(0x4285F4, MvdTitl "Результат проверки /find на ЧС: {ff5c33}" result " в ЧС МВД")
            sleep, 300
            if (result != 0)
addChatMessageEx(0x4285F4, MvdTitl "Для списка того кто в ЧС МВД введите /bfcheck")
            return




chscheck2:
            if (ftestt == "")
            {
addChatMessageEx(0x4285F4, MvdTitl "Проверка не осуществлена: {ff5c33}/blfind")
                return
            }
            else
            {
                dial := RegExReplace(ftestt,", ","`n")
                sleep, 300
                AntiCrash()
ShowDialog("0","" MvdTitl "Список","{ffffff}" dial,"Закрыть")
                AntiCrash()
                return
            }
return
 
  • Нравится
Реакции: Andy Safino

Mauricio_Ortiz

Новичок
1
0
А как сделать отмену отыгровки? Ну типа что-то не то, нажал допустим 3 и отыгровка отменилась
 

Dima1337228

Новичок
4
0
Мне бы сделать ахк,чтобы каждые 15 мин,включалась команда /usemed,я нашёл 1 такое ахк но я включаю его и у меня пишет типо ошибка,скажие какое ахк скачать
 

darksoor

Известный
674
353
Мне бы сделать ахк,чтобы каждые 15 мин,включалась команда /usemed,я нашёл 1 такое ахк но я включаю его и у меня пишет типо ошибка,скажие какое ахк скачать
Самое простейшее:
AutoHotKey:
F2:: ;активация
Loop
{
   SendInput, {F6}/usemed{enter}
   Sleep, 900000
}
Return
 

Cod

Участник
117
15
Помогите разобраться в одной теме. Я хотел получить через память номер радиостанции, которая сейчас играет, а потом через память её редактировать.
Но я не смог даже нормально получить номер радиостанции, я пробывал много способов, даже типы данных разные ставил. Возможно адресс кривой, взял на этом сайте: Адреса Памяти (SA) — GTAModding.ru(http://gtamodding.ru/wiki/%D0%90%D0%B4%D1%80%D0%B5%D1%81%D0%B0_%D0%9F%D0%B0%D0%BC%D1%8F%D1%82%D0%B8_(SA))
0xBA679A - [byte] ID текущей радиостанции:
 

Andy Safino

Участник
69
4
скачать AHK
При установки выбирай Ansi-32.
Напиши мне код через RegExMatch(a, "УровеньРозыска:(.*)Напау",p), что то типо такого как делали ранее.
Код:
Код:
 if (chatInput == "/pas") {
        my_nick := getUsername()
        my_nick := RegExReplace(my_nick, "_", " ")
        sendchat("Добрый день, Вас беспокоит " my_nick "")
        sleep 1000
        sendchat("/do На груди висит жетон МВД.")
        sleep 1000
        sendchat("Предъявите Ваши документы, уверяю Вас, это обычная проверка.")
        addChatMessage("{00CED1}[AHK] {FFFFFF}Скрипт {00CED1}ожидает{00CED1}, {FFFFFF}пока игрок покажет паспорт.")
        Loop {
        if RegExMatch(getChatLineEx(), "Уровень розыска\:\s(\d)", var)
              break
        }
        if (var1 == 0) {
            sleep 1000
            sendchat("/me досконально изучил паспорт")
            sleep 300
            sendchat("/me сообщил диспечеру")
            sleep 2000
            sendchat("Спасибо за предоставление документов, можете быть свободны.")
        } else if (var1 >= 1) {
            addChatMessage("{00CED1}[AHK] {FFFFFF}Игрок находится в розыске! Уровень розыска: {00CED1}" var1 ".")
            sleep 2000
            sendchat("/me получил сообщение от диспетчера о подозреваемом")
            sleep 1000
            sendchat("Вы находитесь в розыске и я должен Вас задержать. Пройдемте в машину!")
            sleep 500
            sendchat("В Ваших же интересах сделать это добровольно. В противном случае мы применим силу!")
        } else
            addChatMessage("{00CED1}[AHK] {FFFFFF}Не удалось определить розыск")
    }
скриншот
24313532.png
 

HURACAN

Известный
42
3
Напиши мне код через RegExMatch(a, "УровеньРозыска:(.*)Напау",p), что то типо такого как делали ранее.
Код:
Код:
 if (chatInput == "/pas") {
        my_nick := getUsername()
        my_nick := RegExReplace(my_nick, "_", " ")
        sendchat("Добрый день, Вас беспокоит " my_nick "")
        sleep 1000
        sendchat("/do На груди висит жетон МВД.")
        sleep 1000
        sendchat("Предъявите Ваши документы, уверяю Вас, это обычная проверка.")
        addChatMessage("{00CED1}[AHK] {FFFFFF}Скрипт {00CED1}ожидает{00CED1}, {FFFFFF}пока игрок покажет паспорт.")
        Loop {
        if RegExMatch(getChatLineEx(), "Уровень розыска\:\s(\d)", var)
              break
        }
        if (var1 == 0) {
            sleep 1000
            sendchat("/me досконально изучил паспорт")
            sleep 300
            sendchat("/me сообщил диспечеру")
            sleep 2000
            sendchat("Спасибо за предоставление документов, можете быть свободны.")
        } else if (var1 >= 1) {
            addChatMessage("{00CED1}[AHK] {FFFFFF}Игрок находится в розыске! Уровень розыска: {00CED1}" var1 ".")
            sleep 2000
            sendchat("/me получил сообщение от диспетчера о подозреваемом")
            sleep 1000
            sendchat("Вы находитесь в розыске и я должен Вас задержать. Пройдемте в машину!")
            sleep 500
            sendchat("В Ваших же интересах сделать это добровольно. В противном случае мы применим силу!")
        } else
            addChatMessage("{00CED1}[AHK] {FFFFFF}Не удалось определить розыск")
    }
скриншот
24313532.png
Ответил в ЛС
 
Последнее редактирование:

Imperial2007

Новичок
3
0
Ребят, подскажите, пожалуйста, с помощью АХК можно вообще перемещаться по заданным координатам или нет? В SAMP UDF я нашел только проверку координат, но не могу найти как же двигаться по заданным координатам?