Помогите новичку :)

VuTuV

Участник
Автор темы
51
1
upload_2019-3-30_14-6-18.png

Что делаю не так, АХК должен видеть в чате "Вы не работник медслужбы", и делать что я скажу.
 

BASS_DEVSOFTWARE

Известный 🇺🇦
Друг
264
568
Я в шоке.
@VuTuV - иди в справку, зачем мозги людям выносишь?
Если ты не собираешься учится, а просто "сделайте и всё" - иди в Работа и Услуги, а если не "хо" - прыгни на пару дней в справку, будь добр.
 
  • Нравится
Реакции: James Hawk и darksoor

darksoor

Известный
674
353
AutoHotKey:
if (A_IsAdmin = false)
{
   Run *RunAs "%A_ScriptFullPath%" ,, UseErrorLevel
}
#IfWinActive GTA:SA:MP
#NoEnv
#SingleInstance force
#UseHook on
chatlog := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
chatline := getFileLinesCount(chatlog)
:?:/medhelp::
SendMessage, 0x50,, 0x4190419,, A
Sleep, 100
SendInput, {F6}Здравствуйте, я Ваш лечущий врач "Ричард Эскобар", сейчас я буду Вас лечить.{Enter}
Sleep, 1500
SendInput, {F6}Сейчас я Вам выдам лекарство от головы, подождите немного, сейчас достану таблетку.{Enter}
Sleep, 1500
SendInput, {F6}/do На плече у Ричарда весит сумка, в сумке таблетки от головы.{Enter}
Sleep, 1500
SendInput, {F6}/me открывает сумку, достаёт от-туда таблетку от головы, закрывает сумку.{Enter}
Sleep, 1500
SendInput, {F6}/me передал лекарство человеку напротив, улыбается тому, что помог ещё одному человеку.{Enter}
SendInput, {F6}/medhelp{Space}
return
while true
{
    if !isGameRunning()
        continue
    Loop, Read, % chatlog
    {
        if (A_Index <= chatline)
            continue
        str := A_LoopReadLine
        if RegExMatch(A_LoopReadLine, "^Игрок не лежит в больнице")
        {
            SendMessage, 0x50,, 0x4190419,, A
            SendInput, {F6}Уважаемый(-ая) пациент(-ка). Я не могу выписать препарат для Вас, займите койку.{Enter}
            Sleep, 1500
            SendInput, {F6}/n Для того что-бы занять койку, подойдите к ней, и пропишите [ /med ].{Enter}
            Sleep, 1500
            SendInput, {F6}/n Если вы не займёте койку. Мне система не даст вылечить Вас.{Enter}
        }
        if search(str, "У пациента нет с собой столько денег")
        {
            SendMessage, 0x50,, 0x4190419,, A
            Sendinput, {f6}/n Я не могу Вас вылечить, у Вас не хватает денег на лечение.{Enter}
        }
        if search(str, "Вы провели курс платного лечения у пациента [\w+_\w+]")
        {
            SendMessage, 0x50,, 0x4190419,, A
            SendInput, {F6}Удачного Вам дня, больше не болейте.{Enter}
        }
    }
    chatline := getFileLinesCount(chatlog)
    sleep 50
}
getFileLinesCount(filename)
{
    IfNotExist % filename
        return -1
    Loop, Read, % filename
        result := A_Index
    return result
}
isGameRunning()
{
    for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
        if process.Name == "gta_sa.exe"
            return true
    return false
}
sendkeys(string)
{
    sendmessage, 0x50,, 0x419,, A
    sendinput % string
}
search(haystack, needle) {
    return RegExMatch(haystack, "^\[\d{2}:\d{2}:\d{2}\] " needle)
}
В чат пишет Вы провели курс платного лечения у пациента Ulan_Gro, АХК не срабатывает.

Отредачил.

Не срабатывает АХК. Хотя и в чате появляется все.

Ты посмотри, что я тебе написал, потом сравни со своим кодом. Боже...б
 

asdzxcjqwe

¯\_(ツ)_/¯
Друг
621
705
SAMP UDF подключать не хочу.
неоправданно, ты только всё усложняешь и делаешь свой скрипт менее функциональным

