Chaos Project

RPG Maker => RPG Maker Scripts => Script Troubleshooting => Topic started by: iTyrant on January 06, 2009, 02:24:53 pm

Title: Minor Bug with Configuration Tons of Add-ons script
Post by: iTyrant on January 06, 2009, 02:24:53 pm
Hello Blizzard, I'm pretty new with these forums and I wasn't sure of were to post the bugs from the Configuration script with tons of add-ons, but I found one minor bug with the first Configuration add-ons script, I guess there was sort of an interference but I'll let you do the diagnostics with these screenies...

### Heres one with no Configuration scripts
Spoiler: ShowHide
(http://i42.tinypic.com/15ezn6s.png)

###Now the other with the first configuration script
Spoiler: ShowHide
(http://i41.tinypic.com/21b6mpj.png)


As for the script I am using for the CMS (not mine, off of a FF7 CBS and CMS combo)
Spoiler: ShowHide
#========================================
#■ Window_Base
#--------------------------------------------------------------------------------
# Setting functions for the "Base"
#========================================

class Window_Base < Window

def draw_actor_face(actor, x, y)
face = RPG::Cache.character("Faces/" + actor.character_name, actor.character_hue)
fw = face.width
fh = face.height
src_rect = Rect.new(0, 0, fw, fh)
self.contents.blt(x - fw / 23, y - fh, face, src_rect)
end
end
def draw_actor_battler_graphic(actor, x, y)
   bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
   cw = bitmap.width
   ch = bitmap.height
   src_rect = Rect.new(0, 0, cw, ch)
   self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end

#========================================
#■ Game_Map
#--------------------------------------------------------------------------------
# Setting functions for the Map
#========================================
class Game_Map

def name
$map_infos[@map_id]
end
end

#========================================
#■ Window_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end




#==============================================================================
# ■ Window_MenuStatus
#------------------------------------------------------------------------------
#  Sets up the Choosing.
#==============================================================================

class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
   super(0, 0, 560, 454)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $defaultfonttype
   self.contents.font.size = $defaultfontsize
   refresh
   self.active = false
   self.index = -1
end
#--------------------------------------------------------------------------
# Drawing Info on Screen
#--------------------------------------------------------------------------
def refresh
   self.contents.clear
   @item_max = $game_party.actors.size
   for i in 0...$game_party.actors.size
     x = 94
     y = i * 160
     actor = $game_party.actors[i]
     draw_actor_face(actor, 12, y + 90)
     draw_actor_name(actor, x, y)
     draw_actor_level(actor, x, y + 18)
     draw_actor_state(actor, x + 72, y)
     draw_actor_exp(actor, x+ 144, y + 18)
     draw_actor_hp(actor, x, y + 38)
     draw_actor_sp(actor, x, y + 58)
   end
end
#--------------------------------------------------------------------------
# Update of Cursor
#--------------------------------------------------------------------------
def update_cursor_rect
   if @index < 0
     self.cursor_rect.empty
   else
     self.cursor_rect.set(0, @index * 160, self.width - 128, 96)
   end
end
end

#=======================================#
# ■Window_GameStats                                                             #
# written by AcedentProne                                                          #
#------------------------------------------------------------------------------#

class Window_GameStats < Window_Base
def initialize
  super(0, 0, 160, 60)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = $defaultfonttype
  self.contents.font.size = $defaultfontsize
  refresh
end

def refresh
  self.contents.clear
  #Drawing gold into separate commas by Dubealex
  case $game_party.gold
    when 0..9999
      gold = $game_party.gold
    when 10000..99999
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
    when 100000..999999
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
    when 1000000..9999999
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
    end
#Draw Gold
  self.contents.font.color = system_color
  gold_word = $data_system.words.gold.to_s
  cx = contents.text_size(gold_word).width
  cx2=contents.text_size(gold.to_s).width
  self.contents.draw_text_shadow(4, 4, 120-cx-2, 32, gold_word)
  self.contents.font.color = normal_color
  self.contents.draw_text_shadow(124-cx2+1, 4, cx2, 32, gold.to_s, 2)
  self.contents.font.color = system_color
  # Draw "Time"
  @total_sec = Graphics.frame_count / Graphics.frame_rate
  hour = @total_sec / 60 / 60
  min = @total_sec / 60 % 60
  sec = @total_sec % 60
  text = sprintf("%02d:%02d:%02d", hour, min, sec)
  self.contents.font.color = normal_color
  self.contents.draw_text_shadow(4, -10, 120, 32, text, 2)
self.contents.font.color = system_color
  self.contents.draw_text_shadow(4, -10, 120, 32, "Time")
end
#--------------------------------------------------------------------------
# Update of The count
#--------------------------------------------------------------------------
def update
  super
  if Graphics.frame_count / Graphics.frame_rate != @total_sec
    refresh
  end
end
end

#==============================================================================
# ■ Window_Mapname
#------------------------------------------------------------------------------
#  Draws the Map name
#==============================================================================

class Window_Mapname < Window_Base
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
super(0, 0, 320, 44)
self.contents = Bitmap.new(width - 52, height - 32)
self.contents.font.name = $defaultfonttype
self.contents.font.size = $defaultfontsize
refresh
end
#--------------------------------------------------------------------------
# Draws info on screen
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
new_name = $game_map.name.tr("/*","")
self.contents.draw_text_shadow(4, -11, 320, 32, new_name.to_s)
end
end

#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
# FF7 menu layout as requested by AcedentProne.
#==============================================================================

class Scene_Menu
#--------------------------- edit-------------------------------
attr_reader :status_window
#/--------------------------- edit-------------------------------

def initialize(menu_index = 0)
  @menu_index = menu_index
end
def main
     
  s1 = $data_system.words.item
  s2 = $data_system.words.skill
  if $game_switches[1] == false#materia
  s3 = ""
  else
  s3 = "Shards"
  end
  s4 = $data_system.words.equip
  s5 = "Status"
  if $game_switches[3] == false#PHS
  s6 = ""
  else
  s6 = "PHS"
  end
  s7 = "Save"

  #--------------------------- edit------------------------------- 
  # Command menu
  @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
  @command_window.x = 640 - @command_window.width
  @command_window.y = 480
  @command_window.z = 110
  @command_window.index = @menu_index
  #If certain options are avaliable
  if $game_party.actors.size == 0
    @command_window.disable_item(0)
    @command_window.disable_item(1)
    @command_window.disable_item(2)
    @command_window.disable_item(3)
    @command_window.disable_item(4)
    $game_switches[2] == false
  end
  if $game_switches[1] == false#materia
    @command_window.disable_item(2)
  end
  if $game_switches[2] == false#PHS
    @command_window.disable_item(5)
    end
  if $game_system.save_disabled #Save
    @command_window.disable_item(6)
  end
  #Showing location window
  @map = Window_Mapname.new
  @map.x = 640 - @map.width
  @map.y = 0 - @map.height - 1
  @map.z = 110
  #Showing the game stats
  @game_stats_window = Window_GameStats.new
  @game_stats_window.x = 0 - @game_stats_window.width
  @game_stats_window.y = 480 - @map.height - @game_stats_window.height
  @game_stats_window.z =110
   
  #Showing the Menu Status window
  @status_window = Window_MenuStatus.new
  @status_window.x = 640
  @status_window.y = 8
  @status_window.z = 100

     
  Graphics.transition
  loop do
    Graphics.update
    Input.update
    update
    if $scene != self
      break
    end
  end
  Graphics.freeze
  @command_window.dispose
  @game_stats_window.dispose
  @status_window.dispose
  @map.dispose
end
#--------------------------------------------------------------------------
#Defining the delay
#--------------------------------------------------------------------------
def delay(seconds)
  for i in 0...(seconds * 1)
    sleep 0.01
    Graphics.update
  end
end
#--------------------------------------------------------------------------
# Updating
#--------------------------------------------------------------------------
def update
  @command_window.update
  @game_stats_window.update
  @status_window.update
  @map.update
#Moving Windows inplace
  gamepos = 640 - @game_stats_window.width
  mappos = 480 - @map.height - 1
  if @command_window.y > 0
  @command_window.y -= 60
end
  if @game_stats_window.x < gamepos
  @game_stats_window.x += 80
end
  if @map.y < mappos
  @map.y += 80
end
  if @status_window.x > 0
    @status_window.x -= 80
  end
  #Saying if options are active
  if @command_window.active
    update_command
    return
  end
  if @status_window.active
    update_status
    return
  end
end
#--------------------------------------------------------------------------
# Updating the Command Selection
#--------------------------------------------------------------------------
def update_command
  # If B button is pushed
  if Input.trigger?(Input::B)
    # Plays assigned SE
    $game_system.se_play($data_system.cancel_se)
    #Looping for moving windows out
     loop do
      if @command_window.y < 480
       @command_window.y += 40
      end
      if @game_stats_window.x > 0 - @game_stats_window.width
       @game_stats_window.x -= 40
      end
      if @map.y > 0 - @map.height
       @map.y -= 40
      end
      if @status_window.x < 640
       @status_window.x += 40
      end
      delay(0.5)
      if @status_window.x >= 640
       break
     end
    end
   # Go to Map
  $scene = Scene_Map.new
    return
  end
  # If C button is pused
  if Input.trigger?(Input::C)
    # Checks actor size
    if $game_party.actors.size == 0 and @command_window.index < 4
      # plays SE
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    case @command_window.index
    when 0 
      $game_system.se_play($data_system.decision_se)
      loop do
      if @command_window.y < 480
       @command_window.y += 40
      end
      if @game_stats_window.x > 0 - @game_stats_window.width
       @game_stats_window.x -= 40
      end
      if @map.y > 0 - @map.height
       @map.y -= 40
      end
      if @status_window.x < 640
       @status_window.x += 40
      end
      delay(0.5)
      if @status_window.x >= 640
       break
     end
    end
      $scene = Scene_Item.new
    when 1
      $game_system.se_play($data_system.decision_se)
      @command_window.active = false
      @status_window.active = true
      @status_window.index = 0
    when 2
      if $game_switches[1] == false
      $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      @command_window.active = false
      @status_window.active = true
      @status_window.index = 0
    when 3 
      $game_system.se_play($data_system.decision_se)
      @command_window.active = false
      @status_window.active = true
      @status_window.index = 0
    when 4 
      $game_system.se_play($data_system.decision_se)
      @command_window.active = false
      @status_window.active = true
      @status_window.index = 0
    when 5
       if $game_switches[2] == false
      $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      loop do
      if @command_window.y < 480
       @command_window.y += 40
      end
      if @game_stats_window.x > 0 - @game_stats_window.width
       @game_stats_window.x -= 40
      end
      if @map.y > 0 - @map.height
       @map.y -= 40
      end
      if @status_window.x < 640
       @status_window.x += 40
      end
      delay(0.5)
      if @status_window.x >= 640
       break
     end
    end
     $scene = Scene_Switch.new(false, 1, 3)
    when 6
      if $game_system.save_disabled
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      loop do
      if @command_window.y < 480
       @command_window.y += 40
      end
      if @game_stats_window.x > 0 - @game_stats_window.width
       @game_stats_window.x -= 40
      end
      if @map.y > 0 - @map.height
       @map.y -= 40
      end
      if @status_window.x < 640
       @status_window.x += 40
      end
      delay(0.5)
      if @status_window.x >= 640
       break
     end
    end
       $scene = Scene_Save.new
    end
    return
  end
end
#--------------------------------------------------------------------------
# Updating Status Screen
#--------------------------------------------------------------------------
def update_status
  if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
    return
  end
  if Input.trigger?(Input::C)
    case @command_window.index
    when 1
      if $game_party.actors[@status_window.index].restriction >= 2
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      $game_system.se_play($data_system.decision_se)
      loop do
      if @command_window.y < 480
       @command_window.y += 40
      end
      if @game_stats_window.x > 0 - @game_stats_window.width
       @game_stats_window.x -= 40
      end
      if @map.y > 0 - @map.height
       @map.y -= 40
      end
      if @status_window.x < 640
       @status_window.x += 40
      end
      delay(0.5)
      if @status_window.x >= 640
       break
     end
    end
      $scene = Scene_Skill.new(@status_window.index)
    when 2
      $game_system.se_play($data_system.decision_se)
      loop do
      if @command_window.y < 480
       @command_window.y += 40
      end
      if @game_stats_window.x > 0 - @game_stats_window.width
       @game_stats_window.x -= 40
      end
      if @map.y > 0 - @map.height
       @map.y -= 40
      end
      if @status_window.x < 640
       @status_window.x += 40
      end
      delay(0.5)
      if @status_window.x >= 640
       break
     end
    end
      $scene = Scene_MagicEquip.new(@status_window.index)
    when 3
      $game_system.se_play($data_system.decision_se)
      loop do
      if @command_window.y < 480
       @command_window.y += 40
      end
      if @game_stats_window.x > 0 - @game_stats_window.width
       @game_stats_window.x -= 40
      end
      if @map.y > 0 - @map.height
       @map.y -= 40
      end
      if @status_window.x < 640
       @status_window.x += 40
      end
      delay(0.5)
      if @status_window.x >= 640
       break
     end
    end
      $scene = Scene_Equip.new(@status_window.index)
    when 4
      $game_system.se_play($data_system.decision_se)
      loop do
      if @command_window.y < 480
       @command_window.y += 40
      end
      if @game_stats_window.x > 0 - @game_stats_window.width
       @game_stats_window.x -= 40
      end
      if @map.y > 0 - @map.height
       @map.y -= 40
      end
      if @status_window.x < 640
       @status_window.x += 40
      end
      delay(0.5)
      if @status_window.x >= 640
       break
     end
    end
      $scene = Scene_Status.new(@status_window.index)
    end
    return
  end
end
end


I'm no scripter, but if you are able to fix this error that would be greatly appreciated. :)
~Thanks
Title: Re: Minor Bug with Configuration Tons of Add-ons script
Post by: Blizzard on January 06, 2009, 02:41:17 pm
Have you tried changing the order of the scripts? Tons of Add-ons has a few methods that mess around with facesets. Also, have you read this topic here? http://forum.chaos-project.com/index.php?topic=23.0

BTW, you didn't have to make a new thread. You can post problems related to scripts in the script threads. Here's the thread of Tons of Add-ons: http://forum.chaos-project.com/index.php?topic=105.0
Title: Re: Minor Bug with Configuration Tons of Add-ons script
Post by: iTyrant on January 06, 2009, 04:22:22 pm
Alright that seemed to work, hopefully I wont get any other errors during my progress, thanks for the help.