Staredit Network

Staredit Network -> UMS Assistance -> Spawning Problems
Report, edit, etc...Posted by Zeanon-B- on 2006-08-24 at 01:21:04
Ok I am making a wait 4 minutes, then spawn 30 monster.
I dont want the timer to show either

I have tested this map over 15 times, each time with a diffrent triggers.

Trigger
Players:
¤ Player 7
Conditions:
¤ Countdown timer is exactly 240 game seconds
Actions:
¤ Create 30 heartless at Heartless Attack 1 for Player 7
¤ Preserve Trigger


Please help

EDIT: That is my current trigger for it
Report, edit, etc...Posted by Shadow181 on 2006-08-24 at 01:33:57
Well my theory:
You know how in triggers, SC runs through the trigger list once every 2 seconds. Well if the trigger that sets the timer to 240 seconds reacts on second 1 (the second it detects), then the timer moves twice before the next detection run works; so the detecting timer to EXACTLY 240 will not work.
---
How to fix:
Re-arange the triggers, place the "set timer to 240 seconds" trigger before "Create 30 heartless" trigger.
-or-
Change "If countdown timer = 240" -> "If countdown timer > 237."
---
Either one should work, I hope.
Report, edit, etc...Posted by Zeanon-B- on 2006-08-24 at 01:42:40
QUOTE(Shadow181 @ Aug 24 2006, 12:33 AM)
Well my theory:
You know how in triggers, SC runs through the trigger list once every 2 seconds. Well if the trigger that sets the timer to 240 seconds reacts on second 1 (the second it detects), then the timer moves twice before the next detection run works; so the detecting timer to EXACTLY 240 will not work.
---
How to fix:
Re-arange the triggers, place the "set timer to 240 seconds" trigger before "Create 30 heartless" trigger.
-or-
Change "If countdown timer = 240" -> "If countdown timer > 237."
---
Either one should work, I hope.
[right][snapback]549768[/snapback][/right]

So you think that if, I set it to 240 game seconds at most, it should work?


Report, edit, etc...Posted by Shadow181 on 2006-08-24 at 08:14:22
I don't understand your question... sorry.gif
Report, edit, etc...Posted by Staredit.Net Essence on 2006-08-24 at 08:44:36
You can't make the TIMER NOT SHOW. That's impossible. Also, if you want to make it wait 4 minutes, do:

CONDITION:
Always
ACTION:
Create 30 units at Location
Wait (four minute)
Preserve Trigger

That's pretty basic, I know, but it seems like a solution to your problem. You can't make the timer disappear unless it's not running.
Report, edit, etc...Posted by Zeratul_101 on 2006-08-24 at 09:57:51
nice try tirinity

your trigger will tell the game to create 30 units and then wait 4 minutes before running any other trigs with waits in them.


to achieve an 'invisible timer' and exact timing, you should use death counters and hyper triggers. although the latter isn't necessary. i'll give you the two versions of the trigs, with and without hypers.

with hypers:

player 7 has suffered at most 2879 deaths of kakaru

preser
add 1 death to kakaru

***

player has suffered at least 2880 deaths of kakaru

create 30 units


without hypers:

player 7 has suffered at most 119 deaths of kakaru

preserve
add 1 death to kakaru

***

player has suffered at least 1220 deaths of kakaru

create 30 units


this is if its a onetime use, i'm not sure if you want to repeat the unit creation.
Report, edit, etc...Posted by Kenoli on 2006-08-24 at 14:30:09
What ever happened to "Elapsed scenario time is at least 240 game seconds."?
Report, edit, etc...Posted by Laser_Dude on 2006-08-24 at 14:35:52
I think he wants it to wait for a certain amount of time, or when a certain trigger fires, then wait for 4 mins
Report, edit, etc...Posted by Shocko on 2006-08-24 at 15:33:16
always();

SetDeaths(currentplayer,add,1,pylon);
Preservetrigger();

then it will add 1 death every 100ms

so then 10 deaths = 1 second so;

Deaths(currentplayer,exactly,10,pylon);

Setdeaths(currentplayer,add,1,nexus);
Preservetrigger();

that will be your counter

Deaths(currentplayer,exactly,240,nexus);

Createunitat(30,Marine,X,Currentplayer);
SetDeaths(currentplayer,setto,0,nexus);
Preservetrigger();

that way it will be creating every 240 secons ( 4 minutes )

Note: The actions and conditions may not be 100% accuracte to the starforge layout.
Report, edit, etc...Posted by PCFredZ on 2006-08-24 at 23:06:20
QUOTE(Zeanon-B- @ Aug 24 2006, 01:20 AM)
Ok I am making a wait 4 minutes, then spawn 30 monster.
I dont want the timer to show either

I have tested this map over 15 times, each time with a diffrent triggers.




Trigger
Players:
¤ Player 7
Conditions:
¤ Countdown timer is exactly 240 game seconds
Actions:
¤ Create 30 heartless at Heartless Attack 1 for Player 7
¤ Preserve Trigger


Please help

EDIT:  That is my current trigger for it
[right][snapback]549764[/snapback][/right]

Change it as follows

Player: P7
Conditions: Elapsed time is at least 240 seconds
Conditions: Countdown timer is at most 0 seconds
Actions: Set countdown timer to: set to 240 seconds
Actions: Create etc.
Actions: Preserve

