Jump to content

Помогите


Recommended Posts

В ресурсе freeroam ищешь файлик ''fr_server''.

Ищешь строчки:

addEventHandler('onPlayerChat', g_Root, 
    function(msg, type) 
        if type == 0 then 
            cancelEvent() 
            local r, g, b = getPlayerNametagColor(source) 
            outputChatBox(getClientName(source) .. ': #FFFFFF' .. msg:gsub('#%x%x%x%x%x%x', ''), g_Root, r, g, b, true) 
        end 
    end 
) 

Заменяешь на:

addEventHandler('onPlayerChat', g_Root, 
    function(msg, type) 
        if type == 0 then 
            cancelEvent() 
            local r, g, b = getPlayerNametagColor(source) 
            outputChatBox(getClientName(source) .. ': #FFFFFF' .. msg:gsub('#%x%x%x%x%x%x', ''), g_Root, r, g, b) 
        end 
    end 
) 

Link to comment
В ресурсе freeroam ищешь файлик ''fr_server''.

Ищешь строчки:

addEventHandler('onPlayerChat', g_Root, 
    function(msg, type) 
        if type == 0 then 
            cancelEvent() 
            local r, g, b = getPlayerNametagColor(source) 
            outputChatBox(getClientName(source) .. ': #FFFFFF' .. msg:gsub('#%x%x%x%x%x%x', ''), g_Root, r, g, b, true) 
        end 
    end 
) 

Заменяешь на:

addEventHandler('onPlayerChat', g_Root, 
    function(msg, type) 
        if type == 0 then 
            cancelEvent() 
            local r, g, b = getPlayerNametagColor(source) 
            outputChatBox(getClientName(source) .. ': #FFFFFF' .. msg:gsub('#%x%x%x%x%x%x', ''), g_Root, r, g, b) 
        end 
    end 
) 

а если у меня закоментированы тут строчки некотторые для тэга. что делать тогда?

Link to comment
Закоментированы? Покажи код.

addEventHandler('onPlayerChat', g_Root, 
    function(msg, type) 
        if type == 0 then 
            cancelEvent() 
            if chatTime[source] and chatTime[source] + tonumber(get("*chat/mainChatDelay")) > getTickCount() then 
                outputChatBox("Stop spamming main chat!", source, 255, 0, 0) 
                return 
            else 
                chatTime[source] = getTickCount() 
            end 
            if get("*chat/blockRepeatMessages") == "true" and lastChatMessage[source] and lastChatMessage[source] == msg then 
                outputChatBox("Stop repeating yourself!", source, 255, 0, 0) 
                return 
            else 
                lastChatMessage[source] = msg 
            end 
            local r, g, b = getPlayerNametagColor(source) 
            --outputChatBox(getPlayerName(source) .. ': #FFFFFF' .. msg:gsub('#%x%x%x%x%x%x', ''), g_Root, r, g, b, true) 
            --outputServerLog( "CHAT: " .. getPlayerName(source) .. ": " .. msg ) 
        end 
    end 
) 
  

Link to comment
Закоментированы? Покажи код.

addEventHandler('onPlayerChat', g_Root, 
    function(msg, type) 
        if type == 0 then 
            cancelEvent() 
            if chatTime[source] and chatTime[source] + tonumber(get("*chat/mainChatDelay")) > getTickCount() then 
                outputChatBox("Stop spamming main chat!", source, 255, 0, 0) 
                return 
            else 
                chatTime[source] = getTickCount() 
            end 
            if get("*chat/blockRepeatMessages") == "true" and lastChatMessage[source] and lastChatMessage[source] == msg then 
                outputChatBox("Stop repeating yourself!", source, 255, 0, 0) 
                return 
            else 
                lastChatMessage[source] = msg 
            end 
            local r, g, b = getPlayerNametagColor(source) 
            --outputChatBox(getPlayerName(source) .. ': #FFFFFF' .. msg:gsub('#%x%x%x%x%x%x', ''), g_Root, r, g, b, true) 
            --outputServerLog( "CHAT: " .. getPlayerName(source) .. ": " .. msg ) 
        end 
    end 
) 
  

