Author |
Message |
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
|
Raining bombs via grenade
I'm trying to create a flare which when destroyed makes bombs fall where it was. The code is not working, so I wanted to ask for help. Code: function Update(self) self.StoreX = self.Pos.X self.RotAngle = 0 self.bombVar = 1 end function Destroy(self) self.bombTime = Timer(); self.bombingTime = Timer();
if self.bombVar == 1 then if self.bombingTime:IsPastSimMS(500) then self.bomb = CreateTDExplosive("Anti-Bunker Bomb"); self.bomb:Activate() MovableMan:AddItem(self.bomb); self.bomb.Pos = Vector(self.StoreX,-20); self.bombingTime:Reset(); end end if self.bombTime:IsPastSimMS(5000) then self.bombVar = 0 end end I'm not good at lua, but I'm not bad either, but this code is kicking my ass.
|
Sat Feb 05, 2011 2:22 am |
|
|
akblabla
Joined: Wed May 20, 2009 3:10 pm Posts: 366 Location: Ã…rhus, Denmark
|
Re: Raining bombs via grenade
Destroy self only runs once, so it can't spawn bombs after a couple of secs. The way you want to do is by making a new object with the bomb spawning script which you spawn when the flare is destroyed. Hope it helps.
|
Sat Feb 05, 2011 10:55 am |
|
|
Dylanhutch
Joined: Sun Apr 25, 2010 12:04 am Posts: 303 Location: Australia
|
Re: Raining bombs via grenade
Asklar wrote: I'm trying to create a flare which when destroyed makes bombs fall where it was. The code is not working, so I wanted to ask for help. *Code* I'm not good at lua, but I'm not bad either, but this code is kicking my ass. Code: function Update(self) self.StoreX = self.Pos.X self.RotAngle = 0 self.bombVar = 1 if self.bombVar == 1 then if self.bombingTime:IsPastSimMS(500) then self.bomb = CreateTDExplosive("Anti-Bunker Bomb"); self.bomb:Activate() MovableMan:AddItem(self.bomb); self.bomb.Pos = Vector(self.StoreX,-20); self.bombingTime:Reset(); end end if self.bombTime:IsPastSimMS(5000) then self.bombVar = 0 end end
function Destroy(self) self.bombTime = Timer(); self.bombingTime = Timer(); end
?
|
Sat Feb 05, 2011 11:24 am |
|
|
Abdul Alhazred
DRL Developer
Joined: Tue Aug 11, 2009 5:09 am Posts: 395
|
Re: Raining bombs via grenade
I recommend spawning an object with the grenade that in turn spawn the bombs. This code is attached to the grenade: Code: function Update(self) if self.ToDelete then local BombSpawn = CreateMOPixel("Bomb Spawn", "ModName.rte") BombSpawn.Pos = Vector(self.Pos.X, -50) MovableMan:AddParticle(BombSpawn) end end This to a MOPixel with GlobalAccScalar = 0 called "Bomb Spawn": Code: function Create(self) self.SpawnTime = Timer() end
function Update(self) if self.SpawnTime:IsPastSimMS(500) then self.SpawnTime:Reset() local Bomb = CreateTDExplosive("Anti-Bunker Bomb", "ModName.rte") Bomb.Pos = self.Pos + Vector(RangeRand(-50, 50), 0) Bomb:Activate() MovableMan:AddParticle(Bomb) end end The number of bombs dropped is regulated by the MOPixel's life time. Note that this code has not been tested.
|
Sat Feb 05, 2011 2:58 pm |
|
|
411570N3
Joined: Wed Jan 07, 2009 10:26 am Posts: 4074 Location: That quaint little British colony down south
|
Re: Raining bombs via grenade
Abdul Alhazred wrote: Note that this code has not been tested. On an Abdul Alhazred script of this size, you will probably be wanting to just chuck it in to the game rather than attempt to proof-read it.
|
Sat Feb 05, 2011 3:18 pm |
|
|
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
|
Re: Raining bombs via grenade
Abdul Alhazred wrote: I recommend spawning an object with the grenade that in turn spawn the bombs. This code is attached to the grenade: Code: function Update(self) if self.ToDelete then local BombSpawn = CreateMOPixel("Bomb Spawn", "ModName.rte") BombSpawn.Pos = Vector(self.Pos.X, -50) MovableMan:AddParticle(BombSpawn) end end This to a MOPixel with GlobalAccScalar = 0 called "Bomb Spawn": Code: function Create(self) self.SpawnTime = Timer() end
function Update(self) if self.SpawnTime:IsPastSimMS(500) then self.SpawnTime:Reset() local Bomb = CreateTDExplosive("Anti-Bunker Bomb", "ModName.rte") Bomb.Pos = self.Pos + Vector(RangeRand(-50, 50), 0) Bomb:Activate() MovableMan:AddParticle(Bomb) end end The number of bombs dropped is regulated by the MOPixel's life time. Note that this code has not been tested. And if instead of using 2 codes, I just use the second and attach it to a MOPixel gib with PinStrength = 9999? EDIT: Alright, what I said worked. I attached it to a MOPixel gib with PinStrength = 9999, and it works perfect.
Last edited by Asklar on Sat Feb 05, 2011 10:15 pm, edited 1 time in total.
|
Sat Feb 05, 2011 10:10 pm |
|
|
Coops
Joined: Wed Feb 17, 2010 12:07 am Posts: 1545 Location: That small peaceful place called Hell.
|
Re: Raining bombs via grenade
We already went over this before. Its a different way of making them spawn, but same concept. viewtopic.php?f=73&t=20848
|
Sat Feb 05, 2011 10:13 pm |
|
|
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
|
Re: Raining bombs via grenade
I know that, I saw that post before like any responsible forum user when I was searching on how to do it. That's why I made the new post.
|
Sat Feb 05, 2011 10:18 pm |
|
|
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
|
Re: Raining bombs via grenade
That would have been epic, but you know, modding everytime gets more complex and more sophisticated (if the word exists, and if I wrote it ok), so learning lua is really important right now.
|
Sat Feb 05, 2011 10:47 pm |
|
|
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
|
Re: Raining bombs via grenade
Dude, I love metaphors. Yeah, you are right, I'm making an entire faction using as less lua as I can because: 1) I don't know much 2) Lua-filled mods sometimes make the game way to easy.
|
Sun Feb 06, 2011 2:50 am |
|
|
mail2345
Joined: Tue Nov 06, 2007 6:58 am Posts: 2054
|
Re: Raining bombs via grenade
However, don't forget that at Lua can be better even if ini can work. Take for an example an acid bath, which I have still yet to make. To do it in ini would require an emitter spawning a boatload of particles, which is very laggy(and crashy). However, with Lua, I can do it with much less lag.
It's still good to know the ini way in those instances.
|
Sun Feb 06, 2011 3:09 am |
|
|
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
|
Re: Raining bombs via grenade
Ini is the basic way to mod complex things. Lua is the complex way to mod simple things ini's can't do (making a rocket gib in midair can only be done with luas and it's something quite simple, that is enough proof).
|
Sun Feb 06, 2011 4:35 am |
|
|
none
Joined: Fri Dec 18, 2009 11:00 pm Posts: 167
|
Re: Raining bombs via grenade
Learn to sail on a lake first then on the sea you have less chance of crashing once you know how to sail??
|
Sun Feb 06, 2011 8:01 pm |
|
|
|