Staredit Network

Staredit Network -> Modding Assistance -> Messing w/ Templar + Archon sprites
Report, edit, etc...Posted by Lord_Jeremy on 2006-12-16 at 11:39:14
Okay. So as you may know, the archon (including dark) is make up of three sprites. And If i remember correctly DatEdit shows the archon as having two subunits (its two other sprites). Anyway, what I want to do is make the dark templar have the "being" sprite the archon has (I'm referring to the person-like thing in the middle of the energy ball).

I first just tried changing the image ID for [197:High Templar] in sprites.dat (using Arsenal ZERO) to 135. Thus:
CODE
[197:High Templar]
Image=135
HP Bar Length=22
Unknown 3=1
Unknown 4=1
Selection Circle Image=0
Selection Circle Vertical Offset=9

I sorta expected the game to crash with this, and I wasn't dissappointed...

I next was going to copy the archon's appearance and walking animation controls from the iscript and see if they would un-crash the templar. Only problem is, Ice 1.2.2 only shows an iscript entry for the energy ball part of the archon. The script refers to the being and team color parts, but I'm not sure what to do now...
Archon iscript:
CODE
# ----------------------------------------------------------------------------- #
# This is a decompile of the iscript.bin file '/iscript.bin'
# created on: Sat Dec 16 09:55:28 2006
# ----------------------------------------------------------------------------- #

# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 134 ArchonEnergy (protoss\archon.grp)
.headerstart
IsId            147
Type            13
Init            ArchonEnergyInit
Death           ArchonEnergyDeath
GndAttkInit     ArchonEnergyGndAttkInit
AirAttkInit     ArchonEnergyGndAttkInit
SpAbility1      [NONE]
GndAttkRpt      ArchonEnergyGndAttkInit
AirAttkRpt      ArchonEnergyGndAttkInit
SpAbility2      [NONE]
GndAttkToIdle   ArchonEnergyGndAttkInit
AirAttkToIdle   ArchonEnergyGndAttkInit
SpAbility3      [NONE]
Walking         ArchonEnergyGndAttkInit
Other           ArchonEnergyGndAttkInit
BurrowInit      ArchonEnergyBurrowInit
.headerend
# ----------------------------------------------------------------------------- #

ArchonEnergyInit:
playfram        18
wait            1
nobrkcodestart  
wait            1
playfram        19
wait            2
playfram        20
wait            2
playfram        21
wait            2
playfram        22
wait            2
playfram        23
wait            2
playfram        24
wait            2
playfram        25
wait            2
playfram        26
wait            2
imgol08         135 0 0 # ArchonBeing (protoss\archonT.grp)
imgol08         136 0 0 # ArchonTeamColors (protoss\archonT2.grp)
sigorder        4
nobrkcodeend    
wait            2
ArchonEnergyGndAttkInit:
playfram        0
wait            1
playfram        1
wait            1
playfram        2
wait            1
playfram        3
wait            1
playfram        4
wait            1
playfram        5
wait            1
playfram        6
wait            1
playfram        7
wait            1
playfram        8
wait            1
playfram        9
wait            1
playfram        8
wait            1
playfram        7
wait            1
playfram        6
wait            1
playfram        5
wait            1
playfram        4
wait            1
playfram        3
wait            1
playfram        2
wait            1
playfram        1
wait            1
goto            ArchonEnergyGndAttkInit

ArchonEnergyDeath:
playsnd         7 # Misc\ExploLrg.wav
imgol08         214 0 0 # ProtossBuildingExplosionMedium (thingy\tBangL.grp)
wait            3
end            

ArchonEnergyBurrowInit:
playsnd         617 # Protoss\TEMPLAR\PTeSum00.WAV
playfram        10
wait            2
playfram        11
wait            2
local00:
playfram        12
wait            2
playfram        13
wait            2
playfram        14
wait            2
playfram        15
wait            2
playfram        16
wait            2
playfram        17
wait            2
playfram        16
wait            2
playfram        15
wait            2
playfram        14
wait            2
playfram        13
wait            2
goto            local00

I'm wondering if the being, energy, and teamcolor parts all follow the same animation sequence. If this is true, I could just copy the GndAttackInt (as that seems to control movement as well as attacking) and be done with it. However, I'm gonna guess that this isn't the case, since I distinctly remember the archon being part having separate walk and attack animations. There also is no attack command here, so I'm guessing that the being script has its own animations.

I'm not so sure what local00 is for, but I doubt I need to worry about it. The EnergyInt and BurrowInt seem to be related to archon warping, so I'll ignore those as well...

Before you start saying "OMFG N00b update ur sh** teres PWNZor DatEdit!!!11!!one" just shut your yap and go away. I'm on a Mac cool1.gif

ADDITION:
Ahah! I found the being iscript... It's iscript ID 148 and not in the listing ranting.gif . Anyway for future reference one must go to the images.dat and look for:
CODE
[135:Archon Being]
File=145
GFX Turns=1
Shadow Turns=0
Unknown 4=1
Floats=1
Palette Type=0
Palette Special=0
Iscript ID=148
Shield Overlay=2
Overlay 2=146
Overlay 3=0
Overlay 4=0
Overlay 5=0
Overlay 6=0


I'm gonna keep this thread open in case I run into more problems (which happens to be extremely likely wink.gif ).

ADDITION:
ARG! This is gonna be a long post... I tried putting the archon being script stuff into the templar script, but it crashes when I build a high templar...

Here's the original high templar script:
CODE
# ----------------------------------------------------------------------------- #
# This is a decompile of the iscript.bin file '/iscript.bin'
# created on: Sat Dec 16 09:54:37 2006
# ----------------------------------------------------------------------------- #

# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 126 HighTemplar (protoss\templar.grp)
.headerstart
IsId            158
Type            21
Init            HighTemplarInit
Death           HighTemplarDeath
GndAttkInit     HighTemplarGndAttkInit
AirAttkInit     [NONE]
SpAbility1      [NONE]
GndAttkRpt      HighTemplarGndAttkInit
AirAttkRpt      [NONE]
SpAbility2      HighTemplarSpAbility2
GndAttkToIdle   HighTemplarGndAttkToIdle
AirAttkToIdle   [NONE]
SpAbility3      [NONE]
Walking         HighTemplarWalking
Other           HighTemplarOther
BurrowInit      [NONE]
ConstrctHarvst  [NONE]
IsWorking       [NONE]
Landing         [NONE]
LiftOff         [NONE]
Unknown18       [NONE]
Unknown19       [NONE]
Unknown20       [NONE]
Unknown21       HighTemplarUnknown21
.headerend
# ----------------------------------------------------------------------------- #

HighTemplarInit:
imgul09         127 0 0 # HighTemplarShad (protoss\pteShad.grp)
playfram        0x66 # frame set 6
waitrand        1 2
HighTemplarGndAttkToIdle:
playfram        0x66 # frame set 6
wait            2
playfram        0x77 # frame set 7
wait            2
playfram        0x88 # frame set 8
wait            2
playfram        0x99 # frame set 9
wait            2
playfram        0xaa # frame set 10
wait            2
playfram        0xbb # frame set 11
wait            2
playfram        0xcc # frame set 12
wait            2
goto            HighTemplarGndAttkToIdle

HighTemplarDeath:
playsnd         635 # Protoss\TEMPLAR\PTeDth00.WAV
playframno      0
playfram        0x121 # frame set 17
wait            2
playfram        0x122 # frame set 17
wait            2
playfram        0x123 # frame set 17
wait            2
playfram        0x124 # frame set 17
wait            2
playfram        0x125 # frame set 17
wait            2
playfram        0x126 # frame set 17
wait            2
playfram        0x127 # frame set 17
wait            2
end            

HighTemplarGndAttkInit:
playsnd         101 # Bullet\LaserB.wav
playfram        0x00 # frame set 0
wait            1
nobrkcodestart  
playfram        0x11 # frame set 1
wait            1
playfram        0x22 # frame set 2
wait            1
playfram        0x33 # frame set 3
wait            1
attack25        1
playfram        0x44 # frame set 4
wait            1
nobrkcodeend    
gotorepeatattk  
playfram        0x66 # frame set 6
goto            local00

local00:
wait            125
goto            local00

HighTemplarSpAbility2:
playfram        0x00 # frame set 0
nobrkcodestart  
wait            1
playfram        0x11 # frame set 1
wait            1
playfram        0x22 # frame set 2
wait            1
playfram        0x33 # frame set 3
wait            1
castspell      
sigorder        2
playfram        0x44 # frame set 4
wait            1
nobrkcodeend    
gotorepeatattk  
playfram        0x66 # frame set 6
goto            local00

HighTemplarWalking:
playfram        0xee # frame set 14
wait            1
playfram        0xff # frame set 15
wait            1
playfram        0x110 # frame set 16
wait            1
playfram        0x55 # frame set 5
shvertpos       0
local01:
wait            3
sprol13         320 0 0 # HighTemplarTrail (thingy\pteglow.grp)
goto            local01

HighTemplarOther:
playfram        0x110 # frame set 16
wait            1
playfram        0xff # frame set 15
wait            1
playfram        0xee # frame set 14
wait            1
goto            HighTemplarGndAttkToIdle

HighTemplarUnknown21:
imgol08         128 0 0 # Unknown128 (protoss\templar.grp)
goto            local00


Here's the archon being script:
CODE
# ----------------------------------------------------------------------------- #
# This is a decompile of the iscript.bin file '/iscript.bin'
# created on: Sat Dec 16 11:03:59 2006
# ----------------------------------------------------------------------------- #

# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 135 ArchonBeing (protoss\archonT.grp)
.headerstart
IsId            148
Type            12
Init            ArchonBeingInit
Death           ArchonBeingDeath
GndAttkInit     ArchonBeingGndAttkInit
AirAttkInit     ArchonBeingGndAttkInit
SpAbility1      [NONE]
GndAttkRpt      ArchonBeingGndAttkInit
AirAttkRpt      ArchonBeingGndAttkInit
SpAbility2      [NONE]
GndAttkToIdle   ArchonBeingGndAttkToIdle
AirAttkToIdle   ArchonBeingGndAttkToIdle
SpAbility3      [NONE]
Walking         ArchonBeingGndAttkToIdle
Other           ArchonBeingGndAttkToIdle
BurrowInit      [NONE]
.headerend
# ----------------------------------------------------------------------------- #

ArchonBeingInit:
playframno      15
ArchonBeingGndAttkToIdle:
playfram        0xaa # frame set 10
wait            4
playfram        0xbb # frame set 11
wait            4
playfram        0xcc # frame set 12
wait            4
playfram        0xdd # frame set 13
wait            4
playfram        0xcc # frame set 12
wait            4
playfram        0xbb # frame set 11
wait            4
goto            ArchonBeingGndAttkToIdle

ArchonBeingDeath:
wait            1
end            

ArchonBeingGndAttkInit:
playfram        0x00 # frame set 0
wait            1
nobrkcodestart  
playfram        0x11 # frame set 1
wait            1
playfram        0x22 # frame set 2
wait            1
playfram        0x33 # frame set 3
wait            1
playfram        0x44 # frame set 4
wait            1
playfram        0x55 # frame set 5
trgtrangecondjmp 48 local00
imgol0d         549 0 0 # Unknown549 (thingy\emsBeam.grp)
local00:
playsnd         58 # Bullet\PArFir00.wav
attack26        
wait            1
playfram        0x66 # frame set 6
wait            3
playfram        0x77 # frame set 7
wait            1
playfram        0x88 # frame set 8
wait            1
playfram        0x99 # frame set 9
wait            1
playfram        0x22 # frame set 2
wait            2
playfram        0x11 # frame set 1
wait            2
playfram        0x00 # frame set 0
wait            2
nobrkcodeend    
gotorepeatattk  
goto            ArchonBeingGndAttkToIdle


And here's my new high templar script:
CODE
# ----------------------------------------------------------------------------- #
# This is a decompile of the iscript.bin file '/iscript.bin'
# created on: Sat Dec 16 09:54:37 2006
# ----------------------------------------------------------------------------- #

# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 126 HighTemplar (protoss\templar.grp)
.headerstart
IsId            158
Type            21
Init            HighTemplarInit
Death           HighTemplarDeath
GndAttkInit     HighTemplarGndAttkInit
AirAttkInit     [NONE]
SpAbility1      [NONE]
GndAttkRpt      HighTemplarGndAttkInit
AirAttkRpt      [NONE]
SpAbility2      HighTemplarSpAbility2
GndAttkToIdle   HighTemplarGndAttkToIdle
AirAttkToIdle   [NONE]
SpAbility3      [NONE]
Walking         HighTemplarWalking
Other           HighTemplarOther
BurrowInit      [NONE]
ConstrctHarvst  [NONE]
IsWorking       [NONE]
Landing         [NONE]
LiftOff         [NONE]
Unknown18       [NONE]
Unknown19       [NONE]
Unknown20       [NONE]
Unknown21       HighTemplarUnknown21
.headerend
# ----------------------------------------------------------------------------- #

HighTemplarInit:
playframno      15
HighTemplarGndAttkToIdle:
playfram        0xaa # frame set 10
wait            4
playfram        0xbb # frame set 11
wait            4
playfram        0xcc # frame set 12
wait            4
playfram        0xdd # frame set 13
wait            4
playfram        0xcc # frame set 12
wait            4
playfram        0xbb # frame set 11
wait            4
goto            HighTemplarGndAttkToIdle

HighTemplarDeath:
playsnd         635 # Protoss\TEMPLAR\PTeDth00.WAV
playframno      0
playfram        0x121 # frame set 17
wait            2
playfram        0x122 # frame set 17
wait            2
playfram        0x123 # frame set 17
wait            2
playfram        0x124 # frame set 17
wait            2
playfram        0x125 # frame set 17
wait            2
playfram        0x126 # frame set 17
wait            2
playfram        0x127 # frame set 17
wait            2
end            

HighTemplarGndAttkInit:
playsnd         101 # Bullet\LaserB.wav
playfram        0x00 # frame set 0
wait            1
nobrkcodestart  
playfram        0x11 # frame set 1
wait            1
playfram        0x22 # frame set 2
wait            1
playfram        0x33 # frame set 3
wait            1
playfram        0x44 # frame set 4
wait            1
playfram        0x55 # frame set 5
trgtrangecondjmp 48 local00
imgol0d         549 0 0 # Unknown549 (thingy\emsBeam.grp)

local00:
attack26        
wait            1
playfram        0x66 # frame set 6
wait            3
playfram        0x77 # frame set 7
wait            1
playfram        0x88 # frame set 8
wait            1
playfram        0x99 # frame set 9
wait            1
playfram        0x22 # frame set 2
wait            2
playfram        0x11 # frame set 1
wait            2
playfram        0x00 # frame set 0
wait            2
nobrkcodeend    
gotorepeatattk  
goto            HighTemplarGndAttkInit

HighTemplarSpAbility2:
playfram        0x00 # frame set 0
wait            1
nobrkcodestart  
wait            1
playfram        0x66 # frame set 6
wait            3
playfram        0x77 # frame set 7
wait            1
playfram        0x88 # frame set 8
wait            1
playfram        0x99 # frame set 9
wait            1
playfram        0x22 # frame set 2
wait            2
playfram        0x11 # frame set 1
wait            2
playfram        0x00 # frame set 0
wait            2
nobrkcodeend    
gotorepeatattk  
playfram        0x66 # frame set 6
goto            HighTemplarGndAttkToIdle

HighTemplarWalking:
playfram        0xaa # frame set 10
wait            4
playfram        0xbb # frame set 11
wait            4
playfram        0xcc # frame set 12
wait            4
playfram        0xdd # frame set 13
wait            4
playfram        0xcc # frame set 12
wait            4
playfram        0xbb # frame set 11
wait            4
goto            HighTemplarWalking

HighTemplarOther:
goto            HighTemplarGndAttkToIdle

HighTemplarUnknown21:
imgol08         128 0 0 # Unknown128 (protoss\templar.grp)
goto            local00


Now I'm gonna try using the archon script verbatim...
Report, edit, etc...Posted by TheNomad on 2006-12-16 at 11:48:00
Regarding the "update your sh**" part, I'd say upgrade IceCC to 1.3 since it's more reliable and has all the stuff fixed and labeled properly.

Anyhow, Local00 is, if IIRC the summoning loop of the being being fluffy and stuff.


Can you please say what you want again cos you kinda confused me after you said something about DatEd showing all the stuff as subunits and so on. I think you meant something else... still DatEd only shows the being, the other 2 parts are done in IScript. The teamcolor is the atom-thingy that whirls, the energy is the fluffball and the being is the humanoid protoss that seems to have lost weight due to hunger.

The Being is the one that is actually used by the game. And yes, all the other stuff follow it, much like how the turret follows the vessel's direction. It's all done internally.

So did I understand right ? You want just the being for the templar... no fluffball, no atom-thingy?
Report, edit, etc...Posted by Lord_Jeremy on 2006-12-16 at 11:55:25
Ya know, ShadowFlare and I just tried porting Ice 1.3 to mac, and failed for some completely random and unknown reason... And now you're gonna say that why port it its just a java app - No the java applet is the interface the rest is a pair of C++ command line utilities...


Your analysis seems to be correct, though I distinctly remember 3 archon entries (perhaps in flingy or images?) in DatEdit. I only want the being part, and I just realized that I'm gonna need to figure out some death animation for it...

Copying the archon being script and changing all the names to HighTemplar didn't work, so I'm back to square one... I really have no idea how to do this.
Report, edit, etc...Posted by TheNomad on 2006-12-16 at 11:58:55
Well I have a bday party to go to right now (yes very vital info for you biggrin.gif) but I'll see if I can fool around when I come back.

GL in case you still wanna try.
Report, edit, etc...Posted by Lord_Jeremy on 2006-12-16 at 12:07:22
Oh I wanna try all right. In case you're wondering, I'm working on what I call the Legacy of Adun mod... This mod will try to emulate what the primitive protoss were like. I should warn you that at some point, I'm gonna want to make the dragoon have the High Templar grps, though I doubt I'll have as many problems as I am with this. Though I'm hoping to make the archon look like a zealot, so I'll need a way to get rid of all the two secondary layer things. Man, this mod could be more problematic than I thought... (And I guarentee that this would be a lot easier with DatEdit ranting.gif )

Here's my stats for the unit:
Khalai Spirit (High Templar)
Archon gfx (body layer only)
HP: 35 Shield: 100 Armor: 0
Gnd Attk: Orbs of Emotion | Dmg: 12+1 (normal) | Splash: small | Targeting: Halo Rockets effect | Speed: Very Fast | Range: 16
Air Attk: Same as Gnd
Cost: 75 M, 100 G | Time: Same as HT
Report, edit, etc...Posted by Lord_Agamemnon(MM) on 2006-12-16 at 12:16:15
All right, here's my analysis. I've become somewhat of an expert on the Archon in the past week with my mini-mod tongue.gif

The archon energy is the main unit (the flingy.dat that controls the movement and stuff.) The being is the one that does all of the actual attacking, and the swirl is just the team colors. When a unit is given a command, it and all associated overlays jump to the corresponding part of their iscript. So when the Archon is told to attack, the energy goes to that section, the being goes to its attack animation (the one that actually does the damage) and the swirl does nothing. The Archon, by the way, is not listed as having any subunits in units.dat, so that's not a problem.

The reason that the gndattkinit is used for everything is that it's just a convenient place to put the script that loops the energy. If you want the high templar to act as the archon being, then I think you might be able to just change the overlay command in the archon energy's init script, although I'm not sure. I know that you can make the regular archon use the Dark Archon being with no problems...I'm not sure about a random other entry, though. If I have time, I'll try it out and see if it works.
Report, edit, etc...Posted by Lord_Jeremy on 2006-12-16 at 12:30:53
Uhh... What? I get the first part, but exactly what am I supposed to do in the templar iscript? I've gotten the impression that if I don't mess with the templar script and make it conform to the archon script, there will be a crash because they'll call for frames not available in their corresponding animations... And how do I change the overlay command? I warn you I've never messed with graphics to this extent sad.gif

ADDITION:
Oh and I have a great idea for the death animation. The being will spin around really fast a few times then disappear in a puff of hallucination smoke. Now I just need the string that will make something rotate... wink.gif
Report, edit, etc...Posted by TheNomad on 2006-12-17 at 12:21:14
QUOTE(Lord_Jeremy @ Dec 16 2006, 08:30 PM)
Oh and I have a great idea for the death animation. The being will spin around really fast a few times then disappear in a puff of hallucination smoke. Now I just need the string that will make something rotate... wink.gif
[right][snapback]604400[/snapback][/right]

Hint: Missile Turret wink.gif
Report, edit, etc...Posted by Lord_Jeremy on 2006-12-20 at 20:56:13
QUOTE(TheNomad @ Dec 17 2006, 12:21 PM)
Hint: Missile Turret wink.gif
[right][snapback]604846[/snapback][/right]

Yeah... But is the speed hardcoded or can I mke it really fast? Oh and btw what is the command to make graphics display? And can someone figure out the flingy ID of that hallucination puff cloud? Arsenal ZERO lists it as unknown sad.gif

ADDITION:
QUOTE(Lord_Agamemnon(MM) @ Dec 16 2006, 12:16 PM)
All right, here's my analysis.  I've become somewhat of an expert on the Archon in the past week with my mini-mod tongue.gif
...
If I have time, I'll try it out and see if it works.

[right][snapback]604398[/snapback][/right]

You didn't happen to try it out and come up with an answer, did you?
Next Page (1)