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

Patrickkk

Участник
162
19
Как сделать так что при открытие файла высвечивало меню, где будут строки и в одну можно писать клавишу, по которой будет писаться определенный текст, и текст тоже внизу можно настроить, не советуйте биндеры, программа не для сампа, буду благодарен
 

Morello

Известный
33
0
Я вот нашел скрипт, где отыгрывается по РП выдача выговора (DRP: /fwarn id причина), вот к примеру:
Ввожу:
/fwarn 338 Устав 2.1
Далее, команда НЕ срабатывает на DRP(никому выговор не дается), А начинается там РП отыгровка
И уже потом после РП отыгровки - выдается выговор автоматически, с уже указанным выше ID'ом и причиной.
А если параметры "id" и "причина" не заполнены, всё равно команда блокируется на DRP, а тебе локально пишет, например зелёным: Введите /fwarn id причина.
Как сделать такую фичу?
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
Я вот нашел скрипт, где отыгрывается по РП выдача выговора (DRP: /fwarn id причина), вот к примеру:
Ввожу:
/fwarn 338 Устав 2.1
Далее, команда НЕ срабатывает на DRP(никому выговор не дается), А начинается там РП отыгровка
И уже потом после РП отыгровки - выдается выговор автоматически, с уже указанным выше ID'ом и причиной.
А если параметры "id" и "причина" не заполнены, всё равно команда блокируется на DRP, а тебе локально пишет, например зелёным: Введите /fwarn id причина.
Как сделать такую фичу?
Использовать командный процессор.

Как сделать так что при открытие файла высвечивало меню, где будут строки и в одну можно писать клавишу, по которой будет писаться определенный текст, и текст тоже внизу можно настроить, не советуйте биндеры, программа не для сампа, буду благодарен
Точнее мысль выражайте. Что за файл еще?
 

Patrickkk

Участник
162
19
Я вот нашел скрипт, где отыгрывается по РП выдача выговора (DRP: /fwarn id причина), вот к примеру:
Ввожу:
/fwarn 338 Устав 2.1
Далее, команда НЕ срабатывает на DRP(никому выговор не дается), А начинается там РП отыгровка
И уже потом после РП отыгровки - выдается выговор автоматически, с уже указанным выше ID'ом и причиной.
А если параметры "id" и "причина" не заполнены, всё равно команда блокируется на DRP, а тебе локально пишет, например зелёным: Введите /fwarn id причина.
Как сделать такую фичу?
Вот тебе похожий скрипт, думаю переделать не составит труда.
C++:
:?:/rarrest::
SendInput, /rarrest{space}
Input, id, V, {space}
Input, id1, V, {enter}
Sleep 500 ;
SendInput, {F6}Вы имеете право хранить молчание.{enter}
Sleep 2000 ;
SendInput, {F6}Всё, что вы скажете, может и будет использовано против вас в суде.{enter}
Sleep 2000 ;
SendInput, {F6}Ваш адвокат может присутствовать при допросе.{enter}
Sleep 2000 ;
SendInput, {F6}Если вы не можете оплатить услуги адвоката, он будет предоставлен вам государством.{enter}
Sleep 2000 ;
SendInput, {F6}/me включил бортовой компьютер{enter}
Sleep 2000 ;
SendInput, {F6}/me заполняет протокол на преступника{enter}
Sleep 1000 ;
SendInput, {F6}/arrest %id%{enter}
Sleep 1000 ;
SendInput, {F6}/r Подозреваемый задержан и доставлен в участок.{enter}
Sleep 2000 ;
SendInput, {F6}/r Я закрываю дело №%id%. Напарник: %id1%.{enter}
Return
 

Patrickkk

Участник
162
19
Код из моего старого скрипта. Думаю переделать под себя, не сложно. Если что, начни, мы поможем.
AutoHotKey:
if (isDialogOpen() && RegExMatch(getDialogText(), "Введите свой пароль")) {
    Sleep 2018
    SendInput, %pass%{enter}
    addChatMessageEx(0x4682B4, "[Auto Login] {FFFFFF}Пароль введен! [By Vlad Horii]")
}

