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.)
(Added OOP syntax)
Line 8: Line 8:
==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===

Revision as of 17:43, 26 November 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 )

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 )

Requirements

This template will be deleted.

See Also