Staredit Network > Forums > SC1 UMS Theory and Ideas > Topic: Concept Ladder
Concept Ladder
Apr 26 2008, 7:00 pm
By: lil-Inferno
Pages: < 1 2 3 4 5 6 >
 

Apr 30 2008, 4:14 am Falkoner Post #61



Okay, devilisk, just to prove my point, I did this:
Code
Trigger("Player 1"){
Conditions:
    Elapsed Time(At least, 3);

Actions:
    Set Switch("Switch1", set);
}

//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Switch("Switch1", set);

Actions:
    Display Text Message(Always Display, "First?");
    Move Unit("Player 1", "Terran Marine", All, "Location 0", "Location 1");
    Kill Unit("Player 1", "Terran Marine");
}

//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Switch("Switch1", set);
    Bring("Player 1", "Terran Marine", "Location 1", Exactly, 1);

Actions:
    Display Text Message(Always Display, "Second?");
}

//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Switch("Switch1", set);

Actions:
    Display Text Message(Always Display, "Third?");
}

//-----------------------------------------------------------------//

Now, it still displayed first, second, and third, in the correct order, even though the unit was dead. It seems that Move Unit and Create Unit both update the conditions. It seems that removing a unit may also update it, but from other tests it does not seem to do so.



None.

Apr 30 2008, 4:19 am Demented Shaman Post #62



Quote from Falkoner
Devilisk, building units does not update it, removing them does not, killing them does not. I would not post it if I had no reason.
Removing them actually does.

Killing doesn't, but that's not the result of the bring condition, because killing doesn't even occur until after the end of the trigger cycle. At the time the bring condition is checked, the unit is still actually there. This problem has to do with actions. Which I actually stated before.

Quote
Trigger("Player 1"){
Conditions:
Always();

Actions:
Create Unit("Player 1", "Terran Marine", 1, "Location 0");
}

//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
Elapsed Time(At least, 3);

Actions:
Set Switch("Switch1", set);
}

//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
Switch("Switch1", set);

Actions:
Move Unit("Player 1", "Terran Marine", All, "Location 0", "Location 1");
}

//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
Switch("Switch1", set);

Actions:
Remove Unit At Location("Player 1", "Terran Marine", All, "Location 1");
}

//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
Switch("Switch1", set);

Actions:
Display Text Message(Always Display, "FALKONER IS");
}

//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
Bring("Player 1", "Terran Marine", "Location 1", Exactly, 0);
Switch("Switch1", set);

Actions:
Display Text Message(Always Display, "A DUMBASS");
}

//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
Switch("Switch1", set);

Actions:
Display Text Message(Always Display, "LULZ NOOB");
}

//-----------------------------------------------------------------//

Refer back to my first post:
Quote
This isn't a concept. It's just a test map demonstrating how specific conditions function. Bring is "updated" instantly during the trigger cycle and command is updated at the end.

There's more examples of this such as killing vs removing a unit. There's also removing all of a unit vs removing all of a transport unit or something like that, but I know it has to do with transports, shuttles, overlords, dropships, bunkers.




None.

Apr 30 2008, 4:23 am Falkoner Post #63



Yes, removing does seem to update, killing does not, and neither does giving. Your explanation does not show why giving does not work. And bring and command definitely take time to update, as you can see in many maps, where something should be instantaneous, but is not due to units being part of the equation.



None.

Apr 30 2008, 4:27 am Demented Shaman Post #64



Quote from Falkoner
Yes, removing does seem to update, killing does not, and neither does giving. Your explanation does not show why giving does not work. And bring and command definitely take time to update, as you can see in many maps, where something should be instantaneous, but is not due to units being part of the equation.
The goalpost shifting continues...




None.

Apr 30 2008, 4:29 am Falkoner Post #65



Still, in many cases my maps have had problems due to problems with Bring and Command, and knowing this really helps with that. Which is the main reason why I posted those two maps.



None.

Apr 30 2008, 4:40 am Demented Shaman Post #66



