Jump to content
New account registrations are disabed. This website is now an archive. Read more here.

Cheats Input Script - v1.2 - by BudsieBuds

Sign in to follow this  

1 Screenshot

About This File

Script

[spoiler=Script]

#==============================================================================
# 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

 

 

FAQ:

 

Q: How to access the script?

A: Use '$scene = Scene_Cheats.new'.

 

Q: Can I make my own icon?

A: Yeah, but make sure that your icon is 24x24 pixels, that the name is 'cheat.png' and that it's in the 'Icons' folder of your game.

 

Q: I can't see any letters, how come?

A: Well, that probably because you're using the illegal version of RPG Maker XP.

You can download the legal version HERE, it's a 30 days trail.

If the trail ends you can buy RMXP for $60.

 

Put this icon in your icons folder:

cheatsl2.png

 

Future Changes:

 

Case-sensitive

Better design

Buzzer sound when the cheat isn't correct

 

Credits:

 

BudsieBuds

 

 

Thanks:

 

Homer (aka Matte)

 

[info=Support Topic]http://www.rmxpunlimited.net/forums/index.php?showtopic=153[/info]


What's New in Version 06/08/2008 05:01 AM   See changelog

Released

No changelog available for this version.




User Feedback

×
×
  • Create New...