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.
[Resolved] Window Layering

0 Members and 1 Guest are viewing this topic.

***
Rep:
Level 88
Menu & Battle System Guru
I'm modding my battlesystem and have placed two separate window containing pictures behind both the battlestatus and battlecommand windows. As you can see from the picture, the battlestatus window and the picturewindow i created for it, is layered correctly. However, the battlecommand window and the picture window i made for it isn't. For some reason the picture window i made for the commandwindow is layered blocking the commandwindow.

Here's the text (btw I tried just making the command window have a graphic in itself but it kept doing the same thing, so i figured making a separate window altogether would work just as the battlestatus technique did...but it didn't):

Spoiler for Picture Window Code:
Code: [Select]
class Window_BattleStatusWindow < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
super(150, 340, 535, 150)
self.opacity = 0
self.contents = Bitmap.new(width, height)
refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
self.contents.clear
draw_battlestatuswindow(0, 0, 119)
  end
end


class Window_BattleCommandWindow < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
super(-15, 340, 185, 150)
self.opacity = 0
self.contents = Bitmap.new(width, height)
refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
self.contents.clear
draw_battlecommandwindow(0, 0, 119)
  end
end


Spoiler for Scene_Battle Code:
Code: [Select]
#==============================================================================
# ** Scene_Battle (part 1)
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
# Initialize each kind of temporary battle data
$game_temp.in_battle = true
$game_temp.battle_turn = 0
$game_temp.battle_event_flags.clear
$game_temp.battle_abort = false
$game_temp.battle_main_phase = false
$game_temp.battleback_name = $game_map.battleback_name
$game_temp.forcing_battler = nil
# Initialize battle event interpreter
$game_system.battle_interpreter.setup(nil, 0)
# Prepare troop
@troop_id = $game_temp.battle_troop_id
$game_troop.setup(@troop_id)
# Make actor command window
s1 = $data_system.words.attack
s2 = $data_system.words.skill
s3 = $data_system.words.guard
s4 = $data_system.words.item
@actor_command_window = Window_Command.new(180, [s1, s2, s3, s4])
@actor_command_window.y = 340
@actor_command_window.x = 0
@actor_command_window.opacity = 0
@actor_command_window.active = false
@actor_command_window.visible = false
# Make other windows
@windowbattlestatus_window = Window_BattleStatusWindow.new
@windowbattlecommand_window = Window_BattleCommandWindow.new
@windowbattlestatus_window.back_opacity = 0
@party_command_window = Window_PartyCommand.new
@help_window = Window_Help.new
@help_window.back_opacity = 160
@help_window.visible = false
@status_window = Window_BattleStatus.new
@message_window = Window_Message.new
# Make sprite set
@spriteset = Spriteset_Battle.new
# Initialize wait count
@wait_count = 0
# Execute transition
if $data_system.battle_transition == ""
  Graphics.transition(20)
else
  Graphics.transition(40, "Graphics/Transitions/" +
$data_system.battle_transition)
end
# Start pre-battle phase
start_phase1
# Main loop
loop do
  # Update game screen
  Graphics.update
  # Update input information
  Input.update
  # Frame update
  update
  # Abort loop if screen is changed
  if $scene != self
break
  end
end
# Refresh map
$game_map.refresh
# Prepare for transition
Graphics.freeze
# Dispose of windows
@windowbattlecommand_window.dispose
@windowbattlestatus_window.dispose
@actor_command_window.dispose
@party_command_window.dispose
@help_window.dispose
@status_window.dispose
@message_window.dispose
if @skill_window != nil
  @skill_window.dispose
end
if @item_window != nil
  @item_window.dispose
end
if @result_window != nil
  @result_window.dispose
end
# Dispose of sprite set
@spriteset.dispose
# If switching to title screen
if $scene.is_a?(Scene_Title)
  # Fade out screen
  Graphics.transition
  Graphics.freeze
end
# If switching from battle test to any screen other than game over screen
if $BTEST and not $scene.is_a?(Scene_Gameover)
  $scene = nil
end
  end
  #--------------------------------------------------------------------------
  # * Determine Battle Win/Loss Results
  #--------------------------------------------------------------------------
  def judge
# If all dead determinant is true, or number of members in party is 0
if $game_party.all_dead? or $game_party.actors.size == 0
  # If possible to lose
  if $game_temp.battle_can_lose
# Return to BGM before battle starts
$game_system.bgm_play($game_temp.map_bgm)
# Battle ends
battle_end(2)
# Return true
return true
  end
  # Set game over flag
  $game_temp.gameover = true
  # Return true
  return true
end
# Return false if even 1 enemy exists
for enemy in $game_troop.enemies
  if enemy.exist?
return false
  end
