Slipknot Advance Debug System
#1
Slipknot Advance Debug System
by Sheol
1.1
Dec 23, 2005

This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.


Last Update
April 9, 2006
- Added allow or disallow encounters feature.
- Fixed the actors' level part.
- Faster scene.


Overview
This script allow you change more game settings when you're testing it.
The added options are:
- Edit the amount of gold
- Edit the actors' levels
- Add weapons, armors or items to the party
- Allow or disallow the encounters (new!)


How use it?
It need be inserted below Scene_Debug and above Main.
To open it, you need be testing the game and press F9.


Code:
#==============================================================================
# ** Advance Debug System
#------------------------------------------------------------------------------
# Slipknot
# 1.1
# 04.05.06
#==============================================================================

#------------------------------------------------------------------------------
# Begin Scene_Debug Rewrite
#------------------------------------------------------------------------------
class Scene_Debug
  #--------------------------------------------------------------------------
  def main
    spriteset = Spriteset_Map.new
    vp = Viewport.new(0, 0, 640, 480)
    vp.tone = Tone.new(-64, -64, -64)
    @left_window = Window_DebugLeft.new
    @right_window = Window_DebugRight.new
    @help_window = Window_Base.new(192, 352, 448, 128)
    @help_window.contents = Bitmap.new(406, 96)
    @help_window2 = Window_Base.new(320, 352, 320, 128)
    @help_window2.contents = Bitmap.new(288, 96)
    @left_window.top_row = $game_temp.debug_top_row
    @left_window.index = $game_temp.debug_index
    @right_window.mode = @left_window.mode
    @right_window.top_id = @left_window.top_id
    @command = Window_Command.new(256, ['Switches and Variables',
      'Gold', 'Items, Weapons & Armors', 'Levels', 'Allow/Disallow Encounters',
      'Exit'])
    @command.x = 192
    @command.y = 112
    @gold_window = Window_Debug_Gold.new
    @items_window = Window_Debug_Items.new
    @levels_window = Window_Debug_Levels.new
    @items_back = Window_Base.new(0, 0, 320, 480)
    @items_back.contents = Bitmap.new(288, 32)
    @encounter_window = Window_Command.new(128, ['Allow', 'Disallow', 'Cancel'])
    @encounter_window.x = 256
    @encounter_window.y = 176
    visact(@encounter_window, false)
    @phase2_objects = [@left_window, @right_window, @help_window]
    @phase2_objects.each { |x| x.visible = false }
    @phase4_objects = [@items_window, @help_window2, @items_back]
    @phase4_objects.each { |x| x.visible = false }
    @phase = 1
    Graphics.transition
    while $scene == self
      Graphics.update
      Input.update
      toto('update_phase_' + @phase.to_s)
    end
    $game_map.refresh
    Graphics.freeze
    @phase2_objects.each { |x| x.dispose }
    @phase4_objects.each { |x| x.dispose }
    [@gold_window, @command, @encounter_window,
       spriteset, vp].each do |x|
      x.dispose
    end
  end
  #--------------------------------------------------------------------------
  def visact(obj, val = true)
    obj.visible = obj.active = val
  end
  #--------------------------------------------------------------------------
  def self_close(sound)
    $game_system.se_play(sound)
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  def update_phase_1
    @command.update
    if Input.trigger?(12)
      self_close($data_system.cancel_se)
    end
    if Input.trigger?(13)
      $game_system.se_play($data_system.decision_se)
      case @command.index
      when 0
        visact(@command, false)
        @help_window.contents.clear
        @phase2_objects.each { |x|x.visible = true }
        @phase = 2
        return
      when 1
        visact(@command, false)
        @gold_window.visible = true
        text = ['Up : +1       Down : -1', 'Right : +10  Left   : -10',
          'R : +100      L : -100']
        @help_window.contents.clear
        for i in 0...text.size do
          @help_window.contents.draw_text(4, 32 * i, 406, 32, text[i])
        end
        @help_window.visible = true
        @phase = 3
        return
      when 2
        visact(@command, false)
        @items_window.visible = true
        text = ['Right : +1  Left   : -1', 'A: Change mode']
        @help_window2.contents.clear
        phase_4_mode_refresh
        for i in 0...text.size do
          @help_window2.contents.draw_text(4, 32 * i, 406, 32, text[i])
        end
        @phase4_objects.each { |x| x.visible = true }
        @phase = 4
        return
      when 3
        visact(@command, false)
        @levels_window.visible = true
        @phase = 5
        return
      when 4
        visact(@command, false)
        visact(@encounter_window)
        @phase = 6
        return
      when 5 then self_close($data_system.decision_se)
      end
    end
  end
  #--------------------------------------------------------------------------
  def update_phase_2
    @phase2_objects.each { |x| x.visible = true }
    @right_window.mode = @left_window.mode
    @right_window.top_id = @left_window.top_id
    @left_window.update
    @right_window.update
    $game_temp.debug_top_row = @left_window.top_row
    $game_temp.debug_index = @left_window.index
    if @left_window.active
      update_left
      return
    end
    if @right_window.active
      update_right
      return
    end
  end
  #--------------------------------------------------------------------------
  def update_phase_3
    @gold_window.update
    if Input.trigger? 12
      $game_system.se_play($data_system.cancel_se)
      @phase = 1
      visact(@command)
      @gold_window.visible = @help_window.visible = false
      return
    end
  end
  #--------------------------------------------------------------------------
  def update_phase_4
    @items_window.update
    if Input.trigger?(12)
      $game_system.se_play($data_system.cancel_se)
      @phase = 1
      @help_window2.visible = @items_back.visible = false
      visact(@command)
      @items_window.visible = false
      return
    end
    if Input.trigger?(11)
      $game_system.se_play($data_system.decision_se)
      @items_window.mode = (@items_window.mode + 1) % 3
      phase_4_mode_refresh
      @items_window.refresh
    end
  end
  #--------------------------------------------------------------------------
  def phase_4_mode_refresh
    mode = case @items_window.mode
      when 0 then 'Items'
      when 1 then 'Weapons'
      when 2 then 'Armors' end
    @items_back.contents.clear
    @items_back.contents.draw_text(0, 0, 320, 32, "Mode:  #{mode}")
  end
  #--------------------------------------------------------------------------
  def update_phase_5
    @levels_window.update
    if Input.trigger?(12)
      $game_system.se_play($data_system.cancel_se)
      @phase = 1
      visact(@command)
      @levels_window.visible = false
      return
    end
  end
  #--------------------------------------------------------------------------
  def update_phase_6
    @encounter_window.update
    if Input.trigger?(12)
      $game_system.se_play($data_system.cancel_se)
      exit = true
    end
    if Input.trigger?(13)
      $game_system.se_play($data_system.decision_se)
      if @encounter_window.index != 2
        $game_system.encounter_disabled = (@encounter_window.index == 1)
      end
      exit = true
    end
    return if exit.nil?
    @phase = 1
    visact(@command)
    visact(@encounter_window, false)
  end
  #--------------------------------------------------------------------------
  def update_left
    if Input.trigger? 12
      $game_system.se_play($data_system.cancel_se)
      @phase = 1
      @phase2_objects.each { |x| x.visible = false }
      visact(@command)
      return
    end
    if Input.trigger? 13
      $game_system.se_play($data_system.decision_se)
      if @left_window.mode == 0
        text1 = 'C (Enter) : ON / OFF'
        @help_window.contents.draw_text(4, 0, 406, 32, text1)
      else
        text = ['Left : -1         Right : +1', 'L (Pageup) : -10', 'R (Pagedown) : +10']
        for i in 0...text.size do
          @help_window.contents.draw_text(4, 32 * i, 406, 32, text[i])
        end
      end
      @left_window.active = false
      @right_window.active = true
      @right_window.index = 0
      return
    end
  end
  #--------------------------------------------------------------------------
  def update_right
    if Input.trigger?(12)
      $game_system.se_play($data_system.cancel_se)
      @left_window.active = true
      @right_window.active = false
      @right_window.index = -1
      @help_window.contents.clear
      return
    end
    current_id = @right_window.top_id + @right_window.index
    if @right_window.mode == 0
      if Input.trigger?(13)
        $game_system.se_play($data_system.decision_se)
        $game_switches[current_id] = (not $game_switches[current_id])
        @right_window.refresh
        return
      end
    end
    max = 99_999_999
    if @right_window.mode == 1
      if Input.repeat?(6)
        $game_system.se_play($data_system.cursor_se)
        $game_variables[current_id] += 1
        if $game_variables[current_id] > max
          $game_variables[current_id] = max
        end
        @right_window.refresh
        return
      end
      if Input.repeat?(4)
        $game_system.se_play($data_system.cursor_se)
        $game_variables[current_id] -= 1
        if $game_variables[current_id] < -max
          $game_variables[current_id] = -max
        end
        @right_window.refresh
        return
      end
      if Input.repeat?(18)
        $game_system.se_play($data_system.cursor_se)
        $game_variables[current_id] += 10
        if $game_variables[current_id] > max
          $game_variables[current_id] = max
        end
        @right_window.refresh
        return
      end
      if Input.repeat?(17)
        $game_system.se_play($data_system.cursor_se)
        $game_variables[current_id] -= 10
        if $game_variables[current_id] < -max
          $game_variables[current_id] = -max
        end
        @right_window.refresh
        return
      end
    end
  end
