RPG Maker Forums

Good evening,


I am piecing together the stable of scripts to use for my first game and I am wanting to include Yanfly's AutoBattle script, however I would like  for the 'Press Cancel to turn off autobattle' display text to be shown at the top of the screen. I am figured out how to move it along the x axis, but not having any luck with the y-axis at this time. The script is included below.


The current script is:

#==============================================================================


#


# ▼ Yanfly Engine Ace - Command Autobattle v1.01


# -- Last Updated: 2011.12.26


# -- Level: Normal


# -- Requires: n/a


#


#==============================================================================


$imported = {} if $imported.nil?


$imported["YEA-CommandAutobattle"] = true


#==============================================================================


# ▼ Updates


# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


# 2011.12.26 - Bug Fixed: Autobattle cancelled after each battle.


# 2011.12.12 - Started Script and Finished.


#


#==============================================================================


# ▼ Introduction


# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


# Anyone remember the Autobattle command from RPG Maker 2000? Well, now it's


# back and you can choose to tack it onto the Party Command Window or the Actor


# Command Window. When autobattle is selected, it will let the game determine


# what action to use for the party and/or actors depending on the game's A.I.


#


# Furthermore, there is an option to have Autobattle continously remain in


# effect if selected from the Party Command Window. When Autobattle is selected


# in the Actor Command Window, it'll cause the game to automatically choose an


# action for that actor instead.


#


# In addition to this, there exists the functionality of having all battle


# members but the first member autobattle. This feature can be turned off.


#


#==============================================================================


# ▼ Instructions


# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


# To install this script, open up your script editor and copy/paste this script


# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.


#


# Adjust the settings in the module to your liking.


#


#==============================================================================


# ▼ Compatibility


# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that


# it will run with RPG Maker VX without adjusting.


#


#==============================================================================


module YEA


module AUTOBATTLE


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


# - Party Autobattle Command Settings -


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


# Adjust the command settings for Autobattle under the Party Command Window


# here. If you decide to let Party Autobattle be continuous, it will keep


# going until the player decides to cancel it with X.


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


ENABLE_PARTY_AUTOBATTLE = true # Enables autobattle in Party Window.


PARTY_COMMAND_NAME = "Auto" # Text that appears for Autobattle.


PARTY_SHOW_SWITCH = 0 # Switch used to show Autobattle.


PARTY_ENABLE_SWITCH = 0 # Switch used to enable Autobattle.


# Note: For both of the switches, if they are set to 0, then the feature


# will not be used at all. The command will always be shown and/or the


# command will always be enabled.


# These settings adjust continous autobattle. If enabled, these settings


# will be applied. Otherwise, they won't be.


ENABLE_CONTINOUS = true # If true, autobattle is continous.


DISABLE_MESSAGE = "Press Cancel to turn off Autobattle."


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


# - Actor Autobattle Command Settings -


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


# Adjust the command settings for Autobattle under the Actor Command Window


# here. Actors do not have continous autobattle. Instead, they just simply


# choose whatever action the game decides is most suitable for them.


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


ENABLE_ACTOR_AUTOBATTLE = false # Enables autobattle in Party Window.


ACTOR_COMMAND_NAME = "Auto" # Text that appears for Autobattle.


ACTOR_SHOW_SWITCH = 0 # Switch used to show Autobattle.


ACTOR_ENABLE_SWITCH = 0 # Switch used to enable Autobattle.


# Note: For both of the switches, if they are set to 0, then the feature


# will not be used at all. The command will always be shown and/or the


# command will always be enabled.


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


# - Secondary Members Autobattle -


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


# For those who only want to grant command control to the first actor in


# battle, enable the setting below. All of the battle members who aren't


# first in line will automatically choose their action for the turn.


#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


ENABLE_SECONDARY_AUTOBATTLE = false


end # AUTOBATTLE


end # YEA


#==============================================================================


# ▼ Editting anything past this point may potentially result in causing


# computer damage, incontinence, explosion of user's head, coma, death, and/or


# halitosis so edit at your own risk.


#==============================================================================


#==============================================================================


# ■ BattleManager


#==============================================================================


module BattleManager


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


# alias method: process_victory


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


class <<self; alias battlemanager_process_victory_cab process_victory; end


def self.process_victory


SceneManager.scene.close_disable_autobattle_window


return battlemanager_process_victory_cab


end


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


# alias method: process_abort


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


class <<self; alias battlemanager_process_abort_cab process_abort; end


def self.process_abort


SceneManager.scene.close_disable_autobattle_window


