header general

[UPDATE] ZScriptification, F through N

  • Ghastly
  • Ghastly's Avatar Topic Author
  • Administrator
  • Administrator
More
6 years 2 months ago - 6 years 1 month ago #1 by Ghastly
Fallen, Female Scientist, Flamer Zombie, Fleshspawn, Flesh Wizard, Former Scientists 1 and 2, Freezer Zombie, Fusion Spider, Ghoul, Grell, Guardian Cube, Hangman, Hazmat Zombie, Hectebus, Helemental, Hell Apprentice, Hellion, Hell's Fury, Hellsmith, Hell Warrior, Hierophant, Inferno, Karasawa Zombie, Lord of Heresy, Machine Gun Zombie, Mauler Demon, Medusa, Minigunner, Nightmare and Nightshade.

https://www.dropbox.com/s/9uqcongibfryymf/ZScriptification-Beastiary-FthroughN.zip?dl=0

As before, please make sure things work the way they're supposed to and it doesn't complain about deprecated things (I think I got them all). Everything should work the same as before, except for:
  • Flamer Zombie: Fixed a broken association with its dynamic lights and ogg'd its sounds.
  • Zombie Scientist 4: Just a note, it uses (0.1)*Random(-3, 3) in projectile pitch which doesn't actually work, I believe. It should probably be changed to FRandom, but I left it as is because I'm not 100% sure about it.
  • Freezer Zombie: Commented out the Freezer drop, fixed a broken dynamic light association and converted sounds to ogg. For some reason, the sprites don't want to convert to png.
  • Grell: I asked Xaser if he wanted to switch from an A_RadiusGive hack and he said yes. I made this change to the old Decorate as well, and left the A_RadiusGive version as a comment.
  • Hell Apprentice: The tracer attack now transfers pointers to the trail, so obituary works correctly. Also tracked down the missing SmithGhost1 actor and added it.
  • Hellsmith: Like with the Apprentice, tracer attacks now transfer pointers to the trails, and also removed the extraneous SmithGhost1 actor.
  • Inferno: I put together this routine for its death state so it doesn't disappear until its projectiles are gone, so obituaries from its death projectiles work properly.
  • Mauler Demon: Changed it so the first A_Chase can't jump to Missile state. There's a small chance it could trip the infinite-loop detection if it jumps back and forth from Missile to See and back.
  • Medusa: Original method I used for freezing a player (spawning a solid but non-shootable actor inside him) doesn't work anymore, so it now gives a 0.0 speed powerup. I fixed both the Decorate and ZScript versions.
Last edit: 6 years 1 month ago by Blue Shadow.

Please Log in or Create an account to join the conversation.

  • ajogames
  • ajogames's Avatar
  • Shotgunner
  • Shotgunner
More
6 years 2 months ago #2 by ajogames
Replied by ajogames on topic [Update]ZScriptification, F through N

Ghastly wrote: Fallen, Female Scientist, Flamer Zombie, Fleshspawn, Flesh Wizard, Former Scientists 1 and 2, Freezer Zombie, Fusion Spider, Ghoul, Grell, Guardian Cube, Hangman, Hazmat Zombie, Hectebus, Helemental, Hell Apprentice, Hellion, Hell's Fury, Hellsmith, Hell Warrior, Hierophant, Inferno, Karasawa Zombie, Lord of Heresy, Machine Gun Zombie, Mauler Demon, Medusa, Minigunner, Nightmare and Nightshade.

https://www.dropbox.com/s/9uqcongibfryymf/ZScriptification-Beastiary-FthroughN.zip?dl=0

