RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
"Equip in Battle" edit [REQUEST]

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 84
Would someone be able to make an edited version of this script so that it is compatible with the Tankentai Battle System for XP?
Code: [Select]
#==============================================================================
# ** Eladia's Battle Equipment Menu   v. 1.2    (04-11-2007)
# by DerVVulfman
#
# Based on "While Fighting Equipment" version 1.00
# by 'an unknown Japanese scripter'
# original code found at a RMXP Wiki site by Landarma
#
# Additional code:
# Modified version  of XRXS's Window Module  and edited code exerpts used in
# order to multi-platform with other battlesystems.
#
#------------------------------------------------------------------------------
#
#  ORIGINAL INTRODUCTION (Translated from Japanese:
#
#  This system allows the battler to change their designated equipment while in
#  combat.   It adds an equipment script, and places the equipment command into
#  your actor command window.
#
#  This system uses a default equipment menu  and hasn't modified  the display.
#  It is a blank slate for you to modify.
#
#  In other words,  modifying the equipment windows  will be  the next step  in
#  your project.  It has been left for you to work that problem out.
#
#  It is merely a rewrite of Scene_Equip's system...
#
#  Furthermore, the battlesystem's  Item or Skill window is now the window that
#  will hold/display the equipment you can use or remove.
#
#  The modification of the window design is the basic technology of RGSS, which
#  must be learned before you attempt to perform any edits.
#
#  Basic Equipment scripts in use:
#  * Window_EquipLeft
#  * Window_EquipRight
#  * Window_EquipItem
#
#------------------------------------------------------------------------------
#
#  INTRODUCTION:
#
#  Greetings!
#
#  This script, like you must know by now,  allows you to change your equipment
#  while in combat.  Originally designed for the default battle system,  it has
#  now been modified to permit it's use in a number of battlesystems.
#
#  Unlike its predecessor,  no modifiecation to Custom Battlesystems's def main
#  is necessary to insert the 'Equip' command.   Through the use of XRSX's won-
#  derful Command Window Add-on,  the option has been added by 'ALIAS'ing it to
#  the battlesystem.  In fact, the only def in the entire Scene_Battle that had
#  to be re-written (and not aliased) is 'update_phase3',  which is primarily a
#  universal def that allows the equipment menu to be turned on.
#
#  The Equipment menu, when used,  appears like the  default menu system,  with
#  the exception  of not seeing  the possible changes  in your stats  until you
#  activly change your equipment.   The original  Japanese version  didn't even
#  have the left 'stat' window. I will leave it to you to modify the appearance
#  or behavior of this window.
#
#  NOTE:   The equipment menu is set to full opacity so as to hide battlers and
#  certain forms of AT bar sprites in certain battlesystems.  The 'Z-Depth' was
#  increased by '700' in order to accomplish this. Without this, the appearance
#  of various forms of sprites could distract or obscure the menu.
#
#------------------------------------------------------------------------------
#
#  INSTRUCTIONS:
#
#  This script is about as plug & play as they come.   Unless some form of con-
#  flict occurs, you merely paste this script  below your  Custom Battle System
#  for it to work,  or just paste it above 'MAIN' if you are using  the default
#  battle system.
#
#  It aliases nearly every  statement necessary for it to work,  other than the
#  'def update_phase3' as stated earlier, so you want it below your custom bat-
#  tlesystem.
#
#------------------------------------------------------------------------------
#
#  REGARDING XRXS's #65 BATTLESYSTEM:
#
#  Both this, and XRXS's script adds  an additional command into the actor com-
#  mand window.  XRXS's system adds the "ESCAPE" command, and this one adds the
#  "EQUIP" command.  Normally, you would paste this script below the any custom
#  battlesystem,  but this would leave the 'EQUIP' option to be shown below the
#  'ESCAPE' option.  This script can be placed 'ABOVE' XRXS's system to reverse
#  this and have 'ESCAPE' be the bottommost option.
#
#------------------------------------------------------------------------------
#
#  REGARDING LAURA'S ESCAPE BAR REMOVAL SCRIPTS (RTAB & DBS):
#  This system  is compatible  with said system.   Both IT and this system uses
#  a modified version of XRXS's Window Module, and the placement of the scripts
#  influences the options position.   If this script  is placed 'BELOW' Laura's
#  script,  then the 'Equip' option  will be below  the 'Escape' option...  and
#  visa versa.
#
#------------------------------------------------------------------------------
#
#  COMPATABILITY:
#
#  Originally, this system was designed  for the 'default' battlesystem.  It is
#  now able to support the following systems:
#
#  Agility Based Battle - Syvkal (an XRXS edit)
#  The default system   - Yoji Ojima / Enterbrain, Inc.
#  ParaDog's CTB v 2.58 - ParaDog
#  RTAB - Cogwheel
#  SoulRage - Blizzard
#  XRXS #65 & 65a addon - by XRXS
#
#  Currently incompatible with the Action Cost CBS by Fomar0153, yet...
#
#  Currently not compatible with Trickster's Conditional CTB, or his Active
#  Timer Battle system.  It would probably need a SDK 2.0 makeover.
#
#==============================================================================

