Explode (piece) that can be given a direction/speed

Explode (piece) that can be given a direction/speed

Discuss Lua based Spring scripts (LuaUI widgets, mission scripts, gaia scripts, mod-rules scripts, scripted keybindings, etc...)

Moderator: Moderators

Post Reply
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Explode (piece) that can be given a direction/speed

Post by knorke »

Usually Explode (piece) makes the piece fly of in some lame random direction.
From
void CUnitScript::Explode(int piece, int flags)
0.5f-gs->randFloat()) * 6.0f, 1.2f + gs->randFloat() * 5.0f, (0.5f - gs->randFloat()) * 6.0f

But the speed of the unit is also factored in and thus if you change unitspeed via MoveCtrl, you can basically direct what speed/direction the pieces fly:

Image

Image

Code: Select all

function headExplodeTest ()	
	local speed = 100
	local x,y,z=Spring.GetUnitPosition (unitID) --needed so unit does not bounce all over the place
	while (true) do
		for a = 1, 360, 10 do
			xs = math.sin (math.rad(a)) * speed
			zs = math.cos (math.rad(a)) * speed
			Spring.MoveCtrl.Enable (unitID)
			Spring.MoveCtrl.SetPhysics  (unitID, x,y,z, 
			xs, 0, zs,
			0, 0, 0)		
			Explode (head, SFX.FALL)
			--Spring.MoveCtrl.Disable (unitID) --doesnt seem to work
			Sleep (100)
		end
	end
end
Problem is, changing unit speed makes it go into that direction because physics. So atm I only got it to work with unmobile units, but eg for death animations it should be ok with mobile units. (dead units dont move unless journeywar)
Also works with SHATTER btw, the shards fly off in the same direction.
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Re: Explode (piece) that can be given a direction/speed

Post by Kloot »

1)

Code: Select all

class CPieceProjectile: public CProjectile
2) http://springrts.com/wiki/Lua_SyncedCtrl#Projectiles
3) ???
4) profit!
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: Explode (piece) that can be given a direction/speed

Post by knorke »

oh.
But to get a projectileID I need to enable WatchProjectile/Weapon (or whats it called) and I thought that was expensive?
Also what is the projectile/weapon DefID for exploded unit pieces?
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Re: Explode (piece) that can be given a direction/speed

Post by Kloot »

But to get a projectileID I need to enable WatchProjectile/Weapon (or whats it called) and I thought that was expensive?
To get piece projectile ID's you don't, because a certain developer has not yet added a watch-filter for them.
Also what is the projectile/weapon DefID for exploded unit pieces?
nil
User avatar
knorke
Posts: 7971
Joined: 22 Feb 2006, 01:02

Re: Explode (piece) that can be given a direction/speed

Post by knorke »

proOwnerID seems to be unitID and GetProjectileName is the piece name. (was afraid that it would be nil or something silly)
cool cool except now it is almost too easy.
Post Reply

Return to “Lua Scripts”