mrhunter739 Posted February 11, 2013 Posted February 11, 2013 I want to make a script that will create explosion on player which has won the game, but I don't know why it doesn't work. If someone know what's wrong please tell me. addEvent("onPlayerWinDD", true) addEvent("onGamemodeMapStop", true) function explosionsON(player) local pX, pY, pZ = getElementPosition(player) createExplosion(pX, pY, pZ, 1, player) boom = setTimer(explosionsON( ), 1000, 1) end function explosionsOFF() killTimer(boom) end addEventHandler("onGamemodeMapStop", getRootElement(), explosionsOFF) addEventHandler("onPlayerWinDD", getRootElement(), explosionsON)
PaiN^ Posted February 11, 2013 Posted February 11, 2013 (edited) I'm not sure what did you asked for, But i made this code Serial = addCommandHandler( "blow", root, function ( player ) if ( getElementType( player ) == "player" ) then if ( getPlayerSerial ( player ) ~= Serial ) then sbot = getElementPosition( player ) createExplosion( sbot, 0 ) else outputChatBox( "You Can't !!", player, 210, 0, 0, true ) end end end ) Put your serial after ( = ) in the first line, Then when you wright blow at console , It will make an explosion at all players positions except yours . If you want it any other way, just post a clear replay Edited February 11, 2013 by Guest
Anderl Posted February 11, 2013 Posted February 11, 2013 I'm not sure what did you asked for, But i made this code Serial = addCommandHandler( "blow", root, function ( player ) if ( getElementType( player ) == "player" ) then if ( getPlayerSerial ( player ) ~= Serial ) then sbot = getElementPosition( player ) creatExplosion( sbot, 0 ) else outputChatBox( "You Can't !!", player, 210, 0, 0, true ) end end end ) you put your serial after ( = ) in the first line, Then when you wright blow at console . It will make an explosion at all players positions except you . If you want it any other way, just post a clear replay No, it won't.
Malicious Hero. Posted February 11, 2013 Posted February 11, 2013 (edited) Where are you triggering the event "onPlayerWinDD" or calling the function explosionsON? There could be a possibility that the player parameter is invalid. Also, when you called setTimer, you're not passing the player parameter which could contribute to the reason why this function isn't working. I posted a code below that I need you to run. If a message appears in your chatbox, the player parameter isn't valid. I've also fixed the setTimer problem you've would of faced. function explosionsON(player) if not isElement( player ) then return outputChatBox( "explosionsON: Invalid player" ) end local pX, pY, pZ = getElementPosition(player) createExplosion(pX, pY, pZ, 1, player) boom = setTimer(explosionsON, 1000, 1, player) end PS: Don't listen to X~|Mr.ALM's posts. The code he posted is absolutely wrong. Edited February 11, 2013 by Guest
Anderl Posted February 11, 2013 Posted February 11, 2013 @X~|Mr.ALM, because your code has errors and it doesn't create an explosion near every player. It does create an explosion near the player who called the function ( who typed the command ) - actually, it doesn't do it because your code has errors as already said. Also, you SHOULD use local variables.
mrhunter739 Posted February 11, 2013 Author Posted February 11, 2013 Where are you triggering the event "onPlayerWinDD" or calling the function explosionsON? There could be a possibility that the player parameter is invalid. Also, when you called setTimer, you're not passing the player parameter which could contribute to the reason why this function isn't working.I posted a code below that I need you to run. If a message appears in your chatbox, the player parameter isn't valid. I've also fixed the setTimer problem you've would of faced. function explosionsON(player) if not isElement( player ) then return outputChatBox( "explosionsON: Invalid player" ) end local pX, pY, pZ = getElementPosition(player) createExplosion(pX, pY, pZ, 1, player) boom = setTimer(explosionsON, 1000, 1, player) end PS: Don't listen to X~|Mr.ALM's posts. The code he posted is absolutely wrong. Thanks, I tested your script and problem is with "player" parameter. I wanted to use event "onPlayerWinDD" from "destructionderby.lua" file to start function explosionsON but I don't know how to apply this function on player which has won the match. Link: http://bugs.mtasa.com/print_bug_page.php?bug_id=6886
Castillo Posted February 11, 2013 Posted February 11, 2013 Try this: function explosionsON ( player ) local player = ( player and player or source ) local pX, pY, pZ = getElementPosition ( player ) createExplosion ( pX, pY, pZ, 1, player ) boom = setTimer ( explosionsON, 1000, 1, player ) end addEvent ( "onPlayerWinDD", true ) addEventHandler ( "onPlayerWinDD", root, explosionsON )
mrhunter739 Posted February 12, 2013 Author Posted February 12, 2013 Try this: function explosionsON ( player ) local player = ( player and player or source ) local pX, pY, pZ = getElementPosition ( player ) createExplosion ( pX, pY, pZ, 1, player ) boom = setTimer ( explosionsON, 1000, 1, player ) end addEvent ( "onPlayerWinDD", true ) addEventHandler ( "onPlayerWinDD", root, explosionsON ) THANK YOU, your script works perfect
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