Status
Not open for further replies.

Koulucky

Veteran
Veteran
Joined
Jan 25, 2016
Messages
68
Reaction score
31
First Language
English
Primarily Uses
Hello! I'm using this script in my game:
Code:
#============================================================================
# [VXAce] Dragon Quest Battle V1.00 (Finished)
#----------------------------------------------------------------------------
# By Jamiras843#
# Features:
#     V1.00
#     * Dragon Quest VIII style battle
#     * Limited options to have list style Status or block style
#     * Face graphics optional
#     * Level Up option available for sound.
#============================================================================
$imported = {} if $imported.nil?
$imported["Dragon Quest Battle"] = true

module Jami_DQ_Battle 
#========================================================================
# Script options
#------------------------------------------------------------------------
# Here you edit some simple aspects of the Battle System
#
#========================================================================
  SHOW_FACE = true
  # Shows actor face in menu
  HUD_HIDE = true
  #Hides Battle status during combat if true
  LVL_UP = true
  #Play level up sounde effect   
  LVL_UP_SND = "Level_Up"
  #Name of sound effect 
end
#end module Jami_DQ_Battle 

#============================================================================ 
# WARNING: Do not edit below unless you know what you are doing. This script
# is rather sloppy but it does its job.
#============================================================================

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Show Level Up Message
#     new_skills : Array of newly learned skills
#--------------------------------------------------------------------------
  def display_level_up(new_skills) 
    Audio.me_play("Audio/ME/" + Jami_DQ_Battle::LVL_UP_SND) 
    $game_message.new_page 
    $game_message.add(sprintf(Vocab::LevelUp, @name, Vocab::level, @level)) 
    new_skills.each do |skill|   
      $game_message.add(sprintf(Vocab::obtainSkill, skill.name)) 
    end
  end
end

#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
#  This is a super class of all windows within the game.
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# * Close Window
#--------------------------------------------------------------------------
  def close 
    @closing = true   
    @opening = false 
    self
  end
end #class Window_Base

#==============================================================================
# ** Window_Help
#------------------------------------------------------------------------------
#  This window shows skill and item explanations along with actor status.
#==============================================================================
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
  def initialize(line_number = 2) 
    super(0, 0, Graphics.width, fitting_height(line_number))
  end
end

#==============================================================================
# ** Window_BattleItem
#------------------------------------------------------------------------------
#  This window is for selecting items to use in the battle window.
#==============================================================================
class Window_BattleItem < Window_ItemList
#--------------------------------------------------------------------------
# * Object Initialization
#     info_viewport : Viewport for displaying information
#--------------------------------------------------------------------------
  def initialize(help_window, info_viewport) 
    y = help_window.height 
    super(0, y, Graphics.width, 416) 
    self.visible = false 
    @help_window = help_window 
    @info_viewport = info_viewport
  end
end

#==============================================================================
# ** Window_BattleSkill
#------------------------------------------------------------------------------
#  This window is for selecting skills to use in the battle window.
#==============================================================================
class Window_BattleSkill < Window_SkillList
#--------------------------------------------------------------------------
# * Object Initialization
#     info_viewport : Viewport for displaying information
#--------------------------------------------------------------------------
  def initialize(help_window, info_viewport) 
    y = help_window.height 
    super(0, y, Graphics.width, 416) 
    self.visible = false 
    @help_window = help_window 
    @info_viewport = info_viewport
  end
end

#==============================================================================
# ** Window_BattleActor
#------------------------------------------------------------------------------
#  This window is for selecting an actor's action target on the battle screen.
#==============================================================================
class Window_BattleActor < Window_BattleStatus
#--------------------------------------------------------------------------
# * Object Initialization
#     info_viewport : Viewport for displaying information
#--------------------------------------------------------------------------
  def initialize(info_viewport) 
    super() 
    self.y = 416 - 120 
    self.visible = false 
    self.openness = 255 
    @info_viewport = info_viewport 
    @info_viewport2 = info_viewport   
  end
end

#============================================================================
# ** Actor Window
#============================================================================
class Window_DQ_BattleStatus < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
  def initialize
    if $game_party.members.size < 4     
      super(100, 0, 110 * $game_party.members.size,120) 
    else       
      super(100, 0, 110 * 4,120) 
    end     
    create_contents     
    @actor1 = $game_party.members[0]     
    @actor2 = $game_party.members[1]     
    @actor3 = $game_party.members[2]     
    @actor4 = $game_party.members[3]     
    refresh     
    self.openness = 0   
  end
#--------------------------------------------------------------------------
# * Draw Item
#--------------------------------------------------------------------------
  def draw_item(index) 
    actor = $game_party.battle_members[index]
  end
#--------------------------------------------------------------------------
# * Get Number of Lines to Show
#--------------------------------------------------------------------------
  def visible_line_number     
    return 4
  end
#--------------------------------------------------------------------------
# * Get Digit Count
#--------------------------------------------------------------------------
  def col_max     
    return 4
  end     
#---------------------------------------------------- 
# * Refresh 
#----------------------------------------------------
  def refresh     
    contents.clear     
    draw_window_content     
#~     draw_horz_line(line_height * 1)           
  end 
#---------------------------------------------------- 
# * Draw Window Contents 
#----------------------------------------------------
  def draw_window_content     
    # Face     
    if Jami_DQ_Battle::SHOW_FACE == true 
      draw_face(@actor1.face_name, @actor1.face_index, 0, 0, enabled = false)     
    if $game_party.members.size > 1 
      draw_face(@actor2.face_name, @actor2.face_index, 110, 0, enable = false)     
    end # > 1     
    if $game_party.members.size > 2 
      draw_face(@actor3.face_name, @actor3.face_index, 220, 0, enable = false)     
    end # > 2     
    if $game_party.members.size > 3 
      draw_face(@actor4.face_name, @actor4.face_index, 330, 0, enable = false)     
    end # > 3   
    end # if face 

    # Actor Name 
    draw_actor_name(@actor1, 0, 0)   
    if $game_party.members.size > 1 
      draw_actor_name(@actor2, 110, 0)     
    end # > 1     
    if $game_party.members.size > 2 
      draw_actor_name(@actor3, 220, 0)     
    end # > 2     
    if $game_party.members.size > 3 
      draw_actor_name(@actor4, 330, 0)     
    end # > 3   
   
    # Actor HP 
    draw_actor_hp(@actor1, 0, 24, 80)   
    if $game_party.members.size > 1 
      draw_actor_hp(@actor2, 110, 24, 80)     
    end # > 1     
    if $game_party.members.size > 2 
      draw_actor_hp(@actor3, 220, 24, 80)     
    end # > 2     
    if $game_party.members.size > 3 
      draw_actor_hp(@actor4, 330, 24, 80)     
    end # > 3   
   
    # Actor MP 
    draw_actor_mp(@actor1, 0, 44, 80)   
    if $game_party.members.size > 1 
      draw_actor_mp(@actor2, 110, 44, 80)     
    end # > 1     
    if $game_party.members.size > 2 
      draw_actor_mp(@actor3, 220, 44, 80)     
    end # > 2     
    if $game_party.members.size > 3 
      draw_actor_mp(@actor4, 330, 44, 80)     
    end # > 3         
   
    # Actor LV 
    draw_actor_level(@actor1, 0, 64)   
    if $game_party.members.size > 1 
      draw_actor_level(@actor2, 110, 64)     
    end # > 1     
    if $game_party.members.size > 2 
      draw_actor_level(@actor3, 220, 64)     
    end # > 2     
    if $game_party.members.size > 3 
      draw_actor_level(@actor4, 330, 64)     
    end # > 3   
   
    # Actor Icons
    draw_actor_icons(@actor1, 60, 0)     
    if $game_party.members.size > 1 
      draw_actor_icons(@actor2, 170, 0)     
    end # > 1     
    if $game_party.members.size > 2 
      draw_actor_icons(@actor3, 280, 0)     
    end # > 2     
    if $game_party.members.size > 3 
      draw_actor_icons(@actor4, 400, 0)     
    end # > 3
  end  #end draw_window_content
end

#==============================================================================
# ** Window_BattleEnemy
#------------------------------------------------------------------------------
#  Window for selecting the enemy who is the action target on the battle
# screen.
#==============================================================================
class Window_BattleEnemy < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#     info_viewport : Viewport for displaying information
#--------------------------------------------------------------------------
  def initialize(info_viewport) 
    super(200, 296, 344, fitting_height(4)) 
    refresh 
    self.visible = false
  end
end #class Window_BattleEnemy

#==============================================================================
# ** Window_BattleLog
#------------------------------------------------------------------------------
#  Window edited to be more like DQVIII
#==============================================================================
class Window_BattleLog < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
  def initialize 
    super(0, 296, window_width, window_height) 
    self.z = 200 
    self.hide 
    self.opacity = 255 
    @lines = [] 
    @num_wait = 0 
    create_back_bitmap 
    create_back_sprite 
    refresh
  end
  #--------------------------------------------------------------------------
  # * Free
  #--------------------------------------------------------------------------
  def dispose 
    super 
    self.close 
    dispose_back_bitmap 
    dispose_back_sprite
  end
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width 
    Graphics.width
  end
  #--------------------------------------------------------------------------
  # * Get Window Height
  #--------------------------------------------------------------------------
  def window_height 
    fitting_height(max_line_number)
  end
  #--------------------------------------------------------------------------
  # * Get Maximum Number of Lines
  #--------------------------------------------------------------------------
  def max_line_number 
    return 4
  end
  #--------------------------------------------------------------------------
  # * Clear
  #--------------------------------------------------------------------------
  def clear 
    self.hide 
    @num_wait = 0 
    @lines.clear 
    refresh
  end
  #--------------------------------------------------------------------------
  # * Add Text
  #--------------------------------------------------------------------------
  def add_text(text) 
    self.show 
    @lines.push(text) 
    refresh
  end
  #--------------------------------------------------------------------------
  # * Get Background Opacity
  #--------------------------------------------------------------------------
  def back_opacity 
    return 0
  end
