Here you can find answered ScriptAPI topics.
-
TAW_legitscoper
- Meatbag
- Posts: 2
- Joined: Sat Jan 07, 2017 1:32 pm
- SFD Account: TAW_legitscoper
Post
by TAW_legitscoper » Sat Jan 07, 2017 1:35 pm
Hello, I have a problem in creating my map. I want to make gun burst for let's say, 20 bullets and wait some time. Here is script:
Code: Select all
public void Timer(TriggerArgs args)
{
}
public void turret(TriggerArgs args){
for(int i = 0; i < 20;i++)
{
IObject obj = Game.GetSingleObjectByCustomId("start");
IObject objDir = Game.GetSingleObjectByCustomId("end");
Vector2 pos = obj.GetWorldPosition();
Vector2 dir = objDir.GetWorldPosition();
Game.SpawnProjectile(ProjectileItem.M60, pos, dir - pos);
}
}
public void turret2(TriggerArgs args){
IObject obj = Game.GetSingleObjectByCustomId("start");
IObject objDir = Game.GetSingleObjectByCustomId("end");
Vector2 pos = obj.GetWorldPosition();
Vector2 dir = objDir.GetWorldPosition();
Game.SpawnProjectile(ProjectileItem.BAZOOKA, pos, dir - pos);
}
problem is that the gun is firing continous. turret and turrer2 are timers.
0 x
-
Voven
- Meatbag
- Posts: 3
- Joined: Thu Jan 05, 2017 8:30 pm
- SFD Account: Voven
- Started SFD: Alpha 1.0.0
- Location: Iceland
- Gender:
Post
by Voven » Sat Jan 07, 2017 3:06 pm
TAW_legitscoper wrote:Hello, I have a problem in creating my map. I want to make gun burst for let's say, 20 bullets and wait some time. Here is script:
Code: Select all
public void Timer(TriggerArgs args)
{
}
public void turret(TriggerArgs args){
for(int i = 0; i < 20;i++)
{
IObject obj = Game.GetSingleObjectByCustomId("start");
IObject objDir = Game.GetSingleObjectByCustomId("end");
Vector2 pos = obj.GetWorldPosition();
Vector2 dir = objDir.GetWorldPosition();
Game.SpawnProjectile(ProjectileItem.M60, pos, dir - pos);
}
}
public void turret2(TriggerArgs args){
IObject obj = Game.GetSingleObjectByCustomId("start");
IObject objDir = Game.GetSingleObjectByCustomId("end");
Vector2 pos = obj.GetWorldPosition();
Vector2 dir = objDir.GetWorldPosition();
Game.SpawnProjectile(ProjectileItem.BAZOOKA, pos, dir - pos);
}
problem is that the gun is firing continous. turret and turrer2 are timers.
I guess your timer's interval time is really low. Try to set it with more time, like 5.000-10.000ms.
Hope it works.
0 x
- Voven
-
TAW_legitscoper
- Meatbag
- Posts: 2
- Joined: Sat Jan 07, 2017 1:32 pm
- SFD Account: TAW_legitscoper
Post
by TAW_legitscoper » Sat Jan 07, 2017 5:03 pm
OK, but now it fires one bullet and waits that 5 seconds. Or for loop isn't working. Is there any way to delay that loop, like Delay(10); or something that exist
Added in 55 minutes 5 seconds:
I figured it out. It was simpler than I thought. I just placed second timer, gave it 5000ms delay, activate on startup and activate turret timer. For turret timer I set repeat to 20, don't activate on startup and interval to 30ms
0 x
-
gwendalaze
- Superfighter

- Posts: 84
- Joined: Sat Mar 19, 2016 12:55 pm
- Title: Jarate Yellow Belt
- Started SFD: PreAlpha 1.1.4
- Location: France
Post
by gwendalaze » Sat Jan 07, 2017 6:52 pm
remove the loop, just make sure the timer trigger repeat every ~200
0 x
- Gwendalaze, failing at being fun, just like this signature