Stanley Sathler Posted May 18, 2012 Share Posted May 18, 2012 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
Jaysds1 Posted May 19, 2012 Share Posted May 19, 2012 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
Stanley Sathler Posted May 19, 2012 Author Share Posted May 19, 2012 Ohhhh, I love you Jaysds. It's working now. *-* Thank you so much for the attention man. 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