RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
[VX]I've fixed Battle Engine Melody ATB's "Fatal Flaw"

0 Members and 1 Guest are viewing this topic.

**
Rep:
Level 56
RMRK Junior
Not sure if this is where to put this, or if anyone cares anymore seeing as this script is older than the hills now, what with Yanfly Ace out and me still playing around in VX instead of getting ACE.

But, anyways, I solved the problem that was causing the ATB to stop completely whenever an actor or enemy attempts to use a skill they no longer meet the requirements to use. I've seen a lot of complaints and requests to fix it, but no solutions. So I fixed it myself.

If anyone is interested, just replace "process_atb_action" around line 9176 with this:

 
Code: [Select]
#--------------------------------------------------------------------------
  # new method: process_atb_action
  #--------------------------------------------------------------------------
  def process_atb_action
    if $game_troop.forcing_battler != nil
      @active_battler = $game_troop.forcing_battler
    else
      @active_battler = $game_troop.atb_ready[0]
      $game_troop.atb_ready.delete(@active_battler)
    end
    return if @active_battler == nil
    if !@active_battler.action.valid?
      @active_battler.reset_atb_speed
      end
    return if !@active_battler.action.valid?
    pause_atb(true)
    @message_window.visible = true
    execute_action unless @active_battler.action.wait?
    @message_window.clear
    @message_window.visible = false
    unless $game_troop.forcing_battler
      $game_troop.atb_ready.delete(@active_battler)
      @active_battler.reset_atb_speed
      @active_battler.process_atb_reset
    end
    $game_troop.forcing_battler = nil
    @active_battler = nil
    if YEM::BATTLE_ENGINE::ATB_COMMON_EVENTS[:end_action] != nil
      event_id = YEM::BATTLE_ENGINE::ATB_COMMON_EVENTS[:end_action]
      $game_temp.common_event_id = event_id
      process_battle_event
    end
    pause_atb(false)
  end

The problem was one that is easy to overlook, especially since the game returns no error message. It took me hours to sleuth the source of the problem, but not very long to fix it. The problem was that there were no further instructions on what to do if a skill no longer meets the requirements (cost) to use it. I've fixed it by telling it to return to the start of the ATB. If anyone wants a different outcome, I can attempt to make that happen. I'm looking into that myself, as I'm not sure if that's what I want it to do in my game

I support:



*
Rep:
Level 85
I solve practical problems.
For taking arms in the name of your breakfast.
Great job!