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

mrdeberim4

Новичок
4
0
Кто нибудь знает, как с UDF произвести действие если человек находится в определенном транспорте?

К примеру, я сажусь на мотоцикл и выдает сообщение в чат
/me одел шлем на голову
 

darksoor

Известный
674
353
Кто нибудь знает, как с UDF произвести действие если человек находится в определенном транспорте?

К примеру, я сажусь на мотоцикл и выдает сообщение в чат
/me одел шлем на голову

Есть функция getVehicleModelName(), которая возвращает название машины, в которой ты находишься. Делаешь условие в цикле (пример):
AutoHotKey:
if (getVehicleModelName() == "Faggio")
{
   SendChat("/me сев на мопед, одел шлем на голову.")
}
 
  • Нравится
Реакции: Flokich

Alex_Cmd

Новичок
5
0
Почему код может не работать, подскажите, пожалуйста?
Код:
if (A_IsAdmin = false) {
    Run *RunAs "%A_ScriptFullPath%" ,, UseErrorLevel
}
#NoEnv
#SingleInstance force
save(chatlog) {
    static logschat := A_MyDocuments "\GTA San Andreas User Files\SAMP\ChatLogs"
    static chat := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
    FileCreateDir, % logschat A_MM "-" A_YYYY
    FileAppend, % chatlog, % logschat A_MM "-" A_YYYY "\" A_DD "." A_MM "." A_YYYY ".txt"
    FileDelete, % chat
    return
}

global file_chat := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"

~F2::
SS := !SS
SetTimer, Chat, % (SS ? "50" : "off")
Return

Chat() {
    FileRead, chatlog, % file_chat

    if (RegExMatch(chatlog, "Приветствуем нового игрока нашего сервера\:\s([A-z_]+)\[(\d{1,3})\]", var)) ;var1 - ник, var2 - id
    {
        save(chatlog)
        SendMessage, 0x50,, 0x4190419,, A
        SendInput, {f6}/pm %var2% Доброе время суток, поздравляем с регистрацией на нашем сервере.{enter}
        return
    }
}
 

Flokich

Новичок
9
0
Код косячный. Отыгровка отправляется, когда я сажусь в любой транспорт, помогите исправить

Код:

Код:
n:
c = Freeway
return
:?:/ren::
a = % getVehicleModelName()
while c=Freewey
{
if (a!=getVehicleModelName())
{
a = % getVehicleModelName()
if (a!=Freeway)
SendChat("/me сев на байк, одел шлем на голову")
}
sleep 500
}
return
 
Последнее редактирование:

darksoor

Известный
674
353
Почему код может не работать, подскажите, пожалуйста?
Код:
if (A_IsAdmin = false) {
    Run *RunAs "%A_ScriptFullPath%" ,, UseErrorLevel
}
#NoEnv
#SingleInstance force
save(chatlog) {
    static logschat := A_MyDocuments "\GTA San Andreas User Files\SAMP\ChatLogs"
    static chat := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
    FileCreateDir, % logschat A_MM "-" A_YYYY
    FileAppend, % chatlog, % logschat A_MM "-" A_YYYY "\" A_DD "." A_MM "." A_YYYY ".txt"
    FileDelete, % chat
    return
}

global file_chat := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"

~F2::
SS := !SS
SetTimer, Chat, % (SS ? "50" : "off")
Return

Chat() {
    FileRead, chatlog, % file_chat

    if (RegExMatch(chatlog, "Приветствуем нового игрока нашего сервера\:\s([A-z_]+)\[(\d{1,3})\]", var)) ;var1 - ник, var2 - id
    {
        save(chatlog)
        SendMessage, 0x50,, 0x4190419,, A
        SendInput, {f6}/pm %var2% Доброе время суток, поздравляем с регистрацией на нашем сервере.{enter}
        return
    }
}

AutoHotKey установи в ANSI-32
 

James Hawk

Известный
919
217
Код косячный. Отыгровка отправляется, когда я сажусь в любой транспорт, помогите исправить

Код:

Код:
n:
c = Freeway
return
:?:/ren::
a = % getVehicleModelName()
while c=Freewey
{
if (a!=getVehicleModelName())
{
a = % getVehicleModelName()
if (a!=Freeway)
SendChat("/me сев на байк, одел шлем на голову")
}
sleep 500
}
return
Для начала
c = Freeway
...
while c=Freewey

Кто научил проверять равенство на =? Проверка равенства - ==
 

Karbun

Участник
112
3
Можете ответить почему кнопка Enter нажимается, но сам текст не вводится в игре?
Код:
!2::
x := "0"
abc :=  "Тут текст"
Loop, 20
{
Sleep, 500
Var := X++
ControlSend,, {vk0D}%abc% %x%,  Game Name
Sleep, 1000
ControlSend,, {vk0D},  Game Name
Sleep, 10000
}
!3::Reload
 

darksoor

Известный
674
353
Можете ответить почему кнопка Enter нажимается, но сам текст не вводится в игре?
Код:
!2::
x := "0"
abc :=  "Тут текст"
Loop, 20
{
Sleep, 500
Var := X++
ControlSend,, {vk0D}%abc% %x%,  Game Name
Sleep, 1000
ControlSend,, {vk0D},  Game Name
Sleep, 10000
}
!3::Reload

А ты уверен, что ты правильно код написал? http://ahk-wiki.ru/controlsend

SendInput, {f6}test{enter} - для ввода текста в чат
 

James Hawk

Известный
919
217

darksoor

Известный
674
353
Ну вообще, может он хотел сделать отправку сообщения в свернутое окно, а ты ему обязательно тыкаешь сендинпутом

А ты откуда знаешь, что ему нужно было?
Если человек захочет, то он разберется.

Да и надо начинать изучение с литературы, а не х.. пойми что лепить.
 

Karbun

Участник
112
3
Ну вообще, может он хотел сделать отправку сообщения в свернутое окно, а ты ему обязательно тыкаешь сендинпутом
Именно это и хотел. SendInput не подходит.

А ты откуда знаешь, что ему нужно было?
Если человек захочет, то он разберется.

Да и надо начинать изучение с литературы, а не х.. пойми что лепить.
Да я бы рад разобраться, я проверял этот код на блокноте, текст выводится, всё хорошо, но в игре нажимается только клавиша Enter, а сам текст как-будто не существует.
P.S. Пытаюсь сделать для свернутого окна.
 

James Hawk

Известный
919
217
Именно это и хотел. SendInput не подходит.


Да я бы рад разобраться, я проверял этот код на блокноте, текст выводится, всё хорошо, но в игре нажимается только клавиша Enter, а сам текст как-будто не существует.
P.S. Пытаюсь сделать для свернутого окна.
Пример тебе
Код:
ControlSend, ahk_parent, {f6}/house{enter}, ahk_exe gta_sa.exe