Jump to content

Failed to pass arguments to event


Recommended Posts

Hi guys,

I'm trying send a message to a client-side script (using dxDrawText()). But the message is not passed.

Server-side:

--[...] more code here 
triggerClientEvent("SendMessageToPlayer", getRootElement(), "Everything here ...") 
--[...] more code here 

Client-side:

local rootElement = getRootElement() 
local x,y = guiGetScreenSize()  -- Get players resolution. 
local playerName = getPlayerName ( getLocalPlayer() )  -- Get players name. 
  
  
function CreateMessageRectangle() 
    dxDrawRectangle ( x-x, y-30, x, 30, tocolor ( 0, 0, 0, 200 ) ) -- Create our black transparent MOTD background Rectangle. 
end 
  
function SetMessageOnRectangle(theMessage) 
    if(theMessage == nil) then 
        theMessage = "Visit our forum: #FFFFFFhttp://sa-rc.com/forum/" 
    end 
    dxDrawText ( theMessage, x-x+10, y-20, x-20, y-10, tocolor ( 0, 255, 0, 255 ), 1, "default-bold", "center", "center", false, false, false, true, false) -- Create the text. 
end 
addEvent("SendMessageToPlayer", true) 
addEventHandler("SendMessageToPlayer", getRootElement(), SetMessageOnRectangle) 
  
  
function HandleTheRendering ( ) 
    addEventHandler("onClientRender", getRootElement(), CreateMessageRectangle)  -- Keep everything visible with onClientRender. 
    addEventHandler("onClientRender", getRootElement(), SetMessageOnRectangle) 
end 
addEventHandler("onClientResourceStart", resourceRoot, HandleTheRendering) 

The "theMessage" variable (in client-side script) store a nil value everytime. What is wrong?

P.S: the event is triggered. If I do a "tostring(theMessage)", so I see the "nil" text on my rectangle.

Thanks,

Stanley Sathler.

Link to comment

got it:

local x,y = guiGetScreenSize()  -- Get players resolution. 
local playerName = getPlayerName (localPlayer)  -- Get players name. 
local theMessage 
  
function SetMessageOnRectangle() 
    addEventHandler("onClientRender",root, SetMessageOnRectangle) 
    if(not theMessage) then 
        theMessage = "Visit our forum: #FFFFFFhttp://sa-rc.com/forum/" 
    end 
    dxDrawText ( theMessage, x-x+10, y-20, x-20, y-10, tocolor ( 0, 255, 0, 255 ), 1, "default-bold", "center", "center", false, false, false, true, false) -- Create the text. 
end 
  
addEvent("SendMessageToPlayer", true) 
addEventHandler("SendMessageToPlayer",root,function(tM) 
    theMessage = tM 
    setTimer(function() 
        removeEventHandler("onClientRender",root,SetMessageOnRectangle) 
        SetMessageOnRectangle() 
    end,7000,1) 
end) 
  
  
function HandleTheRendering ( ) 
    addEventHandler("onClientRender",root,function() 
        dxDrawRectangle ( x-x, y-30, x, 30, tocolor ( 0, 0, 0, 200 ) ) -- Create our black transparent MOTD background Rectangle. 
    end)  -- Keep everything visible with onClientRender. 
    SetMessageOnRectangle() 
end 
addEventHandler("onClientResourceStart", resourceRoot, HandleTheRendering) 

Took me long though

Link to comment

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