ahk - удаление строк чата

Kvisk

Известный
Автор темы
210
222
Ползал ползал в интернете так и не нашел.
Как сделать так что бы либо строчка с определённым тексом сразу удалялась после появления в чате(было не заметно для пользователя), либо вообще не отображалась..

Нашел в udf функцию removeChatLine(line), (0 - последняя строка, 1 предпоследняя и т.д.)
AutoHotKey:
removeChatLine(line := 0)
{
    if(!checkHandles())
        return false
    if(!dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR))
        return false
    loop % 100 - line
    {
        a := ""
        dwLine := dwAddress + 0x132 + ( (99 - A_Index - line) * 0xFC )
        loop 0xFC
        {
            byte := substr(inttohex(Memory_ReadByte(hGTA, dwLine++)), 3)
            a .= (strlen(byte) == 1 ? "0" : "") byte
        }
        dwLine := dwAddress + 0x132 + ( (100 - A_Index - line) * 0xFC )
        writeBytes(hGTA, dwLine, a)
    }
    sendinput {f7 3} ; 3 - без соба, 4 - есть собейт
    return true
}
да она удаляет, но только по номеру строки + очень долго(0,5~1,5сек). У меня ситуация где в чат постоянно идёт флууд "не делай то-то то-то" и надо что бы не было этого сообщения, если кто поможет буду очень благодарен.
 
Последнее редактирование:

Forfeit

Участник
69
12
Код:
Loop
{
    I:= 0
    Loop, 20
    {
        GetChatLine(I, chatline)
        IfInString, chatline, mytext
        {
            removeChatLine(I)
        }
        I+= I
    }
}
Можешь попробовать это. Сканирует каждую строку чата, и при наличии в ней необходимого тебе текста (mytext), удаляет строку.
За скорость хз, но надо потестить
 
  • Нравится
Реакции: Kvisk

Kvisk

Известный
Автор темы
210
222
Код:
Loop
{
    I:= 0
    Loop, 20
    {
        GetChatLine(I, chatline)
        IfInString, chatline, mytext
        {
            removeChatLine(I)
        }
        I+= I
    }
}
Можешь попробовать это. Сканирует каждую строку чата, и при наличии в ней необходимого тебе текста (mytext), удаляет строку.
За скорость хз, но надо потестить
Идея интересная, но такая же проблема с которой столкнулся я.
Иногда удаляются другие строки не содержащие данный текст, а это не допустимо(
 

Kvisk

Известный
Автор темы
210
222