Omega Zero mod - Version 2 Release

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
Twitchy2019
Posts: 176
Joined: Wed Jan 04, 2017 8:27 pm
Location: My Foot,Your Face! (Team Monster)

Re: Omega Zero mod - Beta 1 release

Post by Twitchy2019 »

An idea for you, lizard, might be to make a Discord server centered around the mod with persons who wish to help you work on this mod. They can give you real time info on the things they find and suggest. It would also be a great way to interact with fans who may be able to contribute resources.
Jarewill
 
 
Posts: 1766
Joined: Sun Jul 21, 2019 8:54 am

Re: Omega Zero mod - Beta 1 release

Post by Jarewill »

lizardcommando wrote:In order to change the weapon select speed, would I just need to change the amount of frames/tics in the Select and Deselect parts of the coding?

Also, whan I was trying to change the level counter max to 60, it seems to have disrupted how the charging sounds would play. It would play fine the first time, but after charging my weapons the second time around, it wouldn't play the sound effect.
A_Raise and A_Lower can take a parameter that is the speed of raising/lowering the weapon.
By default it's 6, so for example A_Raise(12) will select the weapon twice as fast.
Alternatively, simply setting the tic duration to 0 instead of 1 will instantly select the weapon.

As for the sound issue, that is weird.
It plays the sounds normally for me.
Might I ask for a video or something similar showcasing the problem?
User avatar
lizardcommando
Posts: 1489
Joined: Thu Sep 07, 2006 12:24 pm
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Post by lizardcommando »

Here is the coding for the ZBuster (the charge sequence is practically identical for the Z-Saber.)

Code: Select all

