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

#Rin

Известный
Всефорумный модератор
1,214
1,037
Я это сделал так как есть строка, которая не работает если не юзать SendInput
SendInput, {F6}/arrest %id%{Enter}
SendInput, {F6}/r %RTag% Закрыто дело номер: %id% | Напарник: %id1%{Enter}
И почему тут не пойдет SendChat?

SendMessage, 0x50,, 0x4090409,, A ; английский SendMessage, 0x50,, 0x4190419,, A ; русский
Ты вообще понимаешь зачем это?
 

TopMo3

Участник
121
7
И почему тут не пойдет SendChat?


Ты вообще понимаешь зачем это?
Ну не работает, я пытался сделать по скрипту, чтобы работало, но не работает, и да я знаю, что значит SenMessage, я его не просто так поставил, он не меняется при смене расскладки.
 

Cameron_Bawerman

Участник
99
1
Люди всем привет. Помогите, как сделать что бы скрипт запускался вместе с виндой
То есть я включил комп и скрипт тоже сам включился.
Буду сильно благодарен
 

#Rin

Известный
Всефорумный модератор
1,214
1,037
Люди всем привет. Помогите, как сделать что бы скрипт запускался вместе с виндой
То есть я включил комп и скрипт тоже сам включился.
Буду сильно благодарен
Добавь его в автозапуск.
 

Andrye2323

Новичок
10
2
Подскажите пожалуйста, как выводить ники из килл листа, тип логирование)
[!]sf плагин не предлагать, интересует только ahk[!]
 

TeOdooR

Новичок
24
1
@Vlad Horii HELP PLEASE
Код:
F2::
showDialog("2", "{FFD700}AHK for Bikers", "{FF1493}RolePlay отыгровка АЗС`n{FF1493}Role Play слив бензина с транспорта`n{FFD700}Ограбление дальнобйщиков`n{1E90FF}Уведомление об АЗС`n{1E90FF}Правила для байкеров перед АЗС`n{1E90FF}Правила перед взятием пикапа `n{C71585}Режим набора`n{FC1323}Словарь байкера`n{7FFF00}FAQ/Информация/Помощь", "Выбрать")
Result := LineResult()
if (!Result)
return
Gosub, Label%Result%
return
Label1:
SendInput, {Esc}
addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили RolePlay ограбления АЗС")
addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
usname := RegExReplace(getUsername(), "_", " ")
SendChat("/do На байке весит канистра.")
sleep 6000
 

Andrye2323

Новичок
10
2
Не очень понял твой код, но понял суть твоей задумки
Сделал как умею, вроде работает, попробуй так)

Код:
F2::
menu := 1
dialog_text := ["{FF1493}RolePlay отыгровка АЗС"
,"{FF1493}Role Play слив бензина с транспорта"
,"{FFD700}Ограбление дальнобйщиков"
,"{1E90FF}Уведомление об АЗС"
,"{1E90FF}Правила для байкеров перед АЗС"
,"{1E90FF}Правила перед взятием пикапа"
,"{C71585}Режим набора"
,"{FC1323}Словарь байкера"
,"{7FFF00}FAQ/Информация/Помощь"]
showDialog(2, "{FFD700}AHK for Bikers", gettext(dialog_text)[1], "Закрыть")
Return

~Enter::
goto, checkdialogMenu
return

~LButton::
Time := A_TickCount
while(isDialogOpen())
{
    if (A_TickCount - Time > 500)
        return
}
checkdialogMenu:
if (isDialogButton1Selected() == 1)
    menu := 0
IfWinNotActive, GTA:SA:MP
    return

if (menu == 1)
{
    menu := 0
    line_num  := getDialogLineNumber()

    if (line_num == 1)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили RolePlay отыгровка АЗС")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 1 строки в диалоге.
    }
    else if (line_num == 2)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Role Play слив бензина с транспорта")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 2 строки в диалоге.
    }
    else if (line_num == 3)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Ограбление дальнобйщиков")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 3 строки в диалоге.
    }
    else if (line_num == 4)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Уведомление об АЗС")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 4 строки в диалоге.
    }
    else if (line_num == 5)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Правила для байкеров перед АЗС")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 5 строки в диалоге.
    }
    else if (line_num == 6)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Правила перед взятием пикапа")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 6 строки в диалоге.
    }
    else if (line_num == 7)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Режим набора")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 7 строки в диалоге.
    }
    else if (line_num == 8)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Словарь байкера")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 8 строки в диалоге.
    }
    else if (line_num == 9)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили FAQ/Информация/Помощь")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 9 строки в диалоге.
    }
}
Return
 