Раскоментируй и замени.

Link to comment
Закоментированы? Покажи код.

addEventHandler('onPlayerChat', g_Root, 
    function(msg, type) 
        if type == 0 then 
            cancelEvent() 
            if chatTime[source] and chatTime[source] + tonumber(get("*chat/mainChatDelay")) > getTickCount() then 
                outputChatBox("Stop spamming main chat!", source, 255, 0, 0) 
                return 
            else 
                chatTime[source] = getTickCount() 
            end 
            if get("*chat/blockRepeatMessages") == "true" and lastChatMessage[source] and lastChatMessage[source] == msg then 
                outputChatBox("Stop repeating yourself!", source, 255, 0, 0) 
                return 
            else 
                lastChatMessage[source] = msg 
            end 
            local r, g, b = getPlayerNametagColor(source) 
            --outputChatBox(getPlayerName(source) .. ': #FFFFFF' .. msg:gsub('#%x%x%x%x%x%x', ''), g_Root, r, g, b, true) 
            --outputServerLog( "CHAT: " .. getPlayerName(source) .. ": " .. msg ) 
        end 
    end 
) 
  

Раскоментируй и замени.

опять показывает цвета(

Link to comment

Если я правильно понял, то попробуй так

  
function removeColorCoding ( name ) 
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name 
end 
  
function getPlayerNameWithOutColorCode ( player ) 
    return removeColorCoding ( getPlayerName ( player ) ) 
end 
  
addEventHandler('onPlayerChat', g_Root, 
    function(msg, type) 
        if type == 0 then 
            cancelEvent() 
            if chatTime[source] and chatTime[source] + tonumber(get("*chat/mainChatDelay")) > getTickCount() then 
                outputChatBox("Stop spamming main chat!", source, 255, 0, 0) 
                return 
            else 
                chatTime[source] = getTickCount() 
            end 
            if get("*chat/blockRepeatMessages") == "true" and lastChatMessage[source] and lastChatMessage[source] == msg then 
                outputChatBox("Stop repeating yourself!", source, 255, 0, 0) 
                return 
            else 
                lastChatMessage[source] = msg 
            end 
            outputChatBox(getPlayerNameWithOutColorCode(source) .. ': #FFFFFF' .. msg:gsub('#%x%x%x%x%x%x', ''), g_Root, 255, 255, 255, true) 
            outputServerLog( "CHAT: " .. getPlayerName(source) .. ": " .. msg ) 
        end 
    end 
) 

Link to comment
Если я правильно понял, то попробуй так
  
function removeColorCoding ( name ) 
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name 
end 
  
function getPlayerNameWithOutColorCode ( player ) 
    return removeColorCoding ( getPlayerName ( player ) ) 
end 
  
addEventHandler('onPlayerChat', g_Root, 
    function(msg, type) 
        if type == 0 then 
            cancelEvent() 
            if chatTime[source] and chatTime[source] + tonumber(get("*chat/mainChatDelay")) > getTickCount() then 
                outputChatBox("Stop spamming main chat!", source, 255, 0, 0) 
                return 
            else 
                chatTime[source] = getTickCount() 
            end 
            if get("*chat/blockRepeatMessages") == "true" and lastChatMessage[source] and lastChatMessage[source] == msg then 
                outputChatBox("Stop repeating yourself!", source, 255, 0, 0) 
                return 
            else 
                lastChatMessage[source] = msg 
            end 
            outputChatBox(getPlayerNameWithOutColorCode(source) .. ': #FFFFFF' .. msg:gsub('#%x%x%x%x%x%x', ''), g_Root, 255, 255, 255, true) 
            outputServerLog( "CHAT: " .. getPlayerName(source) .. ": " .. msg ) 
        end 
    end 
) 

Как бы получилось, но вот такой вопрос, у меняя стоит ТЭГ скрипт, и когда я проверял у меня сообщения дублируются, тоесть Одно сообщения с ТЭГОМ и с цветным ником пишется, а дублированное следущее собщение белое но и без тэга, что делать?

Link to comment

Редактировать фриром не нужно. Достаточно лишь создать ресурс со следующим содержимым.

-- server 
addEventHandler ( 'onPlayerJoin', root, function ( ) 
    setPlayerName( source, getPlayerName( source ):gsub('#%x%x%x%x%x%x', '') ) 
end ) 
  
addEventHandler ( 'onPlayerChangeNick', root, function ( _, newNick ) 
    local  freeNick, replaces = newNick:gsub('#%x%x%x%x%x%x', '') 
    -- Cкорее всего событие будет срабатывать при каждом вызове функции setPlayerName 
    -- Сделана проверка на количество замен по паттерну 
    if replaces ~= 0 then 
        setPlayerName( source, freeNick ) 
    end 
end ) 
  

UPD, если вы используете сторонний ресурс вывода в чат, закоментируйте onPlayerChat в фрироме ( --[[ ]] )

Link to comment
Редактировать фриром не нужно. Достаточно лишь создать ресурс со следующим содержимым.
-- server 
addEventHandler ( 'onPlayerJoin', root, function ( ) 
    setPlayerName( source, getPlayerName( source ):gsub('#%x%x%x%x%x%x', '') ) 
end ) 
  
addEventHandler ( 'onPlayerChangeNick', root, function ( _, newNick ) 
    local  freeNick, replaces = newNick:gsub('#%x%x%x%x%x%x', '') 
    -- Cкорее всего событие будет срабатывать при каждом вызове функции setPlayerName 
    -- Сделана проверка на количество замен по паттерну 
    if replaces ~= 0 then 
        setPlayerName( source, freeNick ) 
    end 
end ) 
  

UPD, если вы используете сторонний ресурс вывода в чат, закоментируйте onPlayerChat в фрироме ( --[[ ]] )

я все скопировал , создал но не как не получаеться(

Link to comment

Первый код замени на исходный, который был до наших редактирований.

Вот второй код:

function removeColorCoding ( name ) 
    return type(name)=='string' and string.gsub ( name, '#%x%x%x%x%x%x', '' ) or name 
end 
  
function getPlayerNameWithOutColorCode ( player ) 
    return removeColorCoding ( getPlayerName ( player ) ) 
end 
  
function chatbox(text, msgtype) 
local root = getRootElement() 
local account = getAccountName(getPlayerAccount(source)) 
local name = getPlayerNameWithOutColorCode(source) 
if (msgtype == 0) then 
    if isObjectInACLGroup("user." .. account, aclGetGroup("Console")) then 
     cancelEvent(true) 
        outputChatBox("#FF0000[#FF0000Хозяин#FF0000] #FFFFFF" .. name .. ":#FFFFFF " .. text, root, 255, 255, 255, true) 
        outputServerLog("CHAT: #FF0000[#FF0000Хозяин#FF0000] #FFFFFF" .. name .. ": " .. text) 
    elseif isObjectInACLGroup("user." .. account, aclGetGroup("Moderator")) then 
     cancelEvent(true) 
        outputChatBox("#0000FF[#0000FFАдмин#0000FF] #FFFFFF" .. name .. ":#FFFFFF " .. text, root, 255, 255, 255, true) 
        outputServerLog("CHAT:  #0000FF[#0000FFАдмин#0000FF] #FFFFFF" .. name .. ": " .. text) 
    elseif isObjectInACLGroup("user." .. account, aclGetGroup("SuperModerator")) then 
     cancelEvent(true) 
        outputChatBox(" #00FF00[#00FF00Гл.#00FF00Админ#00FF00] #FFFFFF" .. name .. ":#FFFFFF " .. text, root, 255, 255, 255, true) 
        outputServerLog("CHAT: #00FF00[#00FF00Гл.#00FF00Админ#00FF00] #FFFFFF" .. name .. ": " .. text) 
    elseif isObjectInACLGroup("user." .. account, aclGetGroup("Everyone")) then 
     cancelEvent(true) 
        outputChatBox(name .. ":#FFFFFF " .. text, root, 255, 255, 255, true) 
        outputServerLog("CHAT: #FFFFFF" .. name .. ": " .. text) 
     end 
end 
end 
addEventHandler("onPlayerChat", root, chatbox) 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...