end #Window_Battlelog

#==============================================================================
# ** Window_ActorCommand
#------------------------------------------------------------------------------
#  This window is for selecting an actor's action on the battle screen.
#==============================================================================
class Window_ActorCommand < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
  def initialize 
    super(0, 0) 
    self.openness = 0 
    deactivate 
    @actor = nil
  end
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width 
    return 200
  end
  #--------------------------------------------------------------------------
  # * Get Number of Lines to Show
  #--------------------------------------------------------------------------
  def visible_line_number 
    return 4
  end
  #--------------------------------------------------------------------------
  # * Get Digit Count
  #--------------------------------------------------------------------------
  def col_max     
    return 2
  end
end

#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
  def start 
    super 
    create_spriteset 
    create_all_windows 
    BattleManager.method_wait_for_message = method(:wait_for_message) 
    @game_party = $game_party.members
  end
  #--------------------------------------------------------------------------
  # * Update Frame (Basic)
  #--------------------------------------------------------------------------
  def update_basic 
    super 
    $game_timer.update 
    $game_troop.update 
    @spriteset.update 
    update_message_open
  end 
  #--------------------------------------------------------------------------
  # * Create All Windows
  #--------------------------------------------------------------------------
  def create_all_windows 
    create_message_window 
    create_log_window 
    create_DQ_status_window 
    create_info_viewport 
    create_party_command_window 
    create_actor_command_window 
    create_help_window 
    create_skill_window 
    create_item_window 
    create_actor_window 
    create_enemy_window
  end
  #--------------------------------------------------------------------------
  # * Create Message Window
  #--------------------------------------------------------------------------
  def create_message_window 
    @message_window = Window_Message.new
  end 
  #--------------------------------------------------------------------------
  # * Create DQ Status Window
  #--------------------------------------------------------------------------
  def create_DQ_status_window 
    @DQ_status_window = Window_DQ_BattleStatus.new
    @DQ_status_window.x = 128
  end 
  #--------------------------------------------------------------------------
  # * Create Log Window
  #--------------------------------------------------------------------------
  def create_log_window 
    @log_window = Window_BattleLog.new 
    @log_window.method_wait = method(:wait) 
    @log_window.method_wait_for_effect = method(:wait_for_effect)
  end 
  #--------------------------------------------------------------------------
  # * Create Information Display Viewport
  #-------------------------------------------------------------------------- 
  def create_info_viewport 
    @info_viewport = Viewport.new 
    @info_viewport.rect.y = 0 
    @info_viewport.rect.height = Graphics.height - @DQ_status_window.height 
    @info_viewport.z = 100 
    @info_viewport.ox = 544 - 104 * 4 
    @DQ_status_window.viewport = @info_viewport
  end 
  #--------------------------------------------------------------------------
  # * Create Party Commands Window
  #--------------------------------------------------------------------------
  def create_party_command_window 
    @DQ_status_window.show 
    @party_command_window = Window_PartyCommand.new 
    @party_command_window.set_handler(:fight,  method(:command_fight)) 
    @party_command_window.set_handler(:escape, method(:command_escape)) 
    @party_command_window.x = 0 
    @party_command_window.y = 296 
    @party_command_window.unselect
  end
  #--------------------------------------------------------------------------
  # * Create Actor Commands Window
  #--------------------------------------------------------------------------
  def create_actor_command_window 
    @actor_command_window = Window_ActorCommand.new 
    @actor_command_window.set_handler(:attack, method(:command_attack)) 
    @actor_command_window.set_handler(:skill,  method(:command_skill)) 
    @actor_command_window.set_handler(:guard,  method(:command_guard)) 
    @actor_command_window.set_handler(:item,   method(:command_item)) 
    @actor_command_window.set_handler(:cancel, method(:prior_command)) 
    @actor_command_window.x = 0 
    @actor_command_window.y = 296 
  end
  #--------------------------------------------------------------------------
  # * Create Help Window
  #--------------------------------------------------------------------------
  def create_help_window 
    @help_window = Window_Help.new 
    @help_window.visible = false
  end 
  #--------------------------------------------------------------------------
  # * Create Enemy Window
  #--------------------------------------------------------------------------
  def create_enemy_window 
    @enemy_window = Window_BattleEnemy.new(@help_window) 
    @enemy_window.index = 0 
    @enemy_window.set_handler(:ok,     method(:on_enemy_ok)) 
    @enemy_window.set_handler(:cancel, method(:on_enemy_cancel))
  end 
  #--------------------------------------------------------------------------
  # * Start Enemy Selection
  #--------------------------------------------------------------------------
  def select_enemy_selection 
    @enemy_window.refresh 
    @enemy_window.show.activate 
    @enemy_window.index = 0
  end
  #--------------------------------------------------------------------------
  # * Create Skill Window
  #--------------------------------------------------------------------------
  def create_skill_window 
    @skill_window = Window_BattleSkill.new(@help_window, @info_viewport) 
    @skill_window.set_handler(:ok,     method(:on_skill_ok)) 
    @skill_window.set_handler(:cancel, method(:on_skill_cancel))
  end
  #--------------------------------------------------------------------------
  # * Create Item Window
  #--------------------------------------------------------------------------
  def create_item_window 
    @item_window = Window_BattleItem.new(@help_window, @info_viewport) 
    @item_window.set_handler(:ok,     method(:on_item_ok)) 
    @item_window.set_handler(:cancel, method(:on_item_cancel))
  end 
  #--------------------------------------------------------------------------
  # * Update Status Window Information
  #--------------------------------------------------------------------------
  def refresh_status 
    @DQ_status_window.refresh
  end 
  #--------------------------------------------------------------------------
  # * Start Party Command Selection
  #--------------------------------------------------------------------------
  def start_party_command_selection 
    unless scene_changing?   
    refresh_status   
    @DQ_status_window.open   
    if BattleManager.input_start     
      @actor_command_window.close     
      @party_command_window.setup   
    else     
      @party_command_window.deactivate     
      turn_start   
    end 
    end
  end 
  #--------------------------------------------------------------------------
  # * Start Actor Command Selection
  #--------------------------------------------------------------------------
  def start_actor_command_selection 
    @party_command_window.close 
    @actor_command_window.setup(BattleManager.actor)
  end
  #--------------------------------------------------------------------------
  # * Update Processing for Opening Message Window
  #    Set openness to 0 until the status window and so on are finished closing.
  #--------------------------------------------------------------------------
  def update_message_open 
    if $game_message.busy? && !@DQ_status_window.close?   
      @message_window.openness = 0   
      @DQ_status_window.close   
      @party_command_window.close   
      @actor_command_window.close 
    end
  end
  #--------------------------------------------------------------------------
  # * Start Turn
  #--------------------------------------------------------------------------
  def turn_start 
    @party_command_window.close 
    @actor_command_window.close 
    @subject =  nil 
    BattleManager.turn_start 
    if Jami_DQ_Battle::HUD_HIDE == true 
      @info_viewport.rect.height = 60 
    end #if HUDE_HIDE 
    @log_window.clear
  end
  #--------------------------------------------------------------------------
  # * End Turn
  #--------------------------------------------------------------------------
  def turn_end 
    all_battle_members.each do |battler|   
    battler.on_turn_end   
    refresh_status   
    if Jami_DQ_Battle::HUD_HIDE == true   
      @info_viewport.rect.height = @DQ_status_window.height   
    end   
    @log_window.display_auto_affected_status(battler)   
    @log_window.wait_and_clear 
    end 
    BattleManager.turn_end 
    process_event 
    start_party_command_selection
  end
  #--------------------------------------------------------------------------
  # * Battle Action Processing
  #--------------------------------------------------------------------------
  def process_action 
    return if scene_changing? 
    if !@subject || !@subject.current_action   
      @subject = BattleManager.next_subject 
    end 
    return turn_end unless @subject 
    if @subject.current_action   
      @subject.current_action.prepare   
    if @subject.current_action.valid?     
      @DQ_status_window.open     
      execute_action   
    end   
    @subject.remove_current_action 
    end 
    process_action_end unless @subject.current_action
  end
end # end Scene_battle
And I'd like to request some modifications if anyone wants to/has the time.
The modifications are as follow:

First, I'd like for the window with the enemy names to be visible at all times after you press ''Fight'', not just when pressing attack.
Second, I'd like for the enemy names to be displayed one below the other, rather than one next to the other.
Thirdly, I'd like for the ''command box'' in the left to be a bit wider so the text doesn't get stretchy, and also for the Actor who is controlled at the time, his name to be displayed on top of the command box(preferably centered), with a separating line underneath.
Lastly, the enemy name window should be slightly smaller(as the command box would be slightly wider), and the enemy name ''boxes'' to be displayed a bit more to the right, so the cursor doesn't merge with the white of the windowskin.

This is how the battles look right now:
jF8sfpX.png


This is how they'd ideally look after the changes:
cNhJyXH.png


Also, there is a slight flickering during combat(as shown in this video: ), if someone could fix that also I'd be grateful.

Thank you for your time! :)
 

A-Moonless-Night

WINTER IS COMING
Veteran
Joined
Mar 17, 2012
Messages
695
Reaction score
451
First Language
English
Primarily Uses
RMVXA
Let me know how you go with this:
Code:
class Window_BattleEnemy < Window_Selectable
  def col_max; return 1; end
  def spacing; return 38; end
end
 