end
#------------------------------------------------------------------------------
# End Scene_Debug Rewrite
#------------------------------------------------------------------------------

class Window_Debug_Levels < Window_Selectable
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 280, 480)
    @item_max = $game_party.actors.size
    self.contents = Bitmap.new(248, @item_max * 32)
    self.index = 0
    self.visible = false
    refresh true
  end
  #--------------------------------------------------------------------------
  def visible=(val)
    super
    refresh(true) if val
  end
  #--------------------------------------------------------------------------
  def refresh(change = false)
    contents.clear if change
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      if change
        contents.font.color = normal_color
        contents.draw_text(4, i * 32, 32, 32, "#{i+1}:")
        contents.draw_text(34, i * 32, 120, 32, actor.name)
        contents.draw_text(160, i * 32, 54, 32, 'Level:')
      end
      contents.font.color = system_color
      rect = Rect.new(212, i * 32, 32, 32)
      contents.fill_rect(rect, Color.new(0, 0, 0, 0))
      contents.draw_text(rect, actor.level.to_s, 2)
    end
  end
  #--------------------------------------------------------------------------
  def update
    if Input.repeat?(2)
      $game_system.se_play($data_system.cursor_se)
      self.index = (@index + 1) % @item_max
    end
    if Input.repeat?(8)
      $game_system.se_play($data_system.cursor_se)
      self.index = (@index - 1 + @item_max) % @item_max
    end
    if Input.repeat?(6)
      $game_system.se_play($data_system.cursor_se)
      actor.level += 1
      refresh
    end
    if Input.repeat?(4)
      $game_system.se_play($data_system.cursor_se)
      actor.level -= 1
      refresh
    end
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  def actor
    $game_party.actors[@index]
  end
  #--------------------------------------------------------------------------
