OGF Posted December 7, 2012 Posted December 7, 2012 --client local sWidth,sHeight = guiGetScreenSize() function motdis () local motdt = guiGetText ( motdtxtbox ) triggerServerEvent ( "getdx", root, motdt ) end addEventHandler ( "onClientGUIClick", motdbut, motdis, false ) --server function getdxtxt ( motdt ) if not ( motd == "" ) then for id, player in ipairs ( getElementsByType ( "player" ) ) do triggerClientEvent ( "rendertxt", player, motdt ) end end end addEvent ("getdx",true) addEventHandler("getdx", resourceRoot, getdxtxt) --client function rendertxt (motdt) local sWidth,sHeight = guiGetScreenSize() texts = dxDrawText( motdt, sWidth * 0.456, sHeight * 0.051, sWidth * 0, sHeight * 0,tocolor(255,255,255,195),1.0,"bankgothic","left","top",false,false,false,true) addEventHandler ( "onClientRender", root, rendertxt ) end addEvent("rendertxt",true) addEventHandler("rendertxt", root, rendertxt ) Its kind of like a message of the day thing, so it always stays at the top of players screens. I have tried lots of things now, the problem is, the text actully displays once, but after that, the debugscript spams saying that the first argument in dxDrawText is nil. Im not sure what to do no more.
manve1 Posted December 7, 2012 Posted December 7, 2012 (edited) --client function rendertxt (motdt) local sWidth,sHeight = guiGetScreenSize() addEventHandler('onClientPlayerJoin', getRootElement(), function() addEventHandler('onClientRender', root, function() texts = dxDrawText( motdt, sWidth * 0.456, sHeight * 0.051, sWidth * 0, sHeight * 0,tocolor(255,255,255,195),1.0,"bankgothic","left","top",false,false,false,true) end ) end ) addCommandHandler('remove', function() removeEventHandler('onClientRender', root, rendertxt) end ) end addEvent("rendertxt",true) addEventHandler("rendertxt", root, rendertxt ) try this. Edited December 7, 2012 by Guest Looking for tutorials or information? check out: www.simpleask.co.uk
OGF Posted December 7, 2012 Author Posted December 7, 2012 Wow works good, Forgot about nesting functions with events. Was wondering how I can remove this eventHandler from another function, because if I keep adding text, they overlap. thanks
manve1 Posted December 7, 2012 Posted December 7, 2012 You're Welcome. Looking for tutorials or information? check out: www.simpleask.co.uk
OGF Posted December 7, 2012 Author Posted December 7, 2012 When I try that code it displays nothing, plus no error or nothing, the remove command doesnt seem to work either.
manve1 Posted December 7, 2012 Posted December 7, 2012 its on /remove command Looking for tutorials or information? check out: www.simpleask.co.uk
Castillo Posted December 7, 2012 Posted December 7, 2012 -- client side: local sWidth, sHeight = guiGetScreenSize ( ) function motdis ( ) local motdt = guiGetText ( motdtxtbox ) triggerServerEvent ( "getdx", localPlayer, motdt ) end addEventHandler ( "onClientGUIClick", motdbut, motdis, false ) local motd = "" function rendertxt ( ) dxDrawText ( motd, sWidth * 0.456, sHeight * 0.051, sWidth * 0, sHeight * 0, tocolor ( 255, 255, 255, 195 ), 1.0, "bankgothic", "left", "top", false, false, false, true ) end addEvent ( "rendertxt", true ) addEventHandler ( "rendertxt", root, function ( motdt ) removeEventHandler ( "onClientRender", root, rendertxt ) motd = motdt addEventHandler ( "onClientRender", root, rendertxt ) end ) -- server side: function getdxtxt ( motdt ) if ( not motd ~= "" ) then for _, player in ipairs ( getElementsByType ( "player" ) ) do triggerClientEvent ( player, "rendertxt", player, motdt ) end end end addEvent ( "getdx", true ) addEventHandler ( "getdx", root, getdxtxt ) Should work. San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
OGF Posted December 7, 2012 Author Posted December 7, 2012 ah ok works good now thanks, the one other thing i cant get is if a new player joins or someone reconnects the text will disappear to them. also if the player who displayed the message leaves, then the message will disappear for everyone on the server, I know its onClientPlayerJoin, do I maybe need to make an invisible edit and set text to that server sided? so when someone joins , get that text?
OGF Posted December 8, 2012 Author Posted December 8, 2012 Double Post, but I decided to use the fileOpen fileCreate etc etc, thanks guys, all good now.
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