# Command Window size controls
$command_height = 160   # Sets how many options are visible (nil auto-resizes)
$command_y_pos  = 160   # Sets the height position (160 is default, nil is auto)

# Disable/Enable slot control (1 allows, 0 disallows)
# Syntax =  actor.id => [weapon, shield, armor, helmet, accessory ], ...
$ebem_slot   = { 1 => [ 1, 0, 1, 1, 1],
7 => [ 0, 1, 1, 1, 1],
8 => [ 1, 0, 0, 0, 0]  }

#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # * Add Equip
  #--------------------------------------------------------------------------
  alias ebem_sp1 start_phase1
  def start_phase1
# Original Call
ebem_sp1
# Get index of Equip Command
@equip_actor_command_index = @actor_command_window.height / 32 - 1
# Add the Equip Command
@actor_command_window.add_command($data_system.words.equip)
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase)
  #--------------------------------------------------------------------------
  def update_phase3
# Allow for RTAB system
if $r_detected
  if victory? and @command_a
command_delete
@command.push(@active_actor)
return
  end
end
# If enemy arrow is enabled
if @enemy_arrow != nil
  update_phase3_enemy_select
# If actor arrow is enabled
elsif @actor_arrow != nil
  update_phase3_actor_select
# If skill window is enabled
elsif @skill_window != nil
  update_phase3_skill_select
# If item window is enabled
elsif @item_window != nil
  update_phase3_item_select
# If equip window is enabled
elsif @right_window != nil
update_phase3_equip_select
# If actor command window is enabled
elsif @actor_command_window.active
  update_phase3_basic_command
end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : basic command)
  #--------------------------------------------------------------------------
  alias ebem_up3bc update_phase3_basic_command
  def update_phase3_basic_command
# If C button was pressed
if Input.trigger?(Input::C)
  # Branch by actor command window cursor position
  case @actor_command_window.index
  when @equip_actor_command_index # Equip
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Start equip selection
start_equip_select
  end
end
# Original Call
ebem_up3bc
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : equip selection)
  #--------------------------------------------------------------------------
  def update_phase3_equip_select
ebem_array = []
# Allow for RTAB system
if $r_detected
  battler = @active_actor
else
  battler = @active_battler
end
# Enable equip window
@right_window.visible = true
# Update Equip selection Windows
@right_window.update
if @right_window.index != @now_right_window
  @now_right_window =@right_window.index
  if @equip_item_window.index == -1
@equip_item_window.index = 0
@equip_item_window.refresh
@equip_item_window.index = -1
  end
end
# Update windows
@equip_item_window.update
equip_item_window_select
# If equip_item window is active: call update_phase3_equip_i_select
if @equip_item_window.active
  update_phase3_equip_i_select
  return
end
# If B button was pressed
if Input.trigger?(Input::B)
  # Play cancel SE
  $game_system.se_play($data_system.cancel_se)
  # End equip selection
  end_equip_select
  return
end
# If C button was pressed
if Input.trigger?(Input::C)
  # If equipment is fixed
  if battler.equip_fix?(@right_window.index)
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
  end
  # Obtain equipment slot information for actor (if any)
  ebem_array = $ebem_slot[battler.id] if $ebem_slot.include?(battler.id)
  # If equipment cannot be changed
  if ebem_array[@right_window.index] == 0
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
  end
  # Play decision SE
  $game_system.se_play($data_system.decision_se)
  # Activate item window
  @right_window.active = false
  @equip_item_window.active = true
  @equip_item_window.index = 0
  @now_right_window = -1
  return
