Staredit Network

Staredit Network -> Modding Chat -> Experiments in Modding
Report, edit, etc...Posted by Lord_Agamemnon(MM) on 2007-01-01 at 22:35:59
Hercanic: Haha, I was trying something and accidentally did one of your tests tongue.gif Awesome.

Nuclear Silo Units
By Lord_Agamemnon(MM)
Test: Can a Nuclear Silo build units? To test, I gave the nuclear silo the ability to build an SCV and changed the reqs. Also, because of what I was trying to do at the time, it could build add-ons too.
Outcome: Mixed. This is actually quite amusing. The Silo built the units perfectly, although its queue only showed one building at a time. The queue did work, however.

The amusing part is that every time a unit/add-on construction finished, the silo armed itself! I didn't test to see if this "artifical nuke" is usable by Nuclear Strike, but I would assume it is.
Hypothesis: The Nuclear Silos' memory structure only processes one unit build at a time and arms itself whenever construction finishes. Perhaps for this the game treats the nuke as a regular unit and uses a sort of "remove unit/modify hangar count" special trigger.
Report, edit, etc...Posted by DiscipleOfAdun on 2007-01-01 at 23:39:20
I would assume there's a check in the build routine that, upon completion of a unit in a nuke silo, places the pointer to that unit in the memory reserved for the nuke's poitner and sets the armed count to 1. I also assume the queue is ID coded also.
Report, edit, etc...Posted by Hercanic on 2007-01-02 at 05:26:49
Dear Lord_Agamemnon:
Actually, when you use Nuclear Strike, the unit you made from the Silo starts walking on its own toward the top of the map, as if it were the Nuclear Missile. It's hilarious.
Report, edit, etc...Posted by BroodKiller on 2007-01-02 at 08:22:32
QUOTE(DiscipleOfAdun @ Jan 2 2007, 06:39 AM)
I also assume the queue is ID coded also.

Or maybe the queue count is a part of the unit structure?
Report, edit, etc...Posted by Killer_Kow(MM) on 2007-01-02 at 09:54:41
QUOTE(Hercanic @ Jan 2 2007, 06:26 AM)
Dear Lord_Agamemnon:
Actually, when you use Nuclear Strike, the unit you made from the Silo starts walking on its own toward the top of the map, as if it were the Nuclear Missile. It's hilarious.
[right][snapback]608808[/snapback][/right]


lmfao.gif
Report, edit, etc...Posted by Doodle77(MM) on 2007-01-04 at 18:19:54
QUOTE(Hercanic @ Jan 2 2007, 05:26 AM)
Dear Lord_Agamemnon:
Actually, when you use Nuclear Strike, the unit you made from the Silo starts walking on its own toward the top of the map, as if it were the Nuclear Missile. It's hilarious.
[right][snapback]608808[/snapback][/right]

Can the unit walk over illegal terrain?
Does it come down, or does a nuke come down?
Report, edit, etc...Posted by Lord_Jeremy on 2007-01-04 at 20:13:08
QUOTE(Kookster @ Dec 30 2006, 11:55 PM)
I think we should sort this into a search able wiki!! so its easier to find things!! But im not saying get rid of this forum just put whats added in here into that.
[right][snapback]607841[/snapback][/right]

Wish = Command smile.gif

ADDITION:
Okay, I've put up all the experiments details in this thread cool1.gif
Report, edit, etc...Posted by Kookster on 2007-01-05 at 02:17:06
QUOTE
Wish = Command smile.gif
gosh dangit that site must have a anti frame script, any site like that I cant view, cause I have a frame on my browser no matter what POOOOOOOOOO!!
Report, edit, etc...Posted by Killer_Kow(MM) on 2007-01-05 at 07:01:54
QUOTE(Lord_Jeremy @ Jan 4 2007, 09:13 PM)
Wish = Command smile.gif

ADDITION:
Okay, I've put up all the experiments details in this thread cool1.gif
[right][snapback]610033[/snapback][/right]