actor ZBuster : Weapon replaces Pistol
{
  obituary "%o was blasted by %k's Z-Buster."
  attacksound "omegazero/zbuster"
  weapon.selectionorder 1900
  weapon.kickback 100
  weapon.ammouse 0
  states
  {
  Ready:
    ZBUS A 1 A_WeaponReady
    loop
  Deselect:
    ZBUS A 1 A_Lower
    loop
  Select:
    TNT1 A 0
    TNT1 A 0 A_TakeInventory("LevelCounter",60)
   TNT1 A 0 A_TakeInventory("FrameCounter",7)
   TNT1 A 0 A_TakeInventory("FrameIdle",5)
    ZBUS A 1 A_Raise
    Wait
  Fire:
    ZBUS A 1
    ZBSF A 2 BRIGHT A_FireCustomMissile("ZBustershot",0,0,4,7,0)
    ZBSF B 2 BRIGHT
    ZBSF C 2
    ZBUS A 1 A_ReFire
    goto Ready
  AltFire:
    ZBUS A 2
  AltHold:	
    TNT1 A 0 A_GiveInventory("FrameIdle",1)  //increment the frame duration
    TNT1 A 0 A_GiveInventory("LevelCounter",1)
    TNT1 A 0 A_JumpIfInventory("LevelCounter",56,"Level3Loop")
  Level0Charge:
    TNT1 A 0 A_JumpIfInventory("LevelCounter",5,"Level1Charge")
    TNT1 A 0 A_JumpIfInventory("FrameIdle",0,1)  //check frame duration
    Goto Display
    TNT1 A 0 A_TakeInventory("FrameIdle",5)
    Goto FrameCheck
  Level1Charge:
    TNT1 A 0 A_JumpIfInventory("LevelCounter",12,"Level2Charge")
    TNT1 A 0 A_JumpIfInventory("LevelCounter",6,2) //First time here?
    TNT1 A 0 A_PlaySound("omegazero/zbcharge1",CHAN_WEAPON,1,1)
    TNT1 A 0 A_JumpIfInventory("FrameIdle",3,1)  //check frame duration
    Goto Display
    TNT1 A 0 A_TakeInventory("FrameIdle",5)
    Goto FrameCheck
  Level2Charge:
    TNT1 A 0 A_JumpIfInventory("FrameIdle",2,1)
    Goto Display
    TNT1 A 0 A_TakeInventory("FrameIdle",5)
    Goto FrameCheck
  Level3Loop:
    TNT1 A 0 A_JumpIfInventory("LevelCounter",0,2) //First time here?
    TNT1 A 0 A_PlaySound("omegazero/zbcharge2",CHAN_WEAPON,1,1)
    TNT1 A 0 A_JumpIfInventory("FrameIdle",1,1)
    Goto Display
    TNT1 A 0 A_TakeInventory("FrameIdle",5)
    Goto FrameCheck
  FrameCheck:
    TNT1 A 0 A_GiveInventory("FrameCounter",1)
    TNT1 A 0 A_JumpIfInventory("FrameCounter",0,1) //check frame letter
    Goto Display
    TNT1 A 0 A_TakeInventory("FrameCounter",7)
    Goto Display
		
  Display:
    TNT1 A 0 A_JumpIfInventory("LevelCounter",0,"FullDisplay")
	TNT1 A 0 A_JumpIfInventory("FrameCounter",1,3)
	ZBCH A 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto ShotSelect
	TNT1 A 0 A_JumpIfInventory("FrameCounter",2,3)
	ZBCH B 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto ShotSelect
	TNT1 A 0 A_JumpIfInventory("FrameCounter",3,3)
	ZBCH C 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto ShotSelect
	TNT1 A 0 A_JumpIfInventory("FrameCounter",4,3)
	ZBCH D 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto ShotSelect
	TNT1 A 0 A_JumpIfInventory("FrameCounter",5,3)
	ZBCH E 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto ShotSelect
	TNT1 A 0 A_JumpIfInventory("FrameCounter",6,3)
	ZBCH F 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto ShotSelect
	ZBUS A 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto ShotSelect
  FullDisplay:
	TNT1 A 0 A_JumpIfInventory("FrameCounter",1,3)
	ZBCH G 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto FullChargeShot
	TNT1 A 0 A_JumpIfInventory("FrameCounter",2,3)
	ZBCH H 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto FullChargeShot
	TNT1 A 0 A_JumpIfInventory("FrameCounter",3,3)
	ZBCH I 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto FullChargeShot
	TNT1 A 0 A_JumpIfInventory("FrameCounter",4,3)
	ZBCH J 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto FullChargeShot
	TNT1 A 0 A_JumpIfInventory("FrameCounter",5,3)
	ZBCH K 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto FullChargeShot
	TNT1 A 0 A_JumpIfInventory("FrameCounter",6,3)
	ZBCH L 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto FullChargeShot
	ZBCH G 1 BRIGHT
	TNT1 A 0 A_Refire
	Goto FullChargeShot

  ShotSelect:
    TNT1 A 0 A_JumpIfInventory("LevelCounter",12,"MidChargeShot")
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	ZBSF A 2 BRIGHT A_FireCustomMissile("ZBustershot",0,0,4,7,0)
	ZBSF BC 2
	ZBUS A 2
	Goto CleanUp
	
  MidChargeShot:
	ZBMC A 3 BRIGHT A_PlaySound("omegazero/zbmidshot",CHAN_WEAPON)
	ZBMC B 2 BRIGHT A_FireCustomMissile("ZBMidChargeShot",0,0,4,7,0)
	ZBUS A 3	
	Goto CleanUp
	
  FullChargeShot:
    ZBUS A 1 BRIGHT A_StopSound(CHAN_WEAPON)
    ZBFC A 3 BRIGHT A_PlaySound ("omegazero/zbusterfullshot",CHAN_WEAPON)
    ZBFC B 2 BRIGHT A_FireCustomMissile("ZBFullChargeShot",0,0,4,6,0)
    ZBFC C 2
    ZBFC D 4
    ZBCH A 2

  CleanUp:
    TNT1 A 0 A_TakeInventory("LevelCounter",60)
	TNT1 A 0 A_TakeInventory("FrameCounter",7)
	TNT1 A 0 A_TakeInventory("FrameIdle",5)
	TNT1 A 0 A_Refire //!!!!!
    goto Ready
  }
}
Jarewill
 
 
Posts: 1766
Joined: Sun Jul 21, 2019 8:54 am

Re: Omega Zero mod - Beta 1 release

Post by Jarewill »

lizardcommando wrote:Here is the coding for the ZBuster (the charge sequence is practically identical for the Z-Saber.)
Tried it and it still seems to be working for me.
Either I misunderstood the issue, (which is that the charging sound is not playing the second time the weapon is charging, right?)
Or there is some other A_PlaySound which is also on CHAN_WEAPON and it overrides the charging sound.
User avatar
lizardcommando
Posts: 1489
Joined: Thu Sep 07, 2006 12:24 pm
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Post by lizardcommando »

Yeah, this is the issue:
(which is that the charging sound is not playing the second time the weapon is charging, right?)
The issue seems to go away when you switch back and forth between the weapons though.
Jarewill
 
 
Posts: 1766
Joined: Sun Jul 21, 2019 8:54 am

Re: Omega Zero mod - Beta 1 release

Post by Jarewill »

I was able to make it trigger by giving myself 60 LevelCounters with a console command.

Code: Select all

    TNT1 A 0 A_JumpIfInventory("LevelCounter",0,2) //First time here?
This line skips the sound playing if the player has maximum amount of LevelCounters.
Level1Charge also has two of such lines.

