Sokoro Posted September 1, 2019 Hi, I have donwloaded decorate monster Archon of Hell and tried to nerf it. Most of the time it behaves normaly, but on some occasions it skips some frames and uses only last frame when doing a_custommissile, or it throws fireball into different direction than it is facing. I am using latest gzdoom stable build. What could cause such behavior? Here is the code I am using: ACTOR HellstormArchon replaces BaronOfHell { Health 1000 Radius 24 Height 64 Mass 1000 Speed 8 PainChance 20 MONSTER MeleeDamage 10 Obituary "%o was no match for an archon of hell." HitObituary "%o was ripped apart by an archon of hell." BloodColor "20 60 20" +FLOORCLIP +BOSS +BOSSDEATH +DONTHARMCLASS SeeSound "monster/arcsit" PainSound "baron/pain" DeathSound "monster/arcdth" MeleeSound "baron/melee" SpawnID 174 States { Spawn: BOS3 AB 10 A_Look Loop See: BOS3 AABBCCDD 3 A_Chase Loop Missile: TNT1 A 0 A_Jump(128,7) BOS3 EF 8 A_FaceTarget BOS3 G 8 A_CustomMissile ("BaronBall",28,0,0,0) TNT1 A 0 A_Jump(64,4) BOS3 ST 8 A_FaceTarget BOS3 U 8 A_CustomMissile ("BaronBall",28,0,0,0) TNT1 A 0 A_Jump(64,1) Goto See BOS3 HI 8 A_FaceTarget BOS3 J 8 A_CustomMissile ("ArchonComet",28,0,0,0) Goto See Melee: BOS3 EF 8 A_FaceTarget BOS3 G 6 A_MeleeAttack BOS3 G 0 A_Jump (128,1) Goto See BOS3 ST 8 A_FaceTarget BOS3 U 6 A_MeleeAttack BOS3 G 0 A_Jump (64,1) Goto See BOS3 HI 8 A_FaceTarget BOS3 J 0 A_MeleeAttack BOS3 J 6 A_MeleeAttack Goto See Pain: BOS3 K 2 BOS3 K 2 A_Pain Goto See Death: BOS3 L 8 BOS3 M 8 A_Scream BOS3 N 8 BOS3 O 8 A_NoBlocking BOS3 PQ 8 BOS3 R -1 A_Fall Stop XDeath: XARC A 5 XARC B 5 A_XScream XARC C 5 A_NoBlocking XARC DEFGH 5 XARC I -1 stop Raise: BOS3 RQPONML 8 Goto See } } ACTOR ArchonComet { Radius 8 Height 12 Speed 25 Damage 20 Scale 1.0 SpawnID 251 PROJECTILE RENDERSTYLE Normal +THRUGHOST SeeSound "weapons/firbfi" DeathSound "weapons/hellex" DONTHURTSHOOTER +FIREDAMAGE States { Spawn: ARCB AAAABBBBCCCC 1 Bright A_SpawnItem("ArchonCometTrail",0,0) loop Death: ARCB J 0 Bright A_SetTranslucent (0.67,1) ARCB J 3 Bright ARCB K 3 Bright A_Explode(128,128,0) ARCB LMN 3 Bright stop } } ACTOR ArchonCometTrail { Radius 3 Height 3 Scale 0.75 Speed 0 PROJECTILE RENDERSTYLE ADD ALPHA 0.67 States { Spawn: NULL A 3 Bright ARCB DEFGHI 3 BRIGHT Stop } } 0 Share this post Link to post
snapshot Posted September 1, 2019 (edited) Looking at the code, it seems like it's caused by A_Jump, it's telling the actor to jump to different states at specified chance rates, that's why some states are skipped sometimes, remove the random A_Jumps in missile states if you want it to behave in a straightforward / less random way. This will also cause the actor to ignore some states that are only accessible via A_Jump so you might want to also remove those states if you don't need them. https://zdoom.org/wiki/A_Jump 1 Share this post Link to post
Graf Zahl Posted September 2, 2019 There's a reason why A_Jump supports labels - it's done precisely for avoiding this kind of state counting which is very error prone. The problem here looks like 'EF' and 'ST' state lines are being counted as one, not two. 1 Share this post Link to post
Sokoro Posted September 2, 2019 Ah, I see it now, thank you Graf and thank you for GZDoom it is my favorite port for anything, but testing vanilla maps (I use chocolate doom for that) 1 Share this post Link to post