Quote from Falkoner
Still, in many cases my maps have had problems due to problems with Bring and Command, and knowing this really helps with that. Which is the main reason why I posted those two maps.
There is only one distinction between the bring and command conditions. Bring is during the trigger cycle, command is at the end, period.

Actually, it seems to be inconclusive at this point. There could be many explanations for the behavior rather than the cause of the bring. One possibility is that giving adds to some sort of queue which gets cleared at the end of a trigger cycle, or when remove, move, or kill has been encountered, in which case SC then clears the queue.

So basically, the bring might not detect the give because it might not have happened yet. And I don't see how one could test it, because theoretically if you used lets say a "remove" action to remove the things that were supposed to be given, that remove action itself might cause the give to execute, as your theory suggests that remove should cause the bring to update.

Post has been edited 6 time(s), last time on Apr 30 2008, 5:16 am by devilesk.



None.

Apr 30 2008, 5:00 am Demented Shaman Post #67



Quote from name:Tuxedo-Templar
Quote from stickynote
Quote from name:devilesk
Quote from Falkoner
Yes, removing does seem to update, killing does not, and neither does giving. Your explanation does not show why giving does not work. And bring and command definitely take time to update, as you can see in many maps, where something should be instantaneous, but is not due to units being part of the equation.
The goalpost shifting continues...

Lol.
Devilesk may not be able to help the way he is, but the way I see, unless we're aiming to create a satellite community of 4chan with SEN, the rest of you should really think twice about finding this stuff acceptable.
The irony...



None.

Apr 30 2008, 6:36 am rockz Post #68

ᴄʜᴇᴇsᴇ ɪᴛ!

We've got evil midgets over in the Null forum currently, you may want to check that out.
Quote from name:Tuxedo-Templar
But I've nothing more to say on this. Let whoever wants to be fooled stay that way.
This is the best way to end any argument. It sort of reminds me of the "yes dear" method of ending an argument in a marriage.

I would like to put my vote in, since I try to post only when a portion is relevant: While Falkoner's maps are informative, I don't believe they constitute a concept. If, perhaps, he found some way to (ab)use this, it could be considered a concept. It definitely should go into the wiki, and inform people of the way these conditions work, and ways around it. Inverted locations in a map isn't a concept, they're just nerfed regular locations. The use of inverted locations as a selection system, however, is something I see as an acceptable concept. It wasn't exactly discovered by any one person, even though inverted locations and how they work in starcraft may have been discovered by one person.

I consider one of my own creations a concept, though it is by far not original, but a modification of another system: Kills to Cash Perfect (originally by Legacy Weapon).

The way he had done it forced one person to get a kill each trigger run, and only that one person. This leads to a large backup if you are going to be killing a lot of people. My system instead adds in a tracker which notes when someone has killed something, and lets multiple people get minerals every trigger run, rather than just 1.

Right now, there's not too many new concepts that are useable. I mean, would a reaver ban system, where you build a certain number of scarabs, then move the reaver to a beacon to ban the corresponding player be a concept? To me it just seems like common sense, and is already common knowledge in selection systems.



Maybe I'm just rambling.

Post has been edited 1 time(s), last time on Apr 30 2008, 8:40 pm by rockz.



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Apr 30 2008, 6:53 am Wormer Post #69



Oooo.... :omfg:
Returning to bring/command conditions. Finally I've lost the point of all the discussion about bring/command...
Not long ago I've discoverd an interesting thing concerning bring/command.

We've been discussing the problem of the order in which conditions are checked on warbox forums. I want to cite from there:
Quote from Wormer
You see, I've found an interesting thing about command and bring actions behaving with create units.

T1c = {P command 0 any unit | create U1}
T1b = {P bring 0 any unit | create U1}
T2c = {P command 0 any unit | create U2}
T2b = {P bring 0 any unit | create U2}
T3c = {P command 0 any unit | preserve trigger}
T3b = {P bring 0 any unit | preserve trigger}
T4 = {P bring 0 any unit, elapsed time > 5 | preserve trigger}
T4' = {elapsed time > 5, P bring 0 any unit | preserve trigger}

