#==============================================================================
# **scene_MapMenu
#==============================================================================
class Scene_MapMenu
#----------------------------------------------------------------------
# * Object Initialization
#----------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#----------------------------------------------------------------------
# * Main
#----------------------------------------------------------------------
def main
s1 = ""
s2 = ""
s3 = ""
s4 = ""
s5 = ""
s6 = ""
s7 = ""
s8 = ""
s9 = ""
s10 = ""
s11 = ""
s12 = ""
s13 = ""
s14 = ""
@command_window = Window_Command.new(65, [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14])
@command_window.index = @menu_index
#call the window
@window = Scene_MapMenu.new
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
@command_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@command_window.update
end
endclass Scene_MapMenu
#-------------------------------------------------------------------------
# * MAIN
#-------------------------------------------------------------------------
def main
@mapmenu_window = Window_MapMenu.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
@mapmenu_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@mapmenu_window.update
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to Menu screen
$scene = Scene_Menu.new
return
end
end
end
#==============================================================================
# ** Window_Map
#------------------------------------------------------------------------------
class Window_MapMenu < Window_Base
MAP_TABLE =
[
"1","2","3","4","5","6","7","8","9","10",
"11","12","13","14","15","16","17","18","19","20",
"21","22","23","24","25","26","27","28","29","30",
"31","32","33","34","35","36","37","38","39","40",
"41","42","43","44","45","46","47","48","49","50",
"51","52","53","54","55","56","57","58","59","60",
"61","62","63","64","65","66","67","68","69","70",
"71","72","73","74","75","76","77","78","79","80",
"81","82","83","84","85","86","87","88","89","90",
]
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
@index = 0
refresh
update_cursor_rect
end
#--------------------------------------------------------------------------
# * Text Character Acquisition
#--------------------------------------------------------------------------
def grid
return MAP_TABLE[@index]
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...90
x = 0 + i / 10 / 9 * 160 + i % 10 * 32
y = 0 + i / 10 % 9 * 32
self.contents.draw_text(x, y, 32, 32, MAP_TABLE[i], 1)
end
self.contents.draw_text(140, 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(140, 9 * 32, 48, 32)
# If cursor is positioned on anything other than [OK]
else
x = 0 + @index / 10 / 9 * 160 + @index % 10 * 32
y = 0 + @index / 10 % 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 - 80
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 / 90 < 6 or @index % 10 < 9
# Move cursor to right
$game_system.se_play($data_system.cursor_se)
if @index % 10 < 9
@index += 1
else
@index += 90 - 9
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 / 90 > 0 or @index % 10 > 0
# Move cursor to left
$game_system.se_play($data_system.cursor_se)
if @index % 10 > 0
@index -= 1
else
@index -= 90 - 9
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 % 90 < 80
@index += 10
else
@index += 90 - 80
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 % 90 >= 10
# Move cursor up
$game_system.se_play($data_system.cursor_se)
if @index % 90 >= 10
@index -= 10
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 < 90
@index += 90
else
@index -= 90
end
end
end
update_cursor_rect
end
end#--------------------------------------------------------------------------
def grid
return MAP_TABLE[@index]
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...237
x = 32 + i / 17 / 14 * 160 + i % 17 * 32
y = 0 + i / 17 % 14 * 32
self.contents.draw_text(x, y, 32, 32, MAP_TABLE[i], 1)
end
self.contents.draw_text(0, 19 * 32, 48, 32, "OK", 1)
@bitmap = RPG::Cache.picture("kantomap.png")
self.contents.blt(32, 0, @bitmap, Rect.new(0, 0, @bitmap.width, @bitmap.height), 160)
end
#--------------------------------------------------------------------------
# * Cursor Rectangle Update
#--------------------------------------------------------------------------
def update_cursor_rect
# If cursor is positioned on [OK]
if @index >= 237
self.cursor_rect.set(140, 19 * 32, 48, 32)
# If cursor is positioned on anything other than [OK]
else
x = 32 + @index / 17 / 14 * 160 + @index % 17 * 32
y = 0 + @index / 17 % 14 * 32
self.cursor_rect.set(x, y, 32, 32)
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
# if enter is being pressed
if Input.trigger?(Input::C)
if @index == 0
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Item.new
end
if @index == 1
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Skill.new
end
end
# If cursor is positioned on [OK]
if @index >= 237
# Cursor down
if Input.trigger?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
@index -= 237
end
# Cursor up
if Input.repeat?(Input::UP)
$game_system.se_play($data_system.cursor_se)
@index -= 237 - 227
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 / 237 < 6 or @index % 17 < 16
# Move cursor to right
$game_system.se_play($data_system.cursor_se)
if @index % 17 < 16
@index += 1
else
@index += 237 - 16
end
if @index >= 237
@index -= 237
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 / 237 > 0 or @index % 17 > 0
# Move cursor to left
$game_system.se_play($data_system.cursor_se)
if @index % 17 > 0
@index -= 1
else
@index -= 237 - 16
end
if @index < 0
@index += 237
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 % 237 < 227
@index += 17
else
@index += 237 - 227
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 % 237 >= 17
# Move cursor up
$game_system.se_play($data_system.cursor_se)
if @index % 237 >= 17
@index -= 17
else
@index += 237
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 < 237
@index += 237
else
@index -= 237
end
end
end
update_cursor_rect
end
end#==============================================================================
# ** Window_Map
#------------------------------------------------------------------------------
class Window_MapMenu < Window_Base
MAP_TABLE =
[
"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17",
"18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34",
"35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51",
"52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68",
"69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85",
"86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102",
"103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119",
"120","121","122","123","124","125","126","127","128","129","130","131","132","133","134","135","136",
"137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","152","153",
"154","155","156","157","158","159","160","161","162","163","164","165","166","167","168","189","170",
"171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187",
"188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204",
"205","206","207","208","209","210","211","212","213","214","215","216","217","218","219","220","221",
"222","223","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238",
]
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
@index = 0
refresh
update_cursor_rect
end
#--------------------------------------------------------------------------
# * Text Character Acquisition
#--------------------------------------------------------------------------
def grid
return MAP_TABLE[@index]
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...237
x = 32 + i / 17 / 14 * 160 + i % 17 * 32
y = 0 + i / 17 % 14 * 32
self.contents.draw_text(x, y, 32, 32, MAP_TABLE[i], 1)
end
@bitmap = RPG::Cache.picture("kantomap.png")
self.contents.blt(32, 0, @bitmap, Rect.new(0, 0, @bitmap.width, @bitmap.height), 160)
end
#--------------------------------------------------------------------------
# * Cursor Rectangle Update
#--------------------------------------------------------------------------
def update_cursor_rect
x = 32 + @index / 17 / 14 * 160 + @index % 17 * 32
y = 0 + @index / 17 % 14 * 32
self.cursor_rect.set(x, y, 32, 32)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
# if enter is being pressed
if Input.trigger?(Input::C)
if @index == 0
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Item.new
end
if @index == 1
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Skill.new
end
end
# 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 % 17 < 16
# Move cursor to right
$game_system.se_play($data_system.cursor_se)
if @index % 17 < 16
@index += 1
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 % 17 > 0
# Move cursor to left
$game_system.se_play($data_system.cursor_se)
if @index % 17 > 0
@index -= 1
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 % 237 < 237
@index += 17
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)
# Move cursor up
$game_system.se_play($data_system.cursor_se)
if @index % 237 >= 17
@index -= 17
end
end
end
update_cursor_rect
end
endclass Scene_MapMenu
def initialize(index = 0)
@index = index
end
def main
@mapmenu_window = Window_MapMenu.new
@mapmenu_window.index = @index
# Continue on with your scene code...$scene = Scene_MapMenu.new(i)#==============================================================================
# ** Window_Map
#------------------------------------------------------------------------------
class Window_MapMenu < Window_Base
MAP_TABLE =
[
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","",
]
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
@index = 0
refresh
update_cursor_rect
end
#--------------------------------------------------------------------------
# * Text Character Acquisition
#--------------------------------------------------------------------------
def grid
return MAP_TABLE[@index]
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...237
x = 32 + i / 17 / 14 * 160 + i % 17 * 32
y = 0 + i / 17 % 14 * 32
self.contents.draw_text(x, y, 32, 32, MAP_TABLE[i], 1)
end
@bitmap = RPG::Cache.picture("kantomap.png")
self.contents.blt(32, 0, @bitmap, Rect.new(0, 0, @bitmap.width, @bitmap.height), 160)
end
#--------------------------------------------------------------------------
# * Cursor Rectangle Update
#--------------------------------------------------------------------------
def update_cursor_rect
x = 32 + @index / 17 / 14 * 160 + @index % 17 * 32
y = 0 + @index / 17 % 14 * 32
self.cursor_rect.set(x, y, 32, 32)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
# if enter is being pressed
if Input.trigger?(Input::C)
if @index == 0
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Item.new
end
if @index == 1
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Skill.new
end
end
# 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 % 17 < 16
# Move cursor to right
$game_system.se_play($data_system.cursor_se)
if @index % 17 < 16
@index += 1
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 % 17 > 0
# Move cursor to left
$game_system.se_play($data_system.cursor_se)
if @index % 17 > 0
@index -= 1
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 % 237 < 237
@index += 17
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)
# Move cursor up
$game_system.se_play($data_system.cursor_se)
if @index % 237 >= 17
@index -= 17
end
end
end
update_cursor_rect
end
end
#---------------------------------------------------------------------------
# * class Window_Town
#---------------------------------------------------------------------------
class Window_Town < Window_Base
#-------------------------------------------------------------------------
# * Object Initialization
#-------------------------------------------------------------------------
def initialize
super(0, 0, 416, 352)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#-------------------------------------------------------------------------
# * refresh
#-------------------------------------------------------------------------
def refresh
@bitmap = RPG::Cache.picture("pallettown.png")
self.contents.blt(0, 0, @bitmap, Rect.new(0, 0, @bitmap.width, @bitmap.height), 255)
end
end
#---------------------------------------------------------------------------
# * Scene Map_Menu
#---------------------------------------------------------------------------
class Scene_MapMenu
def initialize(index = 0)
@index = index
end
#-------------------------------------------------------------------------
# * MAIN
#-------------------------------------------------------------------------
def main
@mapmenu_window = Window_MapMenu.new
@mapmenu_window.index = @index
# 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
@mapmenu_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@mapmenu_window.update
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to Menu screen
$scene = Scene_Menu.new
return
end
end
end
#---------------------------------------------------------------------------
# * Scene_Town
#---------------------------------------------------------------------------
class Scene_Town
#-------------------------------------------------------------------------
# * Main
#-------------------------------------------------------------------------
def main
@town_window = Window_Town.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
@town_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@town_window.update
# if mapmenu is active call update_map
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = Scene_MapMenu.new(172)
return
end
end
end
MAP_TABLE = (1..238).to_a.collect {|i| i.to_s }MAP_TABLE = Array.new(238) {|i| (i + 1).to_s }