class Window_DQ_BattleStatus < Window_Base

  def draw_actor_info(actor, x, y, width)
    draw_face(actor.face_name, actor.face_index, x, y, false) if Jami_DQ_Battle::SHOW_FACE
    draw_actor_name(actor, x, y)
    draw_actor_hp(actor, x, y+24, width)
    draw_actor_mp(actor, x, y+44, width)
    draw_actor_level(actor, x, y+64)
    draw_actor_icons(actor, x+60, y)
  end
 
  def draw_window_content
    draw_actor_info(@actor1, 0, 0, 80)
    draw_actor_info(@actor2, 110, 0, 80) if $game_party.members.size > 1
    draw_actor_info(@actor3, 220, 0, 80) if $game_party.members.size > 2
    draw_actor_info(@actor4, 330, 0, 80) if $game_party.members.size > 3
  end
end

class Window_ActorCommand < Window_Command
  def spacing; return 8; end
  def visible_line_number; return 3; end
    
  alias amn_dqbattle_windowactorcmd_init  initialize
  def initialize
    amn_dqbattle_windowactorcmd_init
    self.opacity = 0
  end
 
end

class Window_ActorDummy < Window_Base
  def initialize
    super(0, 0, 200, fitting_height(visible_line_number))
    self.openness = 0
    @actor = nil
  end

  def visible_line_number; return 4; end

  def draw_actor_details
    return unless @actor
    draw_text(0, 0, contents_width, line_height, @actor.name, 1)
    draw_horz_line(12)
  end

  def draw_horz_line(y)
    line_y = y + line_height / 2 - 1
    contents.fill_rect(0, line_y, contents_width, 2, normal_color)
  end
 
  def setup(actor)
    @actor = actor
    contents.clear
    draw_actor_details
    open
  end
end

class Scene_Battle < Scene_Base
 
  alias amn_dqbattle_scenebattle_createactorcmdwind create_actor_command_window
  def create_actor_command_window
    @dummy_window = Window_ActorDummy.new
    amn_dqbattle_scenebattle_createactorcmdwind
    @actor_command_window.y = 320
    @dummy_window.y = 296
  end
 
  alias amn_dqbattle_scenebattle_startpartycmdselect  start_party_command_selection
  def start_party_command_selection
    amn_dqbattle_scenebattle_startpartycmdselect
    unless scene_changing?   
      if BattleManager.input_start     
        @dummy_window.close
        @enemy_window.deactivate.hide
      end
    end
  end
 
  alias amn_dqbattle_scenebattle_cmdfight command_fight
  def command_fight
    amn_dqbattle_scenebattle_cmdfight
    @enemy_window.deactivate.show
  end
 
  alias amn_dqbattle_scenebattle_startactorcmdselect  start_actor_command_selection
  def start_actor_command_selection
    amn_dqbattle_scenebattle_startactorcmdselect
    @dummy_window.setup(BattleManager.actor)
  end
 
  alias amn_dqbattle_scenebattle_updatemsgopen  update_message_open
  def update_message_open
    amn_dqbattle_scenebattle_updatemsgopen
    if $game_message.busy? && !@DQ_status_window.close?   
      @dummy_window.close
    end
  end
 
  alias amn_dqbattle_scenebattle_turnstart  turn_start
  def turn_start
    @dummy_window.close
    @enemy_window.deactivate.hide
    amn_dqbattle_scenebattle_turnstart
  end
 
  def on_enemy_ok
    BattleManager.actor.input.target_index = @enemy_window.enemy.index
    @skill_window.hide
    @item_window.hide
    next_command
  end

  def on_enemy_cancel
    @enemy_window.deactivate
    case @actor_command_window.current_symbol
    when :attack
      @actor_command_window.activate
    when :skill
      @skill_window.activate
    when :item
      @item_window.activate
    end
  end
end
 

Koulucky

Veteran
Veteran
Joined
Jan 25, 2016
Messages
68
Reaction score
31
First Language
English
Primarily Uses
@A-Moonless-Night
Thanks a lot! :)
It works nicely, but there are some more modifications I'd like you to make if you're willing.

Notice how in these pics the cursor goes over/blends in with the white?
kOWZDxo.png

wv7pLI9.png
It is possible for the monster names and attack/defend commands to be a bit further to the right(about 2 or 4 pixels) so the cursor doesn't blend in with the white?
Also, attack and defend look stretchy, can you make the command window a bit wider so it fits in about 2 additional letters for each command?

I'd like for the stats window(the one on the top)to be visible even after the battle ends(when it says ''Hero was victorious'').

In the DQ Battle script, when the player/enemies attack or perform actions, the stats window gets smaller. While I'd like to keep this feature, the window its ''cut off'':
QrKvsHQ.png
I'd like it to be something like this instead:
JcLhoyM.png

Also, I'd like you to modify the item & magic menu(in battle).
See how it overlaps with the other windows, but because the windowskin I'm using for battle is transparent, it looks messy. Also, the cursor blends in with the white of windowskin here too.
yoMSMx3.png

AfoZpDE.png

I'd like the battle magic menu to be something like this mock-up I made:
wVZ4imC.png
In the left there's the spell list, and on the right the spell description, with the mp cost below.

Also, there doesn't need to be any space for icons, since in my game spells & items don't use icons.
The item menu should be something similar, except the mp cost window.

Lastly, I wanna know if the flickering in combat windows can be fixed, aswell as if windows can open up instantly, as detailed in this video:

Sorry for the long post and thanks again! :)


 

A-Moonless-Night

WINTER IS COMING
Veteran
Joined
Mar 17, 2012
Messages
695
Reaction score
451
First Language
English
Primarily Uses
RMVXA
I've got a bit of time today, so I'll get started on some of these. One question: if you need to select an enemy using a skill, where should the enemy window go?
 

Koulucky

Veteran
Veteran
Joined
Jan 25, 2016
Messages
68
Reaction score
31
First Language
English
Primarily Uses
@A-Moonless-Night
When selecting an enemy using a skill, the enemy window should go above the spell window, something like this:
GGMbAdl.png

This applies for skills that require selecting an actor too, but the window should be smaller because no actor will have a name longer than 7 letters.
 

A-Moonless-Night

WINTER IS COMING
Veteran
Joined
Mar 17, 2012
Messages
695
Reaction score
451
First Language
English
Primarily Uses
RMVXA
Give this a go:
Code:
=begin
#==============================================================================#
#   AMN DQ Battle Addon
#   Version 1.01
#   Author: AMoonlessNight
#   Date: 09 Dec 2018
#   Latest: 09 Dec 2018
#==============================================================================#
#   UPDATE LOG
#------------------------------------------------------------------------------#
# 09 Dec 2018 - created the script
#==============================================================================#
#   TERMS OF USE
#------------------------------------------------------------------------------#
# - Please credit AMoonlessNight or A-Moonless-Night
# - Free for non-commercial use
# - I'd love to see your game if you end up using one of my scripts
#==============================================================================#

This script updates the battle scene from Jamiras843 Dragon Quest Battle script,
changing the position of certain windows and changing the way some information
is drawn.

You can choose whether to draw icons in skill and item lists in the editable
region below.

All windows now open and close instantly, no fade-in/-out transition.

=end
module AMN_DQ_Battle
#==============================================================================
# ** EDITABLE REGION BELOW
#------------------------------------------------------------------------------
#  Change the values in the area below to suit your needs.
#==============================================================================

  Icons_On = false  # whether to draw icons in item and skill lists
 
#==============================================================================
# ** END OF EDITABLE REGION
#------------------------------------------------------------------------------
#  Please do not edit below this point unless you know what you are doing.
#==============================================================================
end

class Window_Base < Window
 
  def update_open
    self.openness += 255
    @opening = false if open?
  end

  def update_close
    self.openness -= 255
    @closing = false if close?
  end
 
  alias amn_dqbattle_windowbase_drawitemname  draw_item_name
  def draw_item_name(item, x, y, enabled = true, width = 172)
    if AMN_DQ_Battle::Icons_On
      amn_dqbattle_windowbase_drawitemname(item, x, y, enabled, width)
    else
      return unless item
      change_color(normal_color, enabled)
      draw_text(x, y, width, line_height, item.name)
    end
  end
end

class Window_BattleActor < Window_BattleStatus
 
  def visible_line_number; item_max; end
  def show; select(0) if @info_viewport; super; end
  def hide; super; end
  def window_width; 110; end
 
  def draw_item(index)
    actor = $game_party.battle_members[index]
    draw_actor_name(actor, 0, line_height * index)
  end
 
end

class Window_BattleEnemy < Window_Selectable
  def col_max; return 1; end

  def initialize(info_viewport) 
    super(210, 296, Graphics.width - 210, fitting_height(4)) 
    refresh 
    self.visible = false
  end
 
  def item_rect(index)
    rect = Rect.new
    rect.width = item_width - 10
    rect.height = item_height
    rect.x = (index % col_max * (item_width + spacing)) + 5
    rect.y = index / col_max * item_height
    rect
  end
 
  def item_rect_for_text(index)
    rect = item_rect(index)
    rect.x += 10
    rect.width -= 20
    rect
  end
 
  def deactivate
    unselect
    super
  end
 
end

class Window_DQ_BattleStatus < Window_Base

  alias amn_dqbattle_winddqbattlestatus_init  initialize
  def initialize
    amn_dqbattle_winddqbattlestatus_init
    self.arrows_visible = false
  end
 
  def draw_actor_info(actor, x, y, width)
    draw_face(actor.face_name, actor.face_index, x, y, false) if Jami_DQ_Battle::SHOW_FACE
    draw_actor_name(actor, x, y)
    draw_actor_hp(actor, x, y+24, width)
    draw_actor_mp(actor, x, y+44, width)
    draw_actor_level(actor, x, y+64)
    draw_actor_icons(actor, x+60, y)
  end
 
  def draw_window_content
    draw_actor_info(@actor1, 0, 0, 80)
    draw_actor_info(@actor2, 110, 0, 80) if $game_party.members.size > 1
    draw_actor_info(@actor3, 220, 0, 80) if $game_party.members.size > 2
    draw_actor_info(@actor4, 330, 0, 80) if $game_party.members.size > 3
  end