The fact that the issue goes away when switching weapons (that's when A_TakeInventory gets called) means that the issue is with LevelCounters not being removed from the player inventory.
The question is when does the issue happen, since all three levels of charged shots go to the CleanUp state which also calls it....

Maybe try commenting out the "First time here?" lines and see if the issue still persists?
And moving the A_PlaySound in Level1Charge to be before the Level2Charge?
User avatar
lizardcommando
Posts: 1489
Joined: Thu Sep 07, 2006 12:24 pm
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Post by lizardcommando »

OK, I just figured it out. I had to fiddle around with the numbers in the "Display" part of the coding. Not only that, but I had to go back and reupload some parts of the animation and tweak the animation sequences. I think it should be working now.
User avatar
lizardcommando
Posts: 1489
Joined: Thu Sep 07, 2006 12:24 pm
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Post by lizardcommando »

Updates are coming in slowly. I replaced the old HUD that is in the current version to be more like the HUD in Mega Man Zero 3. I also changed the charge time for the Z Saber and Z Buster so now they charge a little faster. Some small changes in the animation frames have changed too.

Now I have hit a bit of a snag. I'm trying to replace the Berserkpack with an item that is supposed to temporarily give you powered up versions of your weapons, but for some reason, they aren't being activated to the powered up version. What am I doing wrong? Right now I am just trying to implement the powered up version of the Z Buster.

Code: Select all

actor ZBuster : Weapon replaces Pistol
{
  obituary "%o was blasted by %k's Z-Buster."
  attacksound "omegazero/zbuster"
  Weapon.SisterWeapon PoweredZBuster
  weapon.selectionorder 1900
  weapon.kickback 100
  weapon.ammouse 0

Code: Select all

actor PoweredZBuster : ZBuster
{
  obituary "%o was blasted by %k's Z-Buster."
  attacksound "omegazero/zbmidshot"
  Weapon.SisterWeapon ZBuster
  +POWERED_UP
  weapon.selectionorder 1900
  weapon.kickback 100
  weapon.ammouse 0

Code: Select all

ACTOR CyberElfPower : PowerWeaponLevel2 replaces Berserk
{
  +FLOATBOB
  +INVENTORY.PICKUPFLASH
  Powerup.Duration 1000
  Inventory.PickupMessage "Cyber Elf?! It's giving me great strength!"
  States
  {
  Spawn:
    CYEL ABCDEFGH 2 Bright
    Loop
  }
}
Jarewill
 
 
Posts: 1766
Joined: Sun Jul 21, 2019 8:54 am

Re: Omega Zero mod - Beta 1 release

Post by Jarewill »

Just a pure guess, but maybe it's because the player picks up a raw powerup without a PowerupGiver?
Something like the Tome of Power from Heretic as the pickup itself might work.

Also great to hear this mod is getting updated!
Hope you are also doing alright. :D
User avatar
lizardcommando
Posts: 1489
Joined: Thu Sep 07, 2006 12:24 pm
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Post by lizardcommando »

I was trying to follow along with the example that was given in this section, but I don't get what I am doing wrong here.
Jarewill
 
 
Posts: 1766
Joined: Sun Jul 21, 2019 8:54 am

Re: Omega Zero mod - Beta 1 release

Post by Jarewill »

Hmmm.
Could you use the following console command and see if it works?
give PowerWeaponLevel2
User avatar
lizardcommando
Posts: 1489
Joined: Thu Sep 07, 2006 12:24 pm
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Post by lizardcommando »

Yeah, that seems to be working when I use that console command.
Jarewill
 
 
Posts: 1766
Joined: Sun Jul 21, 2019 8:54 am

Re: Omega Zero mod - Beta 1 release

Post by Jarewill »

Then it must be because the pickup inherits from the raw powerup.

Can you try replacing the berserk pack with a PowerupGiver with the property: Powerup.Type Weaponlevel2
Something like the Tome of Power from Heretic.
User avatar
lizardcommando
Posts: 1489
Joined: Thu Sep 07, 2006 12:24 pm
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Post by lizardcommando »

I'm still really stumped. This is what I have so far:

Code: Select all

ACTOR DarkCyberElf : PowerUpGiver replaces Berserk
{
  health 100
  +FLOATBOB
  +INVENTORY.PICKUPFLASH
  powerup.type "PowerWeaponLevel2"
  powerup.duration 130
  Inventory.PickupMessage "Dark Cyber Elf?! It's giving me incredible strength!"
  States
  {
  Spawn:
    CYEL ABCDEFGH 2 Bright
    Loop
  }
}
I decided to rename that CyberElfPower to DarkCyberElf since that rolls off the tongue easier (and since that is what it is supposed to be). Was this what I was supposed to change?
Jarewill
 
 
Posts: 1766
Joined: Sun Jul 21, 2019 8:54 am

Re: Omega Zero mod - Beta 1 release

Post by Jarewill »

I think it might be adding the powerupgiver to the player's inventory, but not using it.
Try adding the following properties:

Code: Select all

  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  Inventory.MaxAmount 0
And also, the duration is incredibly short: it lasts for 130 tics, which is about 3 seconds.
If you want it to last 130 seconds, you have to set the duration to -130
Post Reply

Return to “Gameplay Mods”