+- Save-Point (https://www.save-point.org)
+-- Forum: Games Development (https://www.save-point.org/forum-4.html)
+--- Forum: Code Support (https://www.save-point.org/forum-20.html)
+--- Thread: ACBS - Atoa Custom Battle System and TP System (/thread-8381.html)
ACBS - Atoa Custom Battle System and TP System - zlsl - 10-16-2021
Hello? It's mid-October, winter is coming soon.:Shocked
I know the site has been hacked and very busy, but I'm here to ask for help with a question.
(English is not my native language, so I used a translator. I'm studying English now, but well... I don't trust my English yet...:Sweat :Sweat)
Do you know the TP system?
Yes, I would love to use the Atoa Custom Battle System and MOG's TP together!
Also, I wish all my member friends good health.
In the cold weather, please keep yourself warm so as not to catch a cold.
:Grinning :Grinning
RE: ACBS - Atoa Custom Battle System and TP System - DerVVulfman - 10-19-2021
Well, it's not a TRUE TP system. I guess Mog is using the name.
The TRUE tactical points system originating in the Final Fantasy series garnered you TP points from being hurt/hit by an opponent, much like some Limit Break scripts. However, you didn't need the so-called bar filled. Only that the TP points you have are enough for a skill that uses TP.
"Here endeth the lesson" - John Malone (Sean Connery - The Untouchables)
HOWEVER, you want THIS script, which IMHO allows separation of the old SP (skill points) into MP (for magic) and ... TP (for physical skills).
This... Well, Mog was never the CLEANEST scripter. But I have enough knowledge of both Moggy and Victor to know what I'm doing.... or just to be dangerous.
FIRST, paste the MOGHUNTER's script below his system as you would any other.
Then paste the ATOA/MOGGY PATCH within the spoiler below Mog's script. It replaces methods used within both scripts.
ATOA/MOGGY PATCH
Code:
#==============================================================================
# ** THE ATOA/MOGGY TP PATCH
#------------------------------------------------------------------------------
# This script changes the skill cost system so it can apply TP and replaces
# the entire make_skill_action_result with code from both, and be compliant
# with other ACBS plugins (I hope).
#==============================================================================
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
# This class deals with battlers. It's used as a superclass for the Game_Actor
# and Game_Enemy classes.
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# * Consume skill cost
# skill : skill
#--------------------------------------------------------------------------
def consume_skill_cost(skill)
return if skill.nil?
# New Addition Below
tp_cost = MOG::TP_COST[skill.id]
# Only function and exit if the tp cost exists for an actor
if tp_cost != nil and self.is_a?(Game_Actor)
# Reduce the TP score
self.tp -= tp_cost
# Use ATOA's system to see if the skill also uses HP and erase
cost = calc_sp_cost(skill)
self.hp -= cost if check_include(skill, 'CONSUMEHP')
return
end
# We now return to Victor's script
cost = calc_sp_cost(skill)
self.hp -= cost if check_include(skill, 'CONSUMEHP')
self.sp -= cost if not check_include(skill, 'CONSUMEHP')
end
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# This class performs battle screen processing.
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# * Make Skill Action Results
# battler : battler
#--------------------------------------------------------------------------
def make_skill_action_result(battler)
battler.current_skill = $data_skills[battler.current_action.skill_id]
unless battler.current_action.forcing or battler.multi_action_running
unless battler.skill_can_use?(battler.current_skill.id)
$game_temp.forcing_battler = nil
return
end
end
unless battler.multi_action_running
battler.consume_skill_cost(battler.current_skill)
end
battler.multi_action_running = battler.action_done = true
@status_window.refresh if status_need_refresh
battler.current_skill = battler.now_action if battler.current_skill.nil?
battler.animation_1 = battler.current_skill.animation1_id
battler.animation_2 = battler.current_skill.animation2_id
battler.animation_2 = battler.animation2_id if battler.animation_2 == 0
@common_event_id = battler.current_skill.common_event_id
for target in battler.target_battlers
target.skill_effect(battler, battler.current_skill)
end
end
end
Now THAT... actually performs your absolute minimum requirements.
I know you will say "Hey, what about the ACBS battle screen. Yep, the MOG system returns the Battlestatus window back to a basic default system, so.... I did a little more work.
At the very top of his system, you will see « Additional Scripts », and the scripts in question are the Add | Battle Windows and Add | HP SP Meters scripts. They define your HP and SP bars and the stats positioning within the battlesystem display. ERASE THEM AND REPLACE THEM WITH THESE!!!! AND YES, ABOVE THE REST OF THE BATTLESYSTEM JUST THE SAME!!!
Battle Window (REVISED FOR ACBS's TP STAT)
Code:
#==============================================================================
# Add-On: Battle Window (REVISED FOR ACBS's TP STAT)
# by Atoa
#==============================================================================
# This Add-On grants the user a high custmization level of the battle windows
# Allowing font change, size and position of the text on the window.
# And also allowing the change of the position, size and opacity of the window.
# If you using any script that changes the HP/SP/EXP display, you must
# add them bellow this one
#==============================================================================
module Atoa
# Exhibition Type (take a look at the 'IMPORTANT WARNING' just bellow)
Display_Type = 0
# If Display_Type = 0 the character attributes will be shown
# on the traditional XPway , horizontaly.
# Ex.:
# Ash Trevor Monique
# HP 741 HP 695 HP 486
# SP 541 SP 591 SP 661
#
# If Display_Type = 1 the character attributes will be shwon
# verticaly.
# Ex.:
# Ash HP 741 SP 541
# Trevor HP 695 SP 591
# Monique HP 486 SP 661
#
# If 'Display_Type = 2', the position will be custom. Adjust the postions below
#
#¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
# ***IMPORTANT WARNING** #
#¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
#
# If you change the value of 'Display_Type', you must readjust *ALL*
# X/Y coordinates of the texts. The change isn't automatic.
# Stay alert about this.
#
#============================================================================
# Only valid if 'Display_Type = 0', allows the centralization of the status
# windows if the group has less then 4 members
Horizontal_Centralize = true
# Only valid if 'Display_Type = 2', adjust the base position of the attributes
# of each character
Custom_Stat_Position = [[0,0],[8,24],[16,48],[18,72]]
# Configuration of the Attributes Battle Window
# Battle_Window = [Position X, Position Y, Width, Height, Opacity, Trasparent Edge]
Battle_Window = [0 , 320, 640, 160, 160, false]
# Leave the last value true to add the opacity to the edge of the window
# Needed if you wish to make 100% transparent windows
# The text format will be applied to the values in the menu?
Text_Format_in_Menu = true
# true = all format config are applied to the values in the menu
# false = the format configs are valid only in battle
# Battle Window Background image, leave nil or '' for no image
# The file must be on the pictures folder
Battle_Window_Backgroud = nil
#¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
# CONFIGURATION OF THE WINDOW CONTENT #
#¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
# Configuration of the name exhibition
# Name_Config = [Position X, Position Y, Font Name, Font Size, Bold]
Name_Config = [0, -8, 'Arial', 22, false]
# Configuration of the HP text exhibition
# HP_Text = [Position X, Position Y, Font Name, Font Size, Bold]
HP_Text = [0, 22, 'Arial', 22, false]
# Configuration of the HP digits exhibition
# HP_Number = [Font Name, Font Size, Bold, Show Max HP]
HP_Number = ['Arial', 22, false, true]
# Configuration of the Max HP digits exhibition
# Max_HP_Number = [Font Name, Font Size, Bold]
Max_HP_Number = ['Arial', 22, false]
# Configuration of the SP text exhibition
# SP_Text = [Position X, Position Y, Font Name, Font Size, Bold]
SP_Text = [0, 44, 'Arial', 22, false]
# Configuration of the SP digits exhibition
# SP_Number = [Font Name, Font Size, Bold, Show Max HP]
SP_Number = ['Arial', 22, false, true]
# Configuration of the Max SP digits exhibition
# Max_SP_Number = [Font Name, Font Size, Bold]
Max_SP_Number = ['Arial', 22, false]
# Configuration of the SP text exhibition
# SP_Text = [Position X, Position Y, Font Name, Font Size, Bold]
TP_Text = [0, 66, 'Arial', 22, false]
# Configuration of the SP digits exhibition
# SP_Number = [Font Name, Font Size, Bold, Show Max HP]
TP_Number = ['Arial', 22, false, true]
# Configuration of the Max SP digits exhibition
# Max_SP_Number = [Font Name, Font Size, Bold]
Max_TP_Number = ['Arial', 22, false]
# Configuration of the States exhibition
# State_Config = [Position X, Position Y]
State_Config = [0, 88]
# Show Level Up Message in status window?
Lvl_Up_Flag = true
# Level Up Message
Lvl_Up_Msg = 'LEVEL UP!'
# The level up message is shown in the same place as the states
# Configuration of the Level exhibition
Draw_Level = true # Show level in status window?
Level_Name = 'Lv' # Name of the 'Level' Status shown in the window
# Configuration of the Level text exhibition
# Level_Text = [Position X, Position Y, Font Name, Font Size, Bold]
Level_Text = [0, 16, 'Arial', 22, false]
# Configuration of the Level digits exhibition
# Level_Number = [Font Name, Font Size, Bold]
Level_Number = ['Arial', 22, false]
# Configuration of the Exp exhibition:(only in menu when Text_Format_in_Menu = true)
Exp_Name = 'Exp' # Name of the 'Exp' Status shown in the window
# Configuration of the Exp text exhibition
# Exp_Text = [Font Name, Font Size, Bold]
Exp_Text = ['Arial', 22, false]
# Configuration of the Exp digits exhibition
# Exp_Number = [Font Name, Font Size, Bold]
Exp_Number = ['Arial', 22, false]
# Configuration of the Next Exp digits exhibition
# Next_Exp_Number = [Font Name, Font Size, Bold]
Next_Exp_Number = ['Arial', 22, true]
# Configuration of the Face exhibition
# To use faces, you must create an folder named 'Faces' in the Graphics folder
# The face graphic must have the same as the actor character graphic
# Show Faces? true = show / false = don't show
Show_Faces = true
# Face_Config = [Position X, Position Y, Opacity]
Face_Config = [5, 128, 160]
# Extension for Face file name, use if you want the battle faces file names
# to be different from the normal faces
Face_Extension = ''
# The text extension must be add to all faces file names
# E.g.: Face_Extension = '_bt'
# 001-Fighter01_bt
# Use the character hue on the face?
Use_Character_Hue = true
# true = use the hue
# true = dont't use the hue
# Configuration of the Char Graphic exhibition
# Show Char Graphic? true = show / false = don't show
Show_Char = false
# Char_Config = [Posição X, Posição Y, Transparencia, Show only half]
Char_Config = [96, 60, 255, true]
end
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
# This class is for all in-game windows.
#==============================================================================
class Window_Base
#--------------------------------------------------------------------------
# * Include Settings Module
#--------------------------------------------------------------------------
include Atoa
#--------------------------------------------------------------------------
# * Draw Name
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
alias battler_window_draw_actor_name draw_actor_name
def draw_actor_name(actor, x, y)
if $game_temp.in_battle or Text_Format_in_Menu
self.contents.font.color = normal_color
self.contents.font.name = Name_Config[2]
self.contents.font.size = Name_Config[3]
self.contents.font.bold = Name_Config[4]
self.contents.draw_text(x, y, 120, 32, actor.name)
set_default_font
else
battler_window_draw_actor_name(actor, x, y)
end
end
#--------------------------------------------------------------------------
# * Draw Level
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
alias battler_window_draw_actor_level draw_actor_level
def draw_actor_level(actor, x, y)
if $game_temp.in_battle or Text_Format_in_Menu
self.contents.font.color = system_color
self.contents.font.name = Level_Text[2]
self.contents.font.size = Level_Text[3]
self.contents.font.bold = Level_Text[4]
size = contents.text_size(Level_Name).width
self.contents.draw_text(x, y, size + 4, 32, Level_Name)
self.contents.font.color = normal_color
self.contents.font.name = Level_Number[0]
self.contents.font.size = Level_Number[1]
self.contents.font.bold = Level_Number[2]
self.contents.draw_text(x + size, y, 24, 32, actor.level.to_s, 2)
set_default_font
else
battler_window_draw_actor_level(actor, x, y)
end
end
#--------------------------------------------------------------------------
# * Draw HP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : draw spot width
#--------------------------------------------------------------------------
alias battler_window_draw_actor_hp draw_actor_hp
def draw_actor_hp(actor, x, y, width = 144)
if $game_temp.in_battle or Text_Format_in_Menu
self.contents.font.color = system_color
self.contents.font.name = HP_Text[2]
self.contents.font.size = HP_Text[3]
self.contents.font.bold = HP_Text[4]
self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
if width - 32 >= 108
hp_x = x + width - 108
flag = true
elsif width - 32 >= 48
hp_x = x + width - 48
flag = false
end
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.font.name = HP_Number[0]
self.contents.font.size = HP_Number[1]
self.contents.font.bold = HP_Number[2]
self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
if flag
self.contents.font.color = normal_color
self.contents.font.name = HP_Text[2]
self.contents.font.size = HP_Text[3]
self.contents.font.bold = HP_Text[4]
self.contents.draw_text(hp_x + 48, y, 12, 32, '/', 1)
self.contents.font.name = Max_HP_Number[0]
self.contents.font.size = Max_HP_Number[1]
self.contents.font.bold = Max_HP_Number[2]
self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
end
set_default_font
else
battler_window_draw_actor_hp(actor, x, y, width)
end
end
#--------------------------------------------------------------------------
# * Draw SP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : draw spot width
#--------------------------------------------------------------------------
alias battler_window_draw_actor_sp draw_actor_sp
def draw_actor_sp(actor, x, y, width = 144)
if $game_temp.in_battle or Text_Format_in_Menu
self.contents.font.color = system_color
self.contents.font.name = SP_Text[2]
self.contents.font.size = SP_Text[3]
self.contents.font.bold = SP_Text[4]
self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
if width - 32 >= 108
sp_x = x + width - 108
flag = true
elsif width - 32 >= 48
sp_x = x + width - 48
flag = false
end
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.font.name = SP_Number[0]
self.contents.font.size = SP_Number[1]
self.contents.font.bold = SP_Number[2]
self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
if flag
self.contents.font.color = normal_color
self.contents.font.name = SP_Text[2]
self.contents.font.size = SP_Text[3]
self.contents.font.bold = SP_Text[4]
self.contents.draw_text(sp_x + 48, y, 12, 32, '/', 1)
self.contents.font.name = Max_SP_Number[0]
self.contents.font.size = Max_SP_Number[1]
self.contents.font.bold = Max_SP_Number[2]
self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
end
set_default_font
else
battler_window_draw_actor_sp(actor, x, y)
end
end
#--------------------------------------------------------------------------
# * Draw TP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : draw spot width
#--------------------------------------------------------------------------
def draw_actor_tp(actor, x, y, type, width = 144)
self.contents.font.color = system_color
self.contents.font.name = TP_Text[2]
self.contents.font.size = TP_Text[3]
self.contents.font.bold = TP_Text[4]
self.contents.draw_text(x, y, 32, 32, MOG::TP_NAME)
if width - 32 >= 108
tp_x = x + width - 108
flag = true
elsif width - 32 >= 48
tp_x = x + width - 48
flag = false
end
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.tp <= actor.maxtp / 4 ? crisis_color : normal_color
self.contents.font.name = TP_Number[0]
self.contents.font.size = TP_Number[1]
self.contents.font.bold = TP_Number[2]
self.contents.draw_text(tp_x, y, 48, 32, actor.tp.to_s, 2)
if flag
self.contents.font.color = normal_color
self.contents.font.name = TP_Text[2]
self.contents.font.size = TP_Text[3]
self.contents.font.bold = TP_Text[4]
self.contents.draw_text(tp_x + 48, y, 12, 32, '/', 1)
self.contents.font.name = Max_TP_Number[0]
self.contents.font.size = Max_TP_Number[1]
self.contents.font.bold = Max_TP_Number[2]
self.contents.draw_text(tp_x + 60, y, 48, 32, actor.maxtp.to_s)
end
set_default_font
end
#--------------------------------------------------------------------------
# * Draw EXP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
alias battler_window_draw_actor_exp draw_actor_exp
def draw_actor_exp(actor, x, y)
if Text_Format_in_Menu
self.contents.font.color = system_color
self.contents.font.name = Exp_Text[0]
self.contents.font.size = Exp_Text[1]
self.contents.font.bold = Exp_Text[2]
self.contents.draw_text(x, y, 32, 32, Exp_Name)
self.contents.font.color = normal_color
self.contents.font.name = Exp_Number[0]
self.contents.font.size = Exp_Number[1]
self.contents.font.bold = Exp_Number[2]
self.contents.draw_text(x + 12, y, 96, 32, actor.exp_s, 2)
self.contents.font.color = normal_color
self.contents.font.name = Exp_Text[0]
self.contents.font.size = Exp_Text[1]
self.contents.font.bold = Exp_Text[2]
self.contents.draw_text(x + 108, y, 12, 32, '/', 1)
self.contents.font.name = Next_Exp_Number[0]
self.contents.font.size = Next_Exp_Number[1]
self.contents.font.bold = Next_Exp_Number[2]
self.contents.draw_text(x + 120, y, 96, 32, actor.next_exp_s)
set_default_font
else
battler_window_draw_actor_exp(actor, x, y)
end
end
#--------------------------------------------------------------------------
# * Draw Face Graphic
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# opacity : face opacity
#--------------------------------------------------------------------------
def draw_actor_battle_face(actor, x, y, opacity = 255)
begin
face_hue = Use_Character_Hue ? actor.character_hue : 0
face = RPG::Cache.faces(actor.character_name + Face_Extension, face_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(0, 0, fw, fh)
self.contents.blt(x - fw / 23, y - fh, face, src_rect, opacity)
rescue
end
end
#--------------------------------------------------------------------------
# * Draw Actor Graphic
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# opacity : face opacity
#--------------------------------------------------------------------------
def draw_actor_battle_graphic(actor, x, y, opacity = 255)
begin
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.width / 4
ch = bitmap.height / (Char_Config[3] ? 6 : 4)
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, opacity)
rescue
end
end
#--------------------------------------------------------------------------
# * Set Default Fonts
#--------------------------------------------------------------------------
def set_default_font
self.contents.font.name = Font.default_name
self.contents.font.size = Font.default_size
self.contents.font.bold = false
end
end
#==============================================================================
# ** Window_BattleStatus
#------------------------------------------------------------------------------
# This window displays the status of all party members on the battle screen.
#==============================================================================
class Window_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(Battle_Window[0], Battle_Window[1], Battle_Window[2], Battle_Window[3])
if Battle_Window_Backgroud != nil and Battle_Window_Backgroud != ''
@background_image = Sprite.new
@background_image.bitmap = RPG::Cache.picture(Battle_Window_Backgroud)
@background_image.x = Battle_Window_Bg_Postion[0]
@background_image.y = Battle_Window_Bg_Postion[1]
@background_image.z = 899
end
self.contents = Bitmap.new(width - 32, height - 32)
@level_up_flags = []
for i in 0...$game_party.actors.size
@level_up_flags << false
end
self.z = 900
self.back_opacity = Battle_Window[4]
self.opacity = Battle_Window[4] if Battle_Window[5]
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
self.contents.font.size = 22
hp_w = HP_Number[3] ? 140 : 80
sp_w = SP_Number[3] ? 140 : 80
tp_w = HP_Number[3] ? 140 : 80
actor = $game_party.actors[i]
case Display_Type
when 0
wd = (width - 32) / Max_Party
actor_x = Horizontal_Centralize ? ((i * wd) + (wd * (Max_Party - $game_party.actors.size) / 2)) : i * wd
actor_y = 0
when 1
actor_x = 0
actor_y = i * 32
when 2
actor_x = Custom_Stat_Position[i][0]
actor_y = Custom_Stat_Position[i][1]
end
draw_actor_battle_face(actor, actor_x + Face_Config[0], actor_y + Face_Config[1], Face_Config[2]) if Show_Faces
draw_actor_battle_graphic(actor, actor_x + Char_Config[0], actor_y + Char_Config[1], Char_Config[2]) if Show_Char
draw_actor_name(actor, actor_x + Name_Config[0], actor_y + Name_Config[1])
draw_actor_hp(actor, actor_x + HP_Text[0], actor_y + HP_Text[1], hp_w)
draw_actor_sp(actor, actor_x + SP_Text[0], actor_y + SP_Text[1], sp_w)
draw_actor_tp(actor, actor_x + TP_Text[0], actor_y + TP_Text[1], sp_w)
draw_actor_level(actor, actor_x + Level_Text[0], actor_y + Level_Text[1]) if Draw_Level
if @level_up_flags[i] and Lvl_Up_Flag
self.contents.font.color = normal_color
self.contents.draw_text(actor_x + State_Config[0], actor_y + State_Config[1], 132, 32, Lvl_Up_Msg )
else
draw_actor_state(actor, actor_x + State_Config[0], actor_y + State_Config[1])
end
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
alias battler_window_dispose dispose
def dispose
@background_image.dispose if @background_image != nil
battler_window_dispose
end
end
HP/SP/TP/EXP Meter (REVISED FOR ACBS)
Code:
#==============================================================================
# Add-On: HP/SP/TP/EXP Meter (REVISED FOR ACBS)
# by Atoa
#==============================================================================
# Adds HP/SP/EXP Meters
# Remove this Add-On if you wish to use custom HP/SP/EXP bars
# This Add-On must be always bellow 'ACBS | Battle Windows'
# if you are using it
#==============================================================================
module Atoa
HP_Meter = 'HPMeter' # Name of the HP meter graphic file
SP_Meter = 'SPMeter' # Name of the SP meter graphic file
TP_Meter = 'HPMeter' # Name of the TP meter graphic file
EXP_Meter = 'EXPMeter' # Name of the EXP meter graphic file
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# This class handles the actor. It's used within the Game_Actors class
# ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Set Current EXP
#--------------------------------------------------------------------------
def now_exp
return @exp - @exp_list[@level]
end
#--------------------------------------------------------------------------
# * Set next level EXP
#--------------------------------------------------------------------------
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
# This class is for all in-game windows.
#==============================================================================
You're NOT DONE YET THOUGH. The Moghunter script will still override the ACBS code unless you remove the Window_Base code in Moggy's script (lines roughly 266-308). They would overwrite the above replacement changes.
Oh, and I used the same HPBar for the TP bar... You can change that in the config.
As to any adjustments to make to basic windows like the Main Menu and Status window... just a case of fiddling around with the Y positions... you should be able to take it from there.
RE: ACBS - Atoa Custom Battle System and TP System - zlsl - 10-20-2021
I've never done the Final Fantasy series. LOL
I've seen it on the Final Fantasy Series Steam. I should try that famous game someday.
Come to think of it, the site seems to have been restored, thank you for your hard work. Bad hackers.
Moving on, I was thinking of slowly modifying the ACBS screen myself, but thank you for your help.
Yes, as a result of just checking, it seems to work well without conflict.
I received so much help from DerVulfman. Thank you for always responding kindly and helping me.