Jump to content

Achicar texto


iFoReX

Recommended Posts

estaba editando el killmessages y le cambie la fuente, pero ahora se ve muy grande ya que bankgothic es grande,como podria achicar el texto a .5 ?

local customKills = {} 
local config = {
["lines"] = 5,
["startY"] = 0.35,
["textHeight"] = 2,
["iconPosOffY"] = -10,
["iconHeight"] = 20,
["iconSpacing"] = 4,
["defaultWeapon"] = 255,
["fadeTime"] = 5000,
["startFade"] = 15000,
["align"] = "right",
["startX"] = -10
}
local default = {
["lines"] = 5,
["startY"] = 0.25,
["textHeight"] = 16,
["iconPosOffY"] = -10,
["iconHeight"] = 20,
["iconSpacing"] = 4,
["defaultWeapon"] = 255,
["fadeTime"] = 5000,
["startFade"] = 15000,
["align"] = "right",
["startX"] = -10
}
local endTime
local screenX,screenY = guiGetScreenSize ()
local contentMessages = {}
local fadingLines = {}
---
local iconOrder = {}
 
 
function setupTextOnStart ( resource )
    if resource ~= getThisResource() then return end
    triggerServerEvent ( "onClientKillmessagesLoaded", getLocalPlayer() )
end
addEventHandler ( "onClientResourceStart", getRootElement(), setupTextOnStart )
 
addEvent ("doSetKillMessageStyle",true)
function setKillMessageStyle ( startX,startY,align,lines,fadeStart,fadeAnimTime )
    if ( not startX ) then startX = default.startX end
    if ( not startY ) then startY = default.startY end
    if ( not align ) then align = default.align end
    if ( not lines ) then lines = default.lines end
    if ( not fadeStart ) then fadeStart = default.startFade end
    if ( not fadeAnimTime ) then fadeAnimTime = default.fadeTime end
    config.startX = startX
    config.startY = startY
    config.align = align
    config.lines = lines
    config.startFade = fadeStart
    config.fadeTime = fadeAnimTime
    if #contentMessages ~= 0 then
        for i=1,config.lines do
            if contentMessages[i] then
                destroyLine ( i )
            end
        end
    end
    fadingLines = {}
    killMessages = {}
    if ( config.startY < 0 ) then
        config.startY = screenY - math.abs(config.startY*screenY) - (config.iconHeight*config.lines)
        config.startY = config.startY/screenY
    end
    createKillMessageGUI()
    return true
end
addEventHandler ( "doSetKillMessageStyle",getRootElement(),setKillMessageStyle)
 
function createKillMessageGUI()
    local gap = config.iconHeight - config.textHeight
    gap = gap/2
    for i=1,config.lines do
        local y = config.startY*screenY + (config.iconHeight*(i-1))
        y = y + gap
        contentMessages[i] = { dxText:create("",0,y) }
    end
    endTime = config.fadeTime + config.startFade
end
 
function shiftUpGUI()
    local i = 1
    for i=config.lines,2,-1 do
        local y = config.startY*screenY + (config.iconHeight*(i-1)) + (config.iconHeight - config.textHeight)/2
        local targetY = config.startY*screenY + (config.iconHeight*(i-2)) + (config.iconHeight - config.textHeight)/2
        for k,part in ipairs(contentMessages[i]) do
            local x,realY = getWidgetPosition(part)
 
            local diffY = realY - y
            setWidgetPosition(part,x,targetY + diffY)
        end
    end 
    for i=1,config.lines-1 do
        ---shift up the alpha too
        local tick = fadingLines[i+1]
        fadingLines[i] = tick
        fadingLines[i+1] = nil
    end 
end
 
addEvent ( "doOutputMessage", true )
function outputMessage ( message, r, g, b, font )
    if type(message) ~= "string" and type(message) ~= "table" then
        outputDebugString ( "outputMessage - Bad 'message' argument", 0, 112, 112, 112 )
        return false
    end
    if type(font) ~= "string" then
        font = "bankgothic"
    end
    r = tonumber(r) or 255
    g = tonumber(g) or 255
    b = tonumber(b) or 255
    ---shift everything up
    shiftUpGUI()
    --Delete the first line
    destroyLine (1)
    table.remove ( contentMessages, 1 )
    if type(message) == "string" then
        message = {message}
    end
    local y = config.startY*screenY + (config.iconHeight*(config.lines-1)) + (config.iconHeight - config.textHeight)/2
    local startX = config.startX
    if startX < 1 and startX > -1 then --auto calculate whether its relative or absolute
        startX = screenX/startX --make it relative
    end
    if startX < 0 then
        startX = screenX + startX
    end
   
    for i,part in ipairs(message) do
        if type(part) == "table" and part[1] == "image" then
            if not part.resource and not part.resourceName then
                part.resource = sourceResource
            end
        end
    end
   
    drawLine ( message, startX, y, config.align, config.lines, r, g, b, font, 1 )
    fadeLine ( config.lines )   