Как считывать текст с диалога(Ответ)
только что проверил, не работает, пароль с иника беру, в чём проблема может быть, может диалог не хочет нормально читать?
 

Patrickkk

Участник
162
19
Какой сервер? Это для аризоны ес шо. Если другой какой-то сервер, меняй тут текст
Код:
if (isDialogOpen() && RegExMatch(getDialogText(), "Любой текст с диалога")) {
Или у тебя проблема именно с чтением пароля с .ini файла?
менял там текст, проблемой с чтением вроде нет. ( Читаю так: iniread, pass, config.ini, Setup, Pass и потом SendInput, %pass%{enter} ), не знаю почему не работает
 

Morello

Известный
33
0
Вот тебе похожий скрипт, думаю переделать не составит труда.
C++:
:?:/rarrest::
SendInput, /rarrest{space}
Input, id, V, {space}
Input, id1, V, {enter}
Sleep 500 ;
SendInput, {F6}Вы имеете право хранить молчание.{enter}
Sleep 2000 ;
SendInput, {F6}Всё, что вы скажете, может и будет использовано против вас в суде.{enter}
Sleep 2000 ;
SendInput, {F6}Ваш адвокат может присутствовать при допросе.{enter}
Sleep 2000 ;
SendInput, {F6}Если вы не можете оплатить услуги адвоката, он будет предоставлен вам государством.{enter}
Sleep 2000 ;
SendInput, {F6}/me включил бортовой компьютер{enter}
Sleep 2000 ;
SendInput, {F6}/me заполняет протокол на преступника{enter}
Sleep 1000 ;
SendInput, {F6}/arrest %id%{enter}
Sleep 1000 ;
SendInput, {F6}/r Подозреваемый задержан и доставлен в участок.{enter}
Sleep 2000 ;
SendInput, {F6}/r Я закрываю дело №%id%. Напарник: %id1%.{enter}
Return
А как работает Input, id, V, {space} Input, id1, V, {enter} ?
 

cle0

Новичок
11
0
Я пишу автобайкер для DiamondRP и у меня возникла проблема с написанием некоторых функций.
Например:
Мне нужно, чтобы при активации лабела была команда начала на кнопку "1". При нажатии шла первая фаза отыгровки
Код:
    addChatMessage("{00FFFF}Чтобы начать ограбление - жми 1.")
    SendChat("/s Стой мужик! Останови фуру! Или прощайся с грузом!")
    Sleep 2000
    SendChat("/n Fraps on")
    Sleep, 500

Потом вторая фаза, где
Код:
addChatMessage("{00FFFF}Если остановился - жми 1. | Если не остановился, даже после того как были простреленны колёса - жми 2. | Если дальнобой заплатил - жми 3.")


if 1
SendChat("Слышь, проезд платный, гони 5.000$. Либо прощайся с грузом.")

if 2
        SendChat("/s Ты сделал свой выбор!")
        Sleep, 500
    addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт и можешь уничтожить фуру.")

if 3
        SendChat("Всё, проваливай, захочешь кому-то сообщить, что видел, мы тебя найдём.")
        Sleep, 500
    addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт.")


В итоге у меня вышло так:
Код:
Label9:
addChatMessage("{00FFFF}Чтобы начать ограбление - жми 1.")
    while (!GetKeyState("1", "P"))
    if (Result = "1")
    SendChat("/s Стой мужик! Останови фуру! Или прощайся с грузом!")
    Sleep 2000
    SendChat("/n Fraps on")
    Sleep, 500
    addChatMessage("{00FFFF}Если остановился - жми 1. | Если не остановился, даже после того как были простреленны колёса - жми 2. | Если дальнобой заплатил - жми 3.")
    while (!GetKeyState("1", "P") && !GetKeyState("2", "P") && !GetKeyState("3", "P"))
    continue
    if (GetKeyState("1", "P"))
        SendChat("Слышь, проезд платный, гони 5.000$. Либо прощайся с грузом.")
    else if (GetKeyState("2", "P"))
        SendChat("/s Ты сделал свой выбор!")
        Sleep, 500
    addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт и можешь уничтожить фуру.")
    else if (GetKeyState("3", "P"))
        SendChat("Всё, проваливай, захочешь кому-то сообщить, что видел, мы тебя найдём.")
        Sleep, 500
    addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт.")
return

Я где-то ступил и хз где, я в ступоре, если кто-то может помочь дописать или нужна доп.инфа, говорите.
 

cle0

Новичок
11
0
Я пишу автобайкер для DiamondRP и у меня возникла проблема с написанием некоторых функций.
Например:
Мне нужно, чтобы при активации лабела была команда начала на кнопку "1". При нажатии шла первая фаза отыгровки
Код:
    addChatMessage("{00FFFF}Чтобы начать ограбление - жми 1.")
    SendChat("/s Стой мужик! Останови фуру! Или прощайся с грузом!")
    Sleep 2000
    SendChat("/n Fraps on")
    Sleep, 500

Потом вторая фаза, где
Код:
addChatMessage("{00FFFF}Если остановился - жми 1. | Если не остановился, даже после того как были простреленны колёса - жми 2. | Если дальнобой заплатил - жми 3.")


if 1
SendChat("Слышь, проезд платный, гони 5.000$. Либо прощайся с грузом.")

if 2
        SendChat("/s Ты сделал свой выбор!")
        Sleep, 500
    addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт и можешь уничтожить фуру.")

if 3
        SendChat("Всё, проваливай, захочешь кому-то сообщить, что видел, мы тебя найдём.")
        Sleep, 500
    addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт.")


В итоге у меня вышло так:
Код:
Label9:
addChatMessage("{00FFFF}Чтобы начать ограбление - жми 1.")
    while (!GetKeyState("1", "P"))
    if (Result = "1")
    SendChat("/s Стой мужик! Останови фуру! Или прощайся с грузом!")
    Sleep 2000
    SendChat("/n Fraps on")
    Sleep, 500
    addChatMessage("{00FFFF}Если остановился - жми 1. | Если не остановился, даже после того как были простреленны колёса - жми 2. | Если дальнобой заплатил - жми 3.")
    while (!GetKeyState("1", "P") && !GetKeyState("2", "P") && !GetKeyState("3", "P"))
    continue
    if (GetKeyState("1", "P"))
        SendChat("Слышь, проезд платный, гони 5.000$. Либо прощайся с грузом.")
    else if (GetKeyState("2", "P"))
        SendChat("/s Ты сделал свой выбор!")
        Sleep, 500
    addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт и можешь уничтожить фуру.")
    else if (GetKeyState("3", "P"))
        SendChat("Всё, проваливай, захочешь кому-то сообщить, что видел, мы тебя найдём.")
        Sleep, 500
    addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт.")
return

Я где-то ступил и хз где, я в ступоре, если кто-то может помочь дописать или нужна доп.инфа, говорите.
 

cle0

Новичок
11
0
Отвечал уже, не раз..
click
У меня просто вышло так: и при тесте команды от 1 2 3 не идут.

Код:
Label9:
addChatMessage("{00FFFF}Чтобы начать ограбление - жми S.")
loop
{
Input , OutputVar, L1 V, {S}{1}{2}{3}
    if (ErrorLevel = "EndKey:S") or (ErrorLevel = "EndKey:1") or (ErrorLevel = "EndKey:2") or (ErrorLevel = "EndKey:3")
    break
}
if ErrorLevel = EndKey:S
{
SendChat("/s Стой мужик! Останови фуру! Или прощайся с грузом!")
Sleep 2000
SendChat("/n Fraps on")
Sleep 500
addChatMessage("{00FFFF}Если остановился - жми 1. | Если не остановился, даже после того как были простреленны колёса - жми 2. | Если дальнобой заплатил - жми 3.")
}
else
if ErrorLevel = EndKey:1
{
SendChat("Слышь, проезд платный, гони 5.000$. Либо прощайся с грузом.")
}
else
if ErrorLevel = EndKey:2
{
SendChat("/s Ты сделал свой выбор!")
Sleep 500
addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт и можешь уничтожить фуру.")
}
else
if ErrorLevel = EndKey:3
{
SendChat("Всё, проваливай, захочешь кому-то сообщить, что видел, мы тебя найдём.")
Sleep 500
addChatMessage("{00FFFF}Жми на F3, чтобы перезагрузить скрипт.")
}
return