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.

Active Timer CBS V3.0.1

Status
Not open for further replies.
Main Script Updated to Version 3.0

Cleans up code
Fixes The Battle Event Updating Bars Bug

(Timer Battle System Base updated V2.0)
Cleans up code
Fixes Confuse/Beserk States

Minor note
Action Timer Addon Updated to Version 1.1 Cleans up code
Action Wait Bar Addon Updated to Version 1.2 Cleans up code, The Bar is now 100% accurate in telling when actions will take place (shut up I have been up all night for lack of a better way to word this)

DOWNLOAD HERE (Note Do not get the demo from my sig it is outdated)
 
Updated to Version 3.0.1

Added another option to the setup that lets the bars stop when Actions are being performed so that you can make this more of a CTB battle system

since this update is so minor I'll give you a patch for V3.0 -> V3.0.1

Add this to the Setup Sectiion in Module Timer_Setup
Code:
  #--------------------------------------------------------------------------
  # * Perform_Action
  #   - Bars freeze when action is performed
  #--------------------------------------------------------------------------
  Perform_Action = false

Now in the Active Timer CBS (The Script itself) replace the method update_battlers? with this one
Code:
  #--------------------------------------------------------------------------
  # * Are Battlers Updatable?
  #--------------------------------------------------------------------------
  def update_battlers?
    return !([2,5].include?(@phase) || (!priority && Timer_Setup::Action_Wait) ||
    update_message? || $game_system.battle_interpreter.running? ||
    (available_battler? && Timer_Setup::Perform_Action))
  end

And there you have it

Also to get the latest version goto the Download Manager for it as the link works again (Thank God.)
 
All these updates, and no one comments? I'll take the liberty of saying great job Trick, and I am using this ATB in my side-project. Is this compatible with your support abilities as well? Sorry if it's been answered before.
 
Nothing to do with the topic but... Has anyone noticed how much Trickster HATES the families... I dislike them ripping off enterbrain's money... But do you have to make horrible... (Yet, sometimes funny) comments about them not using your scripts... If I were a scripter... I'd want to put the scrpit up... Making a demo takes time...

Sorry if it is off topic "Mac"... Who's been hunting me down trying to find some reason to comment on my behaviour...
Even though I'm only twelve...
 
MasterMind;217571 said:
All these updates, and no one comments? I'll take the liberty of saying great job Trick, and I am using this ATB in my side-project. Is this compatible with your support abilities as well? Sorry if it's been answered before.

Thanks glad to see someone likes my work :)

As for support abilities the battle system goes below it (as with most battle addons) I can get technical and tell you the reason for this but I will save you the trouble :p
 

O_O

Member

Im getting errors with Passive Effects and Advanced Targetting...
I Tried putting the scripts below and above the Active Battle Script,but different errors come up.Most errors with advanced targetting was when i select a skill to use on my party/enemy party it crashes,or an skill that targets one ally/enemy...Could you help me?
 
Can't you send me a demo

(Just a note The Battle System goes below some battle addons (those which modify methods update - update_phase3 - update_phase4 will need to be above this script)

Also with Advanced Targetting These two constants must be configured
Code:
  #--------------------------------------------------------------------------
  # * Advanced Update Phase 3 Objects
  #     syntax - update_method => end_method
  #     ex (Ip Skills) - 'update_phase3_ip_select' => 'end_ip_select'
  #--------------------------------------------------------------------------
  Phase3_Objects = {}
  #--------------------------------------------------------------------------
  # * Advanced End Phase 3 Objects
  #     syntax - variable_name => end_method_name
  #     ex (Ip Skills) - '@ip_window' => 'end_ip_select'
  #--------------------------------------------------------------------------
  End_Phase3 = {}

I shall provide the info that needs to be added
add this to the Phase3_Objects hash 'update_general_select' => 'end_general_select'
and add this to the End_Phase3 hash '@general_arrow' => 'end_general_select'
 
And why should I spend my time script this for you. ':|

ATM you are better off making a separate request I am too busy and plus I don't know why I should script that for you
 
Hi Trickster, I've been looking for a new battle system in my game to replace my old one. I was using Skyval's Agility Based Battle but that's kinda fallen through as it doesn't seem to be able to be fixed. Therefore I scanned the forums and found the most suitable replacement was your Active Timer CBS.

However your script is so beyond my level of scripting I can't actually find a way to modify it to my Window_BattleStatus, so I was hoping you could give me a hand in that department if it's not too much trouble.

Code:
#==============================================================================
# â–  Window_BattleStatus
#------------------------------------------------------------------------------
#  バトル画面でパーティメンバーのステータスを表示するウィンドウです。
#==============================================================================

class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 320, 640, 160)
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    @level_up_flags = [false, false, false, false]
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    super
  end
  #--------------------------------------------------------------------------
  # ● レベルアップフラグの設定
  #     actor_index : アクターインデックス
  #--------------------------------------------------------------------------
  def level_up(actor_index)
    @level_up_flags[actor_index] = true
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
        self.contents.font.color = Color.new(255, 255, 255, 255)
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      actor_x = i * 0 + 4
            actor_y = i * 25 + 15
            draw_actor_name_for_battle(actor, 285, actor_y)

