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

Dawidos

Активный
153
29
Как сделать так,что бы ахк чекал файл chatlog.txt и при нахождение нужной строчки выводил в чат команду
Пример: Чел написал "Мусора пидоры",я нажимаю NUM1 и в чат ведется команда /su %ids% 17(оск)
ids = айди человека который это написал.
прошу помочь с кодом,желательно расписать что да как,так как в АХК скриптинге недавно.
Если возможно без чекания чат лога,то тоже пойдет.
 

Dawidos

Активный
153
29
Последнее редактирование модератором:

Vlad Horii

Известный
Проверенный
310
171
Как сделать так,что бы ахк чекал файл chatlog.txt и при нахождение нужной строчки выводил в чат команду
Пример: Чел написал "Мусора пидоры",я нажимаю NUM1 и в чат ведется команда /su %ids% 17(оск)
ids = айди человека который это написал.
прошу помочь с кодом,желательно расписать что да как,так как в АХК скриптинге недавно.
Если возможно без чекания чат лога,то тоже пойдет.
AutoHotKey:
#NoEnv
#include samp-udf.ahk

while(true)
{
    sleep 10
  
    if(RegExMatch(getChatLineEx(), "(\w+) сказал: Мусора пидоры",out))
    {
        id := getPlayerIdByName(out1)
        sendChat("/su "id " оск")
        sleep 500
    }
  
}
 
  • Нравится
Реакции: Dawidos

Flashdrag

Новичок
4
0
Уважаемые кодеры, поправте пожалуйста.

Код:
~RButton & 3::
KeyWait, 3
KeyWait, 3, D T0.3
if (ErrorLevel)
    {  
id := getIdByPed(getTargetPed())
if id > -1
        sleep 100
        SendInput,{F6}/recept %id% {space}        ;Не всегда определяет ИД
        sleep, 1200
        sendChat("/me снял мед.сумку с плеча и достал бланки на оформление лекарств")
        Sleep 1200  
        sendChat("/me записал в бланки данные о лекарствах и пациенте и поставил печать")
        return
    }
else
    {
id := getIdByPed(getTargetPed())
if id > -1
        SendChat("/recept " id " " 5) ; Тут все нормально
        return
    }
return

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

Flashdrag

Новичок
4
0
AutoHotKey:
~RButton & 3::
id := getIdByPed(getTargetPed())
if (id != -1)
{
    sleep 100
    SendInput,{F6}/recept %id% {space}
    sleep, 1200
    sendChat("/me снял мед.сумку с плеча и достал бланки на оформление лекарств")
    Sleep 1200
    sendChat("/me записал в бланки данные о лекарствах и пациенте и поставил печать")
}
else if (id == -1)
    addChatMessage("Ошибка при получении id!")
return
Извиняюсь, я не уточнил.
Код:
~RButton & 3::
KeyWait, 3
KeyWait, 3, D T0.3
if (ErrorLevel)
    {
id := getIdByPed(getTargetPed())
if id > -1
        sleep 100
        SendInput,{F6}/recept %id% {space}        ;Одно нажатие кнопки "3"
        sleep, 1200
        sendChat("/me снял мед.сумку с плеча и достал бланки на оформление лекарств")
        Sleep 1200
        sendChat("/me записал в бланки данные о лекарствах и пациенте и поставил печать")
        return
    }
else
    {
id := getIdByPed(getTargetPed())
if id > -1
        SendChat("/recept " id " " 5) ;Два раза нажата кнопка "3"
        return
    }
return
Мне нужно задействовать этот код при одиночном нажатии кнопки "3" и двойном нажатии кнопки "3". В первом варианте происходит рп-отыгровка в вводиться команда "/recept %id%", а в другом варианте вводиться только команда "SendChat("/recept " id " " 5)". Все происходит как задумано, только в первом варианте (при одниночном нажатии) не всегда получает id, а все остальное происходит.
 

Marker403

Новичок
10
0
AutoHotKey:
#NoEnv
#include samp-udf.ahk

while(true)
{
    sleep 10
  
    if(RegExMatch(getChatLineEx(), "Пациент согласился на лечение"))
    {
        sendChat("Удачи вам, не болейте")
        sleep 500
    }
  
}
Спасибо большое

if (RegExMatch(getChatLineEx(), "Пациент согласился на лечение")) ошибку в этой строке выдаёт
 
Последнее редактирование модератором:

#Rin

Известный
Всефорумный модератор
1,214
1,036
Извиняюсь, я не уточнил.
Код:
~RButton & 3::
KeyWait, 3
KeyWait, 3, D T0.3
if (ErrorLevel)
    {
id := getIdByPed(getTargetPed())
if id > -1
        sleep 100
        SendInput,{F6}/recept %id% {space}        ;Одно нажатие кнопки "3"
        sleep, 1200
        sendChat("/me снял мед.сумку с плеча и достал бланки на оформление лекарств")
        Sleep 1200
        sendChat("/me записал в бланки данные о лекарствах и пациенте и поставил печать")
        return
    }
else
    {
id := getIdByPed(getTargetPed())
if id > -1
        SendChat("/recept " id " " 5) ;Два раза нажата кнопка "3"
        return
    }
return
Мне нужно задействовать этот код при одиночном нажатии кнопки "3" и двойном нажатии кнопки "3". В первом варианте происходит рп-отыгровка в вводиться команда "/recept %id%", а в другом варианте вводиться только команда "SendChat("/recept " id " " 5)". Все происходит как задумано, только в первом варианте (при одниночном нажатии) не всегда получает id, а все остальное происходит.
Ты дважды жмешь, но при этом отпускаешь мышь. Нужно получить таргерт в самом начале, без ожидания 2-го нажатия.
 

SmoykeJ

Известный
6
0
Добрый день. Такое дело.
Как сделать чтобы после того как я напишу что-то в /r или /f он выдавал отыгровку.

И если можно, то как сделать чтобы при наводе на игрока и нажатии кнопки скажем (ПКМ+R) вылазило окно где выбираешь функции
Например
ПКМ+R
И выбрать "Вылечить"
Отыгровка
/medhelp id 150
 

dima232_pro11

Новичок
61
0
Вот пример
/me Взглянул на часы с гравировкой %текст%
/do do Время на часах | 00:00:00 (точное время)
 

Alfinity

Известный
94
52
AutoHotKey:
/do Время на часах | %A_Hour%:%A_Min%:%A_Sec%
 
Последнее редактирование модератором:

EazyBoost

Известный
207
24
Если тебе на АХК, то вот
AutoHotKey:
F1::
Sendinput {F6}/me Отогнув рукав, посмотрел на часы марки "Xuynya" {Enter}
Sleep 300
Sendinput {F6}/do Время на часах | %A_Hour%:%A_Min%:%A_Sec%.{Enter}
Sleep 300
Sendinput {F6}/time{Enter}
 
Последнее редактирование модератором:

AnWu

Guardian of Order
Всефорумный модератор
4,690
5,190
Поиск -> Perfect Binder -> Использовать <time> :)