EmilyAnnCoons 7 Report post Posted January 14, 2007 #====================================================================== ======== # Cheats Input Script - v1.2 - by BudsieBuds #------------------------------------------------------------------------------ # NOTE: Start editing at line 68 and stop editing at '# STOP EDITING \\'. #============================================================================== #============================================================================== # ** Scene_Cheats #------------------------------------------------------------------------------ # by BudsieBuds #============================================================================== class Scene_Cheats #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Make windows @edit_window = Window_CheatsEdit.new @input_window = Window_CheatsInput.new # Execute transition Graphics.transition # 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 # Prepare for transition Graphics.freeze # Dispose of windows @edit_window.dispose @input_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @edit_window.update @input_window.update # If B button was pressed if Input.repeat?(Input::B) # If cursor position is at 0 if @edit_window.index == 0 return end # Play cancel SE $game_system.se_play($data_system.cancel_se) # Delete text @edit_window.back return end # If C button was pressed if Input.trigger?(Input::C) # If cursor position is at [OK] if @input_window.character == nil @cheat_word = @edit_window.cheat.downcase =begin # START EDITING // =============================================================================== The cheat that you have to input: elsif @cheat_word == "Put the cheat you want to use here." ------------------------------------------------------------------------------- For item(s): $game_party.gain_item(Item ID, How many) For gold: $game_party.gain_gold(How many) For weapon(s): $game_party.gain_weapon(Weapon ID, How many) For armor(s): $game_party.gain_armor(Armor ID, How many) For skill(s): $game_party.actors[Actor ID].learn_skill(Skill ID) For adding (an) actor(s): $game_party.add_actor(id) For changing a stat: $game_actors[id].stat = amount ------------------------------------------------------------------------------- This is the verification sound $game_system.se_play($data_system.decision_se) ------------------------------------------------------------------------------- Your cheat can have a maximum of 17 letters. The first cheat has to start with 'if'. The cheats coming after that have to start with 'elsif'. =============================================================================== =end if @cheat_word == "iamrich" $game_party.gain_gold(500) $game_system.se_play($data_system.decision_se) elsif @cheat_word == "iamarealfighter" $game_party.gain_weapon(1, 1) $game_party.gain_armor(21, 1) $game_system.se_play($data_system.decision_se) elsif @cheat_word == "iloveitems" for i in 1...$data_items.size $game_party.gain_item(i, 10) $game_system.se_play($data_system.decision_se) end elsif @cheat_word == "somehelpplease" $game_party.add_actor(2) $game_system.se_play($data_system.decision_se) # STOP EDITING \\ else # Play buzzer SE $game_system.se_play($data_system.buzzer_se) end # Switch to map screen $scene = Scene_Map.new return end # If text character is empty if @input_window.character == "" # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Add text character @edit_window.add(@input_window.character) return end end end #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # by BudsieBuds #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Draw Graphic # icon : icon # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_icon_graphic(icon, x, y) bitmap = RPG::Cache.icon(icon) 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 end #============================================================================== # ** Window_CheatsEdit #------------------------------------------------------------------------------ # by BudsieBuds #============================================================================== class Window_CheatsEdit < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :cheat # cheat attr_reader :index # cursor position #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 640, 128) self.contents = Bitmap.new(width - 32, height - 32) @max_char = 17 @index = 0 @cheat = "" refresh update_cursor_rect end #-------------------------------------------------------------------------- # * Add Character # character : text character to be added #-------------------------------------------------------------------------- def add(character) if @index < @max_char and character != "" @cheat += character @index += 1 refresh update_cursor_rect end end #-------------------------------------------------------------------------- # * Delete Character #-------------------------------------------------------------------------- def back if @index > 0 # Delete 1 text character name_array = @cheat.split(//) @cheat = "" for i in 0...name_array.size-1 @cheat += name_array[i] end @index -= 1 refresh update_cursor_rect end end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear # Draw cheat name_array = @cheat.split(//) for i in 0...@max_char c = name_array[i] if c == nil c = "_" end x = (i + 1) * 32 self.contents.draw_text(x, 32, 28, 32, c, 1) end # Draw graphic draw_icon_graphic("cheat", 16, 60) end #-------------------------------------------------------------------------- # * Cursor Rectangle Update #-------------------------------------------------------------------------- def update_cursor_rect x = (@index + 1) * 32 self.cursor_rect.set(x, 32, 28, 32) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_cursor_rect end end #============================================================================== # ** Window_CheatsInput #------------------------------------------------------------------------------ # by BudsieBuds #============================================================================== class Window_CheatsInput < Window_Base CHARACTER_TABLE = [ "A","B","C","D","E", "F","G","H","I","J", "K","L","M","N","O", "P","Q","R","S","T", "U","V","W","X","Y", "Z"," "," "," "," ", "+","-","*","/","!", "1","2","3","4","5", "" ,"" ,"" ,"" ,"" , "a","b","c","d","e", "f","g","h","i","j", "k","l","m","n","o", "p","q","r","s","t", "u","v","w","x","y", "z"," "," "," "," ", "#","$","%","&","@", "6","7","8","9","0", "" ,"" ,"" ,"" ,"" , ] #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 128, 640, 352) self.contents = Bitmap.new(width - 32, height - 32) @index = 0 refresh update_cursor_rect end #-------------------------------------------------------------------------- # * Text Character Acquisition #-------------------------------------------------------------------------- def character return CHARACTER_TABLE[@index] end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...90 x = 140 + i / 5 / 9 * 180 + i % 5 * 32 y = i / 5 % 9 * 32 self.contents.draw_text(x, y, 32, 32, CHARACTER_TABLE[i], 1) end self.contents.draw_text(428, 9 * 32, 48, 32, "OK", 1) end #-------------------------------------------------------------------------- # * Cursor Rectangle Update #-------------------------------------------------------------------------- def update_cursor_rect # If cursor is positioned on [OK] if @index >= 90 self.cursor_rect.set(428, 9 * 32, 48, 32) # If cursor is positioned on anything other than [OK] else x = 140 + @index / 5 / 9 * 180 + @index % 5 * 32 y = @index / 5 % 9 * 32 self.cursor_rect.set(x, y, 32, 32) end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super # If cursor is positioned on [OK] if @index >= 90 # Cursor down if Input.trigger?(Input::DOWN) $game_system.se_play($data_system.cursor_se) @index -= 90 end # Cursor up if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) @index -= 90 - 40 end # If cursor is positioned on anything other than [OK] else # If right directional button is pushed if Input.repeat?(Input::RIGHT) # If directional button pressed down is not a repeat, or # cursor is not positioned on the right edge if Input.trigger?(Input::RIGHT) or @index / 45 < 3 or @index % 5 < 4 # Move cursor to right $game_system.se_play($data_system.cursor_se) if @index % 5 < 4 @index += 1 else @index += 45 - 4 end if @index >= 90 @index -= 90 end end end # If left directional button is pushed if Input.repeat?(Input::LEFT) # If directional button pressed down is not a repeat, or # cursor is not positioned on the left edge if Input.trigger?(Input::LEFT) or @index / 45 > 0 or @index % 5 > 0 # Move cursor to left $game_system.se_play($data_system.cursor_se) if @index % 5 > 0 @index -= 1 else @index -= 45 - 4 end if @index < 0 @index += 90 end end end # If down directional button is pushed if Input.repeat?(Input::DOWN) # Move cursor down $game_system.se_play($data_system.cursor_se) if @index % 45 < 40 @index += 5 else @index += 90 - 40 end end # If up directional button is pushed if Input.repeat?(Input::UP) # If directional button pressed down is not a repeat, or # cursor is not positioned on the upper edge if Input.trigger?(Input::UP) or @index % 45 >= 5 # Move cursor up $game_system.se_play($data_system.cursor_se) if @index % 45 >= 5 @index -= 5 else @index += 90 end end end # If L or R button was pressed if Input.repeat?(Input::L) or Input.repeat?(Input::R) # Move capital / small $game_system.se_play($data_system.cursor_se) if @index < 45 @index += 45 else @index -= 45 end end end update_cursor_rect end end How to access: $scene = Scene_Cheats.new Put this icon in your icons folder: You can always make your own icon (24x24), name it 'cheat' and put it in your icons folder. DEMO: http://www.rmxpunlimited.net/forums/index....amp;showfile=11 Share this post Link to post Share on other sites
Marked 197 Report post Posted January 15, 2007 Thats really good script. I've seen it before, but never really tested it. I also learned some new things by looking though the script. Heres a demo for people who dont want to do it manually: Cheat Input Script Share this post Link to post Share on other sites
EmilyAnnCoons 7 Report post Posted January 15, 2007 -nods- same here...I actually edited a part of that script... -points to the lines about changing a character's stats- still trying to figure out what the recover all script code is...I can't figure it out >< Share this post Link to post Share on other sites
QuesTMajoR 4 Report post Posted April 20, 2012 Hey! Can Is it possible to type the Letters only, no More Name Input Processings like in Grand Theft Auto? Share this post Link to post Share on other sites
Polraudio 122 Report post Posted April 20, 2012 Would be if you have a keyboard input script. Should be able to find one by Cybersam and edit this one easily enough. Next time please dont necro post. Instead PM the author or make a new topic and link this one in that topic. We like to keep our dead(topics) buried as much as we can. So no more grave digging . Share this post Link to post Share on other sites
QuesTMajoR 4 Report post Posted April 20, 2012 What's Necro Post? Share this post Link to post Share on other sites
Polraudio 122 Report post Posted April 21, 2012 Its when you post in an old topic. As you can see the last post in this topic before you posted was over 5 years old. http://www.rmxpunlim...=207&Itemid=215 Please read through all them rules. Some reason you cant click on the links so just scroll down. If you have any questions PM me. Share this post Link to post Share on other sites
QuesTMajoR 4 Report post Posted April 21, 2012 Ohhh, ok... Im a NooB here, There is a Lot difference between my Old Forum and RMXP Unlimited, and GDU.... Lock The Topic Please.... :D Share this post Link to post Share on other sites