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 YOUR 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.

Re: Omega Zero mod - Beta 1 release

Postby Twitchy2019 » Thu Apr 16, 2020 11:46 am

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.
User avatar
Twitchy2019
 
Joined: 04 Jan 2017
Location: My Foot,Your Face! (Team Monster)

Re: Omega Zero mod - Beta 1 release

Postby Jarewill » Thu Apr 16, 2020 12:26 pm

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?
Jarewill
 
Joined: 21 Jul 2019

Re: Omega Zero mod - Beta 1 release

Postby lizardcommando » Thu Apr 16, 2020 12:49 pm

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

Code: Select allExpand view
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
  }
}
User avatar
lizardcommando
Thread killer
 
Joined: 07 Sep 2006
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Postby Jarewill » Thu Apr 16, 2020 1:09 pm

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.
Jarewill
 
Joined: 21 Jul 2019

Re: Omega Zero mod - Beta 1 release

Postby lizardcommando » Thu Apr 16, 2020 1:11 pm

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.
User avatar
lizardcommando
Thread killer
 
Joined: 07 Sep 2006
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Postby Jarewill » Thu Apr 16, 2020 1:21 pm

I was able to make it trigger by giving myself 60 LevelCounters with a console command.
Code: Select allExpand view
    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?
Jarewill
 
Joined: 21 Jul 2019

Re: Omega Zero mod - Beta 1 release

Postby lizardcommando » Fri Apr 17, 2020 1:15 pm

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
Thread killer
 
Joined: 07 Sep 2006
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Postby lizardcommando » Sun May 10, 2020 7:01 pm

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 allExpand view
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 allExpand view
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 allExpand view
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
  }
}
User avatar
lizardcommando
Thread killer
 
Joined: 07 Sep 2006
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Postby Jarewill » Mon May 11, 2020 12:12 am

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
Jarewill
 
Joined: 21 Jul 2019

Re: Omega Zero mod - Beta 1 release

Postby lizardcommando » Mon May 11, 2020 12:55 am

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.
User avatar
lizardcommando
Thread killer
 
Joined: 07 Sep 2006
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Postby Jarewill » Mon May 11, 2020 1:12 am

Hmmm.
Could you use the following console command and see if it works?
give PowerWeaponLevel2
Jarewill
 
Joined: 21 Jul 2019

Re: Omega Zero mod - Beta 1 release

Postby lizardcommando » Mon May 11, 2020 1:15 am

Yeah, that seems to be working when I use that console command.
User avatar
lizardcommando
Thread killer
 
Joined: 07 Sep 2006
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Postby Jarewill » Mon May 11, 2020 2:38 am

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.
Jarewill
 
Joined: 21 Jul 2019

Re: Omega Zero mod - Beta 1 release

Postby lizardcommando » Mon May 11, 2020 3:03 am

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

Code: Select allExpand view
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?
User avatar
lizardcommando
Thread killer
 
Joined: 07 Sep 2006
Location: Boringland, California

Re: Omega Zero mod - Beta 1 release

Postby Jarewill » Mon May 11, 2020 3:28 am

I think it might be adding the powerupgiver to the player's inventory, but not using it.
Try adding the following properties:
Code: Select allExpand view
  +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
Jarewill
 
Joined: 21 Jul 2019

PreviousNext

Return to Gameplay Mods

Who is online

Users browsing this forum: bjork, rayburn and 9 guests