[Resolved for now]Borders and Dumb Dumb Troubles

Started by Spoofus, May 29, 2018, 04:17:08 am

Previous topic - Next topic

Spoofus

May 29, 2018, 04:17:08 am Last Edit: June 02, 2018, 05:29:10 am by Spoofus
Hey all been a good while.

So i been messing around with RMXP again and I trying to figure out to make the Border of the Battle Status window..well vanish I could be missing something in my own script.( I haven't done this stuff in a long time)

Here is what it it is doing(please don't mind the other sprites etc. still messing around with all of this)
Spoiler: ShowHide


Here is the script.
Spoiler: ShowHide
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Sideview CBS Layout by Spoofus and Nortos
# helpers KK20 G_G
# Version: 1.0b
# Date 3/1/08
#
# Compatibility:
#
# May not be compatible with SDK's not tested though.
# your old savegames. Can cause incompatibilty issues with following scripts
# and/or systems:
# - exotic CBS-es
# Features:
# Enemy and Ally Health bars
# CBS Facesets
# Nifty nice layout
#
# Instructions:
# For a charecters faceset you must write their faces in the picture folder
# but with _Face at the end of the actors name, remember to put the two health
# bar scripts in this into your project as well
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Credits and thanks:
# Credits go to Nortos for this main CBS script
# Seph for the health bar Scripts
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# If you find any bugs, please report them here:
# http://www.chaosproject.co.nr
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#==============================================================================
# ** class Window_Base
#------------------------------------------------------------------------------
#  Face functions, the charecters face is just their name than _face e.g Arshes_Face
#==============================================================================

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

class Window_Base < Window
  def face
    face = RPG::Cache.picture("")
  end 
 
  def draw_face(actor,x,y)
    face = RPG::Cache.picture(actor.character_name + "_face") rescue face
    fw = face.width
    fh = face.height
    src_rect = Rect.new(0, 0, fw, fh)
    self.contents.blt(x , y - fh, face, src_rect)   
  end
  #=========================================================
  #HP SP Positioning removeable
  #=========================================================
  def draw_actor_hp(actor, x, y, width = 144)
    # Draw "HP" text string
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
    # Calculate if there is draw space for MaxHP
    if width - 32 >= 108
      hp_x = x + width - 108
      flag = true
    elsif width - 32 >= 48
      hp_x = x + width - 48
      flag = false
    end
    # Draw HP
    self.contents.font.color = actor.hp == 0 ? knockout_color :
      actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
    self.contents.draw_text(hp_x - 20, y, 20, 32, actor.hp.to_s, 2)
    # Draw MaxHP
    if flag
      self.contents.font.color = normal_color
      self.contents.draw_text(hp_x + 60, y, 12, 32, "/", 1)
      self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw SP
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     width : draw spot width
  #--------------------------------------------------------------------------
  def draw_actor_sp(actor, x, y, width = 144)
    # Draw "SP" text string
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
    # Calculate if there is draw space for MaxHP
    if width - 32 >= 108
      sp_x = x + width - 108
      flag = true
    elsif width - 32 >= 48
      sp_x = x + width - 48
      flag = false
    end
    # Draw SP
    self.contents.font.color = actor.sp == 0 ? knockout_color :
      actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
    self.contents.draw_text(sp_x - 20, y, 20, 32, actor.sp.to_s, 2)
    # Draw MaxSP
    if flag
      self.contents.font.color = normal_color
      self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
      self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
    end
  end
  #===================================
  #end of HP SP Positioning removeable
  #===================================
end
#==============================================================================
# ** Window_BattleStatus
#------------------------------------------------------------------------------
#  This window displays the status of all party members on the battle screen.
#==============================================================================

class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(340, 280, 300, 200)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 12
    self.back_opacity = 0
    self.contents.font.bold = true
    self.contents.font.name = "Tahoma"
    @level_up_flags = [false, false, false, false]
    refresh
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    super
  end
  #--------------------------------------------------------------------------
  # * Set Level Up Flag
  #     actor_index : actor index
  #--------------------------------------------------------------------------
  def level_up(actor_index)
    @level_up_flags[actor_index] = true
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      actor_y = i * 55 + 0
      draw_actor_name(actor, 0, actor_y - 10)
      draw_actor_hp(actor, 65, actor_y, 120)
      draw_actor_sp(actor, 80, actor_y + 22, 120)
      draw_face(actor, 10, actor_y + 40)
      if @level_up_flags[i]
        self.contents.font.color = normal_color
        self.contents.draw_text(150, actor_y, 120, 32, "LEVEL UP!")
      else
        draw_actor_state(actor, 140, actor_y + 5)
        #draw_actor_state(actor, 130, actor_y)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # Slightly lower opacity level during main phase
    if $game_temp.battle_main_phase
      self.contents_opacity -= 4 if self.contents_opacity > 191
    else
      self.contents_opacity += 4 if self.contents_opacity < 255
    end
  end
end

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class determines the x and y coordinates of each of the battlers
#  to change them yourself should be easy enough
#==============================================================================
class Game_Actor
  def screen_x
    x_positions = [395,460, 540, 485]
  if self.index != nil
      return x_positions[self.index]
    else
      return 0
    end
  end
#  #--------------------------------------------------------------------------
  def screen_y
    y_positions = [280, 280, 280, 445]
    if self.index != nil
      return y_positions[self.index]
    else
      return 0
    end
  end
end

#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class is all the kinks I had to change to the battle scene
#  I edited the windows mainly a bit
#==============================================================================

class Scene_Battle
  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(100, [s1, s2, s3, s4])
    @actor_command_window.new_items($game_party.actors[0].generate_commands)
    @actor_command_window.x = 120
    @actor_command_window.y = 320
    @actor_command_window.active = false
    @actor_command_window.visible = false
    @actor_command_window.index = -1
    @actor_command_window.back_opacity = 255
    # Make other windows
    @party_command_window = Window_PartyCommand.new
    @help_window = Window_Help.new
    #@help_window.back_opacity = 255
    @help_window.back_opacity = $game_system.window_opacity #**
    @party_command_window.back_opacity = 255
    #@party_command_window.back_opacity = $game_system.window_opacity #**
    @help_window.visible = false
    @status_window = Window_BattleStatus.new
    @status_window.visible = true
    @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
    @actor_command_window.dispose
    @party_command_window.dispose
    @help_window.dispose
    @status_window.dispose
    @message_window.dispose
    #@actor1_window.dispose
    #@actor2_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
 
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : skill selection)
  #--------------------------------------------------------------------------
  def update_phase3_skill_select
    # Make skill window visible
    @actor_command_window.index = 0
    @actor_command_window.visible = true
    @skill_window.visible = true
    @skill_window.z = 255
    # Update skill window
    @skill_window.update
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # End skill selection
      end_skill_select
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Get currently selected data on the skill window
      @skill = @skill_window.skill
      # If it can't be used
      if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # Set action
      @active_battler.current_action.skill_id = @skill.id
      # Make skill window invisible
      @skill_window.visible = false
      # If effect scope is single enemy
      if @skill.scope == 1
        # Start enemy selection
        start_enemy_select
      # If effect scope is single ally
      elsif @skill.scope == 3 or @skill.scope == 5
        # Start actor selection
        start_actor_select
      # If effect scope is not single
      else
        # End skill selection
        end_skill_select
        # Go to command input for next actor
        phase3_next_actor
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (actor command phase : item selection)
  #--------------------------------------------------------------------------
  def update_phase3_item_select
    # Make item window visible
    @actor_command_window.index = 0
    @actor_command_window.visible = true
    @item_window.visible = true
    @item_window.z = 255
    # Update item window
    @item_window.update
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # End item selection
      end_item_select
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Get currently selected data on the item window
      @item = @item_window.item
      # If it can't be used
      unless $game_party.item_can_use?(@item.id)
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # Set action
      @active_battler.current_action.item_id = @item.id
      # Make item window invisible
      @item_window.visible = false
      # If effect scope is single enemy
      if @item.scope == 1
        # Start enemy selection
        start_enemy_select
      # If effect scope is single ally
      elsif @item.scope == 3 or @item.scope == 5
        # Start actor selection
        start_actor_select
      # If effect scope is not single
      else
        # End item selection
        end_item_select
        # Go to command input for next actor
        phase3_next_actor
      end
      return
    end
  end
 
  def start_phase2
    # Shift to phase 2
    @phase = 2
    # Set actor to non-selecting
    @actor_index = -1
    @active_battler = nil
    # Enable party command window
    @party_command_window.active = true
    @party_command_window.visible = true
    @party_command_window.index = 0
    # Disable actor command window
    @actor_command_window.active = false
    @actor_command_window.visible = false
    @actor_command_window.index = -1
    # Clear main phase flag
    $game_temp.battle_main_phase = false
    # Clear all party member actions
    $game_party.clear_actions
    # If impossible to input command
    unless $game_party.inputable?
      # Start main phase
      start_phase4
    end
  end
 
  def update_phase3_basic_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      @actor_command_window.index = 0
      # Go to command input for previous actor
      phase3_prior_actor
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by actor command window cursor position
      case @actor_command_window.index
      when 0  # attack
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set action
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 0
        # Start enemy selection
        start_enemy_select
      when 1  # skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set action
        @active_battler.current_action.kind = 1
        # Start skill selection
        start_skill_select
      when 2  # guard
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set action
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 1
        # Go to command input for next actor
        phase3_next_actor
      when 3  # item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Set action
        @active_battler.current_action.kind = 2
        # Start item selection
        start_item_select
      end
      return
    end
  end
 
    def phase3_setup_command_window
    # Disable party command window
    @party_command_window.active = false
    @party_command_window.visible = false
    #@party_command_window.opacity = 160
    @party_command_window.index = -2
    # Enable actor command window
    @actor_command_window.active = true
    @actor_command_window.visible = true
    # Set actor command window position
    # Set index to 0
    @actor_command_window.index = 0
  end
end

#==============================================================================
# ** Window_Command
#------------------------------------------------------------------------------
#  This window deals with general command choices.
#==============================================================================

class Window_Command_New < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     width    : window width
  #     commands : command text string array
  #--------------------------------------------------------------------------
  def initialize(width, commands)
    # Compute window height from command quantity
    #super(120, 128, 190, 90 * 32 + 32)
    #super(120, 128, width, commands.size * 32 + 32)
    super(0, 0, width, commands.size * 32 + 32)
    @item_max = commands.size
    @commands = commands
    self.back_opacity = 255
    #self.back_opacity = $game_system.window_opacity #**
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i, normal_color)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #     color : text color
  #--------------------------------------------------------------------------
  def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(3, 32 * index, self.contents.width - 6, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index])
  end
  #--------------------------------------------------------------------------
  # * Disable Item
  #     index : item number
  #--------------------------------------------------------------------------
  def disable_item(index)
    draw_item(index, disabled_color)
  end
