Staredit Network

Staredit Network -> Modding Assistance -> Arbiter+Random Attack=Freeze up?
Report, edit, etc...Posted by TheStrategist on 2006-10-02 at 15:44:36
CODE
# ----------------------------------------------------------------------------- #
# This is a decompile of the iscript.bin file 'data\scripts\iscript.bin'
# created on: Sat Sep 30 20:43:12 2006
# ----------------------------------------------------------------------------- #

# ----------------------------------------------------------------------------- #
# This header is used by images.dat entries:
# 130 Arbiter (protoss\arbiter.grp)
.headerstart
IsId            146
Type            21
Init            ArbiterInit
Death           ArbiterDeath
GndAttkInit     ArbiterGndAttkInit
AirAttkInit     ArbiterGndAttkInit
SpAbility1      [NONE]
GndAttkRpt      ArbiterGndAttkRpt
AirAttkRpt      ArbiterGndAttkRpt
SpAbility2      ArbiterSpAbility2
GndAttkToIdle   ArbiterGndAttkToIdle
AirAttkToIdle   ArbiterGndAttkToIdle
SpAbility3      [NONE]
Walking         ArbiterWalking
Other           ArbiterGndAttkToIdle
BurrowInit      [NONE]
ConstrctHarvst  [NONE]
IsWorking       [NONE]
Landing         [NONE]
LiftOff         [NONE]
Unknown18       [NONE]
Unknown19       [NONE]
Unknown20       [NONE]
Unknown21       ArbiterUnknown21
.headerend
# ----------------------------------------------------------------------------- #

ArbiterInit:
imgul09         131 0 42 # ArbiterShad (protoss\arbiter.grp)
playfram        0x00 # frame set 0
goto            ArbiterGndAttkToIdle

ArbiterGndAttkToIdle:
shvertpos       1
waitrand        8 10
shvertpos       2
waitrand        8 10
shvertpos       1
waitrand        8 10
shvertpos       0
waitrand        8 10
goto            ArbiterGndAttkToIdle

ArbiterDeath:
playsnd         7 # Misc\ExploLrg.wav
imgol08         213 0 0 # ProtossBuildingExplosionSmall (thingy\tBangS.grp)
wait            3
end            

ArbiterGndAttkInit:
shvertpos       0

ArbiterGndAttkRpt:
playfram        0x11 # frame set 1
wait            1
nobrkcodestart  
attack25        1
wait  1
attack25 1
wait  1
attack25 1
wait  1
attack25 1
wait  1
playfram        0x00 # frame set 0
wait            1
playfram        0x11 # frame set 1
wait            1
playfram        0x00 # frame set 0
wait            1
playfram        0x11 # frame set 1
wait            1
playfram        0x00 # frame set 0
__1e_condjmp  60 AntiMatter
nobrkcodeend    
gotorepeatattk  
goto            local12

local12:
wait            125
goto            local12

ArbiterSpAbility2:
nobrkcodestart  
wait            1
playsnd         548 # Protoss\ARBITER\PAbCag00.WAV
castspell      
nobrkcodeend    
gotorepeatattk  
sigorder        2
goto            local12

AntiMatter:
wait            1
attack25 2
attack25 2
attack25 2
attack25 2
wait            1
gotorepeatattk

ArbiterWalking:
imgol08         132 0 0 # ArbiterGlow (thingy\pabGlow.grp)
playfram        0x00 # frame set 0
shvertpos       0
goto            local12

ArbiterUnknown21:
imgol08         133 0 0 # Unknown133 (protoss\arbiter.grp)
goto  local12


Well, I've added a random attack for the arbiter so that it would randomly fire 4 anti-matter missiles in a scatter. The problem is that sometimes when it fires its random, the arbiter freezes up and is stuck in some animation. I got a feeling that I need to remove something from the code, but I don't know what. Anyone knows what I'm doing wrong?

user posted image

Also, this could be a little off topic, but how do you alter the cloaking field range of the arbiter? Is it the weapon attack range?

user posted image
Report, edit, etc...Posted by JordanN_3335 on 2006-10-02 at 16:03:22
QUOTE
Also, this could be a little off topic, but how do you alter the cloaking field range of the arbiter? Is it the weapon attack range?


Never mind Goose is wrong. 8l
Report, edit, etc...Posted by TheStrategist on 2006-10-02 at 16:04:32
Wierd 0.o... Somehow I got the field to be a little larger than normal o.0

Think I'll put up some pics of what happened..
Report, edit, etc...Posted by DiscipleOfAdun on 2006-10-02 at 16:09:39
Your Antimatter block does not have a nobrkcodeend command, which is why it is freezing up. if you add one in right before the gotorepeatattk, it should work fine.

If I recall right, it is based on the weapon range...
Report, edit, etc...Posted by BSTRhino on 2006-10-02 at 16:20:39
Yes, it's weapon range. My tests confirmed that it's actually the current weapon, but I haven't distinguished whether it's the ground or air weapon.

Also, gotorepeatattk is wrongly named, it doesn't goto at that location, it just works like a sigorder that says that it's okay to go to the repeat attack now. So you still need a goto command of some kind after your gotorepeatattk command, probably just copy "goto local12" from the other non-special attack block. You might notice in some Doom scripts I have the gotorepeatattk as the first command in the attack block because of this fact.
Report, edit, etc...Posted by DiscipleOfAdun on 2006-10-02 at 16:24:31
Was wondering when someone was going to pick up on that fact about gotorepeatattk...even if I forgot it for a while. So, yeah, another goto, like BST said...

offtopic: What's odd is ignorerest...I cannot for the life of me remember why it is important.

I would assume it's the ground weapon...just in case it doesn't have an air weapon via modding?
Report, edit, etc...Posted by Lord_Jeremy on 2006-10-02 at 16:56:47
That explains why the Arbiter's cloaking range got so damn big when I gave it a huge attack range... Is there any way to assign the cloacking field to like a second weapon but have it attack with the first? I want my long range weapon without the huge field...
Report, edit, etc...Posted by BSTRhino on 2006-10-02 at 17:14:13
Well, like I said on SCU (check it out you guys!!) ignorerest in concept makes the script stop until the next animation - which usually is a repeat attack animation or a return to idle animation. This is used because generally after the ignorerest command is commands for the unit to put its gun down or go back to its idle state. For particular units, it looks better if the unit doesn't put its gun down. It's an optional command, you can choose to use it or not to use it. I used this for the Archon in Doom Dragoon, it's part of the reason why the Archon just focuses energy constantly without putting its arms down.

I realise that if you got a memory reader you'd probably see the script continue to execute but nothing happening, that's why I say in concept it just makes the script stop until the next animation, I think this is a better explanation if you want to use it for something.
Next Page (1)