moms Luthiste
Nombre de messages : 375 Age : 35 Projet(s) en cours : héhé pas de nom... Date d'inscription : 24/08/2007
| Sujet: advance debug Ven 24 Aoû 2007, 00:56 | |
| ce script vous permet d'améliorer les possibilité que vous avez de modifier votre jeu quand vous le testé à mettre au dessus de main - Spoiler:
- 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, ['Interrupteurs et variables', "Or", 'Objets, Armes et armures', 'Niveau', 'Activer/Désactiver combats', 'Quitter']) @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, ["Activer", "Désactiver", 'Annuler']) @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 eval('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
j'explique lorsque vous appuyer sur f9 en testant votre jeu vous pouvez modifier les interrupteurs ainsi que les variables! avec ce script vous pourrez changer de niveau rajouter ou enlever des objet ainsi que de l'équipement et autre... deplus ce script n'est plus accessible lorsque vous créer un installeur pour le faire tester! | |
|