SetProjectileCounter: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(What example was that? This one isn't that good neither, but I wanted to fix the previous one. Using element index is not good at all, though.)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Client function}}
{{Client function}}
{{Needs_Example}}
Will change the projectile counter timer which depending on the projectile type will do different things:
Will change the projectile counter timer which depending on the projectile type will do different things:
* Rockets and Grenades will explode when it hits 0
* Rockets and Grenades will explode when it hits 0
Line 16: Line 15:
===Returns===
===Returns===
Returns ''true'' on success, ''false'' otherwise.
Returns ''true'' on success, ''false'' otherwise.
===Example===
===Example===
<section name="Client" class="client" show="true">
<section name="Client" class="client" show="true">
With this example you can use /setbombtime to set a delay duration of a projectile explosion.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function bomberf(cmd, player, bombid, duration) -- This will get the arguments of /setbombtime <bombid> <duration in secondes>
function changeProjectileDelay( cmd, bombIndex, duration )
if bombid and duration then -- Checks if the bombid and the duration are avaible.
local bombIndex = tonumber( bombIndex ) or nil
result = setProjectileCounter( bombid, duration * 1000 )-- This will set the bomb requested in bombid counter to the requested duration.
local duration = tonumber( duration ) or nil
if result then -- this checks if the code worked or no.
outputChatBox("Timer of projectile :"..bombid.." set to :"..duration.." secodes")
if ( bombIndex ) and ( duration ) then
end
local found = false
end
 
for index,projectile in ipairs( getElementsByType( "projectile" ) ) do
if ( index == bombIndex ) then
if ( setProjectileCounter( projectile, duration * 1000 ) ) then
outputChatBox( "Projectile (" .. index .. ") detonates in " .. duration .. " seconds.", 0, 255, 0, false )
else
outputChatBox( "Something went wrong when setting the duration.", 255, 0, 0, false )
end
 
found = true
break
end
end
 
if ( not found ) then
outputChatBox( "Projectile with index " .. bombIndex .. " was not found.", 255, 0, 0, false )
end
else
outputChatBox( "SYNTAX: /" .. cmd .. " [bomb index] [duration in seconds]", 220, 180, 0, false )
end
end
end
addCommandHandler("setbombtime", bomberf)-- when player do /setbombtime this will trigger the bombrf function.
addCommandHandler( "setbombtime", changeProjectileDelay )
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>

Revision as of 20:28, 14 August 2014

Will change the projectile counter timer which depending on the projectile type will do different things:

  • Rockets and Grenades will explode when it hits 0
  • Teargas may be a duration timer
  • Satchels restart (we currently assume it doesn't cause an effect)

Syntax

bool setProjectileCounter ( projectile projectile, int timeToDetonate )

Required Arguments

  • projectile: The projectile to edit the timer of.
  • timeToDetonate: The time in milliseconds to detonation.

Returns

Returns true on success, false otherwise.

Example

Click to collapse [-]
Client

With this example you can use /setbombtime to set a delay duration of a projectile explosion.

function changeProjectileDelay( cmd, bombIndex, duration )
	local bombIndex = tonumber( bombIndex ) or nil
	local duration = tonumber( duration ) or nil
	
	if ( bombIndex ) and ( duration ) then
		local found = false

		for index,projectile in ipairs( getElementsByType( "projectile" ) ) do
			if ( index == bombIndex ) then
				if ( setProjectileCounter( projectile, duration * 1000 ) ) then
					outputChatBox( "Projectile (" .. index .. ") detonates in " .. duration .. " seconds.", 0, 255, 0, false )
				else
					outputChatBox( "Something went wrong when setting the duration.", 255, 0, 0, false )
				end

				found = true
				break
			end
		end

		if ( not found ) then
			outputChatBox( "Projectile with index " .. bombIndex .. " was not found.", 255, 0, 0, false )
		end
	else
		outputChatBox( "SYNTAX: /" .. cmd .. " [bomb index] [duration in seconds]", 220, 180, 0, false )
	end
end
addCommandHandler( "setbombtime", changeProjectileDelay )

Requirements

Minimum server version n/a
Minimum client version 1.3.0-9.04555

Note: Using this feature requires the resource to have the above minimum version declared in the meta.xml <min_mta_version> section. e.g. <min_mta_version client="1.3.0-9.04555" />

See Also