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

Harryss

Участник
233
26
Да все бы ничего, если бы ты 2 раза код в 1 файл не вставил...


Код:
#include UDF_037.ahk ; UDF_037.ahk - это название  файла UDF

;=============================================
; Обнуление переменной при нажатии ESC и F6
;=============================================
~ESC::
~F6::
menu:=0
return

;=============================================
; Кнопки вызова диалогов
;=============================================
F3::
menu := 1
ShowDialog(2, "Диалог 1", "Первая`nВторая", "X")
return
F4::
menu := 2
ShowDialog(2, "Диалог с подменю", "Лекции`nПункт без доп. меню", "X")
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()
    line_text  := getDialogLine(line_num)

    addChatMessage("Выбрано: " line_text)
    return
}
else if (menu == 2)
{
    menu := 0
    line_num  := getDialogLineNumber()
    line_text  := getDialogLine(line_num)

    if (line_num == 1)
    {
  showDialog(2, "Подменю", "Первый пукнкт`nВторой пункт", "X")
  menu := 3
    }
    else if (line_num == 2)
  addChatMessage("Выбрано: " line_text)
    return
}
else if (menu == 3)
{
    menu := 0
    line_num  := getDialogLineNumber()
    line_text  := getDialogLine(line_num)

    addChatMessage("В подменю выбрано: " line_text)
    return
}
return

~Enter::
gosub, checkdialogMenu
return
Ну это уже край тупости... сорян. Если у тебя есть возможность, то у меня появилась другая проблема,

Код:
C:\Users\sasha\Desktop\th\AutoHotkey Script.ahk (48) : ==> Call to nonexistent function.
     Specifically: getDialogLineNumber()

UDF естественно подключен, но он почему-то говорит об отсутствии такой функции(
 

Revalto

Известный
531
225
Ну это уже край тупости... сорян. Если у тебя есть возможность, то у меня появилась другая проблема,

Код:
C:\Users\sasha\Desktop\th\AutoHotkey Script.ahk (48) : ==> Call to nonexistent function.
     Specifically: getDialogLineNumber()

UDF естественно подключен, но он почему-то говорит об отсутствии такой функции(
Так-с, попробуй этот)
 

Вложения

  • SAMP.rar
    41.6 KB · Просмотры: 18
  • Нравится
Реакции: Harryss

Di3

Участник
432
20
Кому не в падлу перепишите getId() ну или же getPlayerIdByName()
Ибо частые баги что личный ид глючит.
 

Harryss

Участник
233
26
Так-с, попробуй этот)
Братан, спасибо большое. А ты не шаришь в функции получающей ID игрока через ПКМ? Типо наводишь ПКМ на игрока, жмешь клавишу и AHK автоматически вводит команду подставляя к ней полученный ID. Я такое часто в SF плагинах видел, а как с этим обстоят дела в AHK? В любом случае того, что ты мне скинул будет придостаточно, большое спасибо.
 

ШPEK

Известный
1,474
525
Братан, спасибо большое. А ты не шаришь в функции получающей ID игрока через ПКМ? Типо наводишь ПКМ на игрока, жмешь клавишу и AHK автоматически вводит команду подставляя к ней полученный ID. Я такое часто в SF плагинах видел, а как с этим обстоят дела в AHK? В любом случае того, что ты мне скинул будет придостаточно, большое спасибо.
Код:
id := getIdByPed(getTargetPed())
 
Последнее редактирование:
  • Нравится
Реакции: Harryss

BLANCHELACHANCE

Новичок
7
0
Здравствуйте. У меня есть пока что два вопроса по АХК.

1. Как сделать так, чтобы ахк сам видел где в команде "try" "Удачно", а где "Неудачно". Например: я должен сделать рп задание, в этом задании есть строка "/try и тест", если будет "удачно", то отыгровка должна быть одна, а если "неудачно", то совсем другая. Мне нужно чтобы АХК скрипт когда биндил это рп задание, сам видел что там пишет - "удачно" или "неудачно", и сам продолжал отыгровку.