end

class Window_ActorCommand < Window_Command
  def spacing; return 8; end
  def visible_line_number; return 3; end
  def window_width; return 210; end
   
  alias amn_dqbattle_windowactorcmd_init  initialize
  def initialize
    amn_dqbattle_windowactorcmd_init
    self.opacity = 0
  end
 
end

class Window_ActorDummy < Window_Base
  def initialize
    super(0, 0, 210, fitting_height(visible_line_number))
    self.openness = 0
    @actor = nil
  end

  def visible_line_number; return 4; end

  def draw_actor_details
    return unless @actor
    draw_text(0, 0, contents_width, line_height, @actor.name, 1)
    draw_horz_line(12)
  end

  def draw_horz_line(y)
    line_y = y + line_height / 2 - 1
    contents.fill_rect(0, line_y, contents_width, 2, normal_color)
  end
 
  def setup(actor)
    @actor = actor
    contents.clear
    draw_actor_details
    open
  end
end

class Window_BattleItem < Window_ItemList

  def initialize(help_window, info_viewport)
    height = fitting_height(4)
    hww = help_window.width 
    super(0, Graphics.height - height, Graphics.width - hww, height) 
    self.visible = false 
    @help_window = help_window 
    @info_viewport = info_viewport
  end
end

class Window_BattleSkill < Window_SkillList
  attr_reader :actor

  def initialize(help_window, info_viewport) 
    height = fitting_height(4)
    hww = help_window.width 
    super(0, Graphics.height - height, Graphics.width - hww, height) 
    self.visible = false 
    @help_window = help_window 
    @info_viewport = info_viewport
    @mp_window = nil
  end
 
  def mp_window=(mp_window)
    @mp_window = mp_window
  end

  def draw_item(index)
    skill = @data[index]
    if skill
      rect = item_rect(index)
      rect.width -= 4
      draw_item_name(skill, rect.x, rect.y, enable?(skill))
    end
  end
 
  alias amn_dqbattle_windbattleskill_show show
  def show
    @mp_window.show if @mp_window
    amn_dqbattle_windbattleskill_show
  end

  alias amn_dqbattle_windbattleskill_hide hide
  def hide
    @mp_window.hide if @mp_window
    amn_dqbattle_windbattleskill_hide
  end
 
  def update_help
    super
    @mp_window.set_item if @mp_window
  end
end

class Window_BattleSkillMP < Window_Base

  def initialize(skill_window, info_viewport)
    h = fitting_height(1)
    super(Graphics.width - 250, Graphics.height - h, 250, h)
    self.visible = false
    @info_viewport = info_viewport
    skill_window.mp_window = self
    @skill_window = skill_window
  end

  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end

  def clear
    set_text("")
  end

  def item
    @skill_window.item
  end
 
  def actor
    @skill_window.actor
  end
 
  def set_item
    return clear if actor.nil? || item.nil?
    return clear if actor.skill_mp_cost(item).zero? && actor.skill_tp_cost(item).zero?
    if actor.skill_mp_cost(item) > 0
      set_text(sprintf("MP Cost: %d/%d", actor.skill_mp_cost(item), actor.mp))
    elsif actor.skill_tp_cost(item) > 0
      set_text(sprintf("TP Cost: %d/%d", actor.skill_tp_cost(item), actor.tp))
    end
  end

  def refresh
    contents.clear
    draw_text_ex(4, 0, @text)
  end
end

class Scene_Battle < Scene_Base
 
  alias amn_dqbattle_scenebattle_createactorcmdwind create_actor_command_window
  def create_actor_command_window 
    @dummy_window = Window_ActorDummy.new
    amn_dqbattle_scenebattle_createactorcmdwind
    @actor_command_window.y = 320 
    @dummy_window.y = 296
  end
 
  alias amn_dqbattle_scenebattle_createactorwind  create_actor_window
  def create_actor_window
    amn_dqbattle_scenebattle_createactorwind
    @actor_window.y -= @actor_window.height
    @actor_window.x = Graphics.width - @actor_window.width
  end
 
  alias amn_dqbattle_scenebattle_startpartycmdselect  start_party_command_selection
  def start_party_command_selection
    amn_dqbattle_scenebattle_startpartycmdselect
    unless scene_changing?   
      if BattleManager.input_start     
        @dummy_window.close
        @enemy_window.deactivate.hide
      end 
    end
  end 
 
  alias amn_dqbattle_scenebattle_createskillwind create_skill_window
  def create_skill_window
    amn_dqbattle_scenebattle_createskillwind
    @skill_mp_window = Window_BattleSkillMP.new(@skill_window, @info_viewport) 
  end
 
  alias amn_dqbattle_scenebattle_createhelpwind create_help_window
  def create_help_window 
    amn_dqbattle_scenebattle_createhelpwind
    w = 250
    hh = @help_window.height
    h = @help_window.fitting_height(4)
    @help_window.move(Graphics.width - w, Graphics.height - h, w, hh)
    @help_window.create_contents
  end 
 
  alias amn_dqbattle_scenebattle_cmdfight command_fight
  def command_fight
    amn_dqbattle_scenebattle_cmdfight
    @enemy_window.deactivate.show
  end
 
  alias amn_dqbattle_scenebattle_startactorcmdselect  start_actor_command_selection
  def start_actor_command_selection
    amn_dqbattle_scenebattle_startactorcmdselect
    @dummy_window.setup(BattleManager.actor)
  end
 
  alias amn_dqbattle_scenebattle_updatemsgopen  update_message_open
  def update_message_open
    amn_dqbattle_scenebattle_updatemsgopen
    if $game_message.busy? && !@DQ_status_window.close?   
      @dummy_window.close
    end
  end

  def turn_start 
    @party_command_window.close 
    @actor_command_window.close
    @dummy_window.close
    @enemy_window.deactivate.hide
    @subject =  nil 
    BattleManager.turn_start 
    if Jami_DQ_Battle::HUD_HIDE
      @DQ_status_window.height = @DQ_status_window.fitting_height(2)
      @info_viewport.rect.height = @DQ_status_window.fitting_height(2)
    end
    @log_window.clear
  end

  def turn_end 
    all_battle_members.each do |battler|   
      battler.on_turn_end   
      refresh_status   
      if Jami_DQ_Battle::HUD_HIDE
        @DQ_status_window.height = 110
        @DQ_status_window.update_padding
        @info_viewport.rect.height = @DQ_status_window.height
      end   
      @log_window.display_auto_affected_status(battler)   
      @log_window.wait_and_clear 
    end 
    BattleManager.turn_end 
    process_event 
    start_party_command_selection
  end
 
  def update_message_open
    if $game_message.busy?
      if !$game_troop.all_dead? && !@DQ_status_window.close?
        @message_window.openness = 0   
        @DQ_status_window.close
      end
      @party_command_window.close   
      @actor_command_window.close 
    end
  end
 
  def on_enemy_ok
    unless @actor_command_window.visible
      @actor_command_window.show
      @dummy_window.show
    end
    case @actor_command_window.current_symbol
    when :skill
      @enemy_window.y += @enemy_window.height
    when :item
      @enemy_window.y += @enemy_window.height
    end
    BattleManager.actor.input.target_index = @enemy_window.enemy.index
    @skill_window.hide
    @item_window.hide
    next_command
  end

  def on_enemy_cancel
    @enemy_window.deactivate
    case @actor_command_window.current_symbol
    when :attack
      @actor_command_window.activate
    when :skill
      @skill_window.activate
      @enemy_window.hide
    when :item
      @item_window.activate
      @enemy_window.hide
    end
  end
 
  alias amn_dqbattle_scenebattle_commandskill command_skill
  def command_skill
    amn_dqbattle_scenebattle_commandskill
    @enemy_window.deactivate.hide
    @enemy_window.y -= @enemy_window.height
    @actor_command_window.hide
    @dummy_window.hide
  end

  alias amn_dqbattle_scenebattle_commanditem command_item
  def command_item
    amn_dqbattle_scenebattle_commanditem
    @enemy_window.deactivate.hide
    @enemy_window.y -= @enemy_window.height
    @actor_command_window.hide
    @dummy_window.hide
  end
 
  alias amn_dqbattle_scenebattle_onactorok on_actor_ok
  def on_actor_ok
    unless @actor_command_window.visible
      @actor_command_window.show
      @dummy_window.show
    end
    @enemy_window.deactivate.show
    amn_dqbattle_scenebattle_onactorok
  end
 
  alias amn_dqbattle_scenebattle_onskillok  on_skill_ok
  def on_skill_ok
    amn_dqbattle_scenebattle_onskillok
    @skill = @skill_window.item
    if !@skill.need_selection?
      @enemy_window.y += @enemy_window.height
      @actor_command_window.show
      @dummy_window.show
      @enemy_window.deactivate.show
    end
  end

  alias amn_dqbattle_scenebattle_onskillcancel  on_skill_cancel
  def on_skill_cancel
    amn_dqbattle_scenebattle_onskillcancel
    @enemy_window.y += @enemy_window.height
    @enemy_window.deactivate.show
    @actor_command_window.show
    @dummy_window.show
  end

  alias amn_dqbattle_scenebattle_onitemok  on_item_ok
  def on_item_ok
    amn_dqbattle_scenebattle_onitemok
    @item = @item_window.item
    if !@item.need_selection?
      @enemy_window.y += @enemy_window.height
      @actor_command_window.show
      @dummy_window.show
      @enemy_window.deactivate.show
    end
  end

  alias amn_dqbattle_scenebattle_onitemcancel  on_item_cancel
  def on_item_cancel
    amn_dqbattle_scenebattle_onitemcancel
    @enemy_window.deactivate.show
    @enemy_window.y += @enemy_window.height
    @actor_command_window.show
    @dummy_window.show
  end
 
