1

Тема: SAMP: AHK Помогите с чтением чатлога

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

Loop , Read, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if(regexmatch(A_LoopReadLine, "Ограбление Ammo LS"))
Sendchat("1")
FileMove, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt, %A_MyDocuments%\GTA San Andreas User Files\SAMP\архивчик\chatlog.txt
FileDelete, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
FileAppend, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt

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

2 (изменено: Drygok, 2017-06-07 00:12:30)

Re: SAMP: AHK Помогите с чтением чатлога

Вообще, я бы сделал вот так.

chatlog = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
kek: 
Loop, Read, %chatlog% 
{ 
IfInString, A_LoopReadLine, Ограбление Ammo LS
{ 
goto cmd
} 
} 
goto, kek 
return

cmd: 
{
Sendchat("1")
FileMove, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt, %A_MyDocuments%\GTA San Andreas User Files\SAMP\архивчик\chatlog.txt
FileDelete, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
FileAppend, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
goto, kek 
}
return 

А чтобы с новым именем переносился, завтра напишу. Сейчас времени нет.

ууу

3 (изменено: svoboden, 2017-06-07 02:37:47)

Re: SAMP: AHK Помогите с чтением чатлога

Поставь Loop еще раз, а по второму вопросу, переменную A_Index используй.

4

Re: SAMP: AHK Помогите с чтением чатлога

Я не совсем понял. Вам нужно когда в чате появляется определенная строка чтобы скрипт автоматически что-то отправил в чат, при этом не выключаясь?

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

5 (изменено: belyankin12, 2017-06-08 08:51:48)

Re: SAMP: AHK Помогите с чтением чатлога

У меня уже есть такой код. Он срабатывает сразу как строчка появится в чатлоге. Перезапускать скрипт не нужно, он будет находиться в бесконечном поиске. Но послушайте мой совет: автоматика - зло. Не делайте автоматическую активацию на сообщения игроков, максимум на сообщения системы, а то если игроки прознают про автоматику они попросту вас затролят).

#UseHook
#NoEnv
#SingleInstance force
#IfWinActive GTA:SA:MP

Loop { 
    log := {str:"",find:0,num:0}    ,    log.str := [] ; AutoInfo

    Loop, read, %path_log%
    log.str.Insert(A_LoopReadLine)    ,log.num := A_Index
		
	loop 3
    if RegExMatch(     log.str[log.num + 1 - A_Index]
        ,"\[(.*)\]  Ограбление Ammo LS"
        , end_str) and (log.find:=log.num + 1 - A_Index)
            break
    
    if (end_str != "") {
        msgbox, поймал строчку
    }
}

Вместо path_log путь к чатлогу.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

6

Re: SAMP: AHK Помогите с чтением чатлога

Drygok
Спасибо тебе большое, помог) Вот вопрос, а как сделать так чтоб я подобное действие записал в одном и том же скрипте, а то я пишу и у меня он не работает, так как возможно он дальше первого скрипта не исполняет. Я меня местами по строкам и работал тот скрипт который выше. Если поможешь, буду очень благодарен.

А так всем спасибо за отзывы, проблему решил.

7 (изменено: belyankin12, 2017-06-09 16:15:52)

Re: SAMP: AHK Помогите с чтением чатлога

nathantaft98, там цикл бесконечный в использованном тобой примере и все действия выполняются вне цикла (кроме goto). Попробуй использовать мой пример, в один цикл закладываешь несколько поисков по чатлогу и они будут по очереди работать (главное действие делай прямо в цикле, а не через goto).

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

8

Re: SAMP: AHK Помогите с чтением чатлога

belyankin12
Спасибо, проверю вечером, отпишу