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

Revalto

Известный
532
225
Помогите с регуляркой.Мне нужно чтобы если диалоговое окно открыто и в нем есть N-товар и его цена меньше,чем указана в скрипте то скрипт пишет в чат что все найдено и покупает его.Вот код за 1 час пота,только тряпками не бейте(пытался найти только цифры и то не получилось,бред спамит в чат)
HTML:
!1::
{
    loop
    {
        if(IsDialogOpen() == 1){
            if( RegExMatch(getDialogText(), "\d*\S\W", match))
                {
                    addChatMessageEx("{ff008}", "{f2ff00}"(match))
                }
        }
    }
}
Переменные с регулярки match1, match2 и т.д. В твоем случае все переменные пустые..
 

Nedoskipter

Новичок
1
0
Помогите со скриптом.
Проблема в том, шо когда я вызываю диалог, то пишет сразу 1(перебрасывает на метку test)
AutoHotKey:
!1::
ShowDialog(2, "Menu", "1 list`n2list", "1 button", "2 button")
Loop
{
List := getDialogIndex()
if (List = 1) {
goto test
break
} 
else if (List = 2) {
goto test2
break 
}
}

test:
{
    SendChat("1")
    return
}

test2:
{
    sendchat("2")
    return
}
 

Revalto

Известный
532
225
Помогите со скриптом.
Проблема в том, шо когда я вызываю диалог, то пишет сразу 1(перебрасывает на метку test)
AutoHotKey:
!1::
ShowDialog(2, "Menu", "1 list`n2list", "1 button", "2 button")
Loop
{
List := getDialogIndex()
if (List = 1) {
goto test
break
}
else if (List = 2) {
goto test2
break
}
}

test:
{
    SendChat("1")
    return
}

test2:
{
    sendchat("2")
    return
}
Ну так да, ты сразу же цикл врубаешь :D
Код:
#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
 
  • Нравится
Реакции: Nedoskipter

Vlad1slavio

Новичок
4
0
Помогите пожалуйста со скриптом. Как сделать чтобы при вводе команды ( /rd ID ) скрипт сперва определял ник игрока, далее вводил в чат команду /agetip, уже с его ником? Ну и желательно чтоб выводил его ник в сообщение addChatMessage. Буду благодарен за помощь.
Код:
:?:/rd %name%::
SendMessage, 0x50,, 0x4190419,, A
name :=getPlayerNameById(dwId)
addChatMessage("{CC3D3D}ВНИМАНИЕ! {FFFFFF}Запущена проверка регистрационных данных игрока с ником {CC3D3D}" name " ")
sleep 50
Sendinput, {F6}/agetip %name%{Enter}
Sleep, 1111
Sendinput, {F6}/cip2{Enter}
Return
 

Samuel_Cassini

Новичок
14
0
В общем, в AHK и прочей фигне не шарю вообще, по этому помогите, кто знает, пожалуйста.
AutoHotKey:
F10::
  sendinput {f6} {enter}
  loop 12
    {
    send {shift down}
    sleep 5
    send {shift up}
    sleep 5
    }
  return
простенький AHK на двойной прыжок, подскажите пожалуйста, можно ли как то сделать активацию на Num 5, вне зависимости от того, Numpad включён или нет. То есть, если Numpad включён/выключен, AHK всё равно работал при нажатии на клавишу Num 5. Заранее спасибо.
 

Cod

Участник
117
15
Помогите пожалуйста со скриптом. Как сделать чтобы при вводе команды ( /rd ID ) скрипт сперва определял ник игрока, далее вводил в чат команду /agetip, уже с его ником? Ну и желательно чтоб выводил его ник в сообщение addChatMessage. Буду благодарен за помощь.
Код:
:?:/rd %name%::
SendMessage, 0x50,, 0x4190419,, A
name :=getPlayerNameById(dwId)
addChatMessage("{CC3D3D}ВНИМАНИЕ! {FFFFFF}Запущена проверка регистрационных данных игрока с ником {CC3D3D}" name " ")
sleep 50
Sendinput, {F6}/agetip %name%{Enter}
Sleep, 1111
Sendinput, {F6}/cip2{Enter}
Return
Код:
$~Enter::
if (isInChat() && !isDialogOpen())
Sleep 200
dwAddress := dwSAMP + 0x12D8F8
chatInput := readString(hGTA, dwAddress, 256)
if(RegExMatch(chatInput, "/rd.(.*)", out))
{
    PName := getPlayerNameById(out1)
    addChatMessage("{CC3D3D}ВНИМАНИЕ! {FFFFFF}Запущена проверка регистрационных данных игрока с ником {CC3D3D}" PName ".")
    Sleep, 50
    Sendinput, {F6}/agetip %PName%{Space}
    Sleep, 1111
    Sendinput, {F6}/cip2{Enter}
}
return