In sequence T1c T2c or T1b T2b the unit U1 which is created by the first trigger is 'invisible' to the T2's condition of the same type. That way U1 and U2 would be created together. But in sequence T1c T2b or T1b T2c different conditions somehow make unit U1 visible to the second condition and U2 is not created at the same triggers loop. Then checking another condition between these two triggers will make created units 'visible' to the second trigger: T1c T3b T2c or T1b T3c T2b. So the fact of checking in T3 could be tested. Sequence T1c T4 T2c will create only U1 and sequence T1c T4' T2c will create both U1 and U2.

I have a simple test map: http://webfile.ru/1870357




Some.

Apr 30 2008, 7:04 am The Starport Post #70



Oooooh! That's what you were saying! Sorry, the symbolic use you used to describe your theory gave me the wrong the idea at first.

So what you're implying is that the trigger's condition actually has a say in whether the Create Unit action registers by other triggers? Hmm. I'm really not too sure about that. I know for a fact that I can do subsequent Create Unit triggers where the following one's Bring Unit conditions successfully register. However, I do know I've hit weird bugs in the past that seemed to have stemmed from Brings conditions not firing correctly for seemingly unknown reasons.


I'll need to put this to some more tests. I don't think it's quite as simple as you make it out, but that does seem close to an answer.

(This might also help explain that stupid Order Unit + Give Unit P12 issue I've been having with my Starport launcher...)

Post has been edited 2 time(s), last time on Apr 30 2008, 7:14 am by Tuxedo-Templar.



None.

Apr 30 2008, 7:14 am Demented Shaman Post #71



Oh, I see. That's a good method for determining if a condition itself has any effect on the actions or other conditions where you just have a condition and a preserve trigger with no other actions.

I like how this eliminates any question of create/remove/kill/move etc having any effect on the condition. Now better tests can be performed.

Since there's several cases here and certain triggers are being disabled in each one, I think it would be best to clearly organize the data, that way it's easier to read, instead of keeping it in paragraph form.



None.

Apr 30 2008, 7:26 am The Starport Post #72



Code
//-----------------------------------------------------------------//
//     T1 Commands
//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Command("Player 1", "Any unit", Exactly, 0);

Actions:
    Create Unit("Player 1", "Terran Marine", 1, "Anywhere");
}

//-----------------------------------------------------------------//
//     T1 Brings
//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Bring("Player 1", "Any unit", "Anywhere", Exactly, 0);

Actions:
    Create Unit("Player 1", "Terran Marine", 1, "Anywhere");
}

//-----------------------------------------------------------------//
//     T2 Commands
//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Command("Player 1", "Any unit", Exactly, 0);

Actions:
    Create Unit("Player 1", "Terran Medic", 1, "Anywhere");
}

//-----------------------------------------------------------------//
//     T2 Brings
//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Bring("Player 1", "Any unit", "Anywhere", Exactly, 0);

Actions:
    Create Unit("Player 1", "Terran Medic", 1, "Anywhere");
}

//-----------------------------------------------------------------//
//     T3 Brings
//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Bring("Player 1", "Any unit", "Anywhere", Exactly, 0);

Actions:
    Display Text Message(Always Display, "Hiya!");
    Preserve Trigger();
}

//-----------------------------------------------------------------//
//     T3 Commands
//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Command("Player 1", "Any unit", Exactly, 0);

Actions:
    Display Text Message(Always Display, "lolwut");
    Preserve Trigger();
}

//-----------------------------------------------------------------//
//     T4
//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Bring("Player 1", "Any unit", "Anywhere", Exactly, 0);
    Elapsed Time(At least, 5);

Actions:
    Display Text Message(Always Display, "Hiya!x2");
    Preserve Trigger();
}

//-----------------------------------------------------------------//
//     T4'
//-----------------------------------------------------------------//

