SetProjectileCounter: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(needs example)
(Remove obsolete Requirements section)
 
(4 intermediate revisions by 4 users not shown)
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
* Teargas may be a duration timer
* Teargas may be a duration timer
* Satchels restart (we currently assume it doesn't cause an effect)
* Satchels restart (we currently assume it doesn't cause an effect)
* Molotov will explode with search ground level when it hits 0


==Syntax==
==Syntax==
<syntaxhighlight lang="lua">bool setProjectileCounter ( projectile projectile, int timeToDetonate )</syntaxhighlight>
<syntaxhighlight lang="lua">bool setProjectileCounter ( projectile projectile, int timeToDetonate )</syntaxhighlight>
{{OOP||[[projectile]]:setCounter|counter|getProjectileCounter}}


===Required Arguments===
===Required Arguments===
Line 17: Line 18:
Returns ''true'' on success, ''false'' otherwise.
Returns ''true'' on success, ''false'' otherwise.


==Requirements==
===Example===
{{Requirements|n/a|1.3.0-9.04555|}}
<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">
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 )
</syntaxhighlight>
</section>


==See Also==
==See Also==
{{Client projectile functions}}
{{Client projectile functions}}

Latest revision as of 17:07, 7 November 2024

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)
  • Molotov will explode with search ground level when it hits 0

Syntax

bool setProjectileCounter ( projectile projectile, int timeToDetonate )

OOP Syntax Help! I don't understand this!

Method: projectile:setCounter(...)
Variable: .counter
Counterpart: getProjectileCounter


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 )

See Also