draw_actor_hp_for_battle(actor, 345, actor_y, 120)



draw_actor_sp_for_battle(actor, 398, actor_y, 120)



      if @level_up_flags[i]
        self.contents.font.color = normal_color
        self.contents.draw_text(520, actor_y, 120, 32, "LEVEL UP")
              end
end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    # メインフェーズのときは不透明度をやや下げる
    if $game_temp.battle_main_phase
      self.contents_opacity -= 4 if self.contents_opacity > 191
    else
      self.contents_opacity += 4 if self.contents_opacity < 255
    end
  end
end

Code:
# RPG Advocate's Colours
  def up_color
    return Color.new(74, 210, 74)
  end
  # --------------------------------
  def down_color
    return Color.new(170, 170, 170)
  end
  #---------------------------
#--------Ccoa's Edit----------------   
#-----------------------------------

# Draw HP - Ccoa
#---------------------------
  def draw_actor_hp_for_battle(actor, x, y, width = 144)
    self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 20
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(x, y, 48, 32, actor.hp.to_s, 2)

width = self.contents.text_size(actor.hp.to_s).width
hp_x = x + width
end

# Draw "HP" text string - Petros
#-----------------------------
def draw_actor_hp_text_for_battle(actor, x, y, width = 35)
    self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 12
self.contents.draw_text(x, y, 48, 32, $data_system.words.hp)
end


# Draw SP - Ccoa
#----------------------------------
def draw_actor_sp_for_battle(actor, x, y, width = 144)
      self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 20
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(x, y, 48, 32, actor.sp.to_s, 2)

width = self.contents.text_size(actor.sp.to_s).width
sp_x = x + width
end

# Draw "SP" text string - Petros
#-------------------------------
def draw_actor_sp_text_for_battle(actor, x, y, width = 35)
    self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 12
self.contents.draw_text(x, y, 48, 32, $data_system.words.sp)
end
#------------------------------------
#----------Petros's Edit------------------------
# Draw Name
#---------------------------
def draw_actor_name_for_battle(actor, x, y, width = 215)
    self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 18
  self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(x, y, 48, 32, actor.name.to_s, 2)

width = self.contents.text_size(actor.hp.to_s)

end

EDIT: Oh and also, if you're wondering why the Japanese writing, it was because I started this project long before the legal English RMXP version was available.
 
Well tell me are you using

the Action Wait Bar Addon in conjunction if so that will change the outcome

Hurry I am in a good scripting mood now you might can get it today if you respond quickly :p
 
Umm well, if this isn't what you wanted then give me more information :p