Not too important, but you forgot Voyager's (MM) tag, but included all the other ones tongue.gif
Report, edit, etc...Posted by Lord_Agamemnon(MM) on 2007-01-05 at 09:39:05
Nydus Anywhere
By Lord_Agamemnon(MM)
Test: Can a Nydus Canal be built independent of Creep? This was meant as a feature for HunterCraft, but...
Outcome: Failure. Well, the first Nydus Canal can be placed normally (that is, without creep if you uncheck the flag,) but the exit placement always requires creep.
Hypothesis: Something hardcoded. I would guess that one of the exploits Blizzard found allowed Nydus Canal exits to be built anywhere, so they hardcoded it to creep.
Report, edit, etc...Posted by BroodKiller on 2007-01-05 at 09:44:36
Probably a better option would be to make the entrance and exit two separate buildings, but Blizzard cared jack crap about modding...wink.gif
Maybe try experimenting with the appropriate orders?
Report, edit, etc...Posted by Lord_Jeremy on 2007-01-05 at 15:39:51
QUOTE(Killer_Kow(MM) @ Jan 5 2007, 07:01 AM)
Not too important, but you forgot Voyager's (MM) tag, but included all the other ones tongue.gif
[right][snapback]610185[/snapback][/right]

Fixed disgust.gif

Oh and I added the Nydus one happy.gif

ADDITION:
QUOTE(BroodKiller @ Jan 5 2007, 09:44 AM)
Probably a better option would be to make the entrance and exit two separate buildings, but Blizzard cared jack crap about modding...wink.gif
Maybe try experimenting with the appropriate orders?
[right][snapback]610202[/snapback][/right]

Well... If it's hardcoded then it's changeable with a memory patch, eh?
Report, edit, etc...Posted by Kookster on 2007-01-05 at 19:54:07
QUOTE
Making buildings attack like a bunker
By DiscipleOfAdun
dude i didnt know thats all you had to do to make a building attack!?!?!? im so doing that now
Report, edit, etc...Posted by Laser_Dude on 2007-01-06 at 22:14:16
Lifted buildings building units
by Laser_Dude
Test: I wanted to see if it was possible for a building to build units while lifted off. I did a bit of grafting so that SCVs can be built in the air.
Outcome: Failure. When the button was clicked, the SCV queue came up, but stayed at a halted position. Due to the accessibility of the buttons, I was able to test the build goliath in the air glitch quite easily by building an SCV in the air(and having it halted), landing, then lifting off. The SCV builds at the point that the CC was when it lifted. It builds as many SCVs as I had in the queue when I landed, and placed them all at the location I had landed. If I cancel construction, the CC gets it's landed frames, yet the shadow it still a ways below it.
Hypothesis: I dunno, I'm too tired right now. I may update in the morning.
Report, edit, etc...Posted by Lord_Agamemnon(MM) on 2007-01-08 at 13:48:25

About Sigorder
By Lord_Agamemnon(MM)
Test: Sigorder is one of those nasty ICECC opcodes that is relatively unknown. With a bit of testing and help, I set out to roughly determined what its values do. As far as I know, sigorder only comes as 1, 2, 4, and 16.
Outcome: Mixed, leaning toward success The results are listed as follows:

CODE
sigorder 1

1)Still not entirely sure. It's often used for things dying: the Infested Terran's attack animation and every missile use it.
2)Toggle siege mode?

CODE
sigorder 2

This one's been known for a while: end spell cast. This sends SC the signal to stop casting the spell and get on with whatever else it wants to do. Maybe someone can flesh this out a bit more.

CODE
sigorder 4

This has two uses:
1) Toggle burrow status. It's found in every burrow and unburrow animation.
2) Complete morph. This is found in the Zerg Egg, Cocoon, and Building Morph graphics in the midst of the completion frames. Remove it and the morph never actually finishes.

CODE
sigorder 16

Toggle lift-off/landed status. Found in all lift-off and landing animations. This is what tells the game when to actually shift the building's graphic and toggle the flyer flag.

Example: Decompile iscript.bin and look at it.
Report, edit, etc...Posted by Doodle77(MM) on 2007-01-08 at 17:57:07
QUOTE(Lord_Agamemnon(MM) @ Jan 8 2007, 01:48 PM)

About Sigorder
By Lord_Agamemnon(MM)
*snip*

[right][snapback]611411[/snapback][/right]

Those are bitflags, i.e. 6 would be burrow and end spellcast.
Report, edit, etc...Posted by SI on 2007-01-09 at 19:39:23
QUOTE(Lord_Agamemnon(MM) @ Jan 8 2007, 01:48 PM)

About Sigorder
By Lord_Agamemnon(MM)
Test: Sigorder is one of those nasty ICECC opcodes that is relatively unknown.  With a bit of testing and help, I set out to roughly determined what its values do.  As far as I know, sigorder only comes as 1, 2, 4, and 16.
Outcome: Mixed, leaning toward success  The results are listed as follows:

CODE
sigorder 1