QUOTE(Shocko @ Aug 24 2006, 03:32 PM)
always();

SetDeaths(currentplayer,add,1,pylon);
Preservetrigger();

then it will add 1 death every 100ms

so then 10 deaths = 1 second so;

Deaths(currentplayer,exactly,10,pylon);

Setdeaths(currentplayer,add,1,nexus);
Preservetrigger();

that will be your counter

Deaths(currentplayer,exactly,240,nexus);

Createunitat(30,Marine,X,Currentplayer);
SetDeaths(currentplayer,setto,0,nexus);
Preservetrigger();

that way it will be creating every 240 secons ( 4 minutes )

Note: The actions and conditions may not be 100% accuracte to the starforge layout.
[right][snapback]550019[/snapback][/right]

That will only happen if Hyper Triggers are used, and each trigger runs in ~84ms intervals.
Report, edit, etc...Posted by Shocko on 2006-08-25 at 11:48:50
i figured they'd use hyper triggers because most maps need them o.o
Report, edit, etc...Posted by KuroiNeko on 2006-08-25 at 12:32:22
Well, Hyper Triggers aren't exactly selectable in StarEdit, so not everyone even KNOWS about them. Can't always assume they know all the "basic" tricks.
Report, edit, etc...Posted by LegacyWeapon on 2006-08-25 at 18:05:04
QUOTE(KuroiNeko @ Aug 25 2006, 12:31 PM)
Well, Hyper Triggers aren't exactly selectable in StarEdit
[right][snapback]550475[/snapback][/right]
What the hell are you talking about? You can make and edit Hyper Triggers with Campaign Editor.
Report, edit, etc...Posted by MoonlighTurtle on 2006-08-25 at 18:11:55
Well, I believe the point was that it's not exactly a concept people would come up with by themselves.

You can't directly select hyper triggers to make them, you need to select the actions and conditions that make the hyper trigger. And in the way the word selectable was used in the post, it doesn't refer to actually selecting the trigger after it's made.

You can't really stumble across a hyper trigger like you can with a certain action/condition. All of those are listed when you create a trigger.
Report, edit, etc...Posted by fritfrat(U) on 2006-08-25 at 18:27:50
Most people know what hyper triggers are. If they don't, they ask, we tell them. You must start with some form of assumption of familiarity with making maps, and if the assumption is wrong, THEN go edit your post. Kuri is new and hasn't replied to the many, many mapmaking assistance threads like many of us have, and it is easiest to simply allow the person with the question to clarify what he does not understand later than simply state the same thing over and over and over when most people know what they are anyways.

I'd suggest elapsed game time if you only want it to happen once, and use the death counter method that zeratul 101 elaborated on if you want to have it happen more than once or start the 4 minute timer after the game begins. Simply set the deaths back to 0 and start the timer over again if you want it to spawn every 4 minutes.

EDIT: And oh, you could use a wait action, but only if that player has no other waits. I wouldn't recommend using a wait in this instance.
Report, edit, etc...Posted by PCFredZ on 2006-08-25 at 21:42:09
"Hyper triggers" has been, in its proper reference, describing the set of "Wait 0 milliseconds" x 63 + Preserve triggers.

However, as the adjective "hyper" is referring to the noun "triggers", it can be falsely interpretted as a "trigger that's running hyper crazy", i.e., every other trigger.

I suggest we just change the term "hyper trigger" as we previous assumed to "hyperizing triggers". biggrin.gif
Report, edit, etc...Posted by MoonlighTurtle on 2006-08-26 at 00:17:00
QUOTE(Shocko @ Aug 24 2006, 02:32 PM)
always();

SetDeaths(currentplayer,add,1,pylon);
Preservetrigger();

then it will add 1 death every 100ms

so then 10 deaths = 1 second so;

Deaths(currentplayer,exactly,10,pylon);

Setdeaths(currentplayer,add,1,nexus);
Preservetrigger();

that will be your counter

Deaths(currentplayer,exactly,240,nexus);

Createunitat(30,Marine,X,Currentplayer);
SetDeaths(currentplayer,setto,0,nexus);
Preservetrigger();

that way it will be creating every 240 secons ( 4 minutes )

Note: The actions and conditions may not be 100% accuracte to the starforge layout.
[right][snapback]550019[/snapback][/right]

There's no need to convert death's of pylon to nexus. It's useless and makes it more complicated. If you leave out the trigger converting the deaths of pylon to deaths of nexus then you could just change the condition of 240 deaths of nexus to 2880 deaths of pylon.

Also, the trigger that converts the pylon deaths to nexus won't even work properly, the trigger will just run once adding 1 death to nexus and that's it. You are missing an action that resets the pylon deaths to 0.

Lastly, as PCFredz pointed out, each trigger cycle will go once about every 84 ms. Therefore the deaths per second is actually 12. The fix would simply just change the 10 to 12. It may seem like a small difference, yet it adds up over time.

So my revised version would look like this:
QUOTE
always();

SetDeaths(currentplayer,add,1,pylon);
Preservetrigger();

then it will add 1 death every 84ms

so then 12 deaths = 1 second so;

Deaths(currentplayer,exactly,2880,pylon);

Createunitat(30,Marine,X,Currentplayer);
SetDeaths(currentplayer,setto,0,pylon);
Preservetrigger();
Next Page (1)