Trigger("Player 1"){
Conditions:
    Elapsed Time(At least, 5);
    Bring("Player 1", "Any unit", "Anywhere", Exactly, 0);

Actions:
    Display Text Message(Always Display, "lolwutx2");
    Preserve Trigger();
}

//-----------------------------------------------------------------//



Testing this out nao.


Edit: Well I'll be! The kid is onto something. Sure enough, both the medic and the marine got placed when I isolated the brings and controls pairs separately.

Wormer, I owe you one! This discovery will help me out big time!

Post has been edited 2 time(s), last time on Apr 30 2008, 7:35 am by Tuxedo-Templar.



None.

Apr 30 2008, 7:37 am Demented Shaman Post #73



Wow I just tested this:


Bring("Player 1", "Any unit", "Location 0", Exactly, 0);
Create Unit("Player 1", "Terran Marine", 2, "Location 0");

Bring("Player 1", "Any unit", "Location 0", Exactly, VARIABLE);
Create Unit("Player 1", "Terran Firebat", 1, "Location 0");

Two simple triggers. The first one creates two marines. The second one creates a firebat based on a bring condition.

I tested three cases. In each case the bring condition for the second condition was different. I tested when it was 0, 1, and 2. The results are quite surprising.

When it was 0, the two marines and the firebat were made in the same cycle.
When it was 1, the two marines were made but the firebat was not.
When it was 2, the two marines were made and the firebat was made in the next cycle.

EDIT: I just tried one more test. I changed the condition of the first trigger from a bring to always, and the second trigger's bring condition was set to 0. One would expect it to behave the same as the previous case when the second trigger's bring condition was 0, two marines and a firebat should both be made at the same time.

But for some reason when the bring in the first trigger is removed, the firebat is never made.

Post has been edited 1 time(s), last time on Apr 30 2008, 7:42 am by devilesk.



None.

Apr 30 2008, 7:43 am The Starport Post #74



Quote from name:devilesk
Wow I just tested this:


Bring("Player 1", "Any unit", "Location 0", Exactly, 0);
Create Unit("Player 1", "Terran Marine", 2, "Location 0");

Bring("Player 1", "Any unit", "Location 0", Exactly, VARIABLE);
Create Unit("Player 1", "Terran Firebat", 1, "Location 0");

Two simple triggers. The first one creates two marines. The second one creates a firebat based on a bring condition.

I tested three cases. In each case the bring condition for the second condition was different. I tested when it was 0, 1, and 2. The results are quite surprising.

When it was 0, the two marines and the firebat were made in the same cycle.
When it was 1, the two marines were made but the firebat was not.
When it was 2, the two marines were made and the firebat was made in the next cycle.
That seems logical. Assuming the fact that the first 2 marines not being registered is itself 'logical'. :lol:

God. Lazy damn Blizzard programmers.

Edit:
Quote
EDIT: I just tried one more test. I changed the condition of the first trigger from a bring to always, and the second trigger's bring condition was set to 0. One would expect it to behave the same as the previous case when the second trigger's bring condition was 0, two marines and a firebat should both be made at the same time.

But for some reason when the bring in the first trigger is removed, the firebat is never made.
It seems there's some function that 'updates' the status of units found within a location/the map, where that status is being cached between each consecutive activation of the Brings/Commands conditions. Then there appears to be something that resets that cache when the brings/commands consecutive occurrences gets broken (during the same trigger cycle?).

Post has been edited 4 time(s), last time on Apr 30 2008, 7:56 am by Tuxedo-Templar.



None.

Apr 30 2008, 8:00 am Demented Shaman Post #75



Quote from name:Tuxedo-Templar
Quote from name:devilesk
Wow I just tested this:


Bring("Player 1", "Any unit", "Location 0", Exactly, 0);
Create Unit("Player 1", "Terran Marine", 2, "Location 0");

Bring("Player 1", "Any unit", "Location 0", Exactly, VARIABLE);
Create Unit("Player 1", "Terran Firebat", 1, "Location 0");

Two simple triggers. The first one creates two marines. The second one creates a firebat based on a bring condition.