1)Still not entirely sure.  It's often used for things dying: the Infested Terran's attack animation and every missile use it.
2)Toggle siege mode?

CODE
sigorder 2

This one's been known for a while: end spell cast.  This sends SC the signal to stop casting the spell and get on with whatever else it wants to do.  Maybe someone can flesh this out a bit more.

CODE
sigorder 4

This has two uses:
1) Toggle burrow status.  It's found in every burrow and unburrow animation.
2) Complete morph.  This is found in the Zerg Egg, Cocoon, and Building Morph graphics in the midst of the completion frames.  Remove it and the morph never actually finishes.

CODE
sigorder 16

Toggle lift-off/landed status.  Found in all lift-off and landing animations.  This is what tells the game when to actually shift the building's graphic and toggle the flyer flag.

Example: Decompile iscript.bin and look at it.

[right][snapback]611411[/snapback][/right]



0x04 is also used by comsat cast animation, I catch it so I can repeat the comsat cast animation instead of having it disappear smile.gif
Report, edit, etc...Posted by Hercanic on 2007-01-11 at 01:58:22
Just a quickie:

Giving the Assimilator the Initiate PSI Provider in its Units.dat AI (same as Pylon) will cause the warped-in Assimilator to have 55000+ gas.
Report, edit, etc...Posted by Kookster on 2007-01-11 at 03:47:31
now thats interesting. So you could actaully impliment building vespian geysers. Does it only work for assimulators? does it work for refinery's and extractors???
Report, edit, etc...Posted by Lord_Jeremy on 2007-01-11 at 06:44:09
Are you guys adding all these changes to the wiki or should I do it? If me, I'll take care of it later today...
Report, edit, etc...Posted by Kookster on 2007-01-11 at 13:05:04
nvm about me not being able to view it anymore the no script thing makes it so I can now.
Report, edit, etc...Posted by BroodKiller on 2007-01-11 at 13:29:46
Good to hear that, Kooks smile.gif
Report, edit, etc...Posted by TheNomad on 2007-01-12 at 15:36:09
Just so you know, the Arbiter's cloaking field is determined by its air weapon range. You can't, however, determine whether to cloak only air, only ground or buildings, since that part is hardcoded.

QUOTE(DiscipleOfAdun @ Jan 2 2007, 07:39 AM)
I would assume there's a check in the build routine that, upon completion of a unit in a nuke silo, places the pointer to that unit in the memory reserved for the nuke's poitner and sets the armed count to 1.  I also assume the queue is ID coded also.
[right][snapback]608719[/snapback][/right]


Yup, it's byte EAX+D0. It basically checks if it's there, if not, it'll allow you to build one.

QUOTE(Lord_Agamemnon(MM) @ Jan 8 2007, 09:48 PM)

About Sigorder
By Lord_Agamemnon(MM)
Test: Sigorder is one of those nasty ICECC opcodes that is relatively unknown.  With a bit of testing and help, I set out to roughly determined what its values do.  As far as I know, sigorder only comes as 1, 2, 4, and 16.
Outcome: Mixed, leaning toward success  The results are listed as follows:

CODE
sigorder 1

1)Still not entirely sure.  It's often used for things dying: the Infested Terran's attack animation and every missile use it.
2)Toggle siege mode?

CODE
sigorder 2

This one's been known for a while: end spell cast.  This sends SC the signal to stop casting the spell and get on with whatever else it wants to do.  Maybe someone can flesh this out a bit more.

CODE
sigorder 4

This has two uses:
1) Toggle burrow status.  It's found in every burrow and unburrow animation.
2) Complete morph.  This is found in the Zerg Egg, Cocoon, and Building Morph graphics in the midst of the completion frames.  Remove it and the morph never actually finishes.

CODE
sigorder 16

Toggle lift-off/landed status.  Found in all lift-off and landing animations.  This is what tells the game when to actually shift the building's graphic and toggle the flyer flag.

Example: Decompile iscript.bin and look at it.

[right][snapback]611411[/snapback][/right]


It's not unknown at all. I can explain both sigorder and orderdone shortly.
BTW you forgot sigorder 64 which is the one for the valk's afterburners.

Although I'd love to respect the format made by Hercanic, it's a long write, so I'll keep it long and boring biggrin.gif