end
addEventHandler ( "doOutputMessage", getRootElement(), outputMessage )
 
function drawLine ( message, x,y, align, line, r, g, b, font, scale )
    --First draw it and work out the width
    local width = 0
    contentMessages[line] = {}
    for i,part in ipairs(message) do
        if type(part) == "string" then
            local text = dxText:create ( part, width, y, false )
            text:font ( font )
            text:scale ( scale )
            text:type("shadow",1)
            text:align"left"
            text:color ( r,g,b )
            table.insert ( contentMessages[line], text )
            width = width + text:extent()
        elseif part[1] == "icon" then
            local iconWidth = part.width or iconWidths[part.id or -1] or iconWidths[255]
            local iconHeight = part.height or config.iconHeight
            local image = dxImage:create ( icons[part.id or 0] or icons[255], width, y + (part.posOffY or config.iconPosOffY), iconWidth, iconHeight, false )
            image:color ( part.r or 255, part.g or 255, part.b or 255 )
            image:rotation ( part.rot or 0, part.rotOffX or 0, part.rotOffY or 0 )
            width = width + iconWidth
            table.insert ( contentMessages[line], image )
        elseif part[1] == "image" then
            if part.width and part.path then
                if part.resourceName then
                    part.resource = getResourceFromName(tostring(part.resourceName)) or part.resource
                end
                local image = dxImage:create ( ":"..getResourceName(part.resource).."/"..part.path, width, y + (part.posOffY or config.iconPosOffY), part.width, part.height or config.iconHeight, false )
                image:color ( part.r or 255, part.g or 255, part.b or 255 )
                image:rotation ( part.rot or 0, part.rotOffX or 0, part.rotOffY or 0 )             
                width = width + part.width
                table.insert ( contentMessages[line], image )
            end 
        elseif part[1] == "color" or part[1] == "colour" then
            r = part.r or r
            g = part.g or g
            b = part.b or b
        elseif part[1] == "padding" then
            width = width + part.width or 0
        end
        contentMessages[line].scale = scale
    end
    --Now reposition everything properly
    if align == "center" or align == "centre" then
        x = x - width/2
    elseif align == "right" then
        x = x - width
    end
    for i,widget in ipairs(contentMessages[line]) do
        local wx,wy = getWidgetPosition ( widget )
        setWidgetPosition ( widget, x + wx, wy )
    end
    return true
end
 
function fadeLine ( line )
    setLineAlpha ( line, 1 )
    fadingLines[line] = getTickCount()
end
-----
addEventHandler ( "onClientRender",getRootElement(),
function()
    for line,originalTick in pairs(fadingLines) do
        local tickDifference = getTickCount() - originalTick
        if tickDifference > endTime then
            destroyLine ( line )
            setLineAlpha ( line, 1 )
            fadingLines[line] = nil
        elseif tickDifference >  config.startFade then
            local fadeTimeDifference = tickDifference - config.startFade
            --calculate the alpha
            local newAlpha = 1 - fadeTimeDifference/config.fadeTime
            --Set all the alphas
            setLineAlpha ( line, newAlpha )
        end
    end
end )
 
function setLineAlpha ( line, alpha )
    for i,part in ipairs(contentMessages[line]) do
        setWidgetAlpha ( part, alpha )
    end
end
 
function destroyLine ( line )
    for k,part in ipairs(contentMessages[line]) do
        destroyWidget(part)
    end
    contentMessages[line] = {}
end
 
function destroyWidget ( widget )
    if isElement(widget) then
        destroyElement ( widget )
    elseif type(widget) == "table" and widget.destroy then
        widget:destroy()
    end
end
 
function getWidgetPosition ( widget )
    if isElement(widget) then
        return guiGetPosition ( widget, false )
    elseif type(widget) == "table" and widget.position then
        return widget:position()
    end
