Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Cogwheel's RTAB - Turn #

Hi ^^

So Cogwheel's RTAB system is pretty famous. But there's one really bad 'glitch' so to speak, and I hope someone has a fix. :)

When you put for an enemy Skill condition a turn number (like turn 3) he will only~ do the skill when he is able to make an action during turn 3. That sounds rather logical, but the way the RTAB works makes this glitch. Because if just the actors make turns, turn 3 can be skipped. So the turn number either goes up by 1 everytime ANY character makes a turn, or when ALL characters have made a turn. This second option is highly unlikely, because if that were the case the enemy would be doing that set-skill. But he's not, it's being skipped. However if I leave the actors untouched, the enemy does do the skill.

Conclusion:

The turn number goes up by 1 when ANY character/participant of the battle does a turn. This means that if an enemy is supposed to do a skill on turn 3, chances are he'll skip it because turn 3 will go to someone else.

I'm wondering how I can fix this? So that the turns are either individual for each character, or the turn doesn't go up until everyone has done one, I'm not sure. Any help much appreciated. ^^

What would really help me is the variable that keeps track of the turn count. I really don't know what this is. But if I knew this I could keep track of how the turn number goes up etc.

Thanks!
 
[edit:] lol too big for one post. So grab it here clicky.

It's HUGE. ^^;

This part in particular:

Code:
  #--------------------------------------------------------------------------

  # * Frame renewal (main phase step 6: Refreshment)

  #--------------------------------------------------------------------------

  def update_phase4_step6(battler)

    # The camera is reset

    if battler.target[0].is_a?(Game_Enemy) and @camera == battler

      @spriteset.screen_target(0, 0, 1)

    end

    # Skill learning

    if battler.target[0].is_a?(Game_Actor) and battler.current_action.kind == 1

      for target in battler.target

        skill_learning(target, target.class_id,

                        battler.current_action.skill_id)

      end

    end

    # Clearing the battler of the action forced object

    if battler.current_action.forcing == true and

        battler.current_action.force_kind == 0 and

        battler.current_action.force_basic == 0 and

        battler.current_action.force_skill_id == 0

      $game_temp.forcing_battler = nil

      battler.current_action.forcing = false

    end

    refresh_phase(battler)

    speller = synthe?(battler)

    if speller != nil

      for spell in speller

        if spell != battler

          refresh_phase(spell)

        end

      end

      synthe_delete(speller)

    end

    # When common event ID is valid

    if battler.event > 0

      # Setting up the event

      common_event = $data_common_events[battler.event]

      $game_system.battle_interpreter.setup(common_event.list, 0)

    end

    act = 0

    for actor in $game_party.actors + $game_troop.enemies

      if actor.movable?

        act += 1

      end

    end

    if @turn_cnt >= act and act > 0

      @turn_cnt %= act

      $game_temp.battle_turn += 1

      # Searching the full page of the battle event

      for index in 0...$data_troops[@troop_id].pages.size

        # Acquiring the event page

        page = $data_troops[@troop_id].pages[index]

        # When the span of this page [ turn ] is

        if page.span == 1

          # Clearing the execution being completed flag

          $game_temp.battle_event_flags[index] = false

        end

      end

    end

    battler.phase = 1

    @action_battlers.delete(battler)

  end

Note the line:

$game_temp.battle_turn += 1

It has to do with that the battle_turn count is + 1 when the number of turns that corresponds with the number of party members has been made. So say that you have 4 party members, but one of them is fast enough to do four turns before it is anyone else's, battle_turn count goes +1.

I'm looking for a fix for this so I can time a monster's actions.

Like have them use Fire on turn 3. :)
 
Okay. I have an idea of how this could be fixed, but before I do...how do you want the amount of turns calculated? Do you want a turn to only go up once everyone has made an action? or maybe just when an enemy takes a turn?
 
If you could fix this issue that would be soooo great! Oh my~. *___*

Well since it's one variable it can't be when one enemy takes a turn.~ 'Cause then counting the turns would get rather confusing, haha.

I'm thinking either after everyone has done an action, or when all enemies have done an action.

But because the actors aren't being programmed and the player could abuse the system by using Defend all the time to speed the turn count up. Don't you think it would thus be better to have the turn count go up after all enemies have taken a turn? :)
 

Atoa

Member

@Twin Matrix
If you had an CBS compatible with Minkoff Battlers with an better ATB than RATB, would you use?
Because i'm working on a system like this x]
If you interessed, send me an PM
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top