Чекер чата

Статус
В этой теме нельзя размещать новые ответы.

Adventurer

Известный
Автор темы
151
69
Привет тому, кто это читает. Мне нужна помощь. Я являюсь девяткой на сервере Arizona Rp.
Мне сказали мутить всех, кто рекламирует АХК скрипты. Рекламируют только автокопа, который на Saint Rose не практикуется и в разделах форума ссылки на него нет. Первым делом от лица игрока отправляется первое сообщение в /rb (оос рацию) "На форуме, в разделе вашей фракции, вы можете скачать армейский скрип" после этого еще два идут. Но мне нужно успевать замутить игрока, прежде чем он отправит еще два.
Я имею вот такой чекер. Хочу добавить две функции.
Код:
GetNewLine(filename)
{
    static old
    static new
    if !old
    {
        FileGetSize, old, %filename%
        new := old
    }
    while old = new
    {
        sleep 100
        FileGetSize, new, %filename%
    }
    old := new
    Loop, read, %filename%
    if A_LoopReadLine
    {
        lastline2:= lastline1
        lastline1:= last
        last := A_LoopReadLine
    }
    return last
}
FileCLog:=% A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"
Loop
{
    lastline := GetNewLine(FileCLog)
        if RegExMatch(lastline, "Докладывает ", doks)
    {
        SendChat("/r " TegR " Доклад принят, продолжайте службу!")
    }
;таких строчек у меня несколько с разной вариацией написания слова "докладывает"
}
return

1) Как видите, у меня прописано просто чек на слово "докладывает", но надо, чтобы скрипт проверял, написано ли это в /r. То есть первым делом идет проверка чата, и если он видит строчку {цвет}[R] Звание Nick_Name [id]: [Тег] Докладывает: ( | , - по разному игроки делают)
2) Мут за рекламу. Выглядит это так: [R] звание Nick_Name [id]:(( На форуме, в разделе вашей фракции, вы можете скачать армейский скрипт. )). (вместо смайла двоеточие и скобка Тут мне нужно, чтобы скрипт взял из этого сообщения только id, после чего прописал команду SendChat("/fmute " id " 1 Помехи в рацию. (( Реклама ))")

Я надеюсь, что вы сможете отозваться и помочь мне! Я надеюсь на вашу помощь. Сколько хотел, не получается у меня найти информации про if RegExMatch, как он работает
 
Последнее редактирование:

RTD

Нестандартное звание
Модератор
391
414

Adventurer

Известный
Автор темы
151
69

Adventurer

Известный
Автор темы
151
69
Так я тебе говорю, скинь строчку из чатлога сюда...
Ну вот пример
[19:40:15] [R] Сержант Bandi_Adrian[152]: [ВБО.Пилот] Докладывает: Банди Адриан/Разгрузился, направляюсь в штаб

[19:40:15] [R] Полковник Corrado_Uchida[375]: [Зам. Генерала]: Доклад принят, продолжайте службу!
 

RTD

Нестандартное звание
Модератор
391
414
Ну вот пример
[19:40:15] [R] Сержант Bandi_Adrian[152]: [ВБО.Пилот] Докладывает: Банди Адриан/Разгрузился, направляюсь в штаб

[19:40:15] [R] Полковник Corrado_Uchida[375]: [Зам. Генерала]: Доклад принят, продолжайте службу!
Примерный код.
Код:
Loop {
    lastline := GetNewLine(FileCLog)
    if (RegExMatch(lastline, "i)\[\d+:\d+:\d+\]\s\[R\]\s.*\w+\[\d+\]:.*доклад(|ывает|ываю)")) {
        SendChat("/r " TegR " Доклад принят, продолжайте службу!")
    } else if (RegExMatch(lastline, "\[\d+:\d+:\d+\]\s\[R\].*(\w+)\[(\d+)\]:.*скрипт", value)) {
        addChatMessageEx("FFFFFF", value1 "[" value2 "] подозревается в рекламе. Нажми 1 в течении 10 секунд что бы наказать.")
        KeyWait, 1, D T10
        if(!ErrorLevel)
            SendChat("/fmute " value2 " 1 Помехи в рацию. (( Реклама ))")
    }
}
return
 
  • Нравится
Реакции: Adventurer

Adventurer

Известный
Автор темы
151
69
Примерный код.
Код:
Loop {
    lastline := GetNewLine(FileCLog)
    if (RegExMatch(lastline, "i)\[\d+:\d+:\d+\]\s\[R\]\s.*\w+\[\d+\]:.*доклад(|ывает|ываю)")) {
        SendChat("/r " TegR " Доклад принят, продолжайте службу!")
    } else if (RegExMatch(lastline, "\[\d+:\d+:\d+\]\s\[R\].*(\w+)\[(\d+)\]:.*скрипт", value)) {
        addChatMessageEx("FFFFFF", value1 "[" value2 "] подозревается в рекламе. Нажми 1 в течении 10 секунд что бы наказать.")
        KeyWait, 1, D T10
        if(!ErrorLevel)
            SendChat("/fmute " value2 " 1 Помехи в рацию. (( Реклама ))")
    }
}
return
Большое спасибо за помощь!) Все идеально работает. Только я 2 момента изменил. Никнейм не отображается при "подозрении", а только одна буква, вот это заменил. Еще добавил возможность анмута на всякий такой случай.
upload_2017-10-2_2-47-1.png
 

Вложения

  • upload_2017-10-2_2-44-22.png
    upload_2017-10-2_2-44-22.png
    16 KB · Просмотры: 367
Статус
В этой теме нельзя размещать новые ответы.