Link to comment
local customKills = {} 
local config = {
["lines"] = 5,
["startY"] = 0.35,
["textHeight"] = 2,
["iconPosOffY"] = -10,
["iconHeight"] = 20,
["iconSpacing"] = 4,
["defaultWeapon"] = 255,
["fadeTime"] = 5000,
["startFade"] = 15000,
["align"] = "right",
["startX"] = -10
}
local default = {
["lines"] = 5,
["startY"] = 0.25,
["textHeight"] = 10,
["iconPosOffY"] = -10,
["iconHeight"] = 20,
["iconSpacing"] = 4,
["defaultWeapon"] = 255,
["fadeTime"] = 5000,
["startFade"] = 15000,
["align"] = "right",
["startX"] = -10
}
local endTime
local screenX,screenY = guiGetScreenSize ()
local contentMessages = {}
local fadingLines = {}
---
local iconOrder = {}
 
 
function setupTextOnStart ( resource )
    if resource ~= getThisResource() then return end
    triggerServerEvent ( "onClientKillmessagesLoaded", getLocalPlayer() )
end
addEventHandler ( "onClientResourceStart", getRootElement(), setupTextOnStart )
 
addEvent ("doSetKillMessageStyle",true)
function setKillMessageStyle ( startX,startY,align,lines,fadeStart,fadeAnimTime )
    if ( not startX ) then startX = default.startX end
    if ( not startY ) then startY = default.startY end
    if ( not align ) then align = default.align end
    if ( not lines ) then lines = default.lines end
    if ( not fadeStart ) then fadeStart = default.startFade end
    if ( not fadeAnimTime ) then fadeAnimTime = default.fadeTime end
    config.startX = startX
    config.startY = startY
    config.align = align
    config.lines = lines
    config.startFade = fadeStart
    config.fadeTime = fadeAnimTime
    if #contentMessages ~= 0 then
        for i=1,config.lines do
            if contentMessages[i] then
                destroyLine ( i )
            end
        end
    end
    fadingLines = {}
    killMessages = {}
    if ( config.startY < 0 ) then
        config.startY = screenY - math.abs(config.startY*screenY) - (config.iconHeight*config.lines)
        config.startY = config.startY/screenY
    end
    createKillMessageGUI()
    return true
end
addEventHandler ( "doSetKillMessageStyle",getRootElement(),setKillMessageStyle)
 
function createKillMessageGUI()
    local gap = config.iconHeight - config.textHeight
    gap = gap/2
    for i=1,config.lines do
        local y = config.startY*screenY + (config.iconHeight*(i-1))
        y = y + gap
        contentMessages[i] = { dxText:create("",0,y) }
    end
    endTime = config.fadeTime + config.startFade
end
 
function shiftUpGUI()
    local i = 1
    for i=config.lines,2,-1 do
        local y = config.startY*screenY + (config.iconHeight*(i-1)) + (config.iconHeight - config.textHeight)/2
        local targetY = config.startY*screenY + (config.iconHeight*(i-2)) + (config.iconHeight - config.textHeight)/2
        for k,part in ipairs(contentMessages[i]) do
            local x,realY = getWidgetPosition(part)
 
            local diffY = realY - y
            setWidgetPosition(part,x,targetY + diffY)
        end
    end
    for i=1,config.lines-1 do
        ---shift up the alpha too
        local tick = fadingLines[i+1]
        fadingLines[i] = tick
        fadingLines[i+1] = nil
    end
end
 
addEvent ( "doOutputMessage", true )
function outputMessage ( message, r, g, b, font )
    if type(message) ~= "string" and type(message) ~= "table" then
        outputDebugString ( "outputMessage - Bad 'message' argument", 0, 112, 112, 112 )
        return false
    end
    if type(font) ~= "string" then
        font = "bankgothic"
    end
    r = tonumber(r) or 255
    g = tonumber(g) or 255
    b = tonumber(b) or 255
    ---shift everything up
    shiftUpGUI()
    --Delete the first line
    destroyLine (1)
    table.remove ( contentMessages, 1 )
    if type(message) == "string" then
        message = {message}
    end
    local y = config.startY*screenY + (config.iconHeight*(config.lines-1)) + (config.iconHeight - config.textHeight)/2
    local startX = config.startX
    if startX < 1 and startX > -1 then --auto calculate whether its relative or absolute
        startX = screenX/startX --make it relative
    end
    if startX < 0 then
        startX = screenX + startX
    end
   
    for i,part in ipairs(message) do
        if type(part) == "table" and part[1] == "image" then
            if not part.resource and not part.resourceName then
                part.resource = sourceResource
            end
        end
    end
   
    drawLine ( message, startX, y, config.align, config.lines, r, g, b, font, 1 )
    fadeLine ( config.lines )  
