[Помощь] Автоответ в репорт для администратора.
|
|
LiR |
Дата: Понедельник, 17.10.2016, 16:36 | Сообщение # 1
|
Боец
Сообщений: 94
Статус: Offline
|
StringCaseSense, Locale CL = %A_MyDocuments%\GTA San Andreas User Files\CR-MP\GenerationC\chatlog.txt StringCaseSense, Locale Loop,Read, %CL% Line := A_LoopReadLine RegExMatch(Line, "`[[0-9]+:[0-9]+:[0-9]+`] ", timestamp) Line := RegExReplace(Line, "`[[0-9]+:[0-9]+:[0-9]+`] ", "") RegExMatch(Line, "`[Жалоба] от [A-z]+_[A-z]+[([0-9]+`]: {FFFFFF}", ID) StringTrimLeft, ID, ID, 1 StringTrimRight, ID, ID, 1 IfInString, A_LoopReadLine, спасиб IfInString, A_LoopReadLine, {FFFFFF} { SendMessage, 0x50,, 0x4190419,, A SendInput, {F6}/ans " ID " Администрация желает вам приятной игры {ENTER} sleep 500 SendInput {F8} }
______________________ В чем ошибка? Почему не запускается и не отвечает на репорт скрипт?
Сообщение отредактировал LiR - Понедельник, 17.10.2016, 16:39 |
|
|
|
Demchog |
Дата: Понедельник, 17.10.2016, 18:25 | Сообщение # 2
|
Любитель
Сообщений: 33
Статус: Offline
|
Скачай SAMP UDF - https://yadi.sk/d/NzoAEHoGvrWWN Перетащи на рабочий стол или в папку со скриптом. Код:
Код #Persistent #SingleInstance, Force #NoEnv #Include, SAMP-UDF-Developer.ahk CL := % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt" Loop { chatline := GetNewLine(CL) if (RegExMatch(chatline, "^\[\d{2}:\d{2}:\d{2}\] \[Жалоба\] от (\w+)\[(\d{1,3})\]: \{FFFFFF\}(.*)", match)) { if (InStr(match3, "спасиб") || InStr(match3, "sps")) { SendChat("/ans " match2 " Администрация желает вам приятной игры! ") } } }
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 }
Сообщение отредактировал Demchog - Понедельник, 17.10.2016, 18:25 |
|
|
|
LiR |
Дата: Вторник, 18.10.2016, 01:23 | Сообщение # 3
|
Боец
Сообщений: 94
Статус: Offline
|
Цитата Demchog (  ) Перетащи на рабочий стол или в папку со скриптом. Не отвечает
|
|
|
|
Demchog |
Дата: Вторник, 18.10.2016, 07:50 | Сообщение # 4
|
Любитель
Сообщений: 33
Статус: Offline
|
LiR, значит попробуй так:
Код #Persistent #SingleInstance, Force #NoEnv #Include, SAMP-UDF-Developer.ahk CL := % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt" Loop { chatline := GetNewLine(CL) if (RegExMatch(chatline, "^\[\d{2}:\d{2}:\d{2}\] \[Жалоба\] от (\w+)\[(\d{1,3})\]: \{FFFFFF\}(.*)", match)) { if (InStr(match6, "спасиб") || InStr(match6, "sps")) { SendChat("/ans " match5 " Администрация желает вам приятной игры! ") } } }
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 }
Сообщение отредактировал Demchog - Вторник, 18.10.2016, 07:50 |
|
|
|
LiR |
Дата: Вторник, 18.10.2016, 18:51 | Сообщение # 5
|
Боец
Сообщений: 94
Статус: Offline
|
Тоже не отвечает..
|
|
|
|
Demchog |
Дата: Среда, 19.10.2016, 07:27 | Сообщение # 6
|
Любитель
Сообщений: 33
Статус: Offline
|
LiR, у тебя чат-лог находится там же, где и переменная CL?
|
|
|
|
RellaX |
Дата: Среда, 19.10.2016, 16:36 | Сообщение # 7
|
Боец
Сообщений: 282
Статус: Offline
|
Demchog, Ну наверное потому что:
Цитата LiR (  ) CL = %A_MyDocuments%\GTA San Andreas User Files\CR-MP\GenerationC\chatlog.txt
https://vk.com/zatkap
|
|
|
|
MrGPro |
Дата: Среда, 19.10.2016, 18:23 | Сообщение # 8
|
Боец
Сообщений: 202
Статус: Offline
|
LiR, Вот 100% - рабочий код | + возможность проверять слов с файла Words.txt. | SA:MP Если вы делаете проверку на GTA:CR а не на SA:MP
Код SendChat("/ans " match2 " Администрация желает вам приятной игры! ") на SendInput, {F6}/ans %mKey2% Администрация желает вам приятной игры!{enter}
Код #SingleInstance, Force #NoEnv #Include Z.ahk ;~ [13:49:12] [Жалоба] от MrGPro[12]: {FFFFFF}бан
global DirectWords = % A_ScriptDir "\Words.txt" global DirectChat = "C:\GTA San Andreas User Files\SAMP\chatlog.txt" ; Лично у меня генерируеться на диске C ;~ global DirectChat = % A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt" ; Стандартный путь для всех (Мои Документы)
MsgBox, % DirectChat
IfNotExist, %A_ScriptDir%\Words.txt { If (GenWordsFile()) MsgBox, Базовый файл - сгенерирован } Words := Object()
Loop, Read, % DirectWords { Words.Insert(A_LoopReadLine) }
Loop { chatline := GetNewLine(DirectChat) ; Пока размер файла не измениться ничего не делаем if (RegExMatch(chatline, "^\[\d{2}:\d{2}:\d{2}\] \[Жалоба\] от (\w+)\[(\d{1,3})\]: \{FFFFFF\}(.*)", )) { for index, fword in Words { if (InStr(mKey3, fword)) { MsgBox, % fword . " - найден " SendChat("/ans " match2 " Администрация желает вам приятной игры! ") } } } }
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 }
GenWordsFile() ; генерация базового файла { GenWords=<br / <img src="/.s/sm/2/angry.gif" border="0" align="absmiddle" alt="angry" /> спасиб sps бан ) FileDelete, %A_ScriptDir%\Words.txt FileAppend, %GenWords%, %A_ScriptDir%\Words.txt, UTF-8 return True }
>> Важно измен адрес к файлу chatlog.txt -> на свой >> Важно для GTA:CR подключите проверку открытия/закрытия чата пример ниже
Код ~$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 } ; вот что добавить в пример выше loop { **** начало ****** if block=1 break if block=0 continue ***** конец ***** } return
Тебе помогли не забывай про благодарность >> тыкни репутацию ---------------------------------------͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏̏͋͋' ͡ ͋̏̏̏̏̏̏̏̏̏ ----------------------------------------------------- Зам.Администратора на проекте "DayZ Epoсh SPN" сервер Arma 2OA DayZ Epoch пиратка и лицензия
Сообщение отредактировал MrGPro - Среда, 19.10.2016, 18:30 |
|
|
|