return battlemanager_process_abort_cab


end


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


# alias method: process_defeat


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


class <<self; alias battlemanager_process_defeat_cab process_defeat; end


def self.process_defeat


SceneManager.scene.close_disable_autobattle_window


return battlemanager_process_defeat_cab


end


end # BattleManager


#==============================================================================


# ■ Game_Temp


#==============================================================================


class Game_Temp


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


# public instance variables


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


attr_accessor :continous_autobattle


end # Game_Temp


#==============================================================================


# ■ Game_BattlerBase


#==============================================================================


class Game_BattlerBase


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


# alias method: auto_battle?


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


alias game_battlerbase_auto_battle_cab auto_battle?


def auto_battle?


return true if continuous_autobattle?


return true if secondary_auto_battle?


return game_battlerbase_auto_battle_cab


end


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


# new method: continuous_autobattle?


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


def continuous_autobattle?


return false unless actor?


return $game_temp.continous_autobattle


end


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


# new method: secondary_auto_battle?


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


def secondary_auto_battle?


return false unless actor?


return false if index == 0


return YEA::AUTOBATTLE::ENABLE_SECONDARY_AUTOBATTLE


end


end # Game_BattlerBase


#==============================================================================


# ■ Game_Unit


#==============================================================================


class Game_Unit


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


# alias method: make_actions


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


alias game_unit_make_actions_cab make_actions


def make_actions


game_unit_make_actions_cab


refresh_autobattler_status_window


end


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


# new method: refresh_autobattler_status_window


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


def refresh_autobattler_status_window


return unless SceneManager.scene_is?(Scene_Battle)


return unless self.is_a?(Game_Party)


SceneManager.scene.refresh_autobattler_status_window


end


end # Game_Unit


#==============================================================================


# ■ Window_PartyCommand


#==============================================================================


class Window_PartyCommand < Window_Command


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


# alias method: make_command_list


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


alias window_partycommand_cab make_command_list


def make_command_list


window_partycommand_cab


return if $imported["YEA-BattleCommandList"]


add_autobattle_command if YEA::AUTOBATTLE::ENABLE_PARTY_AUTOBATTLE


end


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


# new method: add_autobattle_command


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


def add_autobattle_command


return unless show_autobattle?


text = YEA::AUTOBATTLE::pARTY_COMMAND_NAME


add_command(text, :autobattle, enable_autobattle?)


end


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


# new method: show_autobattle?


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


def show_autobattle?


return true if YEA::AUTOBATTLE::pARTY_SHOW_SWITCH <= 0


return $game_switches[YEA::AUTOBATTLE::pARTY_SHOW_SWITCH]


end


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


# new method: enable_autobattle?


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


def enable_autobattle?


return true if YEA::AUTOBATTLE::pARTY_ENABLE_SWITCH <= 0


return $game_switches[YEA::AUTOBATTLE::pARTY_ENABLE_SWITCH]


end


end # Window_PartyCommand


#==============================================================================


# ■ Window_ActorCommand


#==============================================================================


class Window_ActorCommand < Window_Command


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


# alias method: make_command_list


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


alias window_actorcommand_make_command_list_cab make_command_list


def make_command_list


return if @actor.nil?


unless $imported["YEA-BattleCommandList"]


add_autobattle_command if YEA::AUTOBATTLE::ENABLE_ACTOR_AUTOBATTLE


end


window_actorcommand_make_command_list_cab


end


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


# new method: add_autobattle_command


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


def add_autobattle_command


return unless show_autobattle?


text = YEA::AUTOBATTLE::ACTOR_COMMAND_NAME


add_command(text, :autobattle, enable_autobattle?)


end


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


# new method: show_autobattle?


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


def show_autobattle?


return true if YEA::AUTOBATTLE::ACTOR_SHOW_SWITCH <= 0


return $game_switches[YEA::AUTOBATTLE::ACTOR_SHOW_SWITCH]


end


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


# new method: enable_autobattle?


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


def enable_autobattle?


return true if YEA::AUTOBATTLE::ACTOR_ENABLE_SWITCH <= 0


return $game_switches[YEA::AUTOBATTLE::ACTOR_ENABLE_SWITCH]


end


end # Window_ActorCommand


#==============================================================================


# ■ Window_DisableAutobattle


#==============================================================================


class Window_DisableAutobattle < Window_Base


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


# initialize


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


def initialize


super(64, 0, Graphics.width - 128, fitting_height(1))


self.y = Graphics.height - fitting_height(1) + 12


