Hamilton Posted June 16, 2012 Share 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) Link to comment
micheal1230 Posted June 16, 2012 Share 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) Link to comment
micheal1230 Posted June 16, 2012 Share 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 Link to comment
Castillo Posted June 16, 2012 Share 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 ) Link to comment
micheal1230 Posted June 16, 2012 Share 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 Link to comment
Hamilton Posted June 16, 2012 Author Share 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 ) Link to comment
Castillo Posted June 16, 2012 Share Posted June 16, 2012 Is a server side script, and you set it as client side ( type="client", must be type="server" ). Link to comment
Castillo Posted June 16, 2012 Share 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. Link to comment
Hamilton Posted June 16, 2012 Author Share 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 ) Link to comment
micheal1230 Posted June 16, 2012 Share 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 Link to comment
Castillo Posted June 16, 2012 Share 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 ) Link to comment
Hamilton Posted June 16, 2012 Author Share 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 ) Link to comment
Castillo Posted June 16, 2012 Share 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 ) Link to comment
Castillo Posted June 16, 2012 Share Posted June 16, 2012 That should create the text every 15 seconds if it doesn't exist already. Link to comment
Hamilton Posted June 16, 2012 Author Share Posted June 16, 2012 It doesn't. It just creates it 1 time then it dissapears and it wont create it again. Link to comment
Castillo Posted June 16, 2012 Share 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. Link to comment
Hamilton Posted June 16, 2012 Author Share 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? Link to comment
Castillo Posted June 16, 2012 Share Posted June 16, 2012 Make a table and a index variable, update it each time: "MyTestTextFunction" function is executed and get the new text. Link to comment
Castillo Posted June 16, 2012 Share Posted June 16, 2012 http://lua-users.org/wiki/TablesTutorial Link to comment
Hamilton Posted June 17, 2012 Author Share 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 '' Link to comment
Castillo Posted June 17, 2012 Share 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'. 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