end
#remove below if not working
#+==================
#==============================================================================
# ** Window_Skill
#------------------------------------------------------------------------------
#  This window displays usable skills on the skill and battle screens.
#==============================================================================

class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(120, 128, 190, 90)
    @actor = actor
    if $game_temp.in_battle
      @column_max = 1
    else
      @column_max = 2
    end
    refresh
    self.index = 0
    # If in battle, move window to center of screen
    # and make it semi-transparent
    if $game_temp.in_battle
      self.y = 320
      self.height = 160
      self.back_opacity = 255
      #self.back_opacity = $game_system.window_opacity #**
    end
  end
  #--------------------------------------------------------------------------
  # * Acquiring Skill
  #--------------------------------------------------------------------------
  def skill
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    for i in 0...@actor.skills.size
      skill = $data_skills[@actor.skills[i]]
      if skill != nil
        @data.push(skill)
      end
    end
    # If item count is not 0, make a bit map and draw all items
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    if $game_temp.in_battle
    x = 4 + index % 1 * (288 + 32)
    y = index / 1 * 32
    else
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    end
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.font.size = 14
      self.contents.font.bold = true
    self.contents.draw_text(x + 28, y, 200, 32, skill.name, 0)
    skill = @data[index]
    # decide color depending on the fact if currently usable
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    # remove old SP display
    self.contents.fill_rect(236 + index % 1 * 320, index / 1 * 32, 48, 32,
        Color.new(0, 0, 0, 0))
    # calculate SP cost considering skill level
    sp_cost = (skill.sp_cost * @actor.get_skill_sp_cost_factor(skill.id)).to_i
    # draw SP cost
    self.contents.draw_text(107 + index % 1 * 320, index / 1 * 32, 48, 32,
        sp_cost.to_s, 2)
    #self.contents.draw_text(x + 100, y, 48, 32, skill.sp_cost.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # * Help Text Update
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  end
end
#================================================
#=================================================
#==============================================================================
# ** Window_Item
#------------------------------------------------------------------------------
#  This window displays items in possession on the item and battle screens.
#==============================================================================

