CreateProjectile: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(26 intermediate revisions by 16 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | |||
{{Client function}} | |||
This function creates a projectile of the specified type on the specified coordinates. | |||
{{Note| | |||
*'''Model''' argument is not synchronized between clients. Clients differs from local player see always standard projectile model. | |||
*'''Target''' argument can only be defined as a player or another projectile. | |||
}} | |||
==Syntax== | ==Syntax== | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
projectile createProjectile ( element creator, int weaponType [, float posX, float posY, float posZ, float force = 1.0, element target = nil, float rotX, float rotY, float rotZ, float velX, float velY, float velZ, int model ] ) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
{{OOP||[[Projectile]]}} | |||
===Required Arguments=== | |||
*'''creator:''' The [[element]] representing creator of the projectile. In case you want the projectile to be synced for everybody creator must be the local player or his vehicle. | |||
*'''weaponType:''' [[int]] representing the projectile weaponType (characteristics). Valid IDs are: | |||
{{Projectiles}} | |||
===Optional Arguments=== | |||
{{OptionalArg}} | |||
*'''posX''', '''posY''', '''posZ''': [[float]] starting coordinates for the projectile. They are coordinates of creator by default. | |||
*'''force''': [[float]] representing the starting force for throwable projectiles. | |||
*'''target''': [[element]] target used for heat seeking rockets. | |||
*'''rotX''', '''rotY''', '''rotZ''': [[float]] starting rotation for the projectile. | |||
*'''velX''', '''velY''', '''velZ''': [[float]] starting velocity for the projectile. | |||
*'''model''': Integer representing the projectile's model, uses default model for weaponType if not specified. | |||
==Returns== | |||
Returns a ''[[projectile]]'' element if [[projectile]] creation was successful. Returns ''false'' if unable to create a [[projectile]] (wrong weapon ID or projectiles limit was reached). | |||
==Example== | |||
This example makes a rocket minigun (minigun shooting with rockets). | |||
<syntaxhighlight lang="lua"> | |||
-- This function gets triggered everytime player shoots. | |||
function onClientPlayerWeaponFireFunc(weapon,ammo,ammoInClip,hitX,hitY,hitZ,hitElement) | |||
if weapon == 38 then -- if source is a local player and he uses minigun... | |||
x,y,z = getElementPosition(getLocalPlayer()) | |||
if not createProjectile(getLocalPlayer(),19,x,y,z,200) then -- then we either create a projectile... | |||
outputChatBox ( "Rocket minigun overheated! Give it a rest pal!", source ) -- or if projectile limit is reached we output player a chat message | |||
end | |||
end | |||
end | |||
-- Don't forget to add the onClientPlayerWeaponFireFunc function as a handler for onClientPlayerWeaponFire. | |||
addEventHandler("onClientPlayerWeaponFire", getLocalPlayer(), onClientPlayerWeaponFireFunc) | |||
</syntaxhighlight> | |||
This example code shoots a projectile from your occupied vehicle that travels in the direction your vehicle is facing when you press vehicle_fire (left mouse button with default controls) | |||
<syntaxhighlight lang="lua"> | |||
function shootProjectile() | |||
local vehicle = getPedOccupiedVehicle(localPlayer) | |||
-- Only create projectile if we are inside a vehicle | |||
if(vehicle)then | |||
local x, y, z = getElementPosition(vehicle) | |||
createProjectile(vehicle, 19, x, y, z) | |||
end | |||
end | |||
bindKey("vehicle_fire", "down", shootProjectile) | |||
</syntaxhighlight> | |||
==Issues== | |||
{{Issues| | |||
{{Issue|8132|Projectile target only allows player element (and a projectile?)}} | |||
{{Issue|5072|createProjectile creates one projectile for every person in the vehicle}} | |||
}} | |||
==See also== | |||
{{Client projectile functions}} | |||
[[it:createProjectile]] |
Revision as of 20:02, 23 February 2015
This function creates a projectile of the specified type on the specified coordinates.
Note:
|
Syntax
projectile createProjectile ( element creator, int weaponType [, float posX, float posY, float posZ, float force = 1.0, element target = nil, float rotX, float rotY, float rotZ, float velX, float velY, float velZ, int model ] )
OOP Syntax Help! I don't understand this!
- Method: Projectile(...)
Required Arguments
- creator: The element representing creator of the projectile. In case you want the projectile to be synced for everybody creator must be the local player or his vehicle.
- weaponType: int representing the projectile weaponType (characteristics). Valid IDs are:
ID | Name/Description |
---|---|
16 | Grenade |
17 | Tear Gas Grenade |
18 | Molotov |
19 | Rocket (simple) |
20 | Rocket (heat seeking) |
21 | Air Bomb |
39 | Satchel Charge |
58 | Hydra flare |
Optional Arguments
NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.
- posX, posY, posZ: float starting coordinates for the projectile. They are coordinates of creator by default.
- force: float representing the starting force for throwable projectiles.
- target: element target used for heat seeking rockets.
- rotX, rotY, rotZ: float starting rotation for the projectile.
- velX, velY, velZ: float starting velocity for the projectile.
- model: Integer representing the projectile's model, uses default model for weaponType if not specified.
Returns
Returns a projectile element if projectile creation was successful. Returns false if unable to create a projectile (wrong weapon ID or projectiles limit was reached).
Example
This example makes a rocket minigun (minigun shooting with rockets).
-- This function gets triggered everytime player shoots. function onClientPlayerWeaponFireFunc(weapon,ammo,ammoInClip,hitX,hitY,hitZ,hitElement) if weapon == 38 then -- if source is a local player and he uses minigun... x,y,z = getElementPosition(getLocalPlayer()) if not createProjectile(getLocalPlayer(),19,x,y,z,200) then -- then we either create a projectile... outputChatBox ( "Rocket minigun overheated! Give it a rest pal!", source ) -- or if projectile limit is reached we output player a chat message end end end -- Don't forget to add the onClientPlayerWeaponFireFunc function as a handler for onClientPlayerWeaponFire. addEventHandler("onClientPlayerWeaponFire", getLocalPlayer(), onClientPlayerWeaponFireFunc)
This example code shoots a projectile from your occupied vehicle that travels in the direction your vehicle is facing when you press vehicle_fire (left mouse button with default controls)
function shootProjectile() local vehicle = getPedOccupiedVehicle(localPlayer) -- Only create projectile if we are inside a vehicle if(vehicle)then local x, y, z = getElementPosition(vehicle) createProjectile(vehicle, 19, x, y, z) end end bindKey("vehicle_fire", "down", shootProjectile)
Issues
Issue ID | Description |
---|---|
#8132 | Projectile target only allows player element (and a projectile?) |
#5072 | createProjectile creates one projectile for every person in the vehicle |
See also
- createProjectile
- getProjectileCounter
- getProjectileCreator
- getProjectileForce
- getProjectileTarget
- getProjectileType
- setProjectileCounter
Shared