1 (изменено: Anton_8237, 2019-08-22 00:12:45)

Тема: AHK: Выполнение действий при определённых условиях.

Нужно чтобы при появлении в чате "Здравствуйте, VIP игрок!" происходил зацикленный выход в главное меню игры, а при появлении "Server closed the connection." скрипт начинал проверку чата по новой и если снова появится "Здравствуйте, VIP игрок!" то он опять начал зацикленный выход в гавное меню, и т.д. Желательно исправленный готовый код, т.к я пока не разобрался, что и как.

#ifWinActived GTARP CRMP
pause
way = C:\Users\Anton\Documents\GTA San Andreas User Files\SAMP\chatlog.txt
FileDelete %way%
Loop 999999999 
{
FileRead, file, %way%
{ 
IfInString, file, Здравствуйте, VIP игрок!
{
loop 9999999   
{
  SendInput {Escape down}
sleep 1
  Send {Escape up}
sleep 1000
SendInput {Escape down}
sleep 1
  Send {Escape up}
sleep 5000
FileRead, file, %way%
}
}
}
{
IfInString, file, Server closed the connection.
{
[Тут нужны строчки которые перезапускали бы скрипт предварительно удалиф файл логов чата]
}
}
}
F10:: pause

2 (изменено: nathantaft98, 2019-08-22 22:44:40)

Re: AHK: Выполнение действий при определённых условиях.

chatlog = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
Loop 
{ 
log := {str:"",find:0,num:0}    ,    log.str := [] ; AutoInfo
Loop, read, %chatlog%
log.str.Insert(A_LoopReadLine)    ,log.num := A_Index		
loop 500
if RegExMatch(log.str[log.num + 1 - A_Index],"Здравствуйте, VIP игрок!") and (log.find:=log.num + 1 - A_Index)
{
SendInput, {Escape down}
sleep 5
SendInput, {Escape up}
sleep 1000
SendInput, {Escape down}
sleep 5
SendInput, {Escape up}
FormatTime, TimeString, R, yyyy-MM-dd
Loop, Read, %chatlog%
if(RegExMatch(A_LoopReadLine, "\[(.*)\:(.*)\:(.*)\] (.*)", Match))
FileAppend, [%Match1%:%Match2%:%Match3%] %Match4%`n, %A_MyDocuments%\GTA San Andreas User Files\SAMP\archiv\%chatlogs%\%TimeString% [%save%].txt
FileDelete, %chatlog%
return
}
}

3

Re: AHK: Выполнение действий при определённых условиях.

Спасибо большое, я сегодня решил поискать способы пока мне не ответят и подумал сделать что-то в этом роде, чтобы если высветится "Здравствуйте, VIP игрок!" то как и в прошлом скрипте происходил постоянный выход в меню а если вдруг появляется строчка "Server closed the connection." то происходил бы выход из игры а потом благодаря наведению курсора и нажатию на определённой части экрана происходил вход в игру. Вход в игру такой странный потому что при запуске чер лаунчер SAMP не получается зайти на сервер, а отследить по какому пути запускается игра и какие файлы запускаются с ней по нажатию кнопки не знаю как.

#ifWinActived GTARP CRMP
pause
way = C:\Users\Anton\Documents\GTA San Andreas User Files\SAMP\chatlog.txt
FileDelete %way%
Loop 999999999
{
If (IfInString, file, Здравствуйте, VIP игрок!)
{
loop 9999999   
{
  SendInput {Escape down}
sleep 1
  Send {Escape up}
sleep 1000
SendInput {Escape down}
sleep 1
  Send {Escape up}
sleep 5000
FileRead, file, %way%
}
}
else if (IfInString, file, Server closed the connection.)
{
Sleep 1500 
SendInput {F6}/q{Enter}  
FileDelete %way%
sleep 7000 
DllCall("SetCursorPos", int, 800, int, 264)
 Sendinput {LButton Down}
sleep 1
 Sendinput {LButton Up}
}
return
F10:: pause

nathantaft98