As before, please make sure things work the way they're supposed to and it doesn't complain about deprecated things (I think I got them all). Everything should work the same as before, except for:

  • Flamer Zombie: Fixed a broken association with its dynamic lights and ogg'd its sounds.
  • Zombie Scientist 4: Just a note, it uses (0.1)*Random(-3, 3) in projectile pitch which doesn't actually work, I believe. It should probably be changed to FRandom, but I left it as is because I'm not 100% sure about it.
  • Freezer Zombie: Commented out the Freezer drop, fixed a broken dynamic light association and converted sounds to ogg. For some reason, the sprites don't want to convert to png.
  • Grell: I asked Xaser if he wanted to switch from an A_RadiusGive hack and he said yes. I made this change to the old Decorate as well, and left the A_RadiusGive version as a comment.
  • Hell Apprentice: The tracer attack now transfers pointers to the trail, so obituary works correctly. Also tracked down the missing SmithGhost1 actor and added it.
  • Hellsmith: Like with the Apprentice, tracer attacks now transfer pointers to the trails, and also removed the extraneous SmithGhost1 actor.
  • Inferno: I put together this routine for its death state so it doesn't disappear until its projectiles are gone, so obituaries from its death projectiles work properly.
  • Mauler Demon: Changed it so the first A_Chase can't jump to Missile state. There's a small chance it could trip the infinite-loop detection if it jumps back and forth from Missile to See and back.
  • Medusa: Original method I used for freezing a player (spawning a solid but non-shootable actor inside him) doesn't work anymore, so it now gives a 0.0 speed powerup. I fixed both the Decorate and ZScript versions.


I was playing Doom 2 using ZDoom and I wanted to spawn a Helemental, So I hit the "`" button and typed "summonfriend helemental" but everytime I do so, it keeps saying "unknown class "Helemental" " so Zdoom doesn't know it's class name, and in order to use the summon/summonfriend command, you need to type in the class name of the monster you want to spawn right after you type either summon or summonfriend

So what is Helemental's Class Name?

Please Log in or Create an account to join the conversation.

  • Ghastly
  • Ghastly's Avatar Topic Author
  • Administrator
  • Administrator
More
6 years 2 months ago - 6 years 2 months ago #3 by Ghastly
Replied by Ghastly on topic [Update]ZScriptification, F through N
That's the class name. Are you using a version of ZDoom that supports ZScript? Can you make sure it's being loaded correctly? I just did it and it worked fine.
Last edit: 6 years 2 months ago by Ghastly.

Please Log in or Create an account to join the conversation.

  • ajogames
  • ajogames's Avatar
  • Shotgunner
  • Shotgunner
More
6 years 2 months ago #4 by ajogames
Replied by ajogames on topic [Update]ZScriptification, F through N
I do have ZDoom v 2.8.1, I don't know if that supports ZScript or not, and whenever I launch zdoom.exe (using the frontend "ZDoom Executor") it has no issues.

There's a useful tool in ZDoom Executor called "WAD Identifier" I used it to Identify the WAD Helemental.wad to see if there was anything wrong with the wad file, but there wasn't any issues,

Please Log in or Create an account to join the conversation.

  • Blue Shadow
  • Blue Shadow's Avatar
  • Administrator
  • Administrator
More
6 years 2 months ago #5 by Blue Shadow
Replied by Blue Shadow on topic [Update]ZScriptification, F through N
ZScript didn't make it into ZDoom officially. So either switch to GZDoom or reinstate the DECORATE code by modifying the WAD in question.

Please Log in or Create an account to join the conversation.

  • Blue Shadow
  • Blue Shadow's Avatar
  • Administrator
  • Administrator
More
6 years 1 month ago #6 by Blue Shadow
Replied by Blue Shadow on topic [Update]ZScriptification, F through N
Finished going through them. Here's what I've got:

Warning: Spoiler!

Ghastly wrote: Zombie Scientist 4: Just a note, it uses (0.1)*Random(-3, 3) in projectile pitch which doesn't actually work, I believe. It should probably be changed to FRandom, but I left it as is because I'm not 100% sure about it.

Leaving it as it is should be fine. It picks an integer and multiplies it by a float which results in a float.

Inferno: I put together this routine for its death state so it doesn't disappear until its projectiles are gone, so obituaries from its death projectiles work properly.

