SA:MP Arizona помощь со старым чатом

soked

Новичок
Автор темы
18
0
помогите поставил старый чат и теперь вместо смайликов у меня текст просто который выделен двоеточием можно ли это как то убрать пробывал в гпт закидывать он выдал код который удаляет эти текстовые смайлы но и удаляет номера телефонов с объявлений внизу будет этот код мб его подкоректировать как то просто я не шарю в скриптинге

local samp_ev = require 'lib.samp.events'

function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
wait(-1)
end

function clean(text)
if not text then return text end
-- Удаляем любые слова внутри двоеточий, включая те, что с цифрами или в начале строки
-- %a - буквы, %d - цифры, %p - знаки препинания (включая скобки цветов)
local s = text:gsub(":[%w%d%p]+:", "")

-- Чистим остаточные артефакты, если смайл был приклеен к тексту
s = s:gsub("^%s+", "") -- пробелы в начале
return s
end

function samp_ev.onChatMessage(playerId, text)
return {playerId, clean(text)}
end

function samp_ev.onServerMessage(color, text)
return {color, clean(text)}
end

-- Дополнительный хук для входящих RPC пакетов, если стандартные события пропускают
function samp_ev.onSendChat(message)
return {clean(message)}
end
 

Вложения

  • 21.08.45.656.jpg
    21.08.45.656.jpg
    47 KB · Просмотры: 27

pewpewpewpew

Известный
553
153
Lua:
local samp_ev = require 'lib.samp.events'

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    wait(-1)
end

local function clean(text)
    if not text then return text end

    local s = text:gsub(":([%w_%-]+):", function(token)
        local t = token:lower()

        local phone = t:match("^call(%d+)$")
        if phone then
            return phone
        end

        if t:match("^house%d+$") then
            return ":" .. token .. ":"
        end

        if t:match("^biz%d+$") then
            return ":" .. token .. ":"
        end

        if t:match("^lavka%d+$") then
            return ":" .. token .. ":"
        end

        return ""
    end)

    s = s:gsub("^%s+", "")
    s = s:gsub("%s%s+", " ")

    return s
end

function samp_ev.onChatMessage(playerId, text)
    return {playerId, clean(text)}
end

function samp_ev.onServerMessage(color, text)
    return {color, clean(text)}
end

объявления будут выглядеть так
1778794289690.png


это добавил как исключения чтобы скрипт не удалял служебные теги аризоны
house%d+$
biz%d+$
lavka%d+$
1778796936200.png


а чтобы не было подобной хуйни когда при упоминании любого предмета через :item&d+: плашка ВИП ЧАТ один хуй вылазит, могу запихнуть тебе в код замену предметов из json таблицы. вместо просматриваемого аризоновского "Кенгурятник Метельник" будет текстовый вид "Кенгурятник Метельник" и строка будет без плашки ВИП ЧАТ
1778797235460.png
 
Последнее редактирование:
  • Эм
Реакции: kernelich