Nerses Posted May 27, 2014 Posted May 27, 2014 Ребят нужна ваша помощь. Как сделать так чтоб человек с html ником не был цветовым? Что где надо редактировать?
nikitafloy Posted May 28, 2014 Posted May 28, 2014 В ресурсе 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 )
Nerses Posted May 28, 2014 Author Posted May 28, 2014 В ресурсе 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 ) а если у меня закоментированы тут строчки некотторые для тэга. что делать тогда?
Nerses Posted May 29, 2014 Author Posted May 29, 2014 Закоментированы? Покажи код. 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 )
nikitafloy Posted May 29, 2014 Posted May 29, 2014 Закоментированы? Покажи код. 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 ) Раскоментируй и замени.
Nerses Posted May 29, 2014 Author Posted May 29, 2014 Закоментированы? Покажи код. 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 ) Раскоментируй и замени. опять показывает цвета(
Memory Posted May 30, 2014 Posted May 30, 2014 Если я правильно понял, то попробуй так 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 )
Nerses Posted May 30, 2014 Author Posted May 30, 2014 Если я правильно понял, то попробуй так 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 ) Как бы получилось, но вот такой вопрос, у меняя стоит ТЭГ скрипт, и когда я проверял у меня сообщения дублируются, тоесть Одно сообщения с ТЭГОМ и с цветным ником пишется, а дублированное следущее собщение белое но и без тэга, что делать?
TheNormalnij Posted May 30, 2014 Posted May 30, 2014 Редактировать фриром не нужно. Достаточно лишь создать ресурс со следующим содержимым. -- 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 в фрироме ( --[[ ]] )
Nerses Posted May 30, 2014 Author Posted May 30, 2014 Редактировать фриром не нужно. Достаточно лишь создать ресурс со следующим содержимым. -- 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 в фрироме ( --[[ ]] ) я все скопировал , создал но не как не получаеться(
Memory Posted May 30, 2014 Posted May 30, 2014 Первый код замени на исходный, который был до наших редактирований. Вот второй код: 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)
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now