Perfect Posted April 17, 2014 Share Posted April 17, 2014 Hi all, I am back to MTA after long time. I am trying to refresh my scripting skills. I make a simple script which will create an explosion at player, which will not damage him/her. But Somehow Players are getting damage. Here is my script, function des ( player ) local pX, pY, pZ = getElementPosition ( player ) createExplosion ( pX, pY, pZ, 6, true, -1.0, false ) end addCommandHandler ( "Boom", des ) Link to comment
tosfera Posted April 17, 2014 Share Posted April 17, 2014 Using the function will damage the player, if you don't want them to get damaged you should cancel the onPlayerDamage or onClientPlayerDamage whenever it is an explosion. Please note that exploding vehicles, grenades, RPG's and such will not work anymore too. Link to comment
Castillo Posted April 17, 2014 Share Posted April 17, 2014 The damage argument only works for client side explosions. Link to comment
Perfect Posted April 17, 2014 Author Share Posted April 17, 2014 Using the function will damage the player, if you don't want them to get damaged you should cancel the onPlayerDamage or onClientPlayerDamage whenever it is an explosion. Please note that exploding vehicles, grenades, RPG's and such will not work anymore too. I can't get an idea on how to do that! The damage argument only works for client side explosions. Well, I changed my script to client (in meta) but when i did that there is no explosion at all. Link to comment
tosfera Posted April 17, 2014 Share Posted April 17, 2014 addEventHandler ( "onClientPlayerDamage", root, function ( theWeapon ) if ( theWeapon == 16 ) then -- if it's an grenade, just for an example. cancelEvent(); end end ); After that, change the 6 in your explosion to 0 Link to comment
Castillo Posted April 17, 2014 Share Posted April 17, 2014 If you are using that same code in the client side, it won't work, because addCommandHandler has no player argument client side, use "localPlayer" instead at getElementPosition. Link to comment
-.Paradox.- Posted April 17, 2014 Share Posted April 17, 2014 Try this: function des() local x,y,z = getElementPosition ( source ) createExplosion ( x, y, z - 0.2, 2, false, true, false ) end addCommandHandler ( "Boom", des ) Link to comment
-.Paradox.- Posted April 17, 2014 Share Posted April 17, 2014 function des() local x,y,z = getElementPosition ( localPlayer ) createExplosion(x, y, z, 0, true, -1.0, false) end addCommandHandler ( "Boom", des ) Link to comment
Perfect Posted April 17, 2014 Author Share Posted April 17, 2014 Thanks Solidsnake, got it working! And Tosfera and Niko, I also really appreciate you both guys Help!! 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