Загрузка...

Need help fixing chat script lolza

Thread in Website scripts created by God_likeGL Layer 1 Oct 16, 2025. 408 views

  1. God_likeGL
    God_likeGL Layer 1 Topic starter Oct 16, 2025 Лучшие сервера: lolz.live/threads/5071761/ :+rep: 35,786 Oct 30, 2018
    Когда мне отвечают сообщение выделяется зелёным цветом:
    [IMG]

    но когда тегают - не выделяется:

    [IMG]

    как это исправить? Чтоб всегда при упоминании и при теге выделялось

    JS
    // ==UserScript==
    // @name Lolz Transparent Chat — Simple v3.0
    // @namespace http://tampermonkey.net/
    // @version 3.0.2
    // @description Простой и быстрый: видит чат → делает прозрачным → всё
    // @match https://lzt.market/*
    // @match https://lolz.live/*
    // @match https://zelenka.guru/*
    // @grant none
    // @license MIT
    // ==/UserScript==

    ;(() => {
    // Константы
    const BLUR_PX = 12
    const ALPHA_DESKTOP = 0.01
    const ALPHA_MOBILE = 0.25
    const MENTION_BORDER = "3px solid rgba(34,142,93,0.85)"
    const USE_BLUR = CSS.supports("backdrop-filter", "blur(1px)") && !/\bEdgA\/|EdgiOS\//i.test(navigator.userAgent)
    const IS_MOBILE = /Android|iPhone|iPad|Mobile/i.test(navigator.userAgent)

    // Уже обработанные элементы
    const processed = new WeakSet()

    // CSS стили
    const css = `
    /* Прозрачность контейнеров чата */
    .chat2, #chat2-full, [class^="chat2-floating"], [class*="chat2-container"], [class*="chatbox"],
    .scrollable-content, [class*="chat2-body"], [class*="chat2-content"], [class*="messages"],
    [class*="message-list"], .chat2-widget-inner, [class*="pane"], [class*="layout"], [class*="wrapper"],
    [class*="primary-darker"]:not(.chat2-header), [class*="primary-dark"]:not(.chat2-header) {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    }

    /* Сообщения с серыми рамками */
    .chat2-message-block, .reply-message {
    background: transparent !important;
    border: 1px solid rgba(128,128,128,.45) !important;
    border-radius: 6px !important;
    }

    /* Упоминания - зеленая рамка */
    .chat2-message.chat2-message-tagged .chat2-message-block,
    .reply-message.reply-message-your {
    border: ${MENTION_BORDER} !important;
    background: transparent !important;
    }

    /* Усиленное правило для прозрачности собственных сообщений */
    [class*="reply-message-your"] {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: ${MENTION_BORDER} !important;
    }

    /* Дополнительное правило для любых комбинаций классов с reply-message-your */
    .reply-message[class*="reply-message-your"] {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    }

    /* Отключение фона для индикатора ответа */
    .chat2-replying, [class*="chat2-replying"] {
    background: transparent !important;
    background-color: transparent !important;
    border-radius: 6px !important;
    }

    /* Поле ввода */
    .chat2-footer textarea, .chat2-footer [contenteditable="true"],
    .chat2-footer input[type="text"], .chat2-footer [class*="editor"] {
    background: rgba(0,0,0,${ALPHA_DESKTOP}) !important;
    border: none !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    }

    /* Шапка чата */
    .chat2-header, [class*="chat2-header"] {
    border: 1px solid rgba(128,128,128,.45) !important;
    border-radius: 8px !important;
    background: initial !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    }

    /* Крестики */
    .chat2-cancel-reply, .chat2-cancel-editing {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 22px !important;
    height: 22px !important;
    border-radius: 6px !important;
    background: transparent !important;
    color: #fff !important;
    cursor: pointer !important;
    }
    .chat2-cancel-reply:empty::before, .chat2-cancel-editing:empty::before {
    content: '×';
    font-size: 16px;
    }

    /* Улучшения для мобильных устройств для лучшей читаемости */
    @media (max-width: 768px) {
    /* Лучшая читаемость текста на мобильных устройствах */
    .chat2-message-block, .reply-message {
    background: rgba(0,0,0,${ALPHA_MOBILE}) !important;
    border: 1px solid rgba(128,128,128,.65) !important;
    }

    /* Упоминания с лучшей видимостью */
    .chat2-message.chat2-message-tagged .chat2-message-block,
    .reply-message.reply-message-your,
    [class*="reply-message-your"] {
    background: rgba(34,142,93,0.15) !important;
    border: ${MENTION_BORDER} !important;
    }

    /* Поле ввода с лучшей контрастностью */
    .chat2-footer textarea, .chat2-footer [contenteditable="true"],
    .chat2-footer input[type="text"], .chat2-footer [class*="editor"] {
    background: rgba(0,0,0,${ALPHA_MOBILE}) !important;
    border: 1px solid rgba(128,128,128,.45) !important;
    }

    /* Текстовое тень для лучшей читаемости */
    .chat2-message-block, .reply-message,
    .chat2-message-text, .reply-message-text,
    [class*="message-content"], [class*="message-text"] {
    text-shadow: 0 1px 3px rgba(0,0,0,0.8) !important;
    }

    /* Индикатор ответа на мобильных устройствах */
    .chat2-replying, [class*="chat2-replying"] {
    background: rgba(0,0,0,${ALPHA_MOBILE}) !important;
    border-radius: 6px !important;
    }

    /* Мобильная шапка - горизонтальный скролл */
    .kyan-head-outer {
    width: 100% !important;
    overflow: hidden !important;
    }
    .kyan-head-scroll {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    }
    .kyan-head-strip {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    gap: 0.75rem !important;
    white-space: nowrap !important;
    min-width: max-content !important;
    }
    }
    `

    // Добавляем CSS
    function addCSS() {
    if (document.getElementById("kyan-chat-css")) return
    const style = document.createElement("style")
    style.id = "kyan-chat-css"
    style.textContent = css
    document.head.appendChild(style)
    }

    function forceTransparentUserMessages() {
    // Находим все элементы с классом reply-message-your (включая динамические суффиксы)
    const userMessages = document.querySelectorAll('[class*="reply-message-your"]')

    userMessages.forEach((el) => {
    if (!processed.has(el)) {
    el.style.setProperty("background", "transparent", "important")
    el.style.setProperty("background-color", "transparent", "important")
    el.style.setProperty("background-image", "none", "important")
    el.style.setProperty("border", MENTION_BORDER, "important")
    processed.add(el)
    }
    })
    }

    // Основная функция - ищем и обрабатываем чат
    function processChat() {
    // Ищем основные контейнеры чата
    const chatSelectors = [
    "#chat2-full",
    '[class^="chat2-floating"]',
    ".chat2",
    '[class*="chat2-container"]',
    '[class*="chatbox"]',
    ]

    let chatRoot = null
    for (const selector of chatSelectors) {
    chatRoot = document.querySelector(selector)
    if (chatRoot) break
    }

    if (!chatRoot) return

    // Применяем стекло к основным элементам
    makeGlass(chatRoot)

    // Ищем и обрабатываем внутренние элементы
    const innerSelectors = [
    ".scrollable-content",
    '[class*="chat2-body"]',
    '[class*="chat2-content"]',
    '[class*="messages"]',
    '[class*="message-list"]',
    ".chat2-widget-inner",
    '[class*="pane"]',
    '[class*="layout"]',
    '[class*="wrapper"]',
    '[class*="primary-darker"]:not(.chat2-header)',
    '[class*="primary-dark"]:not(.chat2-header)',
    ".chat2-messages",
    '[class*="chat2-messages"]',
    ]

    innerSelectors.forEach((selector) => {
    chatRoot.querySelectorAll(selector).forEach(makeGlass)
    })

    // Дополнительно ищем chat2-messages во всем документе на случай если он вне chatRoot
    document.querySelectorAll('.chat2-messages, [class*="chat2-messages"]').forEach(makeGlass)

    forceTransparentUserMessages()

    // Обрабатываем шапку для мобильных
    const header =
    chatRoot.querySelector('.chat2-header, [class*="chat2-header"]') ||
    document.querySelector('.chat2-header, [class*="chat2-header"]')
    if (header) {
    fixMobileHeader(header)
    }
    }

    // Функция для применения стекла к элементу
    function makeGlass(element) {
    if (USE_BLUR) {
    // Уменьшение размытия на мобильных устройствах для лучшей читаемости
    const blurAmount = IS_MOBILE ? Math.floor(BLUR_PX * 0.5) : BLUR_PX
    element.style.backdropFilter = `blur(${blurAmount}px)`
    element.style.webkitBackdropFilter = `blur(${blurAmount}px)`
    }
    element.style.backgroundColor = "transparent"
    }

    // Функция для обработки мобильной шапки
    function fixMobileHeader(header) {
    if (IS_MOBILE) {
    header.style.width = "100%"
    header.style.overflow = "hidden"
    }
    }

    // Инициализация
    function init() {
    addCSS()
    processChat()

    // Простой MutationObserver - видит изменения → обрабатывает чат
    new MutationObserver(() => {
    processChat()
    }).observe(document.body, {
    childList: true,
    subtree: true,
    })
    }

    // Запуск
    if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", init)
    } else {
    init()
    }
    })()
     
    1. View previous comments (12)
    2. God_likeGL Layer 1 Topic starter
    3. God_likeGL Layer 1 Topic starter
      :fsdglgfdk19000: avatarTikTok , Там онлайна меньше, чтоб сообщение не уезжало далеко за горы
  2. МегаПроРоблоксер
    JS
    // ==UserScript==
    // @name Lolz Transparent Chat — Simple v3.0
    // @namespace http://tampermonkey.net/
    // @version 3.0.3
    // @description Простой и быстрый: видит чат → делает прозрачным → всё
    // @match https://lzt.market/*
    // @match https://lolz.live/*
    // @match https://zelenka.guru/*
    // @grant none
    // @license MIT
    // ==/UserScript==

    ;(() => {
    // Константы
    const BLUR_PX = 12
    const ALPHA_DESKTOP = 0.01
    const ALPHA_MOBILE = 0.25
    const MENTION_BORDER = "3px solid rgba(34,142,93,0.85)"
    const USE_BLUR = CSS.supports("backdrop-filter", "blur(1px)") && !/\bEdgA\/|EdgiOS\//i.test(navigator.userAgent)
    const IS_MOBILE = /Android|iPhone|iPad|Mobile/i.test(navigator.userAgent)

    // Уже обработанные элементы
    const processed = new WeakSet()

    // CSS стили
    const css = `
    /* Прозрачность контейнеров чата */
    .chat2, #chat2-full, [class^="chat2-floating"], [class*="chat2-container"], [class*="chatbox"],
    .scrollable-content, [class*="chat2-body"], [class*="chat2-content"], [class*="messages"],
    [class*="message-list"], .chat2-widget-inner, [class*="pane"], [class*="layout"], [class*="wrapper"],
    [class*="primary-darker"]:not(.chat2-header), [class*="primary-dark"]:not(.chat2-header) {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    }

    /* Сообщения с серыми рамками */
    .chat2-message-block, .reply-message {
    background: transparent !important;
    border: 1px solid rgba(128,128,128,.45) !important;
    border-radius: 6px !important;
    }

    /* Упоминания и ответы - зеленая рамка */
    .chat2-message.chat2-message-tagged .chat2-message-block,
    .reply-message.reply-message-your,
    .chat2-message-block.chat2-message-tagged {
    border: ${MENTION_BORDER} !important;
    background: transparent !important;
    }

    /* Усиленное правило для прозрачности собственных сообщений */
    [class*="reply-message-your"] {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: ${MENTION_BORDER} !important;
    }

    /* Дополнительное правило для любых комбинаций классов с reply-message-your */
    .reply-message[class*="reply-message-your"] {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    }

    /* Отключение фона для индикатора ответа */
    .chat2-replying, [class*="chat2-replying"] {
    background: transparent !important;
    background-color: transparent !important;
    border-radius: 6px !important;
    }

    /* Поле ввода */
    .chat2-footer textarea, .chat2-footer [contenteditable="true"],
    .chat2-footer input[type="text"], .chat2-footer [class*="editor"] {
    background: rgba(0,0,0,${ALPHA_DESKTOP}) !important;
    border: none !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    }

    /* Шапка чата */
    .chat2-header, [class*="chat2-header"] {
    border: 1px solid rgba(128,128,128,.45) !important;
    border-radius: 8px !important;
    background: initial !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    }

    /* Крестики */
    .chat2-cancel-reply, .chat2-cancel-editing {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 22px !important;
    height: 22px !important;
    border-radius: 6px !important;
    background: transparent !important;
    color: #fff !important;
    cursor: pointer !important;
    }
    .chat2-cancel-reply:empty::before, .chat2-cancel-editing:empty::before {
    content: '×';
    font-size: 16px;
    }

    /* Улучшения для мобильных устройств для лучшей читаемости */
    @media (max-width: 768px) {
    /* Лучшая читаемость текста на мобильных устройствах */
    .chat2-message-block, .reply-message {
    background: rgba(0,0,0,${ALPHA_MOBILE}) !important;
    border: 1px solid rgba(128,128,128,.65) !important;
    }

    /* Упоминания и ответы с лучшей видимостью */
    .chat2-message.chat2-message-tagged .chat2-message-block,
    .reply-message.reply-message-your,
    .chat2-message-block.chat2-message-tagged,
    [class*="reply-message-your"] {
    background: rgba(34,142,93,0.15) !important;
    border: ${MENTION_BORDER} !important;
    }

    /* Поле ввода с лучшей контрастностью */
    .chat2-footer textarea, .chat2-footer [contenteditable="true"],
    .chat2-footer input[type="text"], .chat2-footer [class*="editor"] {
    background: rgba(0,0,0,${ALPHA_MOBILE}) !important;
    border: 1px solid rgba(128,128,128,.45) !important;
    }

    /* Текстовое тень для лучшей читаемости */
    .chat2-message-block, .reply-message,
    .chat2-message-text, .reply-message-text,
    [class*="message-content"], [class*="message-text"] {
    text-shadow: 0 1px 3px rgba(0,0,0,0.8) !important;
    }

    /* Индикатор ответа на мобильных устройствах */
    .chat2-replying, [class*="chat2-replying"] {
    background: rgba(0,0,0,${ALPHA_MOBILE}) !important;
    border-radius: 6px !important;
    }

    /* Мобильная шапка - горизонтальный скролл */
    .kyan-head-outer {
    width: 100% !important;
    overflow: hidden !important;
    }
    .kyan-head-scroll {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    }
    .kyan-head-strip {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    gap: 0.75rem !important;
    white-space: nowrap !important;
    min-width: max-content !important;
    }
    }
    `

    // Добавляем CSS
    function addCSS() {
    if (document.getElementById("kyan-chat-css")) return
    const style = document.createElement("style")
    style.id = "kyan-chat-css"
    style.textContent = css
    document.head.appendChild(style)
    }

    function forceTransparentUserMessages() {
    // Находим все элементы с классом reply-message-your (включая динамические суффиксы)
    const userMessages = document.querySelectorAll('[class*="reply-message-your"]')

    userMessages.forEach((el) => {
    if (!processed.has(el)) {
    el.style.setProperty("background", "transparent", "important")
    el.style.setProperty("background-color", "transparent", "important")
    el.style.setProperty("background-image", "none", "important")
    el.style.setProperty("border", MENTION_BORDER, "important")
    processed.add(el)
    }
    })

    // Также обрабатываем тегированные сообщения
    const taggedMessages = document.querySelectorAll('.chat2-message-block.chat2-message-tagged, .chat2-message.chat2-message-tagged .chat2-message-block')
    taggedMessages.forEach((el) => {
    if (!processed.has(el)) {
    el.style.setProperty("border", MENTION_BORDER, "important")
    el.style.setProperty("background", "transparent", "important")
    processed.add(el)
    }
    })
    }

    // Основная функция - ищем и обрабатываем чат
    function processChat() {
    // Ищем основные контейнеры чата
    const chatSelectors = [
    "#chat2-full",
    '[class^="chat2-floating"]',
    ".chat2",
    '[class*="chat2-container"]',
    '[class*="chatbox"]',
    ]

    let chatRoot = null
    for (const selector of chatSelectors) {
    chatRoot = document.querySelector(selector)
    if (chatRoot) break
    }

    if (!chatRoot) return

    // Применяем стекло к основным элементам
    makeGlass(chatRoot)

    // Ищем и обрабатываем внутренние элементы
    const innerSelectors = [
    ".scrollable-content",
    '[class*="chat2-body"]',
    '[class*="chat2-content"]',
    '[class*="messages"]',
    '[class*="message-list"]',
    ".chat2-widget-inner",
    '[class*="pane"]',
    '[class*="layout"]',
    '[class*="wrapper"]',
    '[class*="primary-darker"]:not(.chat2-header)',
    '[class*="primary-dark"]:not(.chat2-header)',
    ".chat2-messages",
    '[class*="chat2-messages"]',
    ]

    innerSelectors.forEach((selector) => {
    chatRoot.querySelectorAll(selector).forEach(makeGlass)
    })

    // Дополнительно ищем chat2-messages во всем документе на случай если он вне chatRoot
    document.querySelectorAll('.chat2-messages, [class*="chat2-messages"]').forEach(makeGlass)

    forceTransparentUserMessages()

    // Обрабатываем шапку для мобильных
    const header =
    chatRoot.querySelector('.chat2-header, [class*="chat2-header"]') ||
    document.querySelector('.chat2-header, [class*="chat2-header"]')
    if (header) {
    fixMobileHeader(header)
    }
    }

    // Функция для применения стекла к элементу
    function makeGlass(element) {
    if (USE_BLUR) {
    // Уменьшение размытия на мобильных устройствах для лучшей читаемости
    const blurAmount = IS_MOBILE ? Math.floor(BLUR_PX * 0.5) : BLUR_PX
    element.style.backdropFilter = `blur(${blurAmount}px)`
    element.style.webkitBackdropFilter = `blur(${blurAmount}px)`
    }
    element.style.backgroundColor = "transparent"
    }

    // Функция для обработки мобильной шапки
    function fixMobileHeader(header) {
    if (IS_MOBILE) {
    header.style.width = "100%"
    header.style.overflow = "hidden"
    }
    }

    // Инициализация
    function init() {
    addCSS()
    processChat()

    // Простой MutationObserver - видит изменения → обрабатывает чат
    new MutationObserver(() => {
    processChat()
    }).observe(document.body, {
    childList: true,
    subtree: true,
    })
    }

    // Запуск
    if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", init)
    } else {
    init()
    }
    })()
     
    1. View previous comments (6)
Loading...