end
class Scene_Map < Scene_Base
  def perform_transition
    if Graphics.brightness == 0
      Graphics.transition(0)
      fadein(fadein_speed)
    else
      super
    end
  end
end

class Scene_Menu < Scene_MenuBase
  def transition_speed
    return 0
  end
 
  def terminate
    super
    Graphics.transition(0)
  end
end

EDIT: Forgot something, so I updated the script here.
 
Last edited:

Koulucky

Veteran
Veteran
Joined
Jan 25, 2016
Messages
68
Reaction score
31
First Language
English
Primarily Uses
@A-Moonless-Night
Thank you very much, it works almost perfectly! :)
However, there are still a few light changes it needs and it has a bug.

Whenever a spell is cast on an ally, the enemy window goes up higher and higher for some reason, as shown in this video:

For the light changes, I want the cursor to be further away from the white in some windows(like you did it for the enemies):
9rOz3R5.png

In these places:
aGbFUtj.png

The ''actor targeting'' window could also be a bit wider so it fits longer names, in addition to the cursor not blending in:
OG3xgx5.png

L7CerNL.png

nx9dXeo.png

I'd like the command window to be even wider(a bit)bcz attack/defend and skills are stretchy.

Also, I'd like the spells and items to be one below the other, since there are gonna be some pretty long item & spell names like Medicinal Herb, Kacrackle, etc.

If it helps, here are the graphics/scripts I'm using for battle in my game;
The windowskin:
hNyLC3i.png

For the cursor, I'm using this script:
Code:
#==============================================================================
#
# ▼ Yanfly Engine Ace - Menu Cursor v1.00
# -- Last Updated: 2012.01.16
# -- Level: Easy
# -- Requires: n/a
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YEA-MenuCursor"] = true

#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.01.16 - Started Script and Finished.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script creates visible menu cursors for your game. Whenever a window is
# selectable and active, the menu cursor will appear for it. Menu cursors catch
# the player's attention better and helps the player figure out quickly which
# window became the active window. Also included with this script is the
# ability to disable the highlighted selection bar since the window menu cursor
# can replace it.
#
#==============================================================================
# ▼ 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.
#
# Make sure you have a cursor image within your project's Graphics\System\
# folder. By default, the cursor's filename should be MenuCursor.
#
#==============================================================================
# ▼ 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 MENU_CURSOR
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - General Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Adjust the general settings here for the menu cursor, such as the
    # filename used for the menu cursor, the x position buffer and the y
    # position buffer for the cursor.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    FILENAME = "MenuCursor"     # Filename used for cursor in Graphics\System\
    BUFFER_X = 6               # X position buffer for icon.
    BUFFER_Y = 16               # Y position buffer for icon.
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Remove Highlighted Selection Bar -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Normally, when an entry is selected, that entry is highlighted. You can
    # opt to turn this effect off.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    REMOVE_HIGHLIGHTED_SELECTION_BAR = true
   
  end # MENU_CURSOR
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.
#==============================================================================

#==============================================================================
# ■ Sprite_MenuCursor
#==============================================================================

class Sprite_MenuCursor < Sprite_Base
 
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize(window)
    super(window.viewport)
    @window = window
    create_bitmap
  end
 
  #--------------------------------------------------------------------------
  # create_bitmap
  #--------------------------------------------------------------------------
  def create_bitmap
    self.bitmap = Cache.system(YEA::MENU_CURSOR::FILENAME)
    self.z = @window.z + 100
    self.opacity = 0
  end
 
  #--------------------------------------------------------------------------
  # update
  #--------------------------------------------------------------------------
  def update
    super
    update_visibility
    update_position
  end
 
  #--------------------------------------------------------------------------
  # update_visibility
  #--------------------------------------------------------------------------
  def update_visibility
    self.visible = visible_case
    self.opacity += opacity_rate
  end
 
  #--------------------------------------------------------------------------
  # visible_case
  #--------------------------------------------------------------------------
  def visible_case
    return @window.visible
  end
 
  #--------------------------------------------------------------------------
  # opacity_rate
  #--------------------------------------------------------------------------
  def opacity_rate
    rate = 255
    return -rate unless @window.active
    return rate
  end
 
  #--------------------------------------------------------------------------
  # update_position
  #--------------------------------------------------------------------------
  def update_position
    rect = @window.cursor_rect
    self.x = @window.x + rect.x - @window.ox + YEA::MENU_CURSOR::BUFFER_X
    self.y = @window.y + rect.y - @window.oy + YEA::MENU_CURSOR::BUFFER_Y
  end
 
end # Sprite_MenuCursor

#==============================================================================
# ■ Window
#==============================================================================

class Window
 
  #--------------------------------------------------------------------------
  # alias method: windowskin=
  #--------------------------------------------------------------------------
  alias window_windowskin_change_cursor windowskin=
  def windowskin=(skin)
    if YEA::MENU_CURSOR::REMOVE_HIGHLIGHTED_SELECTION_BAR
      skin = skin.dup
      skin.clear_rect(64, 64, 32, 32)
    end
    window_windowskin_change_cursor(skin)
  end
 
end # Window

#==============================================================================
# ■ Scene_Base
#==============================================================================

class Scene_Base
 
  #--------------------------------------------------------------------------
  # alias method: post_start
  #--------------------------------------------------------------------------
  alias scene_base_post_start_cursor post_start
  def post_start
    create_menu_cursors
    scene_base_post_start_cursor
  end
 
  #--------------------------------------------------------------------------
  # new method: create_menu_cursors
  #--------------------------------------------------------------------------
  def create_menu_cursors
    @menu_cursors = []
    instance_variables.each do |varname|
      ivar = instance_variable_get(varname)
      create_cursor_sprite(ivar) if ivar.is_a?(Window_Selectable)
    end
  end
 
  #--------------------------------------------------------------------------
  # new method: create_cursor_sprite
  #--------------------------------------------------------------------------
  def create_cursor_sprite(window)
    @menu_cursors.push(Sprite_MenuCursor.new(window))
  end
 
  #--------------------------------------------------------------------------
  # alias method: pre_terminate
  #--------------------------------------------------------------------------
  alias scene_base_pre_terminate_cursor pre_terminate
  def pre_terminate
    dispose_menu_cursors
    scene_base_pre_terminate_cursor
  end
 
  #--------------------------------------------------------------------------
  # new method: dispose_menu_cursors
  #--------------------------------------------------------------------------
  def dispose_menu_cursors
    @menu_cursors.each { |cursor| cursor.dispose }
  end
 
  #--------------------------------------------------------------------------
  # alias method: update_basic
  #--------------------------------------------------------------------------
  alias scene_base_update_basic_cursor update_basic
  def update_basic
    scene_base_update_basic_cursor
    update_menu_cursors
  end
 
  #--------------------------------------------------------------------------
  # new method: update_menu_cursors
  #--------------------------------------------------------------------------
  def update_menu_cursors
    @menu_cursors.each { |cursor| cursor.update }
  end
 
end # Scene_Base