You could make the monster stay after death instead of disappearing, and set the DONTGIB flag on it, so that it doesn't turn into a pile of gibs if it died under a crusher or a closing door.

Mauler Demon: Changed it so the first A_Chase can't jump to Missile state. There's a small chance it could trip the infinite-loop detection if it jumps back and forth from Missile to See and back.

Here's a different approach if you're interested. The benefit is that the monster doesn't interrupt its walking animation needlessly if its target is out of range:

Code:
See: MAUD AABBCCDD 2 { statelabel st = null; if (CheckIfCloser(target, 224)) { st = "Missile"; } A_Chase("Melee", st); } Loop; ... Missile: MAUD E 4 A_FaceTarget(); MAUD F 10 A_SkullAttack(); MAUD G 5 A_Gravity(); Goto See;

Please Log in or Create an account to join the conversation.

  • Ghastly
  • Ghastly's Avatar Topic Author
  • Administrator
  • Administrator
More
6 years 1 week ago #7 by Ghastly
Replied by Ghastly on topic [Update]ZScriptification, F through N
Whoops, didn't see the response, been busy with work. I'll get on fixing these up soon.

Blue Shadow wrote: Here's a different approach if you're interested.

Ah! I didn't think of that! I have a few other things that should probably be redone with that.

Please Log in or Create an account to join the conversation.

  • Ghastly
  • Ghastly's Avatar Topic Author
  • Administrator
  • Administrator
More
6 years 1 week ago - 6 years 1 week ago #8 by Ghastly
Replied by Ghastly on topic [Update]ZScriptification, F through N
Here's the fixed versions: https://www.dropbox.com/s/jao291219h1bwc6/ZScriptification-Beastiary-FthroughN-Fixes.zip?dl=0 (Edit: Fixed the link)

Blue Shadow wrote: HazmatZombie: There is no ZScript code to review. :P You must have mistakenly included the unmodified version.

Actually, I think I did it all in one shot while it was inside the zip and then clicked no by mistake when Winrar asked if I wanted to actually modify it. Whoops.

Hellsmith: Line 566: the flag passed to A_SpawnItemEx is SXF_CLIENTSIDE, but in the DECORATE code, it's SXF_ABSOLUTEVELOCITY (bit flag = 8).

I removed SXF_AbsoluteVelocity because the actor being spawned wasn't given any velocity, so the flag wasn't even really being used. The actor itself was just a trail that didn't do anything, gameplay-wise, so I client-sided it as well.

Random() < 96

Ah! Thanks! That is really, really good to know!

You could make the monster stay after death instead of disappearing, and set the DONTGIB flag on it, so that it doesn't turn into a pile of gibs if it died under a crusher or a closing door.

Yeah, but I'd also like to leave this as an example. If you think I should just make it stay, though, I'll do that.
Last edit: 6 years 1 week ago by Ghastly.

Please Log in or Create an account to join the conversation.

  • Blue Shadow
  • Blue Shadow's Avatar
  • Administrator
  • Administrator
More
6 years 1 week ago #9 by Blue Shadow
Replied by Blue Shadow on topic [Update]ZScriptification, F through N

Ghastly wrote: I removed SXF_AbsoluteVelocity because the actor being spawned wasn't given any velocity, so the flag wasn't even really being used. The actor itself was just a trail that didn't do anything, gameplay-wise, so I client-sided it as well.

Admittedly, I didn't pay attention to the fact that it was spawned without velocity. My bad.

Yeah, but I'd also like to leave this as an example. If you think I should just make it stay, though, I'll do that.

It's okay, then. It can be left as it is.

Please Log in or Create an account to join the conversation.

  • Blue Shadow
  • Blue Shadow's Avatar
  • Administrator
  • Administrator
More
5 years 11 months ago #10 by Blue Shadow
Replied by Blue Shadow on topic [UPDATE] ZScriptification, F through N
I noticed that the Hazmat Zombie was changed to play the "tazer" sound when it hits its target, in addition to when it attacks. Was that intentional?

Please Log in or Create an account to join the conversation.