Последнее редактирование:
  • Нравится
Реакции: TeOdooR

TeOdooR

Новичок
24
1
Не очень понял твой код, но понял суть твоей задумки
Сделал как умею, вроде работает, попробуй так)

Код:
F2::
menu := 1
dialog_text := ["{FF1493}RolePlay отыгровка АЗС"
,"{FF1493}Role Play слив бензина с транспорта"
,"{FFD700}Ограбление дальнобйщиков"
,"{1E90FF}Уведомление об АЗС"
,"{1E90FF}Правила для байкеров перед АЗС"
,"{1E90FF}Правила перед взятием пикапа"
,"{C71585}Режим набора"
,"{FC1323}Словарь байкера"
,"{7FFF00}FAQ/Информация/Помощь"]
showDialog(2, "{FFD700}AHK for Bikers", gettext(dialog_text)[1], "Закрыть")
Return

~Enter::
goto, checkdialogMenu
return

~LButton::
Time := A_TickCount
while(isDialogOpen())
{
    if (A_TickCount - Time > 500)
        return
}
checkdialogMenu:
if (isDialogButton1Selected() == 1)
    menu := 0
IfWinNotActive, GTA:SA:MP
    return

if (menu == 1)
{
    menu := 0
    line_num  := getDialogLineNumber()

    if (line_num == 1)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили RolePlay отыгровка АЗС")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 1 строки в диалоге.
    }
    else if (line_num == 2)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Role Play слив бензина с транспорта")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 2 строки в диалоге.
    }
    else if (line_num == 3)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Ограбление дальнобйщиков")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 3 строки в диалоге.
    }
    else if (line_num == 4)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Уведомление об АЗС")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 4 строки в диалоге.
    }
    else if (line_num == 5)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Правила для байкеров перед АЗС")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 5 строки в диалоге.
    }
    else if (line_num == 6)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Правила перед взятием пикапа")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 6 строки в диалоге.
    }
    else if (line_num == 7)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Режим набора")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 7 строки в диалоге.
    }
    else if (line_num == 8)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Словарь байкера")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 8 строки в диалоге.
    }
    else if (line_num == 9)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили FAQ/Информация/Помощь")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 9 строки в диалоге.
    }
}
Return
Ошибка в строке
Код:
showDialog(2, "{FFD700}AHK for Bikers", gettext(dialog_text)[1], "Закрыть")

Не очень понял твой код, но понял суть твоей задумки
Сделал как умею, вроде работает, попробуй так)

Код:
F2::
menu := 1
dialog_text := ["{FF1493}RolePlay отыгровка АЗС"
,"{FF1493}Role Play слив бензина с транспорта"
,"{FFD700}Ограбление дальнобйщиков"
,"{1E90FF}Уведомление об АЗС"
,"{1E90FF}Правила для байкеров перед АЗС"
,"{1E90FF}Правила перед взятием пикапа"
,"{C71585}Режим набора"
,"{FC1323}Словарь байкера"
,"{7FFF00}FAQ/Информация/Помощь"]
showDialog(2, "{FFD700}AHK for Bikers", gettext(dialog_text)[1], "Закрыть")
Return

~Enter::
goto, checkdialogMenu
return

~LButton::
Time := A_TickCount
while(isDialogOpen())
{
    if (A_TickCount - Time > 500)
        return
}
checkdialogMenu:
if (isDialogButton1Selected() == 1)
    menu := 0
IfWinNotActive, GTA:SA:MP
    return

