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 
) 

What if the only way not to feel bad, is to stop feeling, anything at all, forever?
- Hannah Baker

I cost a girl her life because I was afraid to love her...
- Clay Jensen

 ~ 13 Reasons Why

  • Moderators
Posted

You should use string.gsub

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

Posted
You should use string.gsub

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

function arguments expected near '.' wtf? :|

What if the only way not to feel bad, is to stop feeling, anything at all, forever?
- Hannah Baker

I cost a girl her life because I was afraid to love her...
- Clay Jensen

 ~ 13 Reasons Why

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) 

Business System viewtopic.php?f=108&t=35797

Notepad++ Syntax Highlighting & Auto Completion viewtopic.php?f=91&t=76726

SQLite Tutorial viewtopic.php?f=148&t=38203

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

What if the only way not to feel bad, is to stop feeling, anything at all, forever?
- Hannah Baker

I cost a girl her life because I was afraid to love her...
- Clay Jensen

 ~ 13 Reasons Why

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.

"Keep making it simplex."

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

What if the only way not to feel bad, is to stop feeling, anything at all, forever?
- Hannah Baker

I cost a girl her life because I was afraid to love her...
- Clay Jensen

 ~ 13 Reasons Why

Posted
Does it show that message on the chat?

Yes!:D

What if the only way not to feel bad, is to stop feeling, anything at all, forever?
- Hannah Baker

I cost a girl her life because I was afraid to love her...
- Clay Jensen

 ~ 13 Reasons Why

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 
  

"Keep making it simplex."

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

What if the only way not to feel bad, is to stop feeling, anything at all, forever?
- Hannah Baker

I cost a girl her life because I was afraid to love her...
- Clay Jensen

 ~ 13 Reasons Why

Posted
That's because the table has no values into it. So try to add values into it and tell us if it works.

Doesn't working :(

What if the only way not to feel bad, is to stop feeling, anything at all, forever?
- Hannah Baker

I cost a girl her life because I was afraid to love her...
- Clay Jensen

 ~ 13 Reasons Why

Posted
Does the debugscript 3 say anything?

No, nothing. :S

What if the only way not to feel bad, is to stop feeling, anything at all, forever?
- Hannah Baker

I cost a girl her life because I was afraid to love her...
- Clay Jensen

 ~ 13 Reasons Why

Posted

Let's go again with the crazy debugging :v

Add this:

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

After this:

  
if szovegek[i] then 
  

"Keep making it simplex."

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

What if the only way not to feel bad, is to stop feeling, anything at all, forever?
- Hannah Baker

I cost a girl her life because I was afraid to love her...
- Clay Jensen

 ~ 13 Reasons Why

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