end

class Window_Debug_Gold < Window_Base
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 224, 96)
    self.contents = Bitmap.new(192, 64)
    @index = 0
    self.visible = false
    contents.draw_text(0, 0, 192, 32, 'Current gold:')
    refresh
  end
  #--------------------------------------------------------------------------
  def refresh
    rect = Rect.new(0, 32, 192, 32)
    contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    contents.draw_text(rect, $game_party.gold.to_s, 2)
  end
  #--------------------------------------------------------------------------
  def update
    if Input.repeat?(8)
      $game_system.se_play($data_system.cursor_se)
      $game_party.gain_gold(1)
      refresh
    end
    if Input.repeat?(2)
      $game_system.se_play($data_system.cursor_se)
      $game_party.gain_gold(-1)
      refresh
    end
    if Input.repeat?(6)
      $game_system.se_play($data_system.cursor_se)
      $game_party.gain_gold(10)
      refresh
    end
    if Input.repeat?(4)
      $game_system.se_play($data_system.cursor_se)
      $game_party.gain_gold(-10)
      refresh
    end
    if Input.repeat?(18)
      $game_system.se_play($data_system.cursor_se)
      $game_party.gain_gold(100)
      refresh
    end
    if Input.repeat?(17)
      $game_system.se_play($data_system.cursor_se)
      $game_party.gain_gold(-100)
      refresh
    end  
  end