if (menu == 1)
{
    menu := 0
    line_num  := getDialogLineNumber()

    if (line_num == 1)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили RolePlay отыгровка АЗС")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 1 строки в диалоге.
    }
    else if (line_num == 2)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Role Play слив бензина с транспорта")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 2 строки в диалоге.
    }
    else if (line_num == 3)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Ограбление дальнобйщиков")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 3 строки в диалоге.
    }
    else if (line_num == 4)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Уведомление об АЗС")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 4 строки в диалоге.
    }
    else if (line_num == 5)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Правила для байкеров перед АЗС")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 5 строки в диалоге.
    }
    else if (line_num == 6)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Правила перед взятием пикапа")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 6 строки в диалоге.
    }
    else if (line_num == 7)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Режим набора")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 7 строки в диалоге.
    }
    else if (line_num == 8)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили Словарь байкера")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 8 строки в диалоге.
    }
    else if (line_num == 9)
    {
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Вы запустили FAQ/Информация/Помощь")
    addChatMessage("{7CFC00}[Подсказка]{FFFFFF} - Чтобы закрыть отыгровку RolePlay нажмите {FF0000}Numpad "-" ")
    ;Тут пишишь действия, которые должны выполняться при выборе 9 строки в диалоге.
    }
}
Return
исправил на такое
Код:
dialog_text := ["{FF1493}RolePlay отыгровка АЗС`n{FF1493}Role Play слив бензина с транспорта`n{FFD700}Ограбление дальнобйщиков`n{1E90FF}Уведомление об АЗС`n{1E90FF}Правила для байкеров перед АЗС`n{1E90FF}Правила перед взятием пикапа`n{C71585}Режим набора`n{FC1323}Словарь байкера`n{7FFF00}FAQ/Информация/Помощь"]
showDialog(2, "{FFD700}AHK for Bikers", " dialog_text "[menu], "1")
перестала работать строка
Код:
if (isDialogButton1Selected() == 1)
 
Последнее редактирование модератором:

#Rin

Известный
Всефорумный модератор
1,214
1,037
У меня всё отлично работает.
Ну можешь попробовать вот так:
У тебя есть UDF который используется обычно в скриптах от CZAR'a с дополнительными функциями.
dialog_text := ["{FF1493}RolePlay отыгровка АЗС`n{FF1493}Role Play слив бензина с транспорта`n{FFD700}Ограбление дальнобйщиков`n{1E90FF}Уведомление об АЗС`n{1E90FF}Правила для байкеров перед АЗС`n{1E90FF}Правила перед взятием пикапа`n{C71585}Режим набора`n{FC1323}Словарь байкера`n{7FFF00}FAQ/Информация/Помощь"]
Зачем писать строки через `n в массив где только один индекс?

Подскажите пожалуйста, как выводить ники из килл листа, тип логирование)
[!]sf плагин не предлагать, интересует только ahk[!]
Функция: getKillStat()
Возвращает массив из 5 элементов. [szKiller, szVictim, clKillerColor, clVictimColor, byteType]
 

#Rin

Известный
Всефорумный модератор
1,214
1,037
Можешь скинуть код функции? У меня в udf её нема
AutoHotKey:
getKillStat(ByRef IsEnabled := "")
{
    if(!checkHandles())
        return false
    a := []
    klist := readDWORD(hGTA, dwSAMP + 0x21A0EC)
    isEnabled := readMem(hGTA, klist, 4, "int")
    klist += 4
    loop 5
    {
        szKiller := readString(hGTA, klist, 25)
        szVictim := readString(hGTA, (klist += 25), 25)
        clKillerColor := inttohex(readMem(hGTA, (klist += 25), 4, "uint"))
        clVictimColor := inttohex(readMem(hGTA, (klist += 4), 4, "uint"))
        byteType := Memory_ReadByte(hGTA, (klist += 4))
        klist++
        a.Insert([szKiller, szVictim, clKillerColor, clVictimColor, byteType])
    }
    return a
}
 

Andrye2323

Новичок
10
2
AutoHotKey:
getKillStat(ByRef IsEnabled := "")
{
    if(!checkHandles())
        return false
    a := []
    klist := readDWORD(hGTA, dwSAMP + 0x21A0EC)
    isEnabled := readMem(hGTA, klist, 4, "int")
    klist += 4
    loop 5
    {
        szKiller := readString(hGTA, klist, 25)
        szVictim := readString(hGTA, (klist += 25), 25)
        clKillerColor := inttohex(readMem(hGTA, (klist += 25), 4, "uint"))
        clVictimColor := inttohex(readMem(hGTA, (klist += 4), 4, "uint"))
        byteType := Memory_ReadByte(hGTA, (klist += 4))
        klist++
        a.Insert([szKiller, szVictim, clKillerColor, clVictimColor, byteType])
    }
    return a
}
Очень кривая и неудобная функция, выводит 5 строк сразу, хотя мне нужна только последняя.
Невозможно с ней работать....
 

Andrye2323

Новичок
10
2
Трудно переписать, и оставить только то, что нужно?
Да((((((
Часа 2 убил на это, в итоге так и не получилось.
Достиг того что выводилась одна строка, но строка эта была 1 в килл листе, а не последняя

Трудно переписать, и оставить только то, что нужно?
Если шаришь, то научи выводить ники и оружие последнего убийсва)