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

Тема в разделе "AutoHotKey", создана пользователем gwplayer, 8 авг 2017.

  1. Warklot

    Warklot Новичок

    Регистрация:
    24 мар 2019
    Сообщения:
    2
    Симпатии:
    0
    I need ahk script thats mute player example .

    if scripts sees in chat swearing he auto mute that player so how to make script? command is /mute- "V_P" "time" "reason"
     
  2. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
    We help with the code, but don't write code instead of you
     
  3. Илья Некрасов

    Илья Некрасов Новичок

    Регистрация:
    19 июл 2017
    Сообщения:
    2
    Симпатии:
    0
    Вот не могу сделать чтоб в игре нажималась кнопка N каждый раз в 1 секунду в сампе нажимаю на ф6 там в чате пишет а в самой игре не работает

    Numpad1::
    Loop 20
    {
    Send {N down}{N up}
    Sleep 1000
    }
    Return
     
  4. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
    Numpad1::
    Loop 20
    {
        Send, {N down}
        sleep 200
        Send, {N up}
        sleep 1000
    }
    Return
     
  5. Илья Некрасов

    Илья Некрасов Новичок

    Регистрация:
    19 июл 2017
    Сообщения:
    2
    Симпатии:
    0
    Numpad1::
    Loop 20
    {
    Send, {N down}
    sleep 200
    Send, {N up}
    sleep 1000
    }
    Return
    Не помогло
     
  6. Макс2238

    Макс2238 Участник

    Регистрация:
    5 янв 2019
    Сообщения:
    6
    Симпатии:
    0
    Не пойму в чем проблема, надо дабы при нажатии нумпад 0 выводило текст на екран, но почему-то ничего не происходит. Помогите кто может.
    
    #Persistent
    #SingleInstance force
    #include udfr1.ahk
    
    Numpad0::
    FileCLog:= % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
    Loop
    {
        lastline := GetNewLine(FileCLog)
        if RegExMatch(lastline, " Жалоба от\s+(?<nick>\w+)\s+\[ID\s+(?<ID>\d+)\]\:(?<text>.*)", out_)
        {
            NewStr := RegExReplace(out_ )
                    sendinput {f6}/ames %NewStr%
                 
        }
    }
    
    GetNewLine(filename)  ; Read ChatLog
    {
        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
        {
            lastline2:= lastline1
            lastline1:= last
            last := A_LoopReadLine
        }
        return last
    }
    [code]
     
  7. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
    Во-первых, sendinput {f6}/ames %NewStr% выводит в чат, а не на экран
    Ну и во-вторых,
    SendInput, {f6}/ames %NewStr%{enter}  ; вводит команду с нужным значением с нажатием энтера
    На другие части кода не смотрел
     
  8. Макс2238

    Макс2238 Участник

    Регистрация:
    5 янв 2019
    Сообщения:
    6
    Симпатии:
    0
    Ну да в чат, ошибся, но у меня ошибка в другом а именно
    
    NewStr := RegExReplace(out_ )
     
  9. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
  10. vlaaDick228

    vlaaDick228 Участник

    Регистрация:
    27 окт 2016
    Сообщения:
    9
    Симпатии:
    0
    Привет , возможно у кого либо есть udf для версии сампа r3 , или кто либо может написать пару функций , и сколько будет стоить..?

    Заранее спасибо.
     
  11. Nagenbl4

    Nagenbl4 Интересующийся

    Регистрация:
    14 янв 2018
    Сообщения:
    108
    Симпатии:
    2
    Есть код:
    RegExMatch(%A_ScriptDir%/1r.ini, "Игрок (.*) пожал руку (.*)", out)
    IniWrite, % out1 out2 "`n", Рука.ini, Игрок N пожал руку N2
    Содержимое 1r.ini:
    Kaka пожал руку Kirill_Adimov      <------------------------- [1 строчка]
    Fga пожал руку Maoi      <------------------------- [2 строчка]
    Kaka пожал руку Koii      <------------------------- [3 строчка]
    Почему в Рука.ini появляется только 1 и 2 строчка, а 3 не появляется?
     
  12. _Денис_

    _Денис_ Новичок

    Регистрация:
    20 июл 2017
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте у меня проблема. Написал скрипт для эфиров СМИ. Работает отлично, но как только он включился, потом уже нельзя переключить раскладку на английский язык. Ну тоесть писать можно только на русском. Выключаешь скрипт, перезаходишь, всё нормально. Я примерно знаю причину, я думаю это из-за строчки SendMessage, 0x50,, 0x4190419,, A, так как она и переключает на русский, но если её убрать пойдут вопросики в чат...
    Numpad8::
    
    SendMessage, 0x50,, 0x4190419,, A
    
    {
    
    SendInput {F6}/do Наушники лежат на столе.{enter}
    
    sleep 2000
    
    SendInput {F6}/me взял(а) наушники{enter}
    
    sleep 2000
    
    SendInput {F6}/me надел(а) наушники{enter}
    
    sleep 2000
    
    SendInput {F6}/do Наушники на голове.{enter}
    
    sleep 2000
    
    SendInput {F6}/me включил(а) нужную аппаратуру{enter}
    
    sleep 2000
    
    SendInput {F6}/do Аппаратура включена.{enter}
    
    sleep 2000
    
    SendInput {F6}/me настраивает аппаратуру{enter}
    
    sleep 2000
    
    SendInput {F6}/do Аппаратура настроена.{enter}
    
    }
    
    return 
     
  13. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
    Вообще код по структуре должен выглядеть вот так
    Numpad8::
    {
       SendMessage, 0x50,, 0x4190419,, A
       ...
    }
    return
     
  14. Cucumber

    Cucumber Активный участник

    Регистрация:
    4 ноя 2018
    Сообщения:
    36
    Симпатии:
    14
    Вообще нужно отправлять сообщения через функцию SendChat(), и тогда не будет никаких проблем с раскладкой

    Script = %A_ScriptDir%\1r.ini
    Loop, Read, %Script%
        {
            RegExMatch(A_LoopReadLine, "(.*) пожал руку (.*)", out)
            FileAppend, % "Игрок " out1 " пожал руку " out2 "`n", %A_ScriptDir%\Рука.txt
        }
    msgbox, Готово!
     
  15. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
    Как реализовать задачу - личное дело человека
     
  16. Cucumber

    Cucumber Активный участник

    Регистрация:
    4 ноя 2018
    Сообщения:
    36
    Симпатии:
    14
    Ты человеку не помог. От того, что ты в коде добавил блоки раскладка у человека не поменяется. И эти блоки в принципе не нужны там
     
  17. Tiva

    Tiva Активный участник

    Регистрация:
    6 ноя 2017
    Сообщения:
    47
    Симпатии:
    1
    как сделать чтобы писался:
    Мой ник
    Мой ник без _
    Ник ближнего человека
    Ник ближнего человека без _
    Мой ид
    Ид ближнего человека
     
  18. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
    Я сам юзаю свои бинды со сменой расскладки клавиатуры и ничего, живой. Если уж ты говоришь о sendchat, так подсказывай тогда юзеру, что нужно подключать samp-udf, не все всё знают
     
  19. Tiva

    Tiva Активный участник

    Регистрация:
    6 ноя 2017
    Сообщения:
    47
    Симпатии:
    1
    Можешь помочь?
     
  20. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
    Функции из samp-udf
    ; getUsername() - get local player name
    ; getId() - get local player id
    В зависимости от того, как ты хочешь выводить текст - используй регулярные выражения
     
  21. Tiva

    Tiva Активный участник

    Регистрация:
    6 ноя 2017
    Сообщения:
    47
    Симпатии:
    1
    ничего не понял.
     
  22. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
    Хз как понятнее объяснить. Может не стоит в скрипты лезть?
     
  23. glezin02

    glezin02 Активный участник

    Регистрация:
    8 апр 2014
    Сообщения:
    30
    Симпатии:
    1
    привет, есть ли возможность на автохоткее сделать код, который в чате будет писать время с предыдущего по мне выстрела?
     
  24. Cucumber

    Cucumber Активный участник

    Регистрация:
    4 ноя 2018
    Сообщения:
    36
    Симпатии:
    14
    Loop {
        if (getLastDamagePed(playerid, weapon) != "-1" && Lastdmg != getLastDamagePed(playerid, weapon)) {
            Lastdmg := getLastDamagePed(playerid, weapon)
            FirstTime := A_TickCount
        }
    }
    
    Numpad6::
    NewTime := A_TickCount - FirstTime
    Second := round(NewTime/1000, 1)
    AddChatMessageEx("FFFFFF", "MM: {fcc801}" NewTime " {FFFFFF}Second: {fcc801}"Second)
    Return
     
  25. kotec

    kotec Активный участник

    Регистрация:
    5 июл 2018
    Сообщения:
    39
    Симпатии:
    0
    Можете дать пример кода, который будет запускаться, если будет видеть в чате определённый текст? Самый банальный пример
     
  26. James Hawk

    James Hawk Друг форума

    Регистрация:
    1 сен 2016
    Сообщения:
    557
    Симпатии:
    104
    #Include samp-udf.ahk
    #IfWinActive GTA:SA:MP
    chat:=A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
    
    global flag := false
    
    start:
    if(flag)
    {
        FileRead, chatlog, % chat
        if chatlog contains Server closed the connection,The server didn't respond,Lost connection to the server ;,строй возле бара,строй у бара,строй на парковке,сбор на парковке
        {
            ControlSend, ahk_parent, {F6}/q{enter}, ahk_exe gta_sa.exe
            ;Sendchat("/q")
            flag:=false
            save(chatlog)
        }
    }
    return
    Часть кода. Выключает игру при наличии строк
     
    kotec нравится это.
  27. BASS_DEVSOFTWARE

    BASS_DEVSOFTWARE Интересующийся

    Регистрация:
    29 апр 2017
    Сообщения:
    105
    Симпатии:
    66
    В SciTE4AutoHotkey есть функция коммента выделенных строк?

    Выделил кусок кода и закомментил одним нажатием.
     
  28. index

    index Постоянный участник

    Регистрация:
    5 мар 2018
    Сообщения:
    55
    Симпатии:
    18
    Ctrl+Q
     
    BASS_DEVSOFTWARE нравится это.
  29. Талапбек

    Талапбек Новичок

    Регистрация:
    26 май 2017
    Сообщения:
    3
    Симпатии:
    0
    Как сделать чтоб появлялся подсказка как в картинке?
     

    Вложения:

    • парса.png
      парса.png
      Размер файла:
      82,5 КБ
      Просмотров:
      9
  30. strozzaс

    strozzaс Новичок

    Регистрация:
    31 дек 2014
    Сообщения:
    2
    Симпатии:
    0
    SciTE4AutoHotkey
     
  31. Талапбек

    Талапбек Новичок

    Регистрация:
    26 май 2017
    Сообщения:
    3
    Симпатии:
    0
    ну у меня Scite4AHK но надо в ручную активировать, как?