#==============================================================================
#
# ▼ End of File
#
#==============================================================================
And this cursor graphic(it may seem invisible but that's bcz its white):
51C2ZI0.png

The font is ''Press Start 2P'' and the font size is 14, without bold/italic/shadow or outline.

Thanks!
 

A-Moonless-Night

WINTER IS COMING
Veteran
Joined
Mar 17, 2012
Messages
695
Reaction score
451
First Language
English
Primarily Uses
RMVXA
Should be fixed now:
Code:
=begin
#==============================================================================#
#   AMN DQ Battle Addon
#   Version 1.02
#   Author: AMoonlessNight
#   Date: 09 Dec 2018
#   Latest: 10 Dec 2018
#==============================================================================#
#   UPDATE LOG
#------------------------------------------------------------------------------#
# 09 Dec 2018 - created the script
# 10 Dec 2018 - fixed a couple of bugs
#==============================================================================#
#   TERMS OF USE
#------------------------------------------------------------------------------#
# - Please credit AMoonlessNight or A-Moonless-Night
# - Free for non-commercial use
# - I'd love to see your game if you end up using one of my scripts
#==============================================================================#

This script updates the battle scene from Jamiras843 Dragon Quest Battle script,
changing the position of certain windows and changing the way some information
is drawn.

You can choose whether to draw icons in skill and item lists in the editable
region below.

All windows now open and close instantly, no fade-in/-out transition.

=end
module AMN_DQ_Battle
#==============================================================================
# ** EDITABLE REGION BELOW
#------------------------------------------------------------------------------
#  Change the values in the area below to suit your needs.
#==============================================================================

  Icons_On = false  # whether to draw icons in item and skill lists
 
#==============================================================================
# ** END OF EDITABLE REGION
#------------------------------------------------------------------------------
#  Please do not edit below this point unless you know what you are doing.
#==============================================================================
end

class Window_Base < Window
 
  def update_open
    self.openness += 255
    @opening = false if open?
  end

  def update_close
    self.openness -= 255
    @closing = false if close?
  end
 
  alias amn_dqbattle_windowbase_drawitemname  draw_item_name
  def draw_item_name(item, x, y, enabled = true, width = 172)
    if AMN_DQ_Battle::Icons_On
      amn_dqbattle_windowbase_drawitemname(item, x, y, enabled, width)
    else
      return unless item
      change_color(normal_color, enabled)
      draw_text(x, y, width, line_height, item.name)
    end
  end
end

class Window_Selectable < Window_Base

  def item_rect_for_text(index)
    rect = item_rect(index)
    rect.x += 10
    rect.width -= 20
    rect
  end
 
end

class Window_BattleActor < Window_BattleStatus
 
  def visible_line_number; item_max; end
  def show; select(0) if @info_viewport; super; end
  def hide; super; end
  def window_width; 170; end
 
  def draw_item(index)
    actor = $game_party.battle_members[index]
    draw_actor_name(actor, 10, line_height * index)
  end
 
end

class Window_BattleEnemy < Window_Selectable
  def col_max; return 1; end

  def initialize(info_viewport)
    super(250, 296, Graphics.width - 250, fitting_height(4))
    refresh
    self.visible = false
  end
 
  def deactivate
    unselect
    super
  end
 
end

class Window_DQ_BattleStatus < Window_Base

  def initialize
    super(100, 0, 112 * [$game_party.members.size, 4].min, 120)  
    create_contents    
    @actor1 = $game_party.members[0]    
    @actor2 = $game_party.members[1]    
    @actor3 = $game_party.members[2]    
    @actor4 = $game_party.members[3]    
    refresh    
    self.openness = 0
    self.arrows_visible = false
  end
 
  def draw_actor_info(actor, x, y, width)
    draw_face(actor.face_name, actor.face_index, x, y, false) if Jami_DQ_Battle::SHOW_FACE
    draw_actor_name(actor, x, y)
    draw_actor_hp(actor, x, y+24, width)
    draw_actor_mp(actor, x, y+44, width)
    draw_actor_level(actor, x, y+64)
    draw_actor_icons(actor, x+60, y)
  end
 
  def draw_window_content
    draw_actor_info(@actor1, 0, 0, 80)
    draw_actor_info(@actor2, 110, 0, 80) if $game_party.members.size > 1
    draw_actor_info(@actor3, 220, 0, 80) if $game_party.members.size > 2
    draw_actor_info(@actor4, 330, 0, 80) if $game_party.members.size > 3
  end
end

class Window_ActorCommand < Window_Command
  def spacing; return 6; end
  def visible_line_number; return 3; end
  def window_width; return 250; end
   
  alias amn_dqbattle_windowactorcmd_init  initialize
  def initialize
    amn_dqbattle_windowactorcmd_init
    self.opacity = 0
  end
 
end

class Window_ActorDummy < Window_Base
  def initialize
    super(0, 0, 250, fitting_height(visible_line_number))
    self.openness = 0
    @actor = nil
  end

  def visible_line_number; return 4; end

  def draw_actor_details
    return unless @actor
    draw_text(0, 0, contents_width, line_height, @actor.name, 1)
    draw_horz_line(12)
  end

  def draw_horz_line(y)
    line_y = y + line_height / 2 - 1
    contents.fill_rect(0, line_y, contents_width, 2, normal_color)
  end
 
  def setup(actor)
    @actor = actor
    contents.clear
    draw_actor_details
    open
  end
end

class Window_BattleItem < Window_ItemList
  def col_max; return 1; end
   
  def initialize(help_window, info_viewport)
    height = fitting_height(4)
    hww = help_window.width
    super(0, Graphics.height - height, Graphics.width - hww, height)
    self.visible = false
    @help_window = help_window
    @info_viewport = info_viewport
  end
 
  def draw_item(index)
    item = @data[index]
    if item
      rect = item_rect(index)
      rect.width -= 8
      draw_item_name(item, rect.x+10, rect.y, enable?(item))
      draw_item_number(rect, item)
    end
  end
 
end

class Window_BattleSkill < Window_SkillList
  attr_reader :actor
  def col_max; return 1; end
 
  def initialize(help_window, info_viewport)
    height = fitting_height(4)
    hww = help_window.width
    super(0, Graphics.height - height, Graphics.width - hww, height)
    self.visible = false
    @help_window = help_window
    @info_viewport = info_viewport
    @mp_window = nil
  end
 
  def mp_window=(mp_window)
    @mp_window = mp_window
  end

  def draw_item(index)
    skill = @data[index]
    if skill
      rect = item_rect(index)
      rect.width -= 8
      draw_item_name(skill, rect.x+10, rect.y, enable?(skill))
    end
  end
 
  alias amn_dqbattle_windbattleskill_show show
  def show
    @mp_window.show if @mp_window
    amn_dqbattle_windbattleskill_show
  end

  alias amn_dqbattle_windbattleskill_hide hide
  def hide
    @mp_window.hide if @mp_window
    amn_dqbattle_windbattleskill_hide
  end
 
  def update_help
    super
    @mp_window.set_item if @mp_window
  end
end

class Window_BattleSkillMP < Window_Base

  def initialize(skill_window, info_viewport)
    h = fitting_height(1)
    super(Graphics.width - 250, Graphics.height - h, 250, h)
    self.visible = false
    @info_viewport = info_viewport
    skill_window.mp_window = self
    @skill_window = skill_window
  end

  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end

  def clear
    set_text("")
  end

  def item
    @skill_window.item
  end
 
  def actor
    @skill_window.actor
  end
 
  def set_item
    return clear if actor.nil? || item.nil?
    return clear if actor.skill_mp_cost(item).zero? && actor.skill_tp_cost(item).zero?
    if actor.skill_mp_cost(item) > 0
      set_text(sprintf("MP Cost: %d/%d", actor.skill_mp_cost(item), actor.mp))
    elsif actor.skill_tp_cost(item) > 0
      set_text(sprintf("TP Cost: %d/%d", actor.skill_tp_cost(item), actor.tp))
    end
  end

  def refresh
    contents.clear
    draw_text_ex(4, 0, @text)
  end
end

class Scene_Battle < Scene_Base
 
  alias amn_dqbattle_scenebattle_createactorcmdwind create_actor_command_window
  def create_actor_command_window
    @dummy_window = Window_ActorDummy.new
    amn_dqbattle_scenebattle_createactorcmdwind
    @actor_command_window.y = 320
    @dummy_window.y = 296
  end
 
  alias amn_dqbattle_scenebattle_createactorwind  create_actor_window
  def create_actor_window
    amn_dqbattle_scenebattle_createactorwind
    @actor_window.y -= @actor_window.height
    @actor_window.x = Graphics.width - @actor_window.width
  end
 
  alias amn_dqbattle_scenebattle_startpartycmdselect  start_party_command_selection
  def start_party_command_selection
    amn_dqbattle_scenebattle_startpartycmdselect
    unless scene_changing?  
      if BattleManager.input_start    
        @dummy_window.close
        @enemy_window.deactivate.hide
      end
    end
  end
 
  alias amn_dqbattle_scenebattle_createskillwind create_skill_window
  def create_skill_window
    amn_dqbattle_scenebattle_createskillwind
    @skill_mp_window = Window_BattleSkillMP.new(@skill_window, @info_viewport)
  end
 
  alias amn_dqbattle_scenebattle_createhelpwind create_help_window
  def create_help_window
    amn_dqbattle_scenebattle_createhelpwind
    w = 250
    hh = @help_window.height
    h = @help_window.fitting_height(4)
    @help_window.move(Graphics.width - w, Graphics.height - h, w, hh)
    @help_window.create_contents
  end
 
  alias amn_dqbattle_scenebattle_cmdfight command_fight
  def command_fight
    amn_dqbattle_scenebattle_cmdfight
    @enemy_window.deactivate.show
  end
 
  alias amn_dqbattle_scenebattle_startactorcmdselect  start_actor_command_selection
  def start_actor_command_selection
    amn_dqbattle_scenebattle_startactorcmdselect
    @dummy_window.setup(BattleManager.actor)
  end
 
  alias amn_dqbattle_scenebattle_updatemsgopen  update_message_open
  def update_message_open
    amn_dqbattle_scenebattle_updatemsgopen
    if $game_message.busy? && !@DQ_status_window.close?  
      @dummy_window.close
    end
  end

  def turn_start
    @party_command_window.close
    @actor_command_window.close
    @dummy_window.close
    @enemy_window.deactivate.hide
    @subject =  nil
    BattleManager.turn_start
    if Jami_DQ_Battle::HUD_HIDE
      @DQ_status_window.height = @DQ_status_window.fitting_height(2)
      @info_viewport.rect.height = @DQ_status_window.fitting_height(2)
    end
    @log_window.clear
  end

  def turn_end
    all_battle_members.each do |battler|  
      battler.on_turn_end  
      refresh_status  
      if Jami_DQ_Battle::HUD_HIDE
        @DQ_status_window.height = 110
        @DQ_status_window.update_padding
        @info_viewport.rect.height = @DQ_status_window.height
      end  
      @log_window.display_auto_affected_status(battler)  
      @log_window.wait_and_clear
    end
    BattleManager.turn_end
    process_event
    start_party_command_selection
  end
 
  def update_message_open
    if $game_message.busy?
      if !$game_troop.all_dead? && !@DQ_status_window.close?
        @message_window.openness = 0  
        @DQ_status_window.close
      end
      @party_command_window.close  
      @actor_command_window.close
    end
  end
 
  def on_enemy_ok
    unless @actor_command_window.visible
      @actor_command_window.show
      @dummy_window.show
    end
    case @actor_command_window.current_symbol
    when :skill
      @enemy_window.y += @enemy_window.height
    when :item
      @enemy_window.y += @enemy_window.height
    end
    BattleManager.actor.input.target_index = @enemy_window.enemy.index
    @skill_window.hide
    @item_window.hide
    next_command
  end

  def on_enemy_cancel
    @enemy_window.deactivate
    case @actor_command_window.current_symbol
    when :attack
      @actor_command_window.activate
    when :skill
      @skill_window.activate
      @enemy_window.hide
    when :item
      @item_window.activate
      @enemy_window.hide
    end
  end
 
  alias amn_dqbattle_scenebattle_commandskill command_skill
  def command_skill
    amn_dqbattle_scenebattle_commandskill
    @enemy_window.deactivate.hide
    @enemy_window.y -= @enemy_window.height
    @actor_command_window.hide
    @dummy_window.hide
  end

  alias amn_dqbattle_scenebattle_commanditem command_item
  def command_item
    amn_dqbattle_scenebattle_commanditem
    @enemy_window.deactivate.hide
    @enemy_window.y -= @enemy_window.height
    @actor_command_window.hide
    @dummy_window.hide
  end
 
  alias amn_dqbattle_scenebattle_onactorok on_actor_ok
  def on_actor_ok
    unless @actor_command_window.visible
      @actor_command_window.show
      @dummy_window.show
    end
    @enemy_window.y += @enemy_window.height
    @enemy_window.deactivate.show
    amn_dqbattle_scenebattle_onactorok
  end
 
  alias amn_dqbattle_scenebattle_onskillok  on_skill_ok
  def on_skill_ok
    amn_dqbattle_scenebattle_onskillok
    @skill = @skill_window.item
    if !@skill.need_selection?
      @enemy_window.y += @enemy_window.height
      @actor_command_window.show
      @dummy_window.show
      @enemy_window.deactivate.show
    end
  end

  alias amn_dqbattle_scenebattle_onskillcancel  on_skill_cancel
  def on_skill_cancel
    amn_dqbattle_scenebattle_onskillcancel
    @enemy_window.y += @enemy_window.height
    @enemy_window.deactivate.show
    @actor_command_window.show
    @dummy_window.show
  end

  alias amn_dqbattle_scenebattle_onitemok  on_item_ok
  def on_item_ok
    amn_dqbattle_scenebattle_onitemok
    @item = @item_window.item
    if !@item.need_selection?
      @enemy_window.y += @enemy_window.height
      @actor_command_window.show
      @dummy_window.show
      @enemy_window.deactivate.show
    end
  end

  alias amn_dqbattle_scenebattle_onitemcancel  on_item_cancel
  def on_item_cancel
    amn_dqbattle_scenebattle_onitemcancel
    @enemy_window.deactivate.show
    @enemy_window.y += @enemy_window.height
    @actor_command_window.show
    @dummy_window.show
  end
 
end
class Scene_Map < Scene_Base
  def perform_transition
    if Graphics.brightness == 0
      Graphics.transition(0)
      fadein(fadein_speed)
    else
      super
    end
  end
end

class Scene_Menu < Scene_MenuBase
  def transition_speed
    return 0
  end
 
  def terminate
    super
    Graphics.transition(0)
  end
end

You can set the position of the menu cursor in the Menu Cursor script, line 56. I set it to 10 and that seemed to do the trick.

EDIT: Also, you should add Mithran's Text Cache to your project. It stops the text shrinking like that. https://forums.rpgmakerweb.com/index.php?threads/text-cache.1001/
 

Koulucky

Veteran
Veteran
Joined
Jan 25, 2016
Messages
68
Reaction score
31
First Language
English
Primarily Uses
@A-Moonless-Night
Thanks a lot! I also added text cache and set the menu cursor to 10 and now it's perfect! :D
Thank you again for all your help!!

EDIT: I've encountered another bug, when I select a monster to attack, the wrong one is attacked. For example, in this video I target the candy cat, yet Hero attacks the dracky:

EDIT2: Also, when the party starts to escape, there's no escape text for some reason.
 
Last edited:

Roninator2

Gamer
Veteran
Joined
May 22, 2016
Messages
3,930
Reaction score
1,023
First Language
English
Primarily Uses
RMVXA
@Koulucky Under Window_BattleEnemy in def deactivate there is an unselect. Comment that out. Around line 106.
Maybe AMN can explain why that was needed.
This is not a fix, but maybe it is. AMN will have to let us know if that's good.
 

Koulucky

Veteran
Veteran
Joined
Jan 25, 2016
Messages
68
Reaction score
31
First Language
English
Primarily Uses
@Roninator2 Thanks, commenting that out seems to have fixed the selection problem.
 

A-Moonless-Night

WINTER IS COMING
Veteran
Joined
Mar 17, 2012
Messages
695
Reaction score
451
First Language
English
Primarily Uses
RMVXA
Oops, yep, sorry, I was playing around with something and forgot to get rid of that.
 

Koulucky

Veteran
Veteran
Joined
Jan 25, 2016
Messages
68
Reaction score
31
First Language
English
Primarily Uses
@A-Moonless-Night
When the party starts to escape, there's no escape text for some reason. Is it a bug or...?
 

Roninator2

Gamer
Veteran
Joined
May 22, 2016
Messages
3,930
Reaction score
1,023
First Language
English
Primarily Uses
RMVXA
edit
 
Last edited:

A-Moonless-Night

WINTER IS COMING
Veteran
Joined
Mar 17, 2012
Messages
695
Reaction score
451
First Language
English
Primarily Uses
RMVXA
The easiest way to fix that is to make it so that the status window never disappears, so I've done that:
Code:
=begin
#==============================================================================#
#   AMN DQ Battle Addon
#   Version 1.02
#   Author: AMoonlessNight
#   Date: 09 Dec 2018
#   Latest: 11 Dec 2018
#==============================================================================#
#   UPDATE LOG
#------------------------------------------------------------------------------#
# 09 Dec 2018 - created the script
# 10 Dec 2018 - fixed a couple of bugs
# 11 Dec 2018 - status window always stays up during battle
#==============================================================================#
#   TERMS OF USE
#------------------------------------------------------------------------------#
# - Please credit AMoonlessNight or A-Moonless-Night
# - Free for non-commercial use
# - I'd love to see your game if you end up using one of my scripts
#==============================================================================#

This script updates the battle scene from Jamiras843 Dragon Quest Battle script,
changing the position of certain windows and changing the way some information
is drawn.

You can choose whether to draw icons in skill and item lists in the editable
region below.

All windows now open and close instantly, no fade-in/-out transition.

=end
module AMN_DQ_Battle
#==============================================================================
# ** EDITABLE REGION BELOW
#------------------------------------------------------------------------------
#  Change the values in the area below to suit your needs.
#==============================================================================

  Icons_On = false  # whether to draw icons in item and skill lists
 
#==============================================================================
# ** END OF EDITABLE REGION
#------------------------------------------------------------------------------
#  Please do not edit below this point unless you know what you are doing.
#==============================================================================
end

class Window_Base < Window
 
  def update_open
    self.openness += 255
    @opening = false if open?
  end

  def update_close
    self.openness -= 255
    @closing = false if close?
  end
 
  alias amn_dqbattle_windowbase_drawitemname  draw_item_name
  def draw_item_name(item, x, y, enabled = true, width = 172)
    if AMN_DQ_Battle::Icons_On
      amn_dqbattle_windowbase_drawitemname(item, x, y, enabled, width)
    else
      return unless item
      change_color(normal_color, enabled)
      draw_text(x, y, width, line_height, item.name)
    end
  end
end

class Window_Selectable < Window_Base

  def item_rect_for_text(index)
    rect = item_rect(index)
    rect.x += 10
    rect.width -= 20
    rect
  end
 
end

class Window_BattleActor < Window_BattleStatus
 
  def visible_line_number; item_max; end
  def show; select(0) if @info_viewport; super; end
  def hide; super; end
  def window_width; 170; end
 
  def draw_item(index)
    actor = $game_party.battle_members[index]
    draw_actor_name(actor, 10, line_height * index)
  end
 
end

class Window_BattleEnemy < Window_Selectable
  def col_max; return 1; end

  def initialize(info_viewport)
    super(250, 296, Graphics.width - 250, fitting_height(4))
    refresh
    self.visible = false
  end
 
end

class Window_DQ_BattleStatus < Window_Base

  def initialize
    super(100, 0, 112 * [$game_party.members.size, 4].min, 120)   
    create_contents     
    @actor1 = $game_party.members[0]     
    @actor2 = $game_party.members[1]     
    @actor3 = $game_party.members[2]     
    @actor4 = $game_party.members[3]     
    refresh     
    self.openness = 0
    self.arrows_visible = false
  end
 
  def draw_actor_info(actor, x, y, width)
    draw_face(actor.face_name, actor.face_index, x, y, false) if Jami_DQ_Battle::SHOW_FACE
    draw_actor_name(actor, x, y)
    draw_actor_hp(actor, x, y+24, width)
    draw_actor_mp(actor, x, y+44, width)
    draw_actor_level(actor, x, y+64)
    draw_actor_icons(actor, x+60, y)
  end
 
  def draw_window_content
    draw_actor_info(@actor1, 0, 0, 80)
    draw_actor_info(@actor2, 110, 0, 80) if $game_party.members.size > 1
    draw_actor_info(@actor3, 220, 0, 80) if $game_party.members.size > 2
    draw_actor_info(@actor4, 330, 0, 80) if $game_party.members.size > 3
  end
end

class Window_ActorCommand < Window_Command
  def spacing; return 6; end
  def visible_line_number; return 3; end
  def window_width; return 250; end
    
  alias amn_dqbattle_windowactorcmd_init  initialize
  def initialize
    amn_dqbattle_windowactorcmd_init
    self.opacity = 0
  end
 
end

class Window_ActorDummy < Window_Base
  def initialize
    super(0, 0, 250, fitting_height(visible_line_number))
    self.openness = 0
    @actor = nil
  end

  def visible_line_number; return 4; end

  def draw_actor_details
    return unless @actor
    draw_text(0, 0, contents_width, line_height, @actor.name, 1)
    draw_horz_line(12)
  end

  def draw_horz_line(y)
    line_y = y + line_height / 2 - 1
    contents.fill_rect(0, line_y, contents_width, 2, normal_color)
  end
 
  def setup(actor)
    @actor = actor
    contents.clear
    draw_actor_details
    open
  end
end

class Window_BattleItem < Window_ItemList
  def col_max; return 1; end
    
  def initialize(help_window, info_viewport)
    height = fitting_height(4)
    hww = help_window.width
    super(0, Graphics.height - height, Graphics.width - hww, height)
    self.visible = false
    @help_window = help_window
    @info_viewport = info_viewport
  end
 
  def draw_item(index)
    item = @data[index]
    if item
      rect = item_rect(index)
      rect.width -= 8
      draw_item_name(item, rect.x+10, rect.y, enable?(item))
      draw_item_number(rect, item)
    end
  end
 
end

class Window_BattleSkill < Window_SkillList
  attr_reader :actor
  def col_max; return 1; end
 
  def initialize(help_window, info_viewport)
    height = fitting_height(4)
    hww = help_window.width
    super(0, Graphics.height - height, Graphics.width - hww, height)
    self.visible = false
    @help_window = help_window
    @info_viewport = info_viewport
    @mp_window = nil
  end
 
  def mp_window=(mp_window)
    @mp_window = mp_window
  end

  def draw_item(index)
    skill = @data[index]
    if skill
      rect = item_rect(index)
      rect.width -= 8
      draw_item_name(skill, rect.x+10, rect.y, enable?(skill))
    end
  end
 
  alias amn_dqbattle_windbattleskill_show show
  def show
    @mp_window.show if @mp_window
    amn_dqbattle_windbattleskill_show
  end

  alias amn_dqbattle_windbattleskill_hide hide
  def hide
    @mp_window.hide if @mp_window
    amn_dqbattle_windbattleskill_hide
  end
 
  def update_help
    super
    @mp_window.set_item if @mp_window
  end
end

class Window_BattleSkillMP < Window_Base

  def initialize(skill_window, info_viewport)
    h = fitting_height(1)
    super(Graphics.width - 250, Graphics.height - h, 250, h)
    self.visible = false
    @info_viewport = info_viewport
    skill_window.mp_window = self
    @skill_window = skill_window
  end

  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end

  def clear
    set_text("")
  end

  def item
    @skill_window.item
  end
 
  def actor
    @skill_window.actor
  end
 
  def set_item
    return clear if actor.nil? || item.nil?
    return clear if actor.skill_mp_cost(item).zero? && actor.skill_tp_cost(item).zero?
    if actor.skill_mp_cost(item) > 0
      set_text(sprintf("MP Cost: %d/%d", actor.skill_mp_cost(item), actor.mp))
    elsif actor.skill_tp_cost(item) > 0
      set_text(sprintf("TP Cost: %d/%d", actor.skill_tp_cost(item), actor.tp))
    end
  end

  def refresh
    contents.clear
    draw_text_ex(4, 0, @text)
  end
end

class Scene_Battle < Scene_Base
 
  alias amn_dqbattle_scenebattle_createactorcmdwind create_actor_command_window
  def create_actor_command_window
    @dummy_window = Window_ActorDummy.new
    amn_dqbattle_scenebattle_createactorcmdwind
    @actor_command_window.y = 320
    @dummy_window.y = 296
  end
 
  alias amn_dqbattle_scenebattle_createactorwind  create_actor_window
  def create_actor_window
    amn_dqbattle_scenebattle_createactorwind
    @actor_window.y -= @actor_window.height
    @actor_window.x = Graphics.width - @actor_window.width
  end
 
  alias amn_dqbattle_scenebattle_startpartycmdselect  start_party_command_selection
  def start_party_command_selection
    amn_dqbattle_scenebattle_startpartycmdselect
    unless scene_changing?   
      if BattleManager.input_start     
        @dummy_window.close
        @enemy_window.deactivate.hide
      end
    end
  end
 
  alias amn_dqbattle_scenebattle_createskillwind create_skill_window
  def create_skill_window
    amn_dqbattle_scenebattle_createskillwind
    @skill_mp_window = Window_BattleSkillMP.new(@skill_window, @info_viewport)
  end
 
  alias amn_dqbattle_scenebattle_createhelpwind create_help_window
  def create_help_window
    amn_dqbattle_scenebattle_createhelpwind
    w = 250
    hh = @help_window.height
    h = @help_window.fitting_height(4)
    @help_window.move(Graphics.width - w, Graphics.height - h, w, hh)
    @help_window.create_contents
  end
 
  alias amn_dqbattle_scenebattle_cmdfight command_fight
  def command_fight
    amn_dqbattle_scenebattle_cmdfight
    @enemy_window.deactivate.show
  end
 
  alias amn_dqbattle_scenebattle_startactorcmdselect  start_actor_command_selection
  def start_actor_command_selection
    amn_dqbattle_scenebattle_startactorcmdselect
    @dummy_window.setup(BattleManager.actor)
  end

  def turn_start
    @party_command_window.close
    @actor_command_window.close
    @dummy_window.close
    @enemy_window.deactivate.hide
    @subject =  nil
    BattleManager.turn_start
    if Jami_DQ_Battle::HUD_HIDE
      @DQ_status_window.height = @DQ_status_window.fitting_height(2)
      @info_viewport.rect.height = @DQ_status_window.fitting_height(2)
    end
    @log_window.clear
  end

  def turn_end
    all_battle_members.each do |battler|   
      battler.on_turn_end   
      refresh_status   
      if Jami_DQ_Battle::HUD_HIDE
        @DQ_status_window.height = 110
        @DQ_status_window.update_padding
        @info_viewport.rect.height = @DQ_status_window.height
      end   
      @log_window.display_auto_affected_status(battler)   
      @log_window.wait_and_clear
    end
    BattleManager.turn_end
    process_event
    start_party_command_selection
  end
 
  def update_message_open
    if $game_message.busy?
      @message_window.openness = 0
      @party_command_window.close   
      @actor_command_window.close
      @dummy_window.close
      @message_window.openness = 255
    end
  end
 
  def on_enemy_ok
    unless @actor_command_window.visible
      @actor_command_window.show
      @dummy_window.show
    end
    case @actor_command_window.current_symbol
    when :skill
      @enemy_window.y += @enemy_window.height
    when :item
      @enemy_window.y += @enemy_window.height
    end
    BattleManager.actor.input.target_index = @enemy_window.enemy.index
    @skill_window.hide
    @item_window.hide
    next_command
  end

  def on_enemy_cancel
    @enemy_window.deactivate
    case @actor_command_window.current_symbol
    when :attack
      @actor_command_window.activate
    when :skill
      @skill_window.activate
      @enemy_window.hide
    when :item
      @item_window.activate
      @enemy_window.hide
    end
  end
 
  alias amn_dqbattle_scenebattle_commandskill command_skill
  def command_skill
    amn_dqbattle_scenebattle_commandskill
    @enemy_window.deactivate.hide
    @enemy_window.y -= @enemy_window.height
    @actor_command_window.hide
    @dummy_window.hide
  end

  alias amn_dqbattle_scenebattle_commanditem command_item
  def command_item
    amn_dqbattle_scenebattle_commanditem
    @enemy_window.deactivate.hide
    @enemy_window.y -= @enemy_window.height
    @actor_command_window.hide
    @dummy_window.hide
  end
 
  alias amn_dqbattle_scenebattle_onactorok on_actor_ok
  def on_actor_ok
    unless @actor_command_window.visible
      @actor_command_window.show
      @dummy_window.show
    end
    @enemy_window.y += @enemy_window.height
    @enemy_window.deactivate.show
    amn_dqbattle_scenebattle_onactorok
  end
 
  alias amn_dqbattle_scenebattle_onskillok  on_skill_ok
  def on_skill_ok
    amn_dqbattle_scenebattle_onskillok
    @skill = @skill_window.item
    if !@skill.need_selection?
      @enemy_window.y += @enemy_window.height
      @actor_command_window.show
      @dummy_window.show
      @enemy_window.deactivate.show
    end
  end

  alias amn_dqbattle_scenebattle_onskillcancel  on_skill_cancel
  def on_skill_cancel
    amn_dqbattle_scenebattle_onskillcancel
    @enemy_window.y += @enemy_window.height
    @enemy_window.deactivate.show
    @actor_command_window.show
    @dummy_window.show
  end

  alias amn_dqbattle_scenebattle_onitemok  on_item_ok
  def on_item_ok
    amn_dqbattle_scenebattle_onitemok
    @item = @item_window.item
    if !@item.need_selection?
      @enemy_window.y += @enemy_window.height
      @actor_command_window.show
      @dummy_window.show
      @enemy_window.deactivate.show
    end
  end

  alias amn_dqbattle_scenebattle_onitemcancel  on_item_cancel
  def on_item_cancel
    amn_dqbattle_scenebattle_onitemcancel
    @enemy_window.deactivate.show
    @enemy_window.y += @enemy_window.height
    @actor_command_window.show
    @dummy_window.show
  end
 
end
class Scene_Map < Scene_Base
  def perform_transition
    if Graphics.brightness == 0
      Graphics.transition(0)
      fadein(fadein_speed)
    else
      super
    end
  end
end

class Scene_Menu < Scene_MenuBase
  def transition_speed
    return 0
  end
 
  def terminate
    super
    Graphics.transition(0)
  end
end

The only issue I can foresee is if you display a message during battle that would sit at the top of the screen. If you stumble across any issues, let me know.
 

Roninator2

Gamer
Veteran
Joined
May 22, 2016
Messages
3,930
Reaction score
1,023
First Language
English
Primarily Uses
RMVXA
@A-Moonless-Night @Koulucky
I did a little testing.
The values for Window_Base are too high it seems.
Code:
class Window_Base < Window
 
  def update_open
    self.openness += 254    <- changed from 255
    @opening = false if open?
  end

  def update_close
    self.openness -= 254     <- changed from 255
    @closing = false if close?
  end
 

Catlunch

Villager
Member
Joined
Sep 19, 2018
Messages
8
Reaction score
0
First Language
English
Primarily Uses
RMVXA
EDIT: Ignore this, I forgot to turn off an empty Event after Turn 1, so it made the fight messed up. Sorry for the necro!
 
Status
Not open for further replies.

Latest Threads

Latest Profile Posts

Toying around with some customization stuff...
customiz.PNG
Two more portraits and I'll be done with the Ace cast. Any requests for the next batch?
jeetje, you are told to read forums and learn about them before you post, cmon ppl, it is impossible?

Forum statistics

Threads
121,529
Messages
1,142,302
Members
159,692
Latest member
Geruyoking
Top