I tested three cases. In each case the bring condition for the second condition was different. I tested when it was 0, 1, and 2. The results are quite surprising.

When it was 0, the two marines and the firebat were made in the same cycle.
When it was 1, the two marines were made but the firebat was not.
When it was 2, the two marines were made and the firebat was made in the next cycle.
That seems logical. Assuming the fact that the first 2 marines not being registered is itself 'logical'. :lol:

God. Lazy damn Blizzard programmers.

Edit:
Quote
EDIT: I just tried one more test. I changed the condition of the first trigger from a bring to always, and the second trigger's bring condition was set to 0. One would expect it to behave the same as the previous case when the second trigger's bring condition was 0, two marines and a firebat should both be made at the same time.

But for some reason when the bring in the first trigger is removed, the firebat is never made.
It seems there's some function that 'updates' the status of units found within a location/the map, where that status is being cached between each consecutive activation of the Brings/Commands conditions. Then there appears to be something that resets that cache when the brings/commands consecutive occurrences gets broken (during the same trigger cycle?).
I think with more tests using many different cases, we'll be able to put together a more definitive explanation and model for how it's working, but I'm going to bed now.



None.

Apr 30 2008, 8:01 am The Starport Post #76



Here's some of my research with Brings:
  • Test with 3 or more consecutive Brings/Commands triggers:
    • Goes on indefinitely until "reset".
  • Test with At least/At most modifiers:
    • Modifiers don't appear to produce any new effect.
  • Test between multiple trigger cycles.
  • Test with different numbers/types of units:
    • Checking for unit type appears to have no affect.
    • Only the absence of the unit registers with the condition; the presence is never detected the "cache" resets.
  • Test with different locations:
    • Using different locations for Brings Unit appears not to register the same together when overlapped.
    • Even checking with a Brings Unit with a different location appears to reset the "cache" for the original Brings Unit's location. Even different locations will "reset" the cache, apparently.
  • Test with different condition types.
Bah. That's enough for now. This gonna take some time.

Post has been edited 6 time(s), last time on Apr 30 2008, 4:23 pm by Tuxedo-Templar.



None.

Apr 30 2008, 11:02 am lil-Inferno Post #77

Just here for the pie

Wow, one full page of spam. I don't want this to be over because of two idiots deciding to battle it out. . .




Apr 30 2008, 11:23 am Doodan Post #78



The two of them had it out, but have chosen not to continue arguing. Any further posts related to that exchange will be deleted.



None.

Apr 30 2008, 3:02 pm Wormer Post #79



Quote from name:Tuxedo-Templar
So what you're implying is that the trigger's condition actually has a say in whether the Create Unit action registers by other triggers?
Yes, that is what I'm impying.

Quote from name:Tuxedo-Templar
Hmm. I'm really not too sure about that. I know for a fact that I can do subsequent Create Unit triggers where the following one's Bring Unit conditions successfully register. However, I do know I've hit weird bugs in the past that seemed to have stemmed from Brings conditions not firing correctly for seemingly unknown reasons.
The reason is that the first bring (or command) action influence on the result. Let's discuss bring conditions, with commands it is the same. There is a template (BringCondition -> CreateAction -> BringCondition -> AnotherBringCondition -> EvenMoreBringConditions...) when the bring conditions following the create action do not notice the created unit. But, if there is no first BringCondition like it is in the next template (AnotherCondition -> CreateAction -> BringCondition) conditions following the create action easily detect the created unit.

Quote from Wormer
Then checking another condition between these two triggers will make created units 'visible' to the second trigger: T1c T3b T2c or T1b T3c T2b.
One more thing I want to point out. The parameters of the condition in trigger T3b or T3c (which executes in the middle) does not matter at all. The condition could check any unit controlled by the other player, it could be true or false. All this does not influence the result at all. The essencial thing turns out to be just the fact of executing (or checking) the condition of the other type.



Some.

Apr 30 2008, 3:20 pm The Starport Post #80



