Hamilton Posted June 16, 2012 Posted June 16, 2012 I want this to show for everyplayer when the resource starts but it wont work Help is apricciated! Here is the code: function MyTestTextFunction () display = textCreateDisplay () -- create a new display, store the reference in a variable called display textDisplayAddObserver ( display, thePlayer ) -- add an observer to it text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler("onResourceStart", getRootElement(), MyTestTextFunction)
micheal1230 Posted June 16, 2012 Posted June 16, 2012 I want this to show for everyplayer when the resource starts but it wont work Help is apricciated!Here is the code: function MyTestTextFunction () display = textCreateDisplay () -- create a new display, store the reference in a variable called display textDisplayAddObserver ( display, thePlayer ) -- add an observer to it text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler("onResourceStart", getRootElement(), MyTestTextFunction) Please Use <div class="lua" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li></ol></div> instead of Code function MyTestTextFunction () display = textCreateDisplay () -- create a new display, store the reference in a variable called display textDisplayAddObserver ( display, thePlayer ) -- add an observer to it text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler("onResourceStart", getRootElement(), MyTestTextFunction)
micheal1230 Posted June 16, 2012 Posted June 16, 2012 I want this to show for everyplayer when the resource starts but it wont work Help is apricciated!Here is the code: function MyTestTextFunction () display = textCreateDisplay () -- create a new display, store the reference in a variable called display textDisplayAddObserver ( display, thePlayer ) -- add an observer to it text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler("onResourceStart", getRootElement(), MyTestTextFunction) function MyTestTextFunction () display = textCreateDisplay () -- create a new display, store the reference in a variable called display textDisplayAddObserver ( display, root ) -- add an observer to it text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler("onResourceStart", root, MyTestTextFunction) Copy That ^ Above
Castillo Posted June 16, 2012 Posted June 16, 2012 function MyTestTextFunction ( ) display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction )
micheal1230 Posted June 16, 2012 Posted June 16, 2012 I want this to show for everyplayer when the resource starts but it wont work Help is apricciated!Here is the code: function MyTestTextFunction () display = textCreateDisplay () -- create a new display, store the reference in a variable called display textDisplayAddObserver ( display, thePlayer ) -- add an observer to it text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler("onResourceStart", getRootElement(), MyTestTextFunction) function MyTestTextFunction () display = textCreateDisplay () -- create a new display, store the reference in a variable called display textDisplayAddObserver ( display, root ) -- add an observer to it text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler("onResourceStart", root, MyTestTextFunction) Copy That ^ Above local settehcolor = tocolor(255, 255, 255, 255) function start() addEventHandler("onClientRender", root, dxthetext) end addEventHandler("onClientResourceStart", root, start) function dxthetext() local screenWidth, screenHeight = guiGetScreenSize() local ax, ay = screenWidth 500, 300 dxDrawText("Hello World!", ax,ay,500,300,settehcolor,4) end The Script MUST Be Clientside In the meta.xml
Hamilton Posted June 16, 2012 Author Posted June 16, 2012 Still not working I want it to create a text in the screen for all the players when the resource starts. Here is the Script file code and the Meta code: Meta.xml: "Hamilton" type="script" name="Notice" /> notice.lua: function MyTestTextFunction ( ) display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction )
Castillo Posted June 16, 2012 Posted June 16, 2012 Is a server side script, and you set it as client side ( type="client", must be type="server" ).
Castillo Posted June 16, 2012 Posted June 16, 2012 It's working, just in a wrong position I think, I removed this: "low", 255, 0, 0, 0, 1.0 and it worked.
Hamilton Posted June 16, 2012 Author Posted June 16, 2012 Good, that worked but now I got another problem I want it to destroy after 5 seconds Here is the script: function MyTestTextFunction ( ) display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text = textCreateTextItem ( "Hello World", 0.5, 0.5 ) -- create a text item textItemSetScale ( text, 2.0) textDisplayAddText ( display, text ) -- Add the text item to the text display textDestroyTextItem ( text ) setTimer ( textDestroyTextItem, 5000, 1 ) end addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction )
micheal1230 Posted June 16, 2012 Posted June 16, 2012 Still not working I want it to create a text in the screen for all the players when the resource starts. Here is the Script file code and the Meta code: Meta.xml: "Hamilton" type="script" name="Notice" /> notice.lua: function MyTestTextFunction ( ) display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text = textCreateTextItem ( "Hello World", 0.5, 0.5, "low", 255, 0, 0, 0, 1.0 ) -- create a text item textDisplayAddText ( display, text ) -- Add the text item to the text display end addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction ) Use This local settehcolor = tocolor(255, 255, 255, 255) function start() addEventHandler("onClientRender", root, dxthetext) end addEventHandler("onClientResourceStart", root, start) function dxthetext() local screenWidth, screenHeight = guiGetScreenSize() local ax, ay = screenWidth 500, 300 dxDrawText("Hello World!", ax,ay,500,300,settehcolor,4) end
Castillo Posted June 16, 2012 Posted June 16, 2012 Good, that workedbut now I got another problem I want it to destroy after 5 seconds Here is the script: function MyTestTextFunction ( ) display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text = textCreateTextItem ( "Hello World", 0.5, 0.5 ) -- create a text item textItemSetScale ( text, 2.0) textDisplayAddText ( display, text ) -- Add the text item to the text display textDestroyTextItem ( text ) setTimer ( textDestroyTextItem, 5000, 1 ) end addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction ) Well, if you don't give him the text to destroy, that won't work, also you're destroying it just after being created. function MyTestTextFunction ( ) display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text = textCreateTextItem ( "Hello World", 0.5, 0.5 ) -- create a text item textItemSetScale ( text, 2.0) textDisplayAddText ( display, text ) -- Add the text item to the text display setTimer ( textDestroyTextItem, 5000, 1, text ) end addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction )
Hamilton Posted June 16, 2012 Author Posted June 16, 2012 ]Working But now I got 1 more problem... I want the text to remake itself after a certain amount of time. I thought it would work the way I did it but It wont Here is the code, whats wrong?: function MyTestTextFunction ( ) display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text = textCreateTextItem ( "Report all the bugs you find with /report.", 0.01, 0.20 ) -- create a text item textItemSetScale ( text, 1.5) textDisplayAddText ( display, text ) -- Add the text item to the text display setTimer ( textCreateTextItem, 15000, 0, text ) setTimer ( textDestroyTextItem, 20000, 1, text ) end addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction )
Castillo Posted June 16, 2012 Posted June 16, 2012 function MyTestTextFunction ( ) if ( not text ) then display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text = textCreateTextItem ( "Report all the bugs you find with /report.", 0.01, 0.20 ) -- create a text item textItemSetScale ( text, 1.5) textDisplayAddText ( display, text ) -- Add the text item to the text display setTimer ( textDestroyTextItem, 20000, 1, text ) end end setTimer ( MyTestTextFunction, 15000, 0 ) addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction )
Castillo Posted June 16, 2012 Posted June 16, 2012 That should create the text every 15 seconds if it doesn't exist already.
Hamilton Posted June 16, 2012 Author Posted June 16, 2012 It doesn't. It just creates it 1 time then it dissapears and it wont create it again.
Castillo Posted June 16, 2012 Posted June 16, 2012 function MyTestTextFunction ( ) if ( not text ) then display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text = textCreateTextItem ( "Report all the bugs you find with /report.", 0.01, 0.20 ) -- create a text item textItemSetScale ( text, 1.5) textDisplayAddText ( display, text ) -- Add the text item to the text display setTimer ( function ( ) textDestroyTextItem ( text ) text = nil end ,20000, 1 ) end end setTimer ( MyTestTextFunction, 15000, 0 ) addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction ) Seems like: "textDestroyTextItem" doesn't remove the element, now it works.
Hamilton Posted June 16, 2012 Author Posted June 16, 2012 Thank you Castillo! Just 1 question, how do I make many different messages show? I've got 1 message now, is it possible to make like a table where I can add messages and then when 1 message have been sent it will send the next one?
Castillo Posted June 16, 2012 Posted June 16, 2012 Make a table and a index variable, update it each time: "MyTestTextFunction" function is executed and get the new text.
Hamilton Posted June 17, 2012 Author Posted June 17, 2012 Why is this not working? Please help me. function MyTestTextFunction ( ) if ( not text01 ) then display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text01 = textCreateTextItem ( "Report all the bugs you find with /report.", 0.01, 0.20 ) -- create a text item text02 = textCreateTextItem ( "Some text", 0.01, 0.20 ) -- create a text item text03 = textCreateTextItem ( "Some text", 0.01, 0.20 ) -- create a text item textItemSetScale ( text01, 1.5) textItemSetScale ( text02, 1.5) textItemSetScale ( text03, 1.5) any = math.random(1,3) if (any == 1) then textDisplayAddText ( display, text01 ) -- Add the text item to the text display setTimer ( function ( ) textDestroyTextItem ( text01 ) text01 = nil end ,20000, 1 ) elseif (any == 2) then textDisplayAddText ( display, text02 ) -- Add the text item to the text display setTimer ( function ( ) textDestroyTextItem ( text02 ) text02 = nil end ,20000, 1 ) elseif (any == 3) then textDisplayAddText ( display, text03 ) -- Add the text item to the text display setTimer ( function ( ) textDestroyTextItem ( text03 ) text03 = nil end ,20000, 1 ) end end setTimer ( MyTestTextFunction, 15000, 0 ) addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction ) Error message: WARNING: Loading script failed: notice\notice.lua:49: 'end' expected (to close 'function' at line 1) near ''
Castillo Posted June 17, 2012 Posted June 17, 2012 function MyTestTextFunction ( ) if ( not text01 ) then display = textCreateDisplay ( ) -- create a new display, store the reference in a variable called display for index, player in ipairs ( getElementsByType ( "player" ) ) do textDisplayAddObserver ( display, player ) -- add an observer to it end text01 = textCreateTextItem ( "Report all the bugs you find with /report.", 0.01, 0.20 ) -- create a text item text02 = textCreateTextItem ( "Some text", 0.01, 0.20 ) -- create a text item text03 = textCreateTextItem ( "Some text", 0.01, 0.20 ) -- create a text item textItemSetScale ( text01, 1.5) textItemSetScale ( text02, 1.5) textItemSetScale ( text03, 1.5) local any = math.random ( 1, 3 ) if ( any == 1 ) then textDisplayAddText ( display, text01 ) -- Add the text item to the text display setTimer ( function ( ) textDestroyTextItem ( text01 ) text01 = nil end ,20000, 1 ) elseif ( any == 2 ) then textDisplayAddText ( display, text02 ) -- Add the text item to the text display setTimer ( function ( ) textDestroyTextItem ( text02 ) text02 = nil end ,20000, 1 ) elseif ( any == 3 ) then textDisplayAddText ( display, text03 ) -- Add the text item to the text display setTimer ( function ( ) textDestroyTextItem ( text03 ) text03 = nil end ,20000, 1 ) end end end setTimer ( MyTestTextFunction, 15000, 0 ) addEventHandler ( "onResourceStart", resourceRoot, MyTestTextFunction ) You had a missing 'end'.
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