class Window_Item < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(120, 128, 190, 90)
    if $game_temp.in_battle
      @column_max = 1
    end
    refresh
    self.index = 0
    # If in battle, move window to center of screen
    # and make it semi-transparent
    if $game_temp.in_battle
      self.y = 320
      self.height = 160
      self.back_opacity = 255
      #self.back_opacity = $game_system.window_opacity #**
    end
  end
  #--------------------------------------------------------------------------
  # * Get Item
  #--------------------------------------------------------------------------
  def item
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    # Add item
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        @data.push($data_items[i])
      end
    end
    # Also add weapons and items if outside of battle
    unless $game_temp.in_battle
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0
          @data.push($data_weapons[i])
        end
      end
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0
          @data.push($data_armors[i])
        end
      end
    end
    # If item count is not 0, make a bit map and draw all items
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
       $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 1 * (288 + 32)
    y = index / 1 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(item.icon_name)
    self.contents.font.size = 14
      self.contents.font.bold = true
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
    self.contents.draw_text(x + 100, y, 48, 32, number.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # * Help Text Update
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end



My Blog site I am working on: http://spoofus.weebly.com/

KK20

May 29, 2018, 12:09:09 pm #1 Last Edit: May 29, 2018, 12:11:12 pm by KK20
Not even VXA has a method for changing window border opacity, so you'll need to edit a custom windows script to allow it.

An alternative would be to edit the default scripts to allow custom windowskins for each window. Then make a copy of your windowskin graphic without the borders.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Spoofus

May 29, 2018, 12:33:39 pm #2 Last Edit: May 29, 2018, 12:46:05 pm by Spoofus
And I wouldn't even know where to begin with that, but it is a good idea and something I'll look into.
I never would of thought of doing that.
Now is there a simple line of script I could add in to just for the status windows to use a custom window skin?
And if that it literally what you just said, I am sorry   :facepalm: the older you get, your mind begins to go.

Edit:(updated title)
the other problem is I can't seem to get the 3rd party member's hp,mp, and states to update when taking damage and the like.Where it has been so long my mind just draws a complete blank on how to fix this and I am sure it is a stupid obvious solution.   :facepalm:

Here is the script:(preferred script)


If a copy of the project would be easier just let me know.

This whole day so far has been a derp day for me.....


My Blog site I am working on: http://spoofus.weebly.com/

KK20

In Window_Base#update, you just comment out these lines

    # Reset if windowskin was changed
    if $game_system.windowskin_name != @windowskin_name
      @windowskin_name = $game_system.windowskin_name
      self.windowskin = RPG::Cache.windowskin(@windowskin_name)
    end

And to change a window's windowskin, it's simply

@my_window.windowskin = RPG::Cache.windowskin('graphic_filename')

Just know that you will have to manually handle dynamic changes to the windowskin (e.g. player can go to Options and change the windowskin graphic), if you have anything like that in-game.

For the actor updates, I don't see anything in the code. In fact, it doesn't look like any of your actors should have their values updated at all, not just the 3rd actor.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Spoofus

Okay, I'll see what I can do about the borders.

And about the status not updating, you have to see it in action yourself if you have the time, I can't explain it, it's a mystery to me  :^_^': .
and sorry about the mess it is, still working on a lot of it.



My Blog site I am working on: http://spoofus.weebly.com/

KK20

Yeah the problem wasn't shown in the script you posted. You made edits to the default Scene_Battle scripts, e.g.

    # Refresh status window
    @status_window.refresh
    @actor1_window.refresh
    @actor2_window.refresh

You're missing your @actor3_window variable in all of these instances.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Spoofus

May 29, 2018, 07:07:41 pm #6 Last Edit: May 29, 2018, 07:46:55 pm by Spoofus
Yup, I knew it would be something dumb.  :facepalm:

Thanks again for the help.

edit:
Okay I commented out these lines
    # Reset if windowskin was changed
    if $game_system.windowskin_name != @windowskin_name
      @windowskin_name = $game_system.windowskin_name
      self.windowskin = RPG::Cache.windowskin(@windowskin_name)
    end


I just realized, you can't have more than one window skin showing in RMXP, I am assuming this is correct.


My Blog site I am working on: http://spoofus.weebly.com/

KK20

Yes, if you are sub-classing Window_Base (which all the default window scripts--and 99% of custom scripts--does), that bit of code in the update method is what ensures there's only one windowskin being used. As soon as $game_system.windowskin_name changes, all the windows will automatically update to use the new graphic.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Spoofus

Since I have this topic open for my how dumb of a question can Spoofus come up with thread  :^_^':

Say you are using Paradog's sideview player actor as battler script,and we're thinking of a way to have actor states(states as icons from Tons) instead of being inside the battle status window, is it possible to have the states "icons" appear behind the battler sprite, and have the same for enemy states appearing behind the enemy battler as well?

And sorry again for all the questions, like I said it's been awhile since I messed with this stuff which I did miss doing.


My Blog site I am working on: http://spoofus.weebly.com/

KK20

It'd be easier to create a new script to handle that instead. But icons behind the battler? Not sure I agree with UI graphics being blocked by non-UI graphics.

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Spoofus

May 30, 2018, 04:27:06 am #10 Last Edit: May 30, 2018, 07:10:12 am by Spoofus
I'd have to make a easy picture of what I was thinking when I can get to the computer. Saying behind the actor wasn't the best choice of words on my part. I'll edit this post in a bit with it.

Edit:

Okay so first of all I solved the making the battle status transparent without borders, it was the simplest thing.
Spoiler: ShowHide


just use this easy as can be line of code.
self.opacity = 0


and here is what I trying to describe about the actor states and all that.
Spoiler: ShowHide

having them appear something like that instead of the status window.

If that wouldn't work I was looking into what line of code to change in Tons to permanently change the opacity
of the icons and to figure out what I need to add or change to to display the HP and SP over top of the icons as well so they would appear on top and not kinda blended in with the dulled out icons.

Imagine the status window with the stated above in effect
Spoiler: ShowHide


or a mix of the two to make it look like this would be nice looking
example:
Spoiler: ShowHide


and please forgive the ramblings on this I like working on layouts for stuff.


also on a side note, this kinda reminds me of Breath of Fire 3's battle system without even attempting to recreate it.


My Blog site I am working on: http://spoofus.weebly.com/

Spoofus

So a quick bump here.

But, here is a dumb dumb questions.
So I was looking at the RO skill/job system stuff, and with G_G's Hand Cursor script, in the selecting windows it still treats the cursor as the default cursor.
One question is, what would I have to change or add to make the two of them compatible?
Also, I am seeing this with some other scripts like Blizz's Party Changer, and a few others.



Planning a menu layout so a request may be in the works next few days


My Blog site I am working on: http://spoofus.weebly.com/

KK20

Any instance you see this in a Window class

cursor_rect.set(x, y, width, height)

You will need to change it's associated parameters in this manner:

  • Add GameGuy::X_OFFSET and GameGuy::Y_OFFSET to the X and Y coordinates respectively.

  • Change the width and height values to 32. No exceptions.


As an example, in RO Job/Skill, there's only one instance of this:
self.cursor_rect.set(x, (@index + 1) * 32, @cursor_width, 32)

So you would change it to
self.cursor_rect.set(x + GameGuy::X_OFFSET, (@index + 1) * 32 + GameGuy::Y_OFFSET, 32, 32)

Other Projects
RPG Maker XP Ace  Upgrade RMXP to RMVXA performance!
XPA Tilemap  Tilemap rewrite with many features, including custom resolution!

Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Spoofus

Thanks KK20, you to the rescue again, if I could give you
A hug in person, I'd give you a big ol' bear hug.


My Blog site I am working on: http://spoofus.weebly.com/