end
addEventHandler ( "doOutputMessage", getRootElement(), outputMessage )
 
function drawLine ( message, x,y, align, line, r, g, b, font, scale )
    --First draw it and work out the width
    local width = 0
    contentMessages[line] = {}
    for i,part in ipairs(message) do
        if type(part) == "string" then
            local text = dxText:create ( part, width, y, false )
            text:font ( font )
            text:scale ( scale )
            text:type("shadow",1)
            text:align"left"
            text:color ( r,g,b )
            table.insert ( contentMessages[line], text )
            width = width + text:extent()
        elseif part[1] == "icon" then
            local iconWidth = part.width or iconWidths[part.id or -1] or iconWidths[255]
            local iconHeight = part.height or config.iconHeight
            local image = dxImage:create ( icons[part.id or 0] or icons[255], width, y + (part.posOffY or config.iconPosOffY), iconWidth, iconHeight, false )
            image:color ( part.r or 255, part.g or 255, part.b or 255 )
            image:rotation ( part.rot or 0, part.rotOffX or 0, part.rotOffY or 0 )
            width = width + iconWidth
            table.insert ( contentMessages[line], image )
        elseif part[1] == "image" then
            if part.width and part.path then
                if part.resourceName then
                    part.resource = getResourceFromName(tostring(part.resourceName)) or part.resource
                end
                local image = dxImage:create ( ":"..getResourceName(part.resource).."/"..part.path, width, y + (part.posOffY or config.iconPosOffY), part.width, part.height or config.iconHeight, false )
                image:color ( part.r or 255, part.g or 255, part.b or 255 )
                image:rotation ( part.rot or 0, part.rotOffX or 0, part.rotOffY or 0 )            
                width = width + part.width
                table.insert ( contentMessages[line], image )
            end
        elseif part[1] == "color" or part[1] == "colour" then
            r = part.r or r
            g = part.g or g
            b = part.b or b
        elseif part[1] == "padding" then
            width = width + part.width or 0
        end
        contentMessages[line].scale = scale
    end
    --Now reposition everything properly
    if align == "center" or align == "centre" then
        x = x - width/2
    elseif align == "right" then
        x = x - width
    end
    for i,widget in ipairs(contentMessages[line]) do
        local wx,wy = getWidgetPosition ( widget )
        setWidgetPosition ( widget, x + wx, wy )
    end
    return true
end
 
function fadeLine ( line )
    setLineAlpha ( line, 1 )
    fadingLines[line] = getTickCount()
end
-----
addEventHandler ( "onClientRender",getRootElement(),
function()
    for line,originalTick in pairs(fadingLines) do
        local tickDifference = getTickCount() - originalTick
        if tickDifference > endTime then
            destroyLine ( line )
            setLineAlpha ( line, 1 )
            fadingLines[line] = nil
        elseif tickDifference >  config.startFade then
            local fadeTimeDifference = tickDifference - config.startFade
            --calculate the alpha
            local newAlpha = 1 - fadeTimeDifference/config.fadeTime
            --Set all the alphas
            setLineAlpha ( line, newAlpha )
        end
    end
end )
 
function setLineAlpha ( line, alpha )
    for i,part in ipairs(contentMessages[line]) do
        setWidgetAlpha ( part, alpha )
    end
end
 
function destroyLine ( line )
    for k,part in ipairs(contentMessages[line]) do
        destroyWidget(part)
    end
    contentMessages[line] = {}
end
 
function destroyWidget ( widget )
    if isElement(widget) then
        destroyElement ( widget )
    elseif type(widget) == "table" and widget.destroy then
        widget:destroy()
    end
end
 
function getWidgetPosition ( widget )
    if isElement(widget) then
        return guiGetPosition ( widget, false )
    elseif type(widget) == "table" and widget.position then
        return widget:position()
    end
Link to comment
  • Recently Browsing   0 members

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