end

class Window_Debug_Items < Window_Selectable
  #--------------------------------------------------------------------------
  attr_accessor(:mode)
  attr_writer(:index)
  #--------------------------------------------------------------------------
  def initialize
    super(0, 32, 320, 448)
    self.index = self.opacity = @mode = 0
    @data = $data_items
    refresh
  end
  #--------------------------------------------------------------------------
  def refresh(change = true)
    if change
      @data = case @mode
        when 0 then $data_items
        when 1 then $data_weapons
        when 2 then $data_armors
        end
      @item_max = @data.size - 1
      self.contents = Bitmap.new(288, @item_max * 32)
    end
    for i in 1..@item_max
      y = (i - 1) * 32
      if change
        item = @data[i]
        contents.draw_text(4, y, 32, 32, "#{i.to_s}:")
        draw_item_name(item, 32, y)
        contents.draw_text(256, y, 32, 32, ':')
      end
      number = case @mode
        when 0 then $game_party.item_number(i)
        when 1 then $game_party.weapon_number(i)
        when 2 then $game_party.armor_number(i)
        end
      rect = Rect.new(250, y, 32, 32)
      contents.fill_rect(rect, Color.new(0, 0, 0, 0))
      contents.draw_text(rect, "#{number}", 2)
    end
  end
  #--------------------------------------------------------------------------
  def update
    if Input.repeat?(2)
      $game_system.se_play($data_system.cursor_se)
      @index = (@index + 1) % @item_max
    end
    if Input.repeat?(8)
      $game_system.se_play($data_system.cursor_se)
      @index = (@index - 1 + @item_max) % @item_max
    end
    gain(1)  if Input.repeat?(6)
    gain(-1) if Input.repeat?(4)
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  def gain(n)
    $game_system.se_play($data_system.cursor_se)
    case @mode
    when 0 then $game_party.gain_item(@index + 1, n)
    when 1 then $game_party.gain_weapon(@index + 1, n)
    when 2 then $game_party.gain_armor(@index + 1, n)
    end
    refresh(false)
  end
end
}


Possibly Related Threads…
Thread Author Replies Views Last Post
  A little Modification for Screenshot system Maumau 0 2,842 12-04-2008, 01:00 PM
Last Post: Maumau
  Summon/Custom Skills System! Reno-s--Joker 0 2,741 10-07-2008, 01:00 PM
Last Post: Reno-s--Joker
  Enemy Detection System GubiD 0 2,397 08-12-2007, 01:00 PM
Last Post: GubiD
  CNS (Custom Name System) Samo the thief 0 2,447 02-12-2007, 01:00 PM
Last Post: Samo the thief
  CSS (Custom Shop System) Samo the thief 0 2,790 01-29-2007, 01:00 PM
Last Post: Samo the thief
  My Saving system crystal 0 2,353 01-16-2007, 01:00 PM
Last Post: crystal
  Star Ocean Shop System Hawk-McKain 0 2,524 10-20-2006, 01:00 PM
Last Post: Hawk-McKain
  Tales of Symphonia/Phantasia skill system Jimmie 0 2,476 09-23-2005, 01:00 PM
Last Post: Jimmie



Users browsing this thread: 1 Guest(s)