1 (изменено: GrayFox1, 2016-05-03 23:53:11)

Тема: Перезагрузка игры если найдена нужная строка.

Вообщем пытался сделать скрипт, который перезаходит в игру если в чатлоге появляется строка с текстом "Время на авторизацию ограничено". Все работает прекрасно, но скрипт перезагружает игру всего лишь 1 раз, а нужно проверять чатлог постоянно, т.е перезагрузка должна происходить всегда, когда в чатлоге есть эта фраза. Пытался всячески модифицировать код, но безуспешно.

relog := "Время на авторизацию ограничено"
FileDelete, %a_mydocuments%\gta san andreas user files\samp\chatlog.txt
fileappend,, %a_mydocuments%\gta san andreas user files\samp\chatlog.txt
 
Gui, Add, Edit, x76 y47 w130 h20 vServerIP , IP
Gui, Add, Button, x86 y77 w110 h20 gRun , Подключиться
Gui, Add, Button, x86 y107 w110 h20 gSave , Сохранить
Gui, Add, Edit, x76 y17 w130 h20 vServerName , Название сервера
Gui, Show, x202 y106 h137 w301, BlockAdmin
 
IniRead, GuiServerIP, save.ini, Main, ServerIP
if (GuiServerIP != "") and (GuiServerIP != "ERROR")
GuiControl, 1:, ServerIP, % GuiServerIP
 
iniRead, GuiServerName, save.ini, Main, ServerName
if (GuiServerName != "") and (GuiServerName != "ERROR")
GuiControl, 1:, ServerName, % GuiServerName
return
 
 
Save:
Gui, Submit, NoHide
IniWrite, %ServerName%, save.ini, Main, ServerName
IniWrite, %ServerIP%, save.ini, Main, ServerIP
MsgBox, 262208, Опаньки.., Настройки сохранены в файл save.ini
Reload
return
 
Run:
GuiControlGet, ServerIP
Run, samp %ServerIP%
WinWaitActive, SA-MP URL
Send, {left}{enter}
return
 
!1::
Loop
{
    fileread, sms, %a_mydocuments%\gta san andreas user files\samp\chatlog.txt
    if sms contains %relog%
    {
        Process, Close, gta_sa.exe
        sleep, 2000
        GuiControlGet, ServerIP
        Run, samp %ServerIP%
        WinWaitActive, SA-MP URL
        Send, {left}{enter}
        FileDelete, %a_mydocuments%\gta san andreas user files\samp\chatlog.txt
        fileappend,, %a_mydocuments%\gta san andreas user files\samp\chatlog.txt
    }
   
    sleep, 300
}


Post's attachments

BlockAdmin.ahk 2.04 kb, 2 downloads since 2016-05-03 

You don't have the permssions to download the attachments of this post.

2 (изменено: Turambar, 2016-05-04 02:18:38)

Re: Перезагрузка игры если найдена нужная строка.

Вы запускаете игру, нажимаете Alt+1 и при появлении в файле указанной фразы игра перезапускается. И далее по кругу: перезапуск-ожидание фразы-перезапуск. Так? Если так, то ваш код (с форума) у меня работает нормально.
За исключением вот этого элемента:

Run, samp %ServerIP%

вместо положенного

Run, samp://%ServerIP%

И да, создавать пустой файл через FileAppend вовсе необязательно. Клиент игры это сделает за вас.