niemi Posted October 17, 2008 Posted October 17, 2008 Why this isn't working? I got no errors but the gui doesnt exist. when i type /gui nothing happens, i don't get any errors. In /debugscript 3 or in serverconsole. function createWindow ( thePlayer ) guiCreateWindow(45,85,630,492,"test",false) guiCreateEdit(0.0444,0.065,0.9302,0.9065,"",true) end addCommandHandler ( "gui", createWindow, thePlayer ) And here is meta.xml... <meta> <info author="Niemi" type="script" name="gui" description="sssa" /> <script src="gui.lua" type="client" /> </meta>
Brophy Posted October 17, 2008 Posted October 17, 2008 function createWindow () guiWindow = guiCreateWindow ( 45, 85, 630, 492, "test", false ) guiEditBox = guiCreateEdit ( 0.0444, 0.065, 0.9302, 0.9065, "", true, guiWindow ) end addCommandHandler ( "gui", createWindow ) Try this, however its not really good to create it everytime you type gui, you should create your window onClientResourceStart and just set the guiSetVisible true / false with your command handler
niemi Posted October 17, 2008 Author Posted October 17, 2008 function createExplosion ( source, commandName ) local pX, pY, pZ = getElementPosition ( source ) createExplosion ( pX + 5, pY + 5, pZ, 6 ) setTimer ( createExplosion, 1000, 1 ) end addCommandHandler ( "ce", createExplosion, getRootElement(), source ) This is the error i get: [23:10:47] WARNING: lol.lua: Bad argument @ 'getElementPosition' - Line: 3 [23:10:47] ERROR: ...erver/mods/deathmatch/resources/NiemisGM/lol.lua:4: attempt to perform arithmetic on local 'pX' (a boolean value) if i take those +5 off, like this: function createExplosion ( source, commandName ) local pX, pY, pZ = getElementPosition ( source ) createExplosion ( pX, pY, pZ, 6 ) setTimer ( createExplosion, 1000, 1 ) end addCommandHandler ( "ce", createExplosion, getRootElement(), source ) I get this error: [23:12:57] WARNING: lol.lua: Bad argument @ 'getElementPosition' - Line: 3 [23:12:57] ERROR: ...erver/mods/deathmatch/resources/NiemisGM/lol.lua:3: stack overflow
Willy Posted October 17, 2008 Posted October 17, 2008 for your addCommandHandlers all you need is this: addCommandHandler ( "ce", createExplosion ) you don't need the "getRootElement(), source" bits
darkdreamingdan Posted October 18, 2008 Posted October 18, 2008 Sounds like you're using the serverside syntax on a clientside script. It should be noted that in the clientside variant there isnt a first argument. Be sure to read http://development.mtasa.com/index.php? ... andHandler fully. Its clear to me you arent understanding the function arguments because you're passing more than 2 args (with the exception of restritced) Try this: function createExplosion ( commandName ) local pX, pY, pZ = getElementPosition ( getLocalPlayer() ) createExplosion ( pX + 5, pY + 5, pZ, 6 ) setTimer ( createExplosion, 1000, 1 ) end addCommandHandler ( "ce", createExplosion )
[UVA]Bart Posted October 19, 2008 Posted October 19, 2008 niemi in your code you use getElementPosition ( source ) the source can only be used server side, to find the position of a player client side use getElementPosition ( getLocalPlayer() ) talidan has allready corrected it but a thought a would explain it cause am bored lol
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