AutoHotKey:
if (A_IsAdmin = false)
{
   Run *RunAs "%A_ScriptFullPath%" ,, UseErrorLevel
}
#IfWinActive GTA:SA:MP
#NoEnv
#SingleInstance force
#UseHook on
chatlog := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
chatline := getFileLinesCount(chatlog)
:?:/medhelp::
SendMessage, 0x50,, 0x4190419,, A
Sleep, 100
SendInput, {F6}Здравствуйте, я Ваш лечущий врач "Ричард Эскобар", сейчас я буду Вас лечить.{Enter}
Sleep, 1500
SendInput, {F6}Сейчас я Вам выдам лекарство от головы, подождите немного, сейчас достану таблетку.{Enter}
Sleep, 1500
SendInput, {F6}/do На плече у Ричарда весит сумка, в сумке таблетки от головы.{Enter}
Sleep, 1500
SendInput, {F6}/me открывает сумку, достаёт от-туда таблетку от головы, закрывает сумку.{Enter}
Sleep, 1500
SendInput, {F6}/me передал лекарство человеку напротив, улыбается тому, что помог ещё одному человеку.{Enter}
SendInput, {F6}/medhelp{Space}
{
Loop, Read, % chatlog
    {
        str := A_LoopReadLine
        if RegExMatch(str, "Игрок не лежит в больнице")
        {
            SendMessage, 0x50,, 0x4190419,, A
            SendInput, {F6}Уважаемый(-ая) пациент(-ка). Я не могу выписать препарат для Вас, займите койку.{Enter}
            Sleep, 1500
            SendInput, {F6}/n Для того что-бы занять койку, подойдите к ней, и пропишите [ /med ].{Enter}
            Sleep, 1500
            SendInput, {F6}/n Если вы не займёте койку. Мне система не даст вылечить Вас.{Enter}
        }
        if search(str, "У пациента нет с собой столько денег")
        {
            SendMessage, 0x50,, 0x4190419,, A
            Sendinput, {f6}/n Я не могу Вас вылечить, у Вас не хватает денег на лечение.{Enter}
        }
        if search(str, "Вы провели курс платного лечения у пациента [\w+_\w+]")
        {
            SendMessage, 0x50,, 0x4190419,, A
            SendInput, {F6}Удачного Вам дня, больше не болейте.{Enter}
        }
    chatline := getFileLinesCount(chatlog)
    sleep 50
    }
}
getFileLinesCount(filename)
{
    IfNotExist % filename
        return -1
    Loop, Read, % filename
        result := A_Index
    return result
}
isGameRunning()
{
    for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
        if process.Name == "gta_sa.exe"
            return true
    return false
}
sendkeys(string)
{
    sendmessage, 0x50,, 0x419,, A
    sendinput % string
}
search(haystack, needle)
{
    return RegExMatch(haystack, "^\[\d{2}:\d{2}:\d{2}\] " needle)
}
return
В чат пишет Вы провели курс платного лечения у пациента Ulan_Gro, АХК не срабатывает.
Ясное дело не срабатывает, ты всё переделал, в итоге всё сломал. Как видно, ты не шаришь пока что даже в простых составляющих языка, тебе нужно либо идти познать введение в какой-нибудь язык, либо обратиться в раздел Работа и услуги и заказать себе скрипт с нужным функционалом с исходником и на нужном языке. После приобретения сможешь смотреть и переделывать исходник как тебе угодно. Еще вариант это разбирать чужие скрипты, но без основ ты просто таскаешь туда-сюда куски кода, не понимая что за что отвечает.

тебе это проще будет делать на луа. в ахк всё слишком замудрено, особенно с командами, только багаться часто будешь и беситься с этого
 

VuTuV

Участник
Автор темы
51
1
неоправданно, ты только всё усложняешь и делаешь свой скрипт менее функциональным


Ясное дело не срабатывает, ты всё переделал, в итоге всё сломал. Как видно, ты не шаришь пока что даже в простых составляющих языка, тебе нужно либо идти познать введение в какой-нибудь язык, либо обратиться в раздел Работа и услуги и заказать себе скрипт с нужным функционалом с исходником и на нужном языке. После приобретения сможешь смотреть и переделывать исходник как тебе угодно. Еще вариант это разбирать чужие скрипты, но без основ ты просто таскаешь туда-сюда куски кода, не понимая что за что отвечает.

тебе это проще будет делать на луа. в ахк всё слишком замудрено, особенно с командами, только багаться часто будешь и беситься с этого
А как делать на Луа?