Thanks to DoA, I learned about the order bytes and sigorder and then as I improved I learned about orderdone. Basically, considering EAX, a normal register (pointing to the current unit's structure), we'll consider 3 bytes: 4D, 4E and 4F.

EAX+4D holds the internal order (which may or may not be the same as the one assigned via the order interpreter of orders.dat (switch 0...AE). This is internally used to know what the current order is to the unit checked by the exe. EAX+4E is the current stage of the order. Some orders are broken in parts (siege mode, place mine, EMP Shockwave etc.). For example, mines are split in the vult moving to the location, spawning the mine, checking the sigorder (sigorder 1) and then telling the mines to burrow and waiting for their sigorder (sigorder 4) and of course, decreasing the mine amount. These are all used as switches (in layman's terms: parts of the code) and EAX+4E tells us which one we are at. EAX+4F is the interesting one since it checks the current sigorder value of the order we're at. sigorder is opcode 0x24 in previous IceCC versions.

So much for the boring intro that some might not understand. Now, onward to the fun stuff. Basically we have these parts split off everywhere. Even in IScript. Let's take the queen's spell carrier or the EMP action. We have the projectile which breaks off in a specific effect. How can the engine possibly time this, and so accurately for that matter ? Simple: by using sigorders. This is done via IScript and read by the exe. It basically goes like this: IScript performs some effects, the EXE performs the order, more effects are created and controlled by the IScript, then comes the "castspell" opcode (which is 0x27 for older IceCC versions). At this point the main part of the spell starts to unravel. In order for the spell to actually continue to the next stage, the EXE can't know when all the graphical effects perform or finish. Therefore, as soon as all the needed effects are done, IScript calls sigorder. This lets the exe know the anim is finished and the EXE can move to the next stage of the order.

What are the sigorder values ? Are they really orders ? No. The label might be misleading a bit, but in reality, it's not quite wink.gif There is this set of bits. Each exe requirement (abilities, technologies, effects etc.) require a different sigorder (which is why the same value is present in multiple events, but it follows a pattern). This is also to make sure the same bit can't be set by the unit in different circumstances, thus confusing the exe. The values are written in the exe and can't be changed (well they can, but it takes a lot of work). What you basically do is set a bit (say sigorder 4 enables bit 3). If the bit is set (it is constantly monitored by the exe), it will perform the next phase and UNSET IT to 0. This is why the Icon turns white while the spell is in work and then back to yellow once it's done. It's simple to test, removing the sigorder will, among many other different outcomes, not reset the button icon.

What about orderdone (opcode 0x41) ? This is the opposite of sigorder. This unsets the bit. Therefore, sigorder 4 and orderdone 4 basically cancel eachother out and the effect is equivalent to that of removing sigorder itself. Why keep this command then ? Well, I'll keep it simple: which is the only auto-cast ability in StarCraft ? Healing. Noticed how it actually always stops before healing everytime ? Check IScript, orderdone is called everytime the ability should be reset in order to remove the Medic's target and stop using the ability itself.

Hope this cleared up all the confusion smile.gif
Report, edit, etc...Posted by SI on 2007-01-14 at 21:35:55
I sent this to nomad via PM, maybe someone else could do it, I cant edit iscript here atm.

3 test mods to the nuke missile iscript, for opcode 60 / 0x3c / curdirectcondjmp

Nuclear missile has it with params 128 / 32 / offset.

Try nuking something with the param set to 256 / 32 and see if the smoke spawns on the wrong side of the nuke. (or maybe it has to be 0 and 32)

Also try 192 / 32 and tell me if smoke doesn't spawn at all.
if it doesn't, try 160 / 64 and see if it does.
If those 3 tests run as expected, then opcode would be
if (unit direction - param_direction < param_2) goto jump.
(SC stores direction internally between 0...255)

opcode 59 works the same except is uses the direction the unit needs to face in order to face its current target....
Report, edit, etc...Posted by Laser_Dude on 2007-01-17 at 00:39:23
Hmm, this is more funny than useful, and I'm angry that it didn't work...

I was trying to make wraiths attack like interceptors, how they fly around and all. I easily found the AI order, and set the wraith's attack to it. Of course, when I tried shooting my SCV with my wraith, the wraith blew up! It's halarious, sending an army of 100 wraiths against a hopeless base, and having them all explode at once!

My conclusion: that the interceptor attack pattern is directly connected to them dieing when there is no carrier. Of course, my wraiths weren't set from a carrier.

Next Test: set up carriers to build wraiths, or change the interceptors orders to cause it to not return.

EDIT: crap, crash

Is there any way to test tech trees without going through the long and arduous task of doing all that memgraft save release, and MPQ embedder, and import .pat, etc...?

God, I wish I had FG right now drool.gif
Next Page (2)