2. У меня есть например бинд такой:
AutoHotKey:
!1::
SendInput {F6}Здравствуйте, я Ник{enter}
Sleep 2500
SendInput {F6}Как ваши дела?{enter}
Return
Дальше делаю интерфейс GUI, добавляю окно где нужно вводить Ник, и внизу кнопку, например "сохранить". Мне нужно, чтобы когда я вводил в интерфейсе свой Ник и нажимал "сохранить", то этот Ник менялся бы в коде.

Жду:)))
 

ШPEK

Известный
1,474
525
Здравствуйте. У меня есть пока что два вопроса по АХК.

1. Как сделать так, чтобы ахк сам видел где в команде "try" "Удачно", а где "Неудачно". Например: я должен сделать рп задание, в этом задании есть строка "/try и тест", если будет "удачно", то отыгровка должна быть одна, а если "неудачно", то совсем другая. Мне нужно чтобы АХК скрипт когда биндил это рп задание, сам видел что там пишет - "удачно" или "неудачно", и сам продолжал отыгровку.

2. У меня есть например бинд такой:
AutoHotKey:
!1::
SendInput {F6}Здравствуйте, я Ник{enter}
Sleep 2500
SendInput {F6}Как ваши дела?{enter}
Return
Дальше делаю интерфейс GUI, добавляю окно где нужно вводить Ник, и внизу кнопку, например "сохранить". Мне нужно, чтобы когда я вводил в интерфейсе свой Ник и нажимал "сохранить", то этот Ник менялся бы в коде.

Жду:)))
RegExMatch юзай
 

ШPEK

Известный
1,474
525
Бро, я только недавно начал заниматься этим, и еще не понимаю что ты написал. Если можно, распишите все ооочень подробно, так как я еще в этом не шарю:)
Если ты недавно начал учить ахк тогда лучше учи луа. Там легче и функций больше. Альтернатива клео
 

BLANCHELACHANCE

Новичок
7
0
Если ты недавно начал учить ахк тогда лучше учи луа. Там легче и функций больше. Альтернатива клео
Я играю на сервере, на котором нельзя использовать клео и луа. Нельзя не потому что запрещено, а потому что дополнение не позволяет. А ахк скрипты на сервере работают. Так вот. Я хочу чтобы ответили на мой вопрос который я задал, и расписали все подробно:)
 

Harryss

Участник
233
26
Господа, почему код нормально не работает? У меня есть общий диалог, в нем 9 строка это RP обыск заложника. Вот код:

Код:
    if (line_num == 9)
    {
  showDialog(2, "RP обыск заложника", "{F4F6F7}[+] Паспорт в левом кармане штанов`n{F4F6F7}[+] Паспорт в правом кармане штанов", "Закрыть")
  menu := 3
    }
   
    if (menu == 3)
    {
        menu := 0
        line_num  := getDialogLineNumber()
        line_text  := getDialogLine(line_num)
    }
       
    if (line_num == 1)
    {
  SendMessage, 0x50,, 0x4190419,, A
  SendInput {F6}/me засунул руку в левый карман заложника и начал искать паспорт{enter}
    return
    }
   
    if (line_num == 2)
    {
  SendMessage, 0x50,, 0x4190419,, A
  SendInput {F6}/me засунул руку в правый карман заложника и начал искать паспорт{enter}
    return
    }

Проблема в том, что мне нужно чтобы текст выходил при выборе определенного пункта - первого или второго, но он сразу же выводится когда я выбираю 9-ый пункт из общего диалога. Так в чем проблема? Как сделать так, чтобы я открывал 9-ый пункт диалога, выбирал там 1-ую или 2-ую строку и только потом вводился текст? (/me засунул руку в левый карман ...)
 

Skiefy

Известный
23
0
Вот в чате высветились координаты(GetPlayerPos), например, как на DRP, в чате семьи(/k), и человек написал /gocoord, и по этим координатам ему на карте поставилась метка. Ну чет тип передать свое местоположение другу и на подобии. Как это реализовать?
 
Последнее редактирование:

Z@drot

Новичок
1
0
памагити, нужен код чтобы когда я прописывал команду например /house (открываеться диалог) и мне нужно чтобы АХК само опустило вниз и нажало ентер