CreateExplosion: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(Some fixes)
Line 3: Line 3:


==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">bool createExplosion ( float x, float y, float z, int type, [ player creator ] )</syntaxhighlight>  
<syntaxhighlight lang="lua">
bool createExplosion ( float x, float y, float z, int type, [ player creator ] )
</syntaxhighlight>  


===Required Arguments===  
===Required Arguments===  
*'''x:''' A float value that specifies the X coordinate where the object is spawned at in the [[world]]
*'''x:''' A float value that specifies the X world coordinate where the explosion is created at.
*'''y:''' A float value that specifies the Y coordinate where the object is spawned at in the world
*'''y:''' A float value that specifies the Y world coordinate where the explosion is created at.
*'''z:''' A float value that specifies the Z coordinate where the object is spawned at in the world
*'''z:''' A float value that specifies the Z world coordinate where the explosion is created at.
*'''type:''' A integer specifying the explosion type. Valid types are:
*'''type:''' A integer specifying the explosion type. Valid types are:
{{Explosions}}
{{Explosions}}
===Optional Arguments===
*'''creator:''' The explosion's simulated creator, the [[player]] responsible for it.


===Returns===
===Returns===
Returns ''true'' if the explosion was created, ''false'' if invalid parameters were passed.
Returns ''true'' if the explosion was created, ''false'' if invalid parameters were passed.
===Optional Arguments===
*'''creator:''' The explosion's simulated creator, responsible for it.


==Example==  
==Example==  
'''Example 1:''' This code will create an explosion at the player's position when they spawn.
'''Example 1:''' This code will create an explosion at the player's position when they spawn.
<syntaxhighlight lang="lua">function explosionOnSpawn ( spawnpoint )
<syntaxhighlight lang="lua">function explosionOnSpawn ( )
   createExplosion ( getElementPosition ( source ), 6, source )
   -- get the spawned player's position
  local pX, pY, pZ = getElementPosition ( source )
  -- and create an explosion there, making him the creator
  createExplosion ( pX, pY, pZ, 6, source )
end
end
-- add this function as a handler for any player that spawns
addEventHandler ( "onPlayerSpawn", getRootElement(), explosionOnSpawn )
addEventHandler ( "onPlayerSpawn", getRootElement(), explosionOnSpawn )
</syntaxhighlight>
</syntaxhighlight>


'''Example 2:''' This example allows creation of claymores, which trigger and explode.
'''Example 2:''' This example allows creation of claymore mines, which trigger and explode.
<syntaxhighlight lang="lua">function createClaymore ( x,y,z, creator )
<syntaxhighlight lang="lua">function createClaymore ( creator )
local x,y,z = getElementPosition ( creator )
local x, y, z = getElementPosition ( creator )
local claymoreObject = createObject ( 1945, x, y, z - 1, 0, 0, 90 ) --create an object which looks like a claymore
local claymoreObject = createObject ( 1945, x, y, z - 1, 0, 0, 90 ) --create an object which looks like a claymore
local claymoreCol = createColSphere ( x, y, z, 1 ) --create a col sphere with radius 1
local claymoreCol = createColSphere ( x, y, z, 1 ) --create a collision sphere with radius 1
setElementData ( claymoreCol , "type", "claymore" ) --store the type of colshape so it can be retrieved
setElementData ( claymoreCol , "type", "claymore" ) --store the type of colshape so it can be retrieved
setElementData ( claymoreCol, "object", claymoreObject ) --store the object of the claymore
setElementData ( claymoreCol, "object", claymoreObject ) --store the object of the claymore
Line 36: Line 42:
end
end


function claymoreHit ( player, matchingDimension )
function claymoreHit ( player )
if getElementData ( source, "type" ) == "claymore" then --ensure its a claymore
if getElementData ( source, "type" ) == "claymore" then --ensure its a claymore
--retrieve the object associated to the claymore, and who created it
--retrieve the object associated to the claymore, and who created it
Line 42: Line 48:
local claymoreCreator = getElementData ( source, "creatorPlayer" )
local claymoreCreator = getElementData ( source, "creatorPlayer" )
--get the position of the claymore
--get the position of the claymore
local x,y,z = getElementPosition ( source )
local x, y, z = getElementPosition ( source )
createExplosion ( x,y,z, 12, claymoreCreator ) --create an explosion, associated to the creator, of a small size at the col's position
createExplosion ( x, y, z, 12, claymoreCreator ) --create an explosion, associated to the creator, of a small size at the col's position
--destroy the claymore object, and the col shape so it doesnt trigger again.
--destroy the claymore object, and the col shape so it doesnt trigger again.
destroyElement ( claymoreObject )
destroyElement ( claymoreObject )

Revision as of 15:45, 29 July 2007

Creates an explosion of a certain type at a specified point in the world.

Syntax

bool createExplosion ( float x, float y, float z, int type, [ player creator ] )

Required Arguments

  • x: A float value that specifies the X world coordinate where the explosion is created at.
  • y: A float value that specifies the Y world coordinate where the explosion is created at.
  • z: A float value that specifies the Z world coordinate where the explosion is created at.
  • type: A integer specifying the explosion type. Valid types are:
    • 0: Grenade
    • 1: Molotov
    • 2: Rocket
    • 3: Rocket Weak
    • 4: Car
    • 5: Car Quick
    • 6: Boat
    • 7: Heli
    • 8: Mine
    • 9: Object
    • 10: Tank Grenade
    • 11: Small
    • 12: Tiny


Optional Arguments

  • creator: The explosion's simulated creator, the player responsible for it.

Returns

Returns true if the explosion was created, false if invalid parameters were passed.

Example

Example 1: This code will create an explosion at the player's position when they spawn.

function explosionOnSpawn ( )
  -- get the spawned player's position
  local pX, pY, pZ = getElementPosition ( source )
  -- and create an explosion there, making him the creator
  createExplosion ( pX, pY, pZ, 6, source )
end
-- add this function as a handler for any player that spawns
addEventHandler ( "onPlayerSpawn", getRootElement(), explosionOnSpawn )

Example 2: This example allows creation of claymore mines, which trigger and explode.

function createClaymore ( creator )
	local x, y, z = getElementPosition ( creator )
	local claymoreObject = createObject ( 1945, x, y, z - 1, 0, 0, 90 ) --create an object which looks like a claymore
	local claymoreCol = createColSphere ( x, y, z, 1 ) --create a collision sphere with radius 1
	setElementData ( claymoreCol , "type", "claymore" ) --store the type of colshape so it can be retrieved
	setElementData ( claymoreCol, "object", claymoreObject ) --store the object of the claymore
	setElementData ( claymoreCol, "creatorPlayer", creator ) --store the person who created it
end

function claymoreHit ( player )
	if getElementData ( source, "type" ) == "claymore" then --ensure its a claymore
		--retrieve the object associated to the claymore, and who created it
		local claymoreObject = getElementData ( source, "object" )
		local claymoreCreator = getElementData ( source, "creatorPlayer" )
		--get the position of the claymore
		local x, y, z = getElementPosition ( source )
		createExplosion ( x, y, z, 12, claymoreCreator ) --create an explosion, associated to the creator, of a small size at the col's position
		--destroy the claymore object, and the col shape so it doesnt trigger again.
		destroyElement ( claymoreObject )
		destroyElement ( source )
	end
end
addEventHandler ( "onColShapeHit", getRootElement(), claymoreHit )

See Also