self.opacity = 0


self.z = 1000


hide


refresh


end


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


# refresh


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


def refresh


contents.clear


draw_background(contents.rect)


text = YEA::AUTOBATTLE::DISABLE_MESSAGE


draw_text(contents.rect, text, 1)


end


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


# draw_background


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


def draw_background(rect)


temp_rect = rect.clone


temp_rect.width /= 2


contents.gradient_fill_rect(temp_rect, back_color2, back_color1)


temp_rect.x = temp_rect.width


contents.gradient_fill_rect(temp_rect, back_color1, back_color2)


end


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


# back_color1


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


def back_color1; return Color.new(0, 0, 0, 192); end


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


# back_color2


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


def back_color2; return Color.new(0, 0, 0, 0); end


end # Window_DisableAutobattle


#==============================================================================


# ■ Scene_Battle


#==============================================================================


class Scene_Battle < Scene_Base


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


# alias method: create_all_windows


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


alias scene_battle_create_all_windows_cab create_all_windows


def create_all_windows


$game_temp.continous_autobattle = false


scene_battle_create_all_windows_cab


create_disable_autobattle_window


end


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


# alias method: create_party_command_window


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


alias create_party_command_window_cab create_party_command_window


def create_party_command_window


create_party_command_window_cab


@party_command_window.set_handler:)autobattle, method:)command_pautobattle))


end


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


# new method: command_pautobattle


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


def command_pautobattle


for member in $game_party.battle_members


next unless member.inputable?


member.make_auto_battle_actions


end


$game_temp.continous_autobattle = YEA::AUTOBATTLE::ENABLE_CONTINOUS


@disable_autobattle_window.show if $game_temp.continous_autobattle


refresh_autobattler_status_window


turn_start


end


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


# new method: create_disable_autobattle_window


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


def create_disable_autobattle_window


@disable_autobattle_window = Window_DisableAutobattle.new


end


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


# alias method: update


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


alias scene_battle_update_cab update


def update


scene_battle_update_cab


update_continous_autobattle_window


end


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


# alias method: update_basic


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


alias scene_battle_update_basic_cab update_basic


def update_basic


scene_battle_update_basic_cab


update_continous_autobattle_window


end


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


# new method: update_continous_autobattle_window


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


def update_continous_autobattle_window


return unless @disable_autobattle_window.visible


opacity = $game_message.visible ? 0 : 255


@disable_autobattle_window.contents_opacity = opacity


close_disable_autobattle_window if Input.press?:) B)


end


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


# new method: close_disable_autobattle_window


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


def close_disable_autobattle_window


Sound.play_cancel if Input.press?:) B) && @disable_autobattle_window.visible


$game_temp.continous_autobattle = false


@disable_autobattle_window.hide


end


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


# alias method: create_actor_command_window


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


alias create_actor_command_window_cab create_actor_command_window


def create_actor_command_window


create_actor_command_window_cab


@actor_command_window.set_handler:)autobattle, method:)command_aautobattle))


end


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


# new method: command_aautobattle


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


def command_aautobattle


BattleManager.actor.make_auto_battle_actions


next_command


end


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


# new method: refresh_autobattler_status_window


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


def refresh_autobattler_status_window


for member in $game_party.battle_members


next unless member.auto_battle?


@status_window.draw_item(member.index)


end


end


end # Scene_Battle


#==============================================================================


#


# ▼ End of File


#


#==============================================================================
My brain tells me it is in this block of text...

def initialize


super(64, 0, Graphics.width - 128, fitting_height(1))


self.y = Graphics.height - fitting_height(1) + 120


self.opacity = 0


self.z = 1000


hide


refresh


end
...but I haven't been able to get the text to re-position along the y axis to the top of the screen. Hopefully I'm just overlooking it and its a quick fix! Thanks folks.

Latest Threads

Latest Posts

Latest Profile Posts

Don't forget, aspiring writers: Personality isn't what your characters do, it is WHY they do it.
Hello! I would like to know if there are any pluggings or any way to customize how battles look?
I was thinking that when you start the battle for it to appear the eyes of your characters and opponents sorta like Ace Attorney.
Sadly I don't know how that would be possible so I would be needing help! If you can help me in any way I would really apreciate it!
The biggest debate we need to complete on which is better, Waffles or Pancakes?
rux
How is it going? :D
Day 9 of giveaways! 8 prizes today :D

Forum statistics

Threads
106,047
Messages
1,018,539
Members
137,834
Latest member
EverNoir
Top