[Вопрос] Как считывать ЧатЛог?Почему не работает?
|
|
saalaus |
Дата: Воскресенье, 16.10.2016, 13:05 | Сообщение # 1
|
Боец
Сообщений: 54
Статус: Offline
|
Код file = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt start1: Loop,Read, %file% { IfInString, A_LoopReadLine, Вы провели курс лечения для { Goto, start } } goto, start1 start: filedelete, %file% fileappend, , %file% SendChat("Удачного вам дня и не болейте!") SendInput {f6}/c 060{enter} goto,start1
Lol
|
|
|
|
artem227228 |
Дата: Воскресенье, 16.10.2016, 14:38 | Сообщение # 2
|
Новичок
Сообщений: 20
Статус: Offline
|
Зачем ты сразу удаляешь и потом создаёшь файл чатлога?
Код start: Sendchat ("Удачного дня, не болейте!") Sendinput, {F6}/c 60 {enter} Filedelete, %A_MyDocunents%\GTA San Andreas User Files\SAMP\chatog.txt Fileappend, %A_MyDocunents%\GTA San Andreas User Files\SAMP\chatog.txt
|
|
|
|
RellaX |
Дата: Воскресенье, 16.10.2016, 15:18 | Сообщение # 3
|
Боец
Сообщений: 282
Статус: Offline
|
artem227228, Потому что код у него "нубский". Если он не будет удалять чат-лог, то всё время будет желать удачного дня.
https://vk.com/zatkap
|
|
|
|
McFree_ |
Дата: Воскресенье, 16.10.2016, 15:32 | Сообщение # 4
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
Считывай последнюю строчку, это будет куда лучше и понятней. Желательно конечно не в Loop а в SetTimer чтобы было во втором потоке и не останавливалось при других функциях
Код Loop { GetChatLine(0,First) if (RegExMatch(First, "Вы провели курс лечения для")) { Sleep, 600 SendChat("Удачного вам дня и не болейте!") Sleep, 1100 SendInput {f6}/c 060{enter} } Sleep,5 }
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|
saalaus |
Дата: Воскресенье, 16.10.2016, 16:23 | Сообщение # 5
|
Боец
Сообщений: 54
Статус: Offline
|
Цитата McFree_ (  ) Считывай последнюю строчку, это будет куда лучше и понятней. Желательно конечно не в Loop а в SetTimer чтобы было во втором потоке и не останавливалось при других функциях не работает
Lol
|
|
|
|
McFree_ |
Дата: Воскресенье, 16.10.2016, 18:19 | Сообщение # 6
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
saalaus, что именно не работает? Команда получения последней строки или проверки на нужную строку?
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|
Demchog |
Дата: Понедельник, 17.10.2016, 07:39 | Сообщение # 7
|
Любитель
Сообщений: 33
Статус: Offline
|
Код #Persistent #SingleInstance, Force CL := % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt" Loop { chatline := GetNewLine(CL) if chatline contains Вы проверили курс лечения для SendChat("Удачного Вам дня.") } }
GetNewLine(filename) { static old static new if !old { FileGetSize, old, %filename% new := old } while old = new { sleep 500 FileGetSize, new, %filename% } old := new Loop, read, %filename% if A_LoopReadLine last := A_LoopReadLine return last }
|
|
|
|
MrGPro |
Дата: Понедельник, 17.10.2016, 14:47 | Сообщение # 8
|
Боец
Сообщений: 202
Статус: Offline
|
saalaus, вот полный код который вы отели использовать
Код f10:: SetTimer, start, on SendInput {f6}/me активировал{enter} Loop, read, %Filename% nstroki=%A_Index% return
start: SetTimer, start, off if on=2 if block=1 goto start FileReadLine, stroka, %Filename%, %nstroki% if ErrorLevel { nstroki-=1 goto start } if stroka= { nstroki+=1 goto start } IfInString, stroka, Игрок в чёрном списке. { Sendinput {F6}/c %Nick1%, ты занесен в чёрный список{ENTER} sleep 1000 } IfInString, stroka, говорит: { if (InStr(stroka, "heal")) or (InStr(stroka, "хиал")) { RegExMatch(stroka, "\Q] \E(.*)\Q[\E", Nick) Sendinput {F6}/heal %Nick1% %b%{ENTER} Sleep 300 nstroki+=1 goto start } nstroki+=1 goto start return
~$F6 UP:: if block=0 { block=1 return } if block=1 { sleep 600 block=0 } return
~$enter UP:: if block=1 { sleep 600 block=0 } return
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
|
|
|
|