Как определить id в чатлоге?

kakayato_utka

Новичок
Автор темы
2
0
Вот пришло например от кого-то сообщение в чатлоге, надо, чтобы скрипт автоматически находил эту строчку и искал в ней ид, который например [47], писал обусловленную команду и выводил этот ид уже автоматически.

Код:
pack = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
Home::
Loop
fileread, read, %pack%
if read contains Вопрос от
filedelete, %pack%
fileappend, %pack%
SendInput, {F6}/ans id answer
return

А, ну ещё желательно, чтобы подсказали, как сделать, шобы он читал именно последнюю строку каждый раз, а не весь чатлог. Чтобы не очищать его 24/7.
 

Cucumber

Участник
40
21
как сделать, шобы он читал именно последнюю строку каждый раз, а не весь чатлог.
C++:
Filename=%A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
block=0
Loop, read, %Filename%
nstroki=%A_Index%
start:
if on=2
return
if block=1
goto start
FileReadLine, stroka, %Filename%, %nstroki%
if ErrorLevel
{
    nstroki-=1
    goto start
}
if stroka=
{
    nstroki+=1
    goto start
}
IfInString, stroka, Вопрос от
{
    if(RegExMatch(stroka, "Вопрос от (?<Nick>.*)\[(?<ID>.*)\]: (?<Text>.*)", pm)) ; Будет реагировать на - Вопрос от Nick_Name[69]: Text
    {
        aNick := pmNick
        aText := pmText
        aID := pmID
    }
    nstroki+=1
    goto start
}
nstroki+=1
goto start
return
 

kakayato_utka

Новичок
Автор темы
2
0
C++:
Filename=%A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
block=0
Loop, read, %Filename%
nstroki=%A_Index%
start:
if on=2
return
if block=1
goto start
FileReadLine, stroka, %Filename%, %nstroki%
if ErrorLevel
{
    nstroki-=1
    goto start
}
if stroka=
{
    nstroki+=1
    goto start
}
IfInString, stroka, Вопрос от
{
    if(RegExMatch(stroka, "Вопрос от (?<Nick>.*)\[(?<ID>.*)\]: (?<Text>.*)", pm)) ; Будет реагировать на - Вопрос от Nick_Name[69]: Text
    {
        aNick := pmNick
        aText := pmText
        aID := pmID
    }
    nstroki+=1
    goto start
}
nstroki+=1
goto start
return
Это шо?
Код:
 {
        aNick := pmNick
        aText := pmText
        aID := pmID
    }
 

Cucumber

Участник
40
21
Это шо?
Код:
 {
        aNick := pmNick
        aText := pmText
        aID := pmID
    }
Переменные, которые получены с регулировок. Более подробно можешь прочитать здесь - https://blast.hk/threads/31713/
Самый банальный пример использования:
C++:
if(RegExMatch(stroka, "Вопрос от (?<Nick>.*)\[(?<ID>.*)\]: (?<Text>.*)", pm)) ; Будет реагировать на - Вопрос от Nick_Name[69]: Text
    {
        aNick := pmNick
        aText := pmText
        aID := pmID
        SendChat("/pm " aID " Привет, ты задал вопрос: "aText)
    }

Если не хочешь при чтении их вызывать
C++:
Numpad1::
SendChat("/pm " aID " бла бла бла")
Return