#  ![](https://www.realm667.com/media/kunena/topic_icons/realm667_repo/user/rep_approved.png) \[UPDATE\] ZScriptification, A through E

##

- **Ghastly**
- ![Ghastly's Avatar](https://www.realm667.com/media/kunena/avatars/resized/size144/users/avatar64.png) Topic Author
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 33
-
-
-

   8 years 1 month ago - 7 years 8 months ago [\#7024](#7024) by Ghastly  *[\[UPDATE\] ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7024 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")* was created by *Ghastly*

 Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood Demon, Blood Fiend, Bruiser Demon, Butcher, Cacolich, Catharsi, Chaingun Major, Core Tentacles, Cybruiser, Dark Devil, the Dark Imps, Darkness Rift, Death Incarnate, Death Knight, Devastator Zombie, Diabolist, Disciple, Double-Chaingunner, Ethereal Soul and Hades Sphere (out of order, but it's part of the Death Incarnate).

Link: https://www.dropbox.com/s/qgij9pl0s8e7mj3/ZScriptification-Beastiary-AthroughE.zip?dl=0

***PLEASE*** check and test these to make sure they ll work the way they used to. Especially the Heretic/Hexen Boss Shooters, as I don't have a test map for them. I just converted them to ZScript, cleaned up the code a little, replaced deprecated functions (that generated warnings) with newer functions, and updated them to newer methods of doing things. The old Decorate is included in a lump called OLDCODE. I also client-sided particle effects that weren't already, converted sounds to OGG and sprites to PNG. Everything *should* work exactly as it did before, except for these bug fixes. - Agathodemon: Melee sound now properly plays.
- Avatar: Secondary projectiles from the splitting attack now properly track the original owner, so obituaries now work.
- Cacolich: The one variant now properly plays a sound when it uses its gas stream attack.
- Darkness Rift: Decided to rebalance it, since it's my monster. Increased its mass and drastically lowered its health.

I'm not converting everything, just the things I think are the highest-quality, the most usable, or my own work. If there's something specific you want me to update, let me know and I'll add it to the list.

 Last edit: 7 years 8 months ago by Blue Shadow.

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

- **Blue Shadow**
- ![Blue Shadow's Avatar](https://www.realm667.com/media/kunena/core/svg/person.svg)
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 1131
-
-
-

   8 years 1 month ago [\#7025](#7025) by Blue Shadow  Replied by *Blue Shadow* on topic *[\[Update\]ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7025 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")*

 Got them. Going through them might take a while, though, to let you know.

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

- **Ghastly**
- ![Ghastly's Avatar](https://www.realm667.com/media/kunena/avatars/resized/size144/users/avatar64.png) Topic Author
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 33
-
-
-

   8 years 1 month ago [\#7026](#7026) by Ghastly  Replied by *Ghastly* on topic *[\[Update\]ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7026 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")*

 If you have suggestions for better ways of doing things, as well, I'd appreciate it. I'm doing this for two reasons; to get more familiar with ZScript, and to provide better examples for people trying to learn ZScript.

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

- **Blue Shadow**
- ![Blue Shadow's Avatar](https://www.realm667.com/media/kunena/core/svg/person.svg)
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 1131
-
-
-

   8 years 1 month ago - 8 years 1 month ago [\#7027](#7027) by Blue Shadow  Replied by *Blue Shadow* on topic *[\[Update\]ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7027 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")*

 **Acolyte**In the old code, after doing a "slide", the monster has a chance of 96/256 to go back to See and 160/256 to go back to Slide, while in the new code things are reversed; it now has a chance of 160/256 to go back to See and 96/256 to go back to Slide.

 Warning: Spoiler!

Code:

 // Old code --------------------------------- See: ACOL AAABBB 4 A_Chase ACOL A 0 A_Jump(96,1) Loop ACOL A 0 A_Chase ACOL A 1 A_Playsound("monster/blur") ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL A 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL A 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 1 A_Chase ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0) ACOL B 0 A_Jump(96,1) // &lt;--- Goto See+8 ACOL B 0 Goto See // New code --------------------------------- See: ACOL AAABBB 4 A_Chase(); ACOL A 0 A_Jump(96, "Slide"); Loop; Slide: ACOL A 1 { A_Chase(); A_Playsound("monster/blur"); } ACOL AAAAAABBBBBAAAAAAABBBBB 1 PriestSlide(); ACOL B 0 Bright A_SpawnItem("AcolFX2",0,0); ACOL B 0 A_Jump(96, "Slide"); // &lt;--- Goto See;

**Agathodemon**You forgot to remove the MissileType property now that there's no use for it anymore.

 Last edit: 8 years 1 month ago by Blue Shadow.

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

- **Ghastly**
- ![Ghastly's Avatar](https://www.realm667.com/media/kunena/avatars/resized/size144/users/avatar64.png) Topic Author
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 33
-
-
-

   8 years 1 month ago [\#7031](#7031) by Ghastly  Replied by *Ghastly* on topic *[\[Update\]ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7031 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")*

 Good catch, I mixed up the two labels. Fixed it and put it up on the first post. Checked the Disciple, as well, and I did it correctly there, but noticed I used a goto to jump to the same state rather than loop, so changed that and reuploaded that as well.

I believe actors are immune to the projectile set as their MissileType, and the Agathodemon doesn't have +DontHarmClass. I checked the wiki and it doesn't say so, though. I'll dig around and if I'm mistaken I'll fix it (and the others that I left that property on).

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

- **Blue Shadow**
- ![Blue Shadow's Avatar](https://www.realm667.com/media/kunena/core/svg/person.svg)
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 1131
-
-
-

   8 years 1 month ago [\#7035](#7035) by Blue Shadow  Replied by *Blue Shadow* on topic *[\[Update\]ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7035 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")*

> Ghastly wrote: I believe actors are immune to the projectile set as their MissileType, and the Agathodemon doesn't have +DontHarmClass. I checked the wiki and it doesn't say so, though. I'll dig around and if I'm mistaken I'll fix it (and the others that I left that property on).

Never heard of that before. I did a test: I gave an imp that property, referencing the plasma ball. I shot it with the plasma rifle, but it took damage like normal.

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

- **Ghastly**
- ![Ghastly's Avatar](https://www.realm667.com/media/kunena/avatars/resized/size144/users/avatar64.png) Topic Author
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 33
-
-
-

   8 years 1 month ago [\#7038](#7038) by Ghastly  Replied by *Ghastly* on topic *[\[Update\]ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7038 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")*

 Huh, thought that was how the Baron and Hell Knight didn't hurt each other. Anyway, re-uploaded the Agathodemon, Belphegor, BFG Commando, Bruiser Demon and Devastator Zombie to remove MissileType.

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

- **Blue Shadow**
- ![Blue Shadow's Avatar](https://www.realm667.com/media/kunena/core/svg/person.svg)
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 1131
-
-
-

   8 years 1 month ago [\#7042](#7042) by Blue Shadow  Replied by *Blue Shadow* on topic *[\[Update\]ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7042 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")*

 The baron and hell knight are of the same species. That's why they don't hurt each other with direct damage from projectile attacks.

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

- **Blue Shadow**
- ![Blue Shadow's Avatar](https://www.realm667.com/media/kunena/core/svg/person.svg)
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 1131
-
-
-

   8 years 1 month ago - 8 years 1 month ago [\#7054](#7054) by Blue Shadow  Replied by *Blue Shadow* on topic *[\[Update\]ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7054 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")*

 **Annihilator**- For the sake of consistency, the AnnihilatorRockets() function's parameters' types should match that of A\_SpawnProjectile(), being 'class&lt;Actor&gt;', 'double' and 'double', instead of being 'string', 'int' and 'int'.
- HomeRocket1 class: in the old code, the rocket starts seeking 8 tics after spawning, while in the new code, thanks to the NoDelay keyword, it does so as soon as it's spawned. Code:

    // Old code: Spawn: HMIS A 4 Bright A_SeekerMissile (25,35) HMIS A 4 Bright HMIS A 2 Bright A_SeekerMissile (10,25) HMIS A 2 Bright goto Spawn+2 // New code: Spawn: HMIS A 4 Bright NoDelay A_SeekerMissile (25,35); HMIS A 4 Bright; Fly: HMIS A 2 Bright A_SeekerMissile (10,25); HMIS A 2 Bright; Loop;

**ApprenticeOfDsparil**- In line 61 of the new code, the duration of the state should be 6 tics, not 0.
- The WAD lacks an S\_END marker, which produces a warning on start-up.

**ArchonOfHell**- MeleeSound is still present even though it's not of use anymore.
- Line 105: Code:

    BOS4 X 6 Bright A_SpawnProjectile("ArchonSoul",86,0,0,2,-90);

    The last parameter passed to the function (pitch) is 90 in the old code, not -90.
- Line 107: Code:

    BOS4 [ 6 Bright A_Fall();

    A\_Fall is not needed here, since it has already been called in line 103 (I know this is not something you introduced in the update, but still, I thought I'd point it out).

**Avatar**- Missile1 state: some of the projectiles are spawned with negative pitch, while in they weren't in the old code.
- Missile3 state: in the old code the monster shoots projectiles 30 times, while in the new code it shoots 40 times.

 Last edit: 8 years 1 month ago by Blue Shadow. Reason: Archon of Hell and Avatar

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

- **Ghastly**
- ![Ghastly's Avatar](https://www.realm667.com/media/kunena/avatars/resized/size144/users/avatar64.png) Topic Author
- Administrator
- ![Administrator](https://www.realm667.com/media/kunena/ranks/rank_20_barrel.png)

 Less More- Posts: 33
-
-
-

   8 years 1 month ago [\#7067](#7067) by Ghastly  Replied by *Ghastly* on topic *[\[Update\]ZScriptification, A through E](https://www.realm667.com/forum/closed-submissions/1153-update-zscriptification-a-through-e#7067 "Finished ZScriptifying the Acolyte, Afrit, Agathodemon, Annihilator, Apprentice of D'Sparil, Arachnophyte, Archon of Hell, Auto-Shotgun Zombie, Avatar, Beam Zombie, Belphegor, BFG Commando, Blood...")*

 Added the fixed versions to the first post. Regarding the negated pitch on the Archon and Avatar, that's because I swapped from A_CustomMissile to A_SpawnProjectile. A_CustomMissile's pitch parameter is negated from how it's handled in the rest of the engine, so they deprecated that and did A_SpawnProjectile instead.

I was reminded of this when I had just finished ZScripting the Archon of Hell and it threw that green soul thing straight at the ground.

Please [Log in](https://www.realm667.com/component/users/login?return=aHR0cHM6Ly93d3cucmVhbG02NjcuY29tL2ZvcnVtL2Nsb3NlZC1zdWJtaXNzaW9ucy8xMTUzLXVwZGF0ZS16c2NyaXB0aWZpY2F0aW9uLWEtdGhyb3VnaC1l&Itemid=2662) or [Create an account](https://www.realm667.com/component/users/registration?Itemid=2662) to join the conversation.

[Powered by](https://www.realm667.com/forum/credits) [Kunena Forum](https://www.kunena.org)