end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when equipment item window is active)
  #--------------------------------------------------------------------------
  def update_phase3_equip_i_select
# Allow for RTAB system
if $r_detected
  battler = @active_actor
else
  battler = @active_battler
end
# If B button was pressed
if Input.trigger?(Input::B)
  # Play cancel SE
  $game_system.se_play($data_system.cancel_se)  
  @now_item_window = -1
  # Activate right window
  @right_window.active = true
  @equip_item_window.active = false
  @equip_item_window.index = -1
  return
end
# If C button was pressed
if Input.trigger?(Input::C)
  # Play equip SE
  $game_system.se_play($data_system.equip_se)
  # Get currently selected data on the equip window
  item = @equip_item_window.item
  # Change battler equipment
  battler.equip(@right_window.index, item == nil ? 0 : item.id)
  # Activate right window
  @right_window.active = true
  @equip_item_window.active = false
  @equip_item_window.index = -1
  # Remake left window with new stats
  @left_window.refresh
  # Remake right window and item window contents
  @right_window.refresh
  @equip_item_window.refresh
  return
end
  end
  #--------------------------------------------------------------------------
  # * Start Equipment Selection
  #--------------------------------------------------------------------------
  def start_equip_select
# Allow for RTAB system
if $r_detected
  battler = @active_actor
else
  battler = @active_battler
end
# Hide Battlestatus Window
@status_window.visible = false
# Toggle the help window's transparency
@help_trans = @help_window.back_opacity
@help_window.back_opacity = 255
# Make windows
@left_window = Window_EquipLeft.new(battler)
@right_window = Window_EquipRight.new(battler)
@item_window1 = Window_EquipItem.new(battler, 0)
@item_window2 = Window_EquipItem.new(battler, 1)
@item_window3 = Window_EquipItem.new(battler, 2)
@item_window4 = Window_EquipItem.new(battler, 3)
@item_window5 = Window_EquipItem.new(battler, 4) 
# Set new Z-Depth of windows
@left_window.z  += 700
@right_window.z += 700
@item_window1.z += 700
@item_window2.z += 700
@item_window3.z += 700
@item_window4.z += 700
@item_window5.z += 700
# Associate help window
@right_window.help_window = @help_window
@item_window1.help_window = @help_window
@item_window2.help_window = @help_window
@item_window3.help_window = @help_window
@item_window4.help_window = @help_window
@item_window5.help_window = @help_window
@now_right_window = -1
@right_window.index = 0
equip_item_window_select
# Disable actor command window
@actor_command_window.active = false
@actor_command_window.visible = false
  end
  #--------------------------------------------------------------------------
  # * End Equipment Selection
  #--------------------------------------------------------------------------
  def end_equip_select
# Reset z-depth of windows
@left_window.z -= 700
@right_window.z -= 700
@item_window1.z -= 700
@item_window2.z -= 700
@item_window3.z -= 700
@item_window4.z -= 700
@item_window5.z -= 700
# Return the help window's opacity
@help_window.back_opacity = @help_trans
# Dispose of windows
@left_window.dispose
@right_window.dispose
@item_window1.dispose
@item_window2.dispose
@item_window3.dispose
@item_window4.dispose
@item_window5.dispose
@right_window= nil
@item_window1= nil
@item_window2= nil
@item_window3= nil
@item_window4= nil
@item_window5= nil
# Hide help window
@help_window.visible = false
# Enable actor command window
@actor_command_window.active = true
@actor_command_window.visible = true
# Return Battlestatus Window
@status_window.visible = true
  end
  #--------------------------------------------------------------------------
  # * Refresh Equipment Selection
  #--------------------------------------------------------------------------
  def equip_item_window_select 
# Allow for RTAB system
if $r_detected
  battler = @active_actor
else
  battler = @active_battler
end
# Set item window to visible
@item_window1.visible = (@right_window.index == 0)
@item_window2.visible = (@right_window.index == 1)
@item_window3.visible = (@right_window.index == 2)
@item_window4.visible = (@right_window.index == 3)
@item_window5.visible = (@right_window.index == 4)
# Set current item window to @item_window
case @right_window.index
when 0
  @equip_item_window = @item_window1