end
# Start after battle phase (win)
start_phase5
# Return true
return true
  end
  #--------------------------------------------------------------------------
  # * Battle Ends
  # result : results (0:win 1:lose 2:escape)
  #--------------------------------------------------------------------------
  def battle_end(result)
# Clear in battle flag
$game_temp.in_battle = false
# Clear entire party actions flag
$game_party.clear_actions
# Remove battle states
for actor in $game_party.actors
  actor.remove_states_battle
end
# Clear enemies
$game_troop.enemies.clear
# Call battle callback
if $game_temp.battle_proc != nil
  $game_temp.battle_proc.call(result)
  $game_temp.battle_proc = nil
end
# Switch to map screen
$scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Battle Event Setup
  #--------------------------------------------------------------------------
  def setup_battle_event
# If battle event is running
if $game_system.battle_interpreter.running?
  return
end
# Search for all battle event pages
for index in 0...$data_troops[@troop_id].pages.size
  # Get event pages
  page = $data_troops[@troop_id].pages[index]
  # Make event conditions possible for reference with c
  c = page.condition
  # Go to next page if no conditions are appointed
  unless c.turn_valid or c.enemy_valid or
c.actor_valid or c.switch_valid
next
  end
  # Go to next page if action has been completed
  if $game_temp.battle_event_flags[index]
next
  end
  # Confirm turn conditions
  if c.turn_valid
n = $game_temp.battle_turn
a = c.turn_a
b = c.turn_b
if (b == 0 and n != a) or
   (b > 0 and (n < 1 or n < a or n % b != a % b))
  next
end
  end
  # Confirm enemy conditions
  if c.enemy_valid
enemy = $game_troop.enemies[c.enemy_index]
if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp
  next
end
  end
  # Confirm actor conditions
  if c.actor_valid
actor = $game_actors[c.actor_id]
if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp
  next
end
  end
  # Confirm switch conditions
  if c.switch_valid
if $game_switches[c.switch_id] == false
  next
end
  end
  # Set up event
  $game_system.battle_interpreter.setup(page.list, 0)
  # If this page span is [battle] or [turn]
  if page.span <= 1
# Set action completed flag
$game_temp.battle_event_flags[index] = true
  end
  return
end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
# If battle event is running
if $game_system.battle_interpreter.running?
  # Update interpreter
  $game_system.battle_interpreter.update
  # If a battler which is forcing actions doesn't exist
  if $game_temp.forcing_battler == nil
# If battle event has finished running
unless $game_system.battle_interpreter.running?
  # Rerun battle event set up if battle continues
  unless judge
setup_battle_event
  end
end
# If not after battle phase
if @phase != 5
  # Refresh status window
  @status_window.refresh
end
  end
end
# Update system (timer) and screen
$game_system.update
$game_screen.update
# If timer has reached 0
if $game_system.timer_working and $game_system.timer == 0
  # Abort battle
  $game_temp.battle_abort = true
end
# Update windows
@windowbattlecommand_window.update
@windowbattlestatus_window.update
@help_window.update
@party_command_window.update
@actor_command_window.update
@status_window.update
@message_window.update
# Update sprite set
@spriteset.update
# If transition is processing
if $game_temp.transition_processing
  # Clear transition processing flag
  $game_temp.transition_processing = false
  # Execute transition
  if $game_temp.transition_name == ""
Graphics.transition(20)
  else
Graphics.transition(40, "Graphics/Transitions/" +
  $game_temp.transition_name)
  end
end
# If message window is showing
if $game_temp.message_window_showing
  return
end
# If effect is showing
if @spriteset.effect?
  return
end
# If game over
if $game_temp.gameover
  # Switch to game over screen
  $scene = Scene_Gameover.new
  return
end
# If returning to title screen
if $game_temp.to_title
  # Switch to title screen
  $scene = Scene_Title.new
  return
end
# If battle is aborted
if $game_temp.battle_abort
  # Return to BGM used before battle started
  $game_system.bgm_play($game_temp.map_bgm)
  # Battle ends
  battle_end(1)
  return
end
# If waiting
if @wait_count > 0
  # Decrease wait count
  @wait_count -= 1
  return
end
# If battler forcing an action doesn't exist,
# and battle event is running
if $game_temp.forcing_battler == nil and
   $game_system.battle_interpreter.running?
  return
end
# Branch according to phase
case @phase
when 1  # pre-battle phase
  update_phase1
when 2  # party command phase
  update_phase2
when 3  # actor command phase
  update_phase3
when 4  # main phase
  update_phase4
when 5  # after battle phase
  update_phase5
end
  end
end

« Last Edit: February 22, 2007, 04:51:24 PM by blazinhandle »

***
Rep:
Level 88
Menu & Battle System Guru
i dunno if this is spam or a double post but i think i will just say that i figured it out by setting the z position to 9998 for the command window fixed it in case anyone would face the same problem in the future. wow, what a run on.