Quote from Wormer
Quote from name:Tuxedo-Templar
Hmm. I'm really not too sure about that. I know for a fact that I can do subsequent Create Unit triggers where the following one's Bring Unit conditions successfully register. However, I do know I've hit weird bugs in the past that seemed to have stemmed from Brings conditions not firing correctly for seemingly unknown reasons.
The reason is that the first bring (or command) action influence on the result. Let's discuss bring conditions, with commands it is the same. There is a template (BringCondition -> CreateAction -> BringCondition -> AnotherBringCondition -> EvenMoreBringConditions...) when the bring conditions following the create action do not notice the created unit. But, if there is no first BringCondition like it is in the next template (AnotherCondition -> CreateAction -> BringCondition) conditions following the create action easily detect the created unit.
Yes. I'm not too sure on it yet, but it appears the type of condition factors in as well. I did a small test with Always and it ignored it. Still looking into this part, too.

Quote from Wormer
Quote
Then checking another condition between these two triggers will make created units 'visible' to the second trigger: T1c T3b T2c or T1b T3c T2b.
One more thing I want to point out. The parameters of the condition in trigger T3b or T3c (which executes in the middle) does not matter at all. The condition could check any unit controlled by the other player, it could be true or false. All this does not influence the result at all. The essencial thing turns out to be just the fact of executing (or checking) the condition of the other type.
Whoa! Yeah I'm definitely gonna need to beat this one senseless before I figure it out. :bleh:


Edit: You're right that none of the parameters have any effect EXCEPT the location. But that only applies for Brings.

It detects the absence of the unit, but not the presence.

Post has been edited 4 time(s), last time on Apr 30 2008, 4:41 pm by Tuxedo-Templar.



None.

Options
Pages: < 1 2 3 4 5 6 >
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[06:06 am]
NudeRaider -- KrayZee
KrayZee shouted: Voyager7456 Somehow I misread your shout. "Glad I can entertain you in Nude" as if you sent a racy photo, video or something.
nah, he just made a comment that had us laughing very hard.
[06:02 am]
NudeRaider -- Zoan
Zoan shouted: sraw531 you can’t move buildings afaik
yes you can.
[2019-10-16. : 10:03 pm]
Dem0n -- no
[2019-10-16. : 8:26 pm]
GGmano -- Is here a forum only for temple siege?
[2019-10-16. : 4:20 pm]
KrayZee -- Voyager7456
Voyager7456 shouted: Glad I can entertain you Nude
Somehow I misread your shout. "Glad I can entertain you in Nude" as if you sent a racy photo, video or something.
[2019-10-16. : 2:26 pm]
martosss -- Moose
Moose shouted: martosss IIRC, the plan was to go 64-bit only eventually so they're interested in differences between the versions
well I might have found 1 bug for them to fix - some maps load on 32 bit, but not on 64 bit game version
[2019-10-16. : 2:19 pm]
Zoan -- sraw531
sraw531 shouted: I'm pretty sure you would move the building away at some point. When you do so, you can give it to someone else. I was thinking nexi because its possible you could encourage the computer to expand to a specific spot
you can’t move buildings afaik
[2019-10-16. : 10:10 am]
Moose -- martosss
martosss shouted: jjf28 OK, I have 1 more question - are you using 32 bit SC:R or 64 bit ? In game settings there's an option to switch to 32, is it checked? I just tried hosting the map with 64-bit SC:R and it failed... I ticked the option to use 32 bit SC:R => it worked and map was hosted. So I guess the issue still exists for 64 bit SC:R ? I also tried calling a friend and he couldn't see the map when he entered the lobby. Weird, I might have to report this to Blizzard?
IIRC, the plan was to go 64-bit only eventually so they're interested in differences between the versions
[2019-10-16. : 5:27 am]
O)FaRTy1billion[MM] -- or a magic box :(
[2019-10-16. : 3:31 am]
martosss -- FaRTy1billion
FaRTy1billion shouted: how about 5 minerals
you can't even get a scarab with those!
Please log in to shout.


Members Online: Roy, C(a)HeK, izujaxuc