В общем, в AHK и прочей фигне не шарю вообще, по этому помогите, кто знает, пожалуйста.
AutoHotKey:
F10::
  sendinput {f6} {enter}
  loop 12
    {
    send {shift down}
    sleep 5
    send {shift up}
    sleep 5
    }
  return
простенький AHK на двойной прыжок, подскажите пожалуйста, можно ли как то сделать активацию на Num 5, вне зависимости от того, Numpad включён или нет. То есть, если Numpad включён/выключен, AHK всё равно работал при нажатии на клавишу Num 5. Заранее спасибо.
Вот.
Код:
sc4C::
{
  sendinput {f6} {enter}
  loop 12
    {
    send {shift down}
    sleep 5
    send {shift up}
    sleep 5
    }
}
  return
 

Revalto

Известный
532
225
Код:
$~Enter::
if (isInChat() && !isDialogOpen())
Sleep 200
dwAddress := dwSAMP + 0x12D8F8
chatInput := readString(hGTA, dwAddress, 256)
if(RegExMatch(chatInput, "/rd.(.*)", out))
{
    PName := getPlayerNameById(out1)
    addChatMessage("{CC3D3D}ВНИМАНИЕ! {FFFFFF}Запущена проверка регистрационных данных игрока с ником {CC3D3D}" PName ".")
    Sleep, 50
    Sendinput, {F6}/agetip %PName%{Space}
    Sleep, 1111
    Sendinput, {F6}/cip2{Enter}
}
return


Вот.
Код:
sc4C::
{
  sendinput {f6} {enter}
  loop 12
    {
    send {shift down}
    sleep 5
    send {shift up}
    sleep 5
    }
}
  return
Зачем использовать
Код:
Sendinput
когда можно использовать
Код:
SendChat(text)
, при том, что у тебя подключен UDF.
Код:
sendinput {f6} {enter}
безсмысленное действие в коде...
Это не критика, а обычная подправка мелочей.
 

cle0

Новичок
11
0
Хочу, чтобы при выборе одного таба был один размер, а при выборе второго таба был другой размер в GUI как добиться такого?
 

Cod

Участник
117
15
Зачем использовать
Код:
Sendinput
когда можно использовать
Код:
SendChat(text)
, при том, что у тебя подключен UDF.
Код:
sendinput {f6} {enter}
безсмысленное действие в коде...
Это не критика, а обычная подправка мелочей.
Я оставил код который просил пользователь, сделав при этом его требования.
Тем более что там стоит space, значит человек хочет проверять, тот ли ник.
Если подключён САМП удф, это не значит, что нужно использовать только его функционал.

Хочу, чтобы при выборе одного таба был один размер, а при выборе второго таба был другой размер в GUI как добиться такого?
Если вы имеете в виду вкладки в табе, то они будут всегда одного размера, этого не изменить.
 

Kbho

Участник
59
4
не робит,пофиксите пожалуйста
HTML:
#Include SAMP.ahk
:?:/pinfo::
Input, id, V, {Enter}{F6}
name1 = getPlayerNameById(id)
lvl = "{ff0000}Уровень:"
lvl1 = getPlayerScoreById(id)
addChatMessage(lvl , "{ff0000}[" , lvl1 , "]")
;addChatMessage("{ff00ff}"(name1)) так просто выводит функцию  getPlayerNameById(id) в чат
 

Phoenixxx_CZAR

Известный
61
31
не робит,пофиксите пожалуйста
HTML:
#Include SAMP.ahk
:?:/pinfo::
Input, id, V, {Enter}{F6}
name1 = getPlayerNameById(id)
lvl = "{ff0000}Уровень:"
lvl1 = getPlayerScoreById(id)
addChatMessage(lvl , "{ff0000}[" , lvl1 , "]")
;addChatMessage("{ff00ff}"(name1)) так просто выводит функцию  getPlayerNameById(id) в чат
Вместо "=" используй ":="
 

Revalto

Известный
532
225
Я оставил код который просил пользователь, сделав при этом его требования.
Тем более что там стоит space, значит человек хочет проверять, тот ли ник.
Если подключён САМП удф, это не значит, что нужно использовать только его функционал.


Если вы имеете в виду вкладки в табе, то они будут всегда одного размера, этого не изменить.
Код:
SendChat("/agetip " PName)
поему не сложно.
И скобки при активации на клавишу не обязательны, не учи людей плохому :D
ORQqXfg.png
 

Cod

Участник
117
15
Код:
SendChat("/agetip " PName)
поему не сложно.
И скобки при активации на клавишу не обязательны, не учи людей плохому :D
ORQqXfg.png
Мне сколько раз повторять? Я не трогал код этого пользователя. Да я мог бы оптимизировать для SendChat, но как ты же сказал "Это не обязательно".
Ставить скобки необязательно везде, но я ставлю, для меня это выглядит лучше. Какому-какому, но точно не плохому.
Попрошу со мной не спорить, оставьте своё мнение при себе, пусть в теме будут вопросы, а не наш оффтоп.