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.

[Resolved] Trickster's CTB Defend Issue

Status
Not open for further replies.
I've noticed what may be a bug in Trickster's CTB Battle System (February 07 release). I've tried finding the original release thread for the system with no success, so I post here in hopes I can get some answers. Maybe it's an option somewhere I haven't picked up on that I need to alter, and if so, please just direct me there...

After the AT bar fills, and the player chooses 'Defend', the AT bar does not change. Thus, it immediately displays the same PCs attack options (unless other players are filled as well, in which case it will cycle through to the others before returning.) If you attempt 'Defend' a second time, you receive an error that kills the game and dumps you out. It sometimes takes three or even four attempts to Defend for this to happen.

I have noticed that if you select defend, cycle to another character, and choose attacks or skills, the defend option sometimes works (the AT bar drains about 50% and then refills as expected). This is kind of hit and miss for it to work, however.

The error reads "Script 'Scene_battle' Line 430: NoMethodError Occurred. Undefined method 'current_action' for nil:NilClass"

Relevant area of code (so far as I can tell) is included below. Other included scripts in this test setup were CCOA's UMS, and my own CMS (which doesn't touch any battle scenes that I'm aware of).

Lines 428 through 466
Code:
update_phase3_command_escape if command == 'Escape'
    # If Attacking
    if @active_battler.current_action.is_a_attack?
      # Get Wait Count For Weapon
      weapon_wait = Action_Timer::Timer_Attack_Weapon[@active_battler.weapon_id]
      # Get Wait Count For Actor
      actor_wait = Action_Timer::Timer_Attack_Actor[@active_battler.id]
      # Set Waiting Variable
      @active_battler.wait = weapon_wait.nil? ? actor_wait : weapon_wait
    # If Using a Skill
    elsif @active_battler.current_action.is_a_skill?
      # Get Skill Id
      skill_id = @active_battler.current_action.skill_id
      # Set Waiting Variable
      @active_battler.wait = Action_Timer::Timer_Skill[skill_id]
    # If Defending
    elsif @active_battler.current_action.is_a_defend?
      # Set Wait Variable to Defend waitng
      @active_battler.wait = Action_Timer::Timer_Defend
    # If Using an Item
    elsif @active_battler.current_action.is_a_item?
      # Get Item Id
      item_id = @active_battler.current_action.item_id
      # Set Wait Variable
      @active_battler.wait = Action_Timer::Timer_Item[item_id]
    # If Attempt to Escape
    elsif @active_battler.current_action.is_a_escape?
      # Set Wait Variable
      @active_battler.wait = Action_Timer::Timer_Escape
    # If Waiting
    elsif @active_battler.current_action.is_a_wait?
      # Set Wait Variable
      @active_battler.wait = Action_Timer::Timer_Wait
    # If ????
    else
      # Set Wait Variable
      @active_battler.wait = Action_Timer::Timer_Default
    end
  end
 
Thanks much - I see that update happened only days after the version I had. I'm guessing for exactly that reason? At any rate, appears to be working fine now. Thank you.

Topic closed at your discretion.
 
Status
Not open for further replies.

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