when 1
  @equip_item_window = @item_window2
when 2
  @equip_item_window = @item_window3
when 3
  @equip_item_window = @item_window4
when 4
  @equip_item_window = @item_window5
end
  end
  #--------------------------------------------------------------------------
  # * Action Wait Decision
  #--------------------------------------------------------------------------
  def anime_wait_return
if $r_detected
  if (@action_battlers.empty? or @anime_wait == false) and
  not $game_system.battle_interpreter.running?
# If enemy arrow is enabled
if @enemy_arrow != nil
  return [@active - 2, 0].min == 0
# If actor arrow is enabled
elsif @actor_arrow != nil
  return [@active - 2, 0].min == 0
# If skill window is enabled
elsif @skill_window != nil
  return [@active - 3, 0].min == 0
# If item window is enabled
elsif @item_window != nil
  return [@active - 3, 0].min == 0
# If equipment window is enabled
# -- I used the same setting that pauses the actor command window -- :)
elsif @right_window != nil
  return [@active - 1, 0].min == 0
# If actor command window is enabled
elsif @actor_command_window.active
  return [@active - 1, 0].min == 0
else
  return true
end
  else
return false
  end
end
  end
end


#==============================================================================
# ** Spriteset_Battle
#------------------------------------------------------------------------------
#  This class brings together battle screen sprites. It's used within
#  the Scene_Battle class.
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias equ_init initialize
  def initialize
equ_init
# Determine if RTAB system in use
if @real_zoom != nil
  $r_detected = true
end
  end
end


#==============================================================================
# --- XRXS.Command Window Add-On Module ---
#==============================================================================
module XRXS_Window_Command
  #--------------------------------------------------------------------------
  # * Add Command
  # command  : command text string being added
  #-------------------------------------------------------------------------- 
  def add_command(command)
#
# Creates an empty @disabled array when first called.
#
@disabled = [] if @disabled.nil?
if @commands.size != @disabled.size
  for i in 0...@commands.size
@disabled[i] = false
  end
end
#
# Add Command
#
@commands.push(command)
@disabled.push(false)
@item_max = @commands.size
# Position the command window
if $command_y_pos == nil
  self.y -= 32
else
  self.y = $command_y_pos
end
# Set the command window height
if $command_height == nil
  self.height += 32
else
  self.height = $command_height
end
self.contents.dispose
self.contents = nil
self.contents = Bitmap.new(self.width - 32, @item_max * 32)
refresh
for i in 0...@commands.size
  if @disabled[i]
disable_item(i)
  end
end
  end
  #--------------------------------------------------------------------------
  # * Disable Item
  # index : item number 
  #--------------------------------------------------------------------------
  def disable_item(index)
@disabled = [] if @disabled.nil?
@disabled[index] = true
draw_item(index, disabled_color)
  end
  #--------------------------------------------------------------------------
  # * Enable Item
  # index : item number 
  #--------------------------------------------------------------------------
  def enable_item(index)
@disabled = [] if @disabled.nil?
@disabled[index] = false
draw_item(index, normal_color)
  end
end
class Window_Command < Window_Selectable
  #--------------------------------------------------------------------------
  # ** Include
  #--------------------------------------------------------------------------
  include XRXS_Window_Command
  #--------------------------------------------------------------------------
  # * Disable Item
  # index : item number 
  #--------------------------------------------------------------------------
  def disable_item(index)
super
  end
end
#==============================================================================
# --- Edited Copy of Include for SoulRage script ---
#==============================================================================
class Window_Command_Enhanced < Window_Selectable
  #--------------------------------------------------------------------------
  # ** Include
  #--------------------------------------------------------------------------
  include XRXS_Window_Command
  #--------------------------------------------------------------------------
  # * Disable Item
  # index : item number 
  #--------------------------------------------------------------------------
  def disable_item(index)
super
  end
end

If this is too difficult to ask someone to do, I apologize.  I know absolutely nothing about scripting and have no idea how hard it would be to do this.
Also, if I am not allowed to request an edit of this script, I sincerely apologize and will delete this thread.
That's good to know.