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

ALCAPONE2225

Известный
39
0
@ALCAPONE2225

Функция чуток кривоватая.
А вообще, ByRef на переменную в функциях означает, что эта переменная после обработки в функции будет использоваться в коде дальше.

Два примера с byRef и без:

AutoHotKey:
x := 1

myFunc(byRef x)
{
   x := 5
}

msgbox % x

AutoHotKey:
x := 1

myFunc(x)
{
   x := 5
}

msgbox % x


Ну и исходник с поправленным косяком держи

AutoHotKey:
#SingleInstance Force
#Persistent
#NoEnv
#Include UDF.ahk

F4::
if (getZoneByName2("Los Santos", CurZone) <> "Unknown")
{
    addChatMessage(CurZone[1])
    addChatMessage(CurZone[2])
    addChatMessage(CurZone[3,1,1])
    addChatMessage(CurZone[3,1,2])
    addChatMessage(CurZone[3,1,3])
    addChatMessage(CurZone[3,2,1])
    addChatMessage(CurZone[3,2,2])
    addChatMessage(CurZone[3,2,3])
}
else addChatMessage("Unknown")
return


getZoneByName2(zName, ByRef CurZone ) {
    CurZone := []
    if ( bInitZaC == 0 )
    {
        initZonesAndCities()
        bInitZaC := 1
    }
    Loop % nZone-1
    {
        if (zone%A_Index%_name == zName)
        {
            ErrorLevel := ERROR_OK
            CurZone[1] := zone%A_Index%_name
            CurZone[2] := A_Index
            CurZone[3,1,1] := zone%A_Index%_x1
            CurZone[3,1,2] := zone%A_Index%_y1
            CurZone[3,1,3] := zone%A_Index%_z1
            CurZone[3,2,1] := zone%A_Index%_x2
            CurZone[3,2,2] := zone%A_Index%_y2
            CurZone[3,2,3] := zone%A_Index%_z2
            return true
        }
    }
    ErrorLevel := ERROR_ZONE_NOT_FOUND
    return "Unknown"
}
Огромное спасибо, я уже не знал что с ней делать
 

ponq.

Участник
67
2
Всем привет, кто может написать код для AHK
Нужно на 1, потом сразу на 3 при нажатии клавиши E(У)
Нужно для игры в Point Blank, чтобы крутить дробь, то есть выстрелил и при нажатии клавиши E он берет нож и сразу дробь обратно
 

degrando

Известный
361
127
Всем привет, кто может написать код для AHK
Нужно на 1, потом сразу на 3 при нажатии клавиши E(У)
Нужно для игры в Point Blank, чтобы крутить дробь, то есть выстрелил и при нажатии клавиши E он берет нож и сразу дробь обратно
Ответил в теме
 

Adam_Rockwell

Активный
143
26
Здрасьте. Я вот использую редактор SciTE4AutoHotKey, как и многие наверное, кто что-то пишет на ahk.

Вопрос: Как изменить вот этот начальный текст (в первых 4 строках) (он автоматически появляется при создании нового autohotkey скрипта)

2020-03-05_18-31-44.png
 

Kolbasa241

Известный
213
57
Здрасьте. Я вот использую редактор SciTE4AutoHotKey, как и многие наверное, кто что-то пишет на ahk.

Вопрос: Как изменить вот этот начальный текст (в первых 4 строках) (он автоматически появляется при создании нового autohotkey скрипта)

Посмотреть вложение 50696
Никак, это автоматически создаётся при создании файла.
Это тоже самое, что создать exel файл и открыть его блокнотом, там тоже будет уже текст, даже если ты его не открывал
 

Nyzya

Новичок
1
0
У кого есть клео или AHK на автоответ админам на вопросы "Вы тут?,Тут?,Сколько будет 2+2? и т.д"
Кто скинет буду очень благодарен!
 

Echooo

Новичок
2
1
У меня есть строчка кода для GUI.
AutoHotKey:
Gui, Add, Hotkey, x12 y19 w240 h40 vHotkey1,
Я хочу что бы человек мог выбрать в GUI кнопку на которую будет запускаться код. Вопрос как это красиво организовать?
 

клешь рояль

Известный
1,255
550
взял основу от сюда https://blast.hk/threads/31713/
и чуть переделал под майн, но не работает. Должен показывать msg box но нечего не происходит.

Код:
#SingleInstance force

#Persistent

#UseHook



SetTimer, Update, 50





ChatLog = C:\Users\Ivan\AppData\Roaming\.vimeworld\minigames\logs\latest.txt



Update:

lastline := GetNewLine(ChatLog)

if(RegExMatch(lastline, "\[([0-9]*):([0-9]*):[0-9]*\] \[Client thread\/INFO\]: \[CHAT\] Королевский зомби был повержен!.*", var))

{

    hour := var1

    minute := var2

   

    minute += 20

    if(minute > 59)

    {

        hour++

        minute := minute-60

        hour := format("{:02d}", hour)

        minute := format("{:02d}", minute)

    }

    msgbox, Founded time in chatlog: %var1%:%var2%`nNew time: %hour%:%minute%

}

return





GetNewLine(filename)

{

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

    {

        last := A_LoopReadLine

    }

return last

}



!end::ExitApp

end::Reload
хелп
 

ZAKO

Известный
43
25
У меня есть строчка кода для GUI.
AutoHotKey:
Gui, Add, Hotkey, x12 y19 w240 h40 vHotkey1,
Я хочу что бы человек мог выбрать в GUI кнопку на которую будет запускаться код. Вопрос как это красиво организовать?
Вам необходимо указать метку, к которой будет ссылаться при нажатии. Такой же параметр, только формата "gName".

AutoHotKey:
Gui, Add, Hotkey, x12 y19 w240 h40 vHotkey1 gName,
;Еще интерфейс
return
Name:
;Code
return
У кого есть клео или AHK на автоответ админам на вопросы "Вы тут?,Тут?,Сколько будет 2+2? и т.д"
Кто скинет буду очень благодарен!
Это делается путем ловли строки из чата и разбора ее, ну или просто сверять (искать совпадения).
Я не знаю, где Вы играете, поэтому вряд ли смогу написать код. Сообщите сервер или дайте пример строки (можно взять в чатлоге)
 
Последнее редактирование:
Ну ты уже указал метку, на которую будет ссылаться кнопка при нажатии.
Вообще, метки - это неактуально, но вот твоя реализация:

AutoHotKey:
Gui, Add, Hotkey, x12 y19 w240 h40 vHotkey1,
;Еще интерфейс
return
Hotkey1:
;Code
return

Это делается путем ловли строки из чата и разбора ее, ну или просто сверять (искать совпадения).
Я не знаю, где Вы играете, поэтому вряд ли смогу написать код. Сообщите сервер или дайте пример строки (можно взять в чатлоге)
братан
vHotkey1 - это var Hotkey1, это переменная
а метка была бы gHotkey1
 
  • Нравится
Реакции: ZAKO