Ragnar Posted July 24, 2019 Share Posted July 24, 2019 Como removo cores no scoreboard, chat e killmensagem? Pesquisei aqui e wiki e não achei nenhum funcional Link to comment
Other Languages Moderators Lord Henry Posted July 24, 2019 Other Languages Moderators Share Posted July 24, 2019 (edited) No scoreboard, só acessar as configurações dele pelo painel admin e mudar o parâmetro Allow colorcoded names para false. No chat, vc deve cancelar o envio normal das mensagens e reenviá-las sem o parâmetro colorcoded (aquele true que vem depois dos 255). Se você estiver com um resource de TAGs, faça a correção nele. Se não tiver um resource de TAGs, crie um resource novo com um server.Lua e coloque isso nele: function chatbox (text, msgtype) local name = getPlayerName (source) if (msgtype == 0) then cancelEvent (true) -- Cancela a mensagem original. outputChatBox (name..": "..text, root, 231, 217, 176) -- Reenvia a mensagem sem cores. (vai aparecer os códigos de cor em vez disso) outputServerLog ("CHAT: "..name..": "..text) end end No killmessages dai é mais complexo, pois ele vem nativamente bugado. Substitua o script inteiro do textlib.Lua por esse: Spoiler dxText = {} dxText_mt = { __index = dxText } local idAssign,idPrefix = 0,"c" local g_screenX,g_screenY = guiGetScreenSize() local visibleText = {} ------ local defaults = { fX = 0.5, fY = 0.5, bRelativePosition = true, strText = "", bVerticalAlign = "center", bHorizontalAlign = "center", tColor = {255,255,255,255}, fScale = 1, strFont = "default", strType = "normal", tAttributes = {}, bPostGUI = false, bColorCoded = false, bClip = false, bWordWrap = true, bVisible = true, tBoundingBox = false, --If a bounding box is not set, it will not be used. bRelativeBoundingBox = true, } local validFonts = { default = true, ["default-bold"] = true, clear = true, arial = true, pricedown = true, bankgothic = true, diploma = true, beckett = true, } local validTypes = { normal = true, shadow = true, border = true, stroke = true, --Clone of border } local validAlignTypes = { center = true, left = true, right = true, } function dxText:create(text, x, y, relative) assert(not self.fX, "attempt to call method 'create' (a nil value)") if type(text) ~= "string" or not tonumber(x) or not tonumber(y) then outputDebugString("dxText:create - Bad argument",0,112,112,112) return false end local new = {} setmetatable(new, dxText_mt) --Add default settings for i,v in pairs(defaults) do new[i] = v end idAssign = idAssign+1 new.id = idPrefix..idAssign new.strText = text or new.strText new.fX = x or new.fX new.fY = y or new.fY if type(relative) == "boolean" then new.bRelativePosition = relative end visibleText[new] = true return new end function dxText:text(text) if type(text) ~= "string" then return self.strText end self.strText = text return true end function dxText:position(x,y,relative) if not tonumber(x) then return self.fX,self.fY end self.fX = x self.fY = y if type(relative) == "boolean" then self.bRelativePosition = relative else self.bRelativePosition = true end return true end function dxText:color(r,g,b,a) if not tonumber(r) then return unpack(self.tColor) end g = g or self.tColor[2] b = b or self.tColor[3] a = a or self.tColor[4] self.tColor = {r,g,b,a} return true end function dxText:scale(scale) if not tonumber(scale) then return self.fScale end self.fScale = scale return true end function dxText:visible(bool) if type(bool) ~= "boolean" then return self.bVisible end self.bVisible = bool if bool then visibleText[self] = true else visibleText[self] = nil end return true end function dxText:destroy() self.bDestroyed = true setmetatable( self, self ) return true end function dxText:extent() if self.bColorCoded then text = string.gsub(self.strText,"#%x%x%x%x%x%x","") else text = self.strText end local extent = dxGetTextWidth(text,self.fScale,self.strFont) if self.strType == "stroke" or self.strType == "border" then extent = extent + self.tAttributes[1] end return extent end function dxText:height() local height = dxGetFontHeight(self.fScale, self.strFont) if self.strType == "stroke" or self.strType == "border" then height = height + self.tAttributes[1] end return height end function dxText:font(font) if not validFonts[font] then return self.strFont end self.strFont = font return true end function dxText:postGUI(bool) if type(bool) ~= "boolean" then return self.bPostGUI end self.bPostGUI = bool return true end function dxText:clip(bool) if type(bool) ~= "boolean" then return self.bClip end self.bClip = bool return true end function dxText:wordWrap(bool) if type(bool) ~= "boolean" then return self.bWordWrap end self.bWordWrap = bool return true end function dxText:type(type,...) if not validTypes[type] then return self.strType,unpack(self.tAttributes) end self.strType = type self.tAttributes = {...} return true end function dxText:align(horzA, vertA) if not validAlignTypes[horzA] then return self.bHorizontalAlign,self.bVerticalAlign end vertA = vertA or self.bVerticalAlign self.bHorizontalAlign,self.bVerticalAlign = horzA,vertA return true end function dxText:boundingBox(left,top,right,bottom,relative) if left == nil then if self.tBoundingBox then return unpack(boundingBox) else return false end elseif tonumber(left) and tonumber(right) and tonumber(top) and tonumber(bottom) then self.tBoundingBox = {left,top,right,bottom} if type(relative) == "boolean" then self.bRelativeBoundingBox = relative else self.bRelativeBoundingBox = true end else self.tBoundingBox = false end return true end function dxCreateCustomDX(text,left,top,right,bottom,color,scale,font,alignX,alignY,clip,wordBreak,postGUI,colorcoded) if not text or not left or not top then return false end local xOffset = nil local fpat = "(.-)#(%x%x%x%x%x%x)" local s,e,cap,col = text:find(fpat,1) local last_end = 1 if not alignX then alignX = "left" elseif alignX == "center" then xOffset = -(dxGetTextWidth(string.gsub(text,"#%x%x%x%x%x%x",""),scale,font)/2) else xOffset = 0 end -- while s do -- if cap == "" and col then -- color = tocolor(tonumber("0x"..col:sub(1,2)), tonumber("0x"..col:sub(3,4)), tonumber("0x"..col:sub(5,6)),255) -- end -- if s ~= 1 or cap ~= "" then -- dxDrawText(text,left+xOffset,top,left+xOffset,bottom,color,scale,font,alignX,alignY,false,false,postGUI,colorcoded) -- xOffset = xOffset+dxGetTextWidth(cap,scale,font) -- color = tocolor(tonumber("0x"..col:sub(1,2)), tonumber("0x"..col:sub(3,4)), tonumber("0x"..col:sub(5,6)),255) -- end -- last_end = e+1 -- s,e,cap,col = text:find(fpat,last_end) -- end if last_end <= #text then cap = text:sub(last_end) dxDrawText(text,left+xOffset,top,left+xOffset,bottom,color,scale,font,alignX,alignY,false,false,postGUI,colorcoded) xOffset = xOffset+dxGetTextWidth(cap,scale,font) end return true end addEventHandler("onClientRender",getRootElement(), function() for self,_ in pairs(visibleText) do while true do if self.bDestroyed then visibleText[self] = nil break end local l,t,r,b --If we arent using a bounding box if not self.tBoundingBox then --Decide if we use relative or absolute local p_screenX,p_screenY = 1,1 if self.bRelativePosition then p_screenX,p_screenY = g_screenX,g_screenY end local fX,fY = (self.fX)*p_screenX,(self.fY)*p_screenY if self.bHorizontalAlign == "left" then l = fX r = fX + g_screenX elseif self.bHorizontalAlign == "right" then l = fX - g_screenX r = fX else l = fX - g_screenX r = fX + g_screenX end if self.bVerticalAlign == "top" then t = fY b = fY + g_screenY elseif self.bVerticalAlign == "bottom" then t = fY - g_screenY b = fY else t = fY - g_screenY b = fY + g_screenY end elseif type(self.tBoundingBox) == "table" then local b_screenX,b_screenY = 1,1 if self.bRelativeBoundingBox then b_screenX,b_screenY = g_screenX,g_screenY end l,t,r,b = self.tBoundingBox[1],self.tBoundingBox[2],self.tBoundingBox[3],self.tBoundingBox[4] l = l*b_screenX t = t*b_screenY r = r*b_screenX b = b*b_screenY end local type,att1,att2,att3,att4,att5 = self:type() if type == "border" or type == "stroke" then att2 = att2 or 0 att3 = att3 or 0 att4 = att4 or 0 att5 = att5 or self.tColor[4] outlinesize = att1 or 2 outlinesize = math.min(self.fScale,outlinesize) --Make sure the outline size isnt thicker than the size of the label if outlinesize > 0 then for offsetX=-outlinesize,outlinesize,outlinesize do for offsetY=-outlinesize,outlinesize,outlinesize do if not offsetX == 0 and offsetY == 0 then dxCreateCustomDX(self.strText,l+offsetX,t+offsetY,r+offsetX,b+offsetY,tocolor(att2,att3,att4,att5),self.fScale,self.strFont,self.bHorizontalAlign,self.bVerticalAlign,self.bClip,self.bWordWrap,self.bPostGUI,self.bColorCoded) end end end end -- elseif type == "shadow" then -- local shadowDist = att1 -- att2 = att2 or 0 -- att3 = att3 or 0 -- att4 = att4 or 0 -- att5 = att5 or self.tColor[4] -- dxCreateCustomDX(self.strText,l+shadowDist,t+shadowDist,r+shadowDist,b+shadowDist,tocolor(0,0,0,255),self.fScale,self.strFont,self.bHorizontalAlign,self.bVerticalAlign,self.bClip,self.bWordWrap,self.bPostGUI,self.bColorCoded) end dxCreateCustomDX(self.strText,l,t,r,b,tocolor(unpack(self.tColor)),self.fScale,self.strFont,self.bHorizontalAlign,self.bVerticalAlign,self.bClip,self.bWordWrap,self.bPostGUI,self.bColorCoded) break end end end ) if addEvent("updateDisplays",true) then addEventHandler("updateDisplays",getRootElement(), function(self) setmetatable(self,dxText_mt) --Remove any old ones with the same id for text,_ in pairs(visibleText) do if text.id == self.id then visibleText[text] = nil end end if self.bVisible and not self.bDestroyed then visibleText[self] = true end end ) end Se quiser voltar a usar as cores, apenas troque na linha 20 aquele false por true. Edited July 25, 2019 by Lord Henry 1 Link to comment
Ragnar Posted July 25, 2019 Author Share Posted July 25, 2019 Tudo certo, obrigado!@Lord Henry Link to comment
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