Code:
class Window_BattleStatus
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 320, 640, 160)
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    @level_up_flags = [false, false, false, false]
    # Setup Empty Hash
    @at_bar_sprites = {}
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = Color.new(255, 255, 255)
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      actor_y = i * 24 + 16
      draw_actor_name(actor, 288, actor_y)
      draw_actor_hp(actor, 344, actor_y)
      draw_actor_sp(actor, 400, actor_y)
      draw_actor_at(actor, 456, actor_y) 
      if @level_up_flags[i]
        self.contents.font.color = normal_color
        self.contents.draw_text(520, actor_y, 120, 32, "LEVEL UP")
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Hp - Ccoa
  #--------------------------------------------------------------------------
  def draw_actor_hp(actor, x, y)
    self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 20
    self.contents.font.color = actor.hp == 0 ? knockout_color :
    actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
    self.contents.draw_text(x, y, 48, 32, actor.hp.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # * Draw "HP" text string - Petros
  #--------------------------------------------------------------------------
  def draw_actor_hp_text(actor, x, y)
    self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 12
    self.contents.draw_text(x, y, 48, 32, $data_system.words.hp)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Sp - Ccoa
  #--------------------------------------------------------------------------
  def draw_actor_sp(actor, x, y)
    self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 20
    self.contents.font.color = actor.sp == 0 ? knockout_color :
    actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
    self.contents.draw_text(x, y, 48, 32, actor.sp.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # * Draw "SP" text string - Petros
  #--------------------------------------------------------------------------
  def draw_actor_sp_text(actor, x, y)
    self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 12
    self.contents.draw_text(x, y, 48, 32, $data_system.words.sp)
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Name - Petros
  #--------------------------------------------------------------------------
  def draw_actor_name(actor, x, y)
    self.contents.font.name = "Arial Rounded MT Bold"
    self.contents.font.size = 18
    self.contents.font.color = actor.hp == 0 ? knockout_color :
    actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
    self.contents.draw_text(x, y, 48, 32, actor.name.to_s, 2)
  end
end

well here's what I did

Properly indented your code
the methods (whatever)_in_battle weren't necessary you could have just overridden those methods in Window_BattleStatus (unless you were using them for other Window classes as well) I changed their names and move them within Window_BattleStatus
I saw no method for the atb bar drawing but I have included it remove draw_actor_at if you didn't want that
Cleaned up your methods
Removed the fourth parameter it wasn't even used within the method :-/

heh guess I did more cleaning than editing :p sorry
 
I think this should work quite well Trickster. One question though, I have to remove the Extra Add-On script that is your battle_status window based on FF1-7 style battle status right? And also, the HP/SP bars won't show up right?

One other thing, any suggestions as to which Limit Break script would go well with this, as in matching gradient bars. I'm using DerVerVulfmann's but that is based on Cogwheel's bars, I think.
 
... you should have said you were using that :/

Yes you will have to remove that as it edits the Status window as well

Well maybe I don't understand what you want could you post a screenshot of how you want it to look?
 
Petros;245618 said:
One other thing, any suggestions as to which Limit Break script would go well with this, as in matching gradient bars. I'm using DerVerVulfmann's but that is based on Cogwheel's bars, I think.
The Limit Break system by itself has no Bar script built into it. There are currently three bar scripts that work with it. Your best choice for this would be the one I modeled after Trickster's Gradient Bar script (HERE). Since most of the coding was his (and I noted that in the post ;) ), it should work just fine. :yes:
 
Okay I'm going to test this out, and get back to you. But to answer your question Trickster, the original battle status I designed was created, with a bit of help here and there from ccoa, to look like the battle system from FF8 onwards, but specifically most like FF9's.

This would be a side-view battle system, using RPG Advocate's repositioning of the actors in battle and also a redesign of the actual battle status to have no window and be transparent.

If this works the way I hope it will, I'll probably have my demo finally out within the next two weeks or so, so you'll be able to see for yourself.
 
Okay well it all worked out pretty much exactly how I wanted it to with a few minor issues, one of which is actually with that other Gradient Bars Script from DVV. That is that apparently it needs Parts I, II & III of the SDK to work and yet, I have them.

Here is a screenshot of how my old battle system looked. Despite it not working and all.

http://i7.photobucket.com/albums/y260/P ... leBugs.png[/IMG]

With this battle system I can't seem to get the Command Window to move down to that location and stay there without any errors in the script that I can't seem to fix myself. Also I've kinda forgotten how to extend the window so that you can see "Escape" written there rather than scroll down to it.

I know I'm probably being a pest right now and many people don't like helping fangame makers. But it'd be a real help and I'd really appreciate it if you could help me out with this situation so that I can finally get a working battle system. If you feel it'd be too much effort, it's okay, I understand with your Admin duties now you must be pretty swamped. I can find another battle system to suit my needs.
 
Petros;246219":1xpb5ai9 said:
Okay well it all worked out pretty much exactly how I wanted it to with a few minor issues, one of which is actually with that other Gradient Bars Script from DVV. That is that apparently it needs Parts I, II & III of the SDK to work and yet, I have them.

Here is a screenshot of how my old battle system looked. Despite it not working and all.

http://i7.photobucket.com/albums/y260/P ... leBugs.png[/IMG]

With this battle system I can't seem to get the Command Window to move down to that location and stay there without any errors in the script that I can't seem to fix myself. Also I've kinda forgotten how to extend the window so that you can see "Escape" written there rather than scroll down to it.

I know I'm probably being a pest right now and many people don't like helping fangame makers. But it'd be a real help and I'd really appreciate it if you could help me out with this situation so that I can finally get a working battle system. If you feel it'd be too much effort, it's okay, I understand with your Admin duties now you must be pretty swamped. I can find another battle system to suit my needs.

No, I try to manage :)

Well the Command Window stuff gets modified if you are using the Escape Command Addon and well *scripts code up very quickly* here add this in a new script above main

Code:
class Scene_Battle
#--------------------------------------------------------------------------
  # * Main Window
  #--------------------------------------------------------------------------
  def main_window
    # The Usual
    trick_escape_battle_main_window
    # Increase Height
    @actor_command_window.height += 32
    # Get Commands
    commands = @actor_command_window.commands.dup
    # Push Escape
    commands << SDK::Scene_Commands::Scene_Battle::Escape
    # Push Escape
    @actor_command_window.commands = commands
    # Move Command Window into position
    @actor_command_window.x = [COLOR=Red]??[/COLOR]
    @actor_command_window.y = [COLOR=Red]??[/COLOR]
  end
  #--------------------------------------------------------------------------
  # * Actor Command Window Setup
  #--------------------------------------------------------------------------
  def phase3_setup_command_window
    # Disable party command window
    @party_command_window.active = false
    @party_command_window.visible = false
    # Enable actor command window
    @actor_command_window.active = true
    @actor_command_window.visible = true
    # Set index to 0
    @actor_command_window.index = 0
    # If Active Battler is nil
    if @active_battler == nil or not @active_battler.inputable?
      # Disable actor command window
      @actor_command_window.active = false
      @actor_command_window.visible = false
    end
  end
end

replace the two red ??'s in the above script with the coordinates

And no I don't care if you are making a fangame or not :p
 
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