Dinossauro Posted August 3, 2012 Share Posted August 3, 2012 Hello friends, I have a server and wanted to put the race messagekill on the left side, and also, whenever someone dies, the player's name appeared with the color he uses. Thank you. Link to comment
fmj02 Posted August 4, 2012 Share Posted August 4, 2012 What you should do? Read this all, if you don't understand something, just leave it to later. http://www.lua.org/manual/5.1/ My advices: - don't ever give up - use wikipedia and google for definitions - write your own examples - use wiki https://wiki.multitheftauto.com/ - use notepad++ - if you want to take something from other res to your res read all lines slowly, if you don't understand function watch wiki. IN LUA - CONSOLE function myfirstfunction() print("Hello World") end IN MTA function myfirstfunction() outputChatBox("Hello World") end addEventHandler(.... if you have problem with your script use [lua] tags Link to comment
codeluaeveryday Posted August 5, 2012 Share Posted August 5, 2012 Luckily i made this last night for my K@N servers. Replace killmessages/utils/textlib.lua: 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, 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() local extent = dxGetTextWidth ( string.gsub(self.strText, "#%x%x%x%x%x%x", ""), 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 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 Link to comment
Castillo Posted August 5, 2012 Share Posted August 5, 2012 It'll not work, the colorCoded argument is available on MTA 1.3.1. Link to comment
codeluaeveryday Posted August 5, 2012 Share Posted August 5, 2012 Heres were the Moderator is wrong. Heres where you fail to read: Min version: 1.3.0-9.03986. Works perfectly on my server and I know many other scripters which are also using this. . I was told you weren't as pro as they said. Link to comment
Castillo Posted August 5, 2012 Share Posted August 5, 2012 I didn't fail to read, I know about the min version attribute. And please get a better attitude if you don't want to get in trouble. Link to comment
codeluaeveryday Posted August 5, 2012 Share Posted August 5, 2012 Sorry, I just thought you wanted to know this is working as of the current server release. I am running it and my players see it good too. My code still will work. Link to comment
arezu Posted August 5, 2012 Share Posted August 5, 2012 It'll not work, the colorCoded argument is available on MTA 1.3.1. I dont have 1.3.1 but it works for me. I only downloaded from MTA from front page like 3 weeks ago. Unless the one on front page is 1.3.1 but nobody has said so. Link to comment
Castillo Posted August 5, 2012 Share Posted August 5, 2012 Well, I cannot be right at everything, can I? he has no right to insult me because of a SIMPLE mistake. Link to comment
codeluaeveryday Posted August 5, 2012 Share Posted August 5, 2012 All right all right, I am sorry, I havent been myself lately. Link to comment
Dinossauro Posted August 5, 2012 Author Share Posted August 5, 2012 As I put the killmessages the left? I downloaded it and is on the right, but I wanted the left. please help me! 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