Jump to content

[HELP ME] Why not working this script?


Turbesz

Recommended Posts

Posted

ERROR:xy\client.lua:13: attempt to call method 'gsub' (a nil value)

--client

local x, y = guiGetScreenSize() 
local font_os = (x/1600+y/900)/2 
local font = font_os*1 
local nSpaceY = dxGetFontHeight(font, "default-bold") 
local nSpaceYOld = dxGetFontHeight(2, "default-bold") 
local szovegek = {} 
for i=0, 4, 1 do 
    szovegek[i] = "" 
end 
function itsRenderTime() 
    for i = 0, 4, 1 do 
        if szovegek[i] then 
            local topSpaceX = dxGetTextWidth(szovegek[i]:gsub("#%x%x%x%x%x%x",""),font,"default-bold") 
            local webX=topSpaceX+font_os*10 
            dxDrawRectangle ( x-webX-font_os*5, nSpaceYOld*2+font_os*8+nSpaceY*(4-i)+font_os*(4-i), webX, nSpaceY+font_os*4, tocolor ( 0, 0, 0, 155 ) ) 
            dxDrawEmptyRec ( x-webX-font_os*5, nSpaceYOld*2+font_os*8+nSpaceY*(4-i)+font_os*(4-i), webX, nSpaceY+font_os*4, tocolor ( 255, 255, 255, 200 ), 2 ) 
            dxDrawText ( szovegek[i], x-webX, nSpaceYOld*2+font_os*10+nSpaceY*(4-i)+font_os*(4-i), topSpaceX, nSpaceY, tocolor ( 255, 255, 255, 255 ), font, "default-bold", "left", "top",true,false,false,true ) 
        end 
    end 
end 
addEventHandler("onClientRender", getRootElement(), itsRenderTime) 
  
function infoServer2(szoveg) 
    for i = 3, 0, -1 do 
        szovegek[i+1] = szovegek[i] 
    end 
    szovegek[0] = szoveg 
end 
addEvent("infoServer2", true) 
addEventHandler("infoServer2",getRootElement(), infoServer2) 
  
function dxDrawEmptyRec(absX,absY,sizeX,sizeY,color,ancho) 
    dxDrawRectangle ( absX,absY,sizeX,ancho,color ) 
    dxDrawRectangle ( absX,absY+ancho,ancho,sizeY-ancho,color ) 
    dxDrawRectangle ( absX+ancho,absY+sizeY-ancho,sizeX-ancho,ancho,color ) 
    dxDrawRectangle ( absX+sizeX-ancho,absY+ancho,ancho,sizeY-ancho*2,color )   
end 
  
local aValto = true 
function azEltunteto() 
    if aValto then 
        aValto = false 
        removeEventHandler ( "onClientRender", root, itsRenderTime ) 
        
    else 
        aValto = true 
        addEventHandler ( "onClientRender", root, itsRenderTime ) 
    end 
end 
bindKey("delete","down",azEltunteto) 

--server

local szovegek = {} 
local result = szovegek 
--outputChatBox(unpack(result)) 
  
addEventHandler('onPlayerChangeNick', root, 
    function(oldNick, newNick) 
    szovegek = { oldNick .. ' is now known as ' .. newNick, 255, 100, 100 }  
    triggerClientEvent ( "infoServer2", getRootElement(), szovegek ) 
    end 
) 

  • Scripting Moderators
Posted

You should use string.gsub

Lua uses string library you can call functions with string.*

Posted

You're sending a table, not a string. You need to retrieve the first element of that table, which is the string-type message.

function infoServer2(szoveg) 
    for i = 3, 0, -1 do 
        szovegek[i+1] = szovegek[i] 
    end 
    szovegek[0] = szoveg[0] 
end 
addEvent("infoServer2", true) 
addEventHandler("infoServer2",getRootElement(), infoServer2) 

Posted
You're sending a table, not a string. You need to retrieve the first element of that table, which is the string-type message.
function infoServer2(szoveg) 
    for i = 3, 0, -1 do 
        szovegek[i+1] = szovegek[i] 
    end 
    szovegek[0] = szoveg[0] 
end 
addEvent("infoServer2", true) 
addEventHandler("infoServer2",getRootElement(), infoServer2) 

working, but doesn't show message :|

Posted

Please add this line to -> function itsRenderTime()

  
outputChatBox("works, until here...") 
  

It's just for debug. Add it and tell us if the message from the outputChatBox appears on the chat.

Posted
Please add this line to -> function itsRenderTime()
  
outputChatBox("works, until here...") 
  

It's just for debug. Add it and tell us if the message from the outputChatBox appears on the chat.

"works, until here..." o.O

Posted

Try this, and make sure that szovegek has values on its 1 - 4 indexes.

  
function itsRenderTime() 
    for i = 1, 4 do 
        if szovegek[i] then -- It doesn't appear because it doesn't exist so please make sure that this table has into it values. 
            local topSpaceX = dxGetTextWidth(szovegek[i]:gsub("#%x%x%x%x%x%x",""),font,"default-bold") 
            local webX=topSpaceX+font_os*10 
            dxDrawRectangle ( x-webX-font_os*5, nSpaceYOld*2+font_os*8+nSpaceY*(4-i)+font_os*(4-i), webX, nSpaceY+font_os*4, tocolor ( 0, 0, 0, 155 ) ) 
            dxDrawEmptyRec ( x-webX-font_os*5, nSpaceYOld*2+font_os*8+nSpaceY*(4-i)+font_os*(4-i), webX, nSpaceY+font_os*4, tocolor ( 255, 255, 255, 200 ), 2 ) 
            dxDrawText ( szovegek[i], x-webX, nSpaceYOld*2+font_os*10+nSpaceY*(4-i)+font_os*(4-i), topSpaceX, nSpaceY, tocolor ( 255, 255, 255, 255 ), font, "default-bold", "left", "top",true,false,false,true ) 
        end 
    end 
end 
  

Posted
Try this, and make sure that szovegek has values on its 1 - 4 indexes.
  
function itsRenderTime() 
    for i = 1, 4 do 
        if szovegek[i] then -- It doesn't appear because it doesn't exist so please make sure that this table has into it values. 
            local topSpaceX = dxGetTextWidth(szovegek[i]:gsub("#%x%x%x%x%x%x",""),font,"default-bold") 
            local webX=topSpaceX+font_os*10 
            dxDrawRectangle ( x-webX-font_os*5, nSpaceYOld*2+font_os*8+nSpaceY*(4-i)+font_os*(4-i), webX, nSpaceY+font_os*4, tocolor ( 0, 0, 0, 155 ) ) 
            dxDrawEmptyRec ( x-webX-font_os*5, nSpaceYOld*2+font_os*8+nSpaceY*(4-i)+font_os*(4-i), webX, nSpaceY+font_os*4, tocolor ( 255, 255, 255, 200 ), 2 ) 
            dxDrawText ( szovegek[i], x-webX, nSpaceYOld*2+font_os*10+nSpaceY*(4-i)+font_os*(4-i), topSpaceX, nSpaceY, tocolor ( 255, 255, 255, 255 ), font, "default-bold", "left", "top",true,false,false,true ) 
        end 
    end 
end 
  

Doesn't working :|

Posted
Let's go again with the crazy debugging :v

Add this:

  
outputChatBox("Everything seems fine until here...") 
  

After this:

  
if szovegek[i] then 
  

working:D

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...