Jump to content
Rpg²S Forum

*CMS - Solo per due personaggi


Spike92
 Share

Recommended Posts

Custom Menu System

Descrizione

 

Un menù personalizzato. Funziona solo con due personaggi.

Autore

 

Constance

Allegati

 

Screen 1

Istruzioni per l'uso

 

Create una classe sopra a main e incollate

 

 

#============================================================
# Custom Menu System
# created by: Constance
# created on: Dec. 26, 2005
# version: 2.1
# credits: Acedent Prone, Diego, Dubealex
# special thanks credits goes to: SephirothSpawn, couldn't have done it without you
# RMXP - Underground - The Underground Gaming Zone
#============================================================
class Window_Base < Window
	
	def draw_actor_level(actor, x, y)
		self.contents.font.color = normal_color
		self.contents.draw_text(x + 4, y + 20, 24, 32, actor.level.to_s, 2)
	end
	
	def draw_actor_battler(actor, x, y)
		bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
		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
	
	def draw_sprite(x, y, name, hue, pose, frame)
		bitmap = RPG::Cache.character(name, hue)
		cw = bitmap.width / 4
		ch = bitmap.height / 4
		case pose
		when 0;a = 0
		when 1;a = ch
		when 2;a = ch * 3
		when 3;a = ch * 2
		end
		
		case frame
		when 0;b = 0
		when 1;b = cw
		when 2;b = cw * 2
		when 3;b = cw * 3
		end
		src_rect = Rect.new(b, a, cw, ch)
		self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
	end
	
	self.contents.font.color = system_color
	self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
	if width - 32 >= 108
		hp_x = x + width - 108
		flag = true
	elsif width - 32 >= 48
		hp_x = x + width - 48
		flag = false
	end
	self.contents.font.color = actor.hp == 0 ? knockout_color :
	actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
	self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
	if flag
		self.contents.font.color = normal_color
		self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
		self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
	end
end

def draw_actor_sp2(actor, x, y, width = 144)
	self.contents.font.color = system_color
	self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
	if width - 32 >= 108
		sp_x = x + width - 108
		flag = true
	elsif width - 32 >= 48
		sp_x = x + width - 48
		flag = false
	end
	self.contents.font.color = actor.sp == 0 ? knockout_color :
	actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
	self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
	if flag
		self.contents.font.color = normal_color
		self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
		self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
	end
end

def draw_actor_name(actor, x, y)
	self.contents.font.color = normal_color
	self.contents.draw_text(x, y, 144, 32, actor.name)
end

def draw_actor_parameter2(actor, x, y, type)
	case type
	when 0
		parameter_name = $data_system.words.atk
		parameter_value = actor.atk
	when 1
		parameter_name = $data_system.words.pdef
		parameter_value = actor.pdef
	when 2
		parameter_name = "Déf. magique"
		parameter_value = actor.mdef
	when 3
		parameter_name = $data_system.words.str
		parameter_value = actor.str
	when 4
		parameter_name = $data_system.words.dex
		parameter_value = actor.dex
	when 5
		parameter_name = $data_system.words.agi
		parameter_value = actor.agi
	when 6
		parameter_name = $data_system.words.int
		parameter_value = actor.int
	end
	self.contents.font.color = system_color
	self.contents.font.size = 20
	self.contents.draw_text(x, y, 120, 32, parameter_name)
	self.contents.font.color = normal_color
	self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
end

def draw_actor_barz(actor,x, y, type, length, thick, e1, e2, c1 = Color.new(255,0,0,255), c2 = Color.new(0,0,0,255))
	if type == "horizontal"
		width = length
		height = thick
		self.contents.fill_rect(x-1, y - 1, width + 1, height + 3, Color.new(0, 0, 0, 255))
		self.contents.fill_rect(x, y, width + 1, height + 1, Color.new(0, 0, 0, 255))
		w = width * e1.to_f / e2.to_f
		for i in 0..height
			r = c1.red + (c2.red - c1.red) * (height -i)/height + 0 * i/height
			g = c1.green + (c2.green - c1.green) * (height -i)/height + 0 * i/height
			b = c1.blue + (c2.blue - c1.blue) * (height -i)/height + 0 * i/height
			a = c1.alpha + (c2.alpha - c1.alpha)* (height -i)/height + 255 * i/height
			self.contents.fill_rect(x, y+i, w, 1, Color.new(r, g, b, a))
		end
	end
end
end

class Window_Selectable2 < Window_Base

attr_reader :index
attr_reader :help_window

def initialize(x, y, width, height)
	super(x, y, width, height)
	@item_max = 1
	@column_max = 1
	@index = -1
end

def index=(index)
	@index = index
	if self.active and @help_window != nil
		update_help
	end
	update_cursor_rect
end

def row_max
	return (@item_max + @column_max - 1) / @column_max
end

def top_row
	return self.oy / 32
end

def top_row=(row)
	if row < 0
		row = 0
	end
	if row > row_max - 1
		row = row_max - 1
	end
	self.oy = row * 32
end

def page_row_max
	return (self.height - 32) / 32
end
def page_item_max
	return page_row_max * @column_max
end

def help_window=(help_window)
	@help_window = help_window
	if self.active and @help_window != nil
		update_help
	end
end

def update_cursor_rect
	if @index < 0
		self.cursor_rect.empty
		return
	end
	row = @index / @column_max
	if row < self.top_row
		self.top_row = row
	end
	
	if row > self.top_row + (self.page_row_max - 1)
		self.top_row = row - (self.page_row_max - 1)
	end
	cursor_width = self.width / @column_max - 32
	x = @index % @column_max * (cursor_width + 32)
	y = @index / @column_max * 32 - self.oy
	self.cursor_rect.set(x, y, 65, 32)
end

def update
	super
	if self.active and @item_max > 0 and @index >= 0
		if Input.repeat?(Input::DOWN)
			if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
				@index < @item_max - @column_max
				$game_system.se_play($data_system.cursor_se)
				@index = (@index + @column_max) % @item_max
			end
		end
		if Input.repeat?(Input::UP)
			if (@column_max == 1 and Input.trigger?(Input::UP)) or
				@index >= @column_max
				$game_system.se_play($data_system.cursor_se)
				@index = (@index - @column_max + @item_max) % @item_max
			end
		end
		if Input.repeat?(Input::RIGHT)
			if @column_max >= 2 and @index < @item_max - 1
				$game_system.se_play($data_system.cursor_se)
				@index += 1
			end
		end
		
		if Input.repeat?(Input::LEFT)
			if @column_max >= 2 and @index > 0
				$game_system.se_play($data_system.cursor_se)
				@index -= 1
			end
		end
		if Input.repeat?(Input::R)
			if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
				$game_system.se_play($data_system.cursor_se)
				@index = [@index + self.page_item_max, @item_max - 1].min
				self.top_row += self.page_row_max
				def draw_actor_hp(actor, x, y, width = 144)
					self.contents.font.name = "Tahoma"
					self.contents.font.size = 20
					self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
					if width - 32 >= 108
						hp_x = x + width - 108
						flag = true
					elsif width - 32 >= 48
						hp_x = x + width - 48
						flag = false
					end
					self.contents.font.color = actor.hp == 0 ? knockout_color :
					actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
					self.contents.draw_text(hp_x + 30, y, 48, 32, actor.hp.to_s, 2)
					if flag
						self.contents.font.color = normal_color
						self.contents.draw_text(hp_x + 30 + 48, y, 12, 32, "/", 1)
						self.contents.draw_text(hp_x + 30 + 60, y, 48, 32, actor.maxhp.to_s)
					end
				end
				#============================================
				def draw_actor_sp(actor, x, y, width = 144)
					self.contents.font.name = "Tahoma"
					self.contents.font.size = 20
					self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
					self.contents.font.color = Color.new(74, 230, 51, 225)
					if width - 32 >= 108
						sp_x = x + width - 108
						flag = true
					elsif width - 32 >= 48
						sp_x = x + width - 48
						flag = false
					end
					self.contents.font.color = actor.sp == 0 ? knockout_color :
					actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
					self.contents.draw_text(sp_x + 30, y, 48, 32, actor.sp.to_s, 2)
					if flag
						self.contents.font.color = normal_color
						self.contents.draw_text(sp_x + 30 + 48, y, 12, 32, "/", 1)
						self.contents.draw_text(sp_x + 30 + 60, y, 48, 32, actor.maxsp.to_s)
					end
				end
				
				def draw_actor_level3(actor, x, y)
					self.contents.font.color = system_color
					self.contents.draw_text(x, y, 32, 32, "Lv")
					self.contents.font.color = normal_color
					self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
				end
				
				def draw_actor_hp2(actor, x, y, width = 144)
				end
			end
			
			if Input.repeat?(Input::L)
				if self.top_row > 0
					$game_system.se_play($data_system.cursor_se)
					@index = [@index - self.page_item_max, 0].max
					self.top_row -= self.page_row_max
				end
			end
		end
		if self.active and @help_window != nil
			update_help
		end
		update_cursor_rect
	end
end

class Window_Command2 < Window_Selectable2
	
	attr_accessor :commands
	
	def initialize(commands)
		super(0, 0, 270, 101)
		self.contents = Bitmap.new(width - 32, height - 32)
		@commands = commands
		@width = width
		@item_max = 6
		@column_max = 3
		@commands = commands
		self.index = 0
	end
end

class Dummy_Window_Command < Window_Base
	
	def initialize
		super(0, 0, 270, 101)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.contents.font.name = "Tahoma"
		self.contents.font.size = 22
		refresh
	end
	
	def refresh
		self.contents.clear
		self.contents.draw_text(-35, 0, 124, 32, $data_system.words.item, 1)
		self.contents.draw_text(50, 0, 124, 32, $data_system.words.skill, 1)
		self.contents.draw_text(145, 0, 124, 32, $data_system.words.equip, 1)
		self.contents.draw_text(-35, 35, 124, 32, "Charger", 1)
		self.contents.draw_text(50, 35, 124, 32, "Sauver", 1)
		self.contents.draw_text(140, 35, 124, 32, "Quitter", 1)
	end
end


class Dummy_Window_Command2 < Window_Base
	
	def initialize
		super(0, 0, 270, 101)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.contents.font.name = "Tahoma"
		self.contents.font.size = 22
		refresh
	end
	
	def refresh
		self.contents.clear
		bitmap = RPG::Cache.icon("034-Item03")
		self.contents.blt(35, 4, bitmap, Rect.new(0, 0, 24, 24))
		
		bitmap = RPG::Cache.icon("050-Skill07")
		self.contents.blt(115, 4, bitmap, Rect.new(0, 0, 24, 24))
		
		bitmap = RPG::Cache.icon("013-Body01")
		self.contents.blt(205, 4, bitmap, Rect.new(0, 0, 24, 24))
		
		bitmap = RPG::Cache.icon("033-Item02")
		self.contents.blt(35, 39, bitmap, Rect.new(0, 0, 24, 24))
		
		bitmap = RPG::Cache.icon("037-Item06")
		self.contents.blt(115, 39, bitmap, Rect.new(0, 0, 24, 24))
		
		bitmap = RPG::Cache.icon("039-Item08")
		self.contents.blt(205, 39, bitmap, Rect.new(0, 0, 24, 24))
	end
end

class Scene_Title
	$map_infos = load_data("Data/MapInfos.rxdata")
	for key in $map_infos.keys
		$map_infos[key] = $map_infos[key].name
	end
end

class Game_Actor < Game_Battler
	def now_exp
		return @exp - @exp_list[@level]
	end
	def next_exp
		return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
	end
	
end

class Game_Map
	
	def name
		$map_infos[@map_id]
	end
	
end

class Window_PlayTime < Window_Base
	
	def initialize
		super(0, 0, 150, 101)
		self.contents = Bitmap.new(width - 32, height - 32)
		refresh
	end
	
	def refresh
		self.contents.clear
		self.contents.font.color = system_color
		self.contents.font.size = 20
		self.contents.draw_text(4, 0, 120, 32, "Temps:")
		@total_sec = Graphics.frame_count / Graphics.frame_rate
		hour = @total_sec / 60 / 60
		min = @total_sec / 60 % 60
		sec = @total_sec % 60
		text = sprintf("d:d:d", hour, min, sec)
		self.contents.font.color = normal_color
		self.contents.draw_text(-15, 32, 120, 32, text, 2)
	end
	
	def update
		super
		if Graphics.frame_count / Graphics.frame_rate != @total_sec
			refresh
		end
	end
end

class Window_Location < Window_Base
	def initialize
		super(0, 0, 220,101)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.contents.font.name = "Tahoma"
		self.contents.font.size = 22
		refresh
	end
	
	def refresh
		bitmap = RPG::Cache.icon("032-Item01")
		self.contents.blt(165, y + 40, bitmap, Rect.new(0, 0, 24, 24))
		cx = contents.text_size($data_system.words.gold).width
		self.contents.font.color = normal_color
		self.contents.font.size = 20
		self.contents.draw_text(44, 40, 120-cx-2, 32, $game_party.gold.to_s, 2)
		self.contents.font.color = system_color
		self.contents.draw_text(164-cx, 40, cx, 32, $data_system.words.gold, 2)
		lx = contents.text_size("Location:").width
		self.contents.draw_text(4, -55, lx, 144, "Location:", 1)
		self.contents.font.color = normal_color
		self.contents.font.size = 20
		self.contents.draw_text(10 + lx, 1, lx + 40, 32, $game_map.name.to_s, 1)
	end
	
end

class Window_GraphicCharacter1 < Window_Base
	def initialize
		super(0, 0, 200,180)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.contents.font.name = "Tahoma"
		self.contents.font.size = 22
		@pose, @frame = 0, 0
		refresh
	end
	
	def refresh
		self.contents.clear
		actor = $game_party.actors[0]
		draw_sprite(25, 55, actor.character_name, actor.character_hue , @pose, @frame)
	end
	
	def frame_update
		@frame == 3 ? @frame = 0 : @frame += 1
		refresh
	end
	
	def update_pose(direction)
		if direction == 0
			@pose == 0 ? @pose = 3 : @pose -= 1
		else
			@pose == 3 ? @pose = 0 : @pose += 1
		end
		refresh
	end
end
class Window_GraphicCharacter2 < Window_Base
	def initialize
		super(0, 0, 200,180)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.contents.font.name = "Tahoma"
		self.contents.font.size = 22
		@pose, @frame = 0, 0
		refresh
	end
	
	def refresh
		self.contents.clear
		if $game_party.actors.size < 2
			self.contents.draw_text(25, 55, 50, 28, "Empty")
		else
			actor = $game_party.actors[1]
			draw_sprite(25, 55, actor.character_name, actor.character_hue , @pose, @frame)
		end
	end
	
	def frame_update
		@frame == 3 ? @frame = 0 : @frame += 1
		refresh
	end
	
	def update_pose(direction)
		if direction == 0
			@pose == 0 ? @pose = 3 : @pose -= 1
		else
			@pose == 3 ? @pose = 0 : @pose += 1
		end
		refresh
	end
end

class Window_Character1 < Window_Base
	
	def initialize
		super(0, 0, 200,180)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.contents.font.name = "Tahoma"
		self.contents.font.size = 22
		@pose, @frame = 0, 0
		refresh
	end
	
	def refresh
		self.contents.clear
		actor = $game_party.actors[0]
		draw_actor_hp(actor, x + 4, y + 55, 144)
		draw_actor_barz(actor, x + 4, y + 81, "horizontal", 160, 4, actor.hp, actor.maxhp, Color.new(102, --200, 160, 0), Color.new(0, 0, 0, 0))
		draw_actor_sp(actor, x + 4, y + 110, 144)
		draw_actor_barz(actor, x + 4, y + 136, "horizontal", 160, 4, actor.sp, actor.maxsp, Color.new(0, 0, 0, 0), Color.new(-102, 160, -200, 0))
		self.contents.font.size = 20
		self.contents.draw_text(x + 50, y - 55, 144, 144, "Classe:")
		draw_actor_class(actor, x + 100, y + 1)
		self.contents.draw_text(x + 50, y - 62, 144, 170, "_____________________")
		self.contents.draw_text(x + 80, y - 30, 144, 144, "Lv:")
		draw_actor_level(actor, x + 95, y + 6)
	end
	
end

class Window_Character2 < Window_Base
	
	def initialize
		super(0, 0, 200,200)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.contents.font.name = "Tahoma"
		self.contents.font.size = 22
		refresh
	end
	
	def refresh
		self.contents.clear
		if $game_party.actors.size < 2
			self.contents.draw_text(25, 55, 50, 28, "Empty")
		else
			actor = $game_party.actors[1]
			draw_actor_hp(actor, x + 4, y + 55, 144)
			draw_actor_barz(actor, x + 4, y + 81, "horizontal", 160, 4, actor.hp, actor.maxhp, Color.new(102, --200, 160, 0), Color.new(0, 0, 0, 0))
			draw_actor_sp(actor, x + 4, y + 110, 144)
			draw_actor_barz(actor, x + 4, y + 136, "horizontal", 160, 4, actor.sp, actor.maxsp, Color.new(0, 0, 0, 0), Color.new(-102, 160, -200, 0))
			self.contents.font.size = 20
			self.contents.draw_text(x + 50, y - 55, 144, 144, "Classe:")
			draw_actor_class(actor, x + 100, y + 1)
			self.contents.draw_text(x + 50, y - 62, 144, 170, "_____________________")
			self.contents.draw_text(x + 80, y - 30, 144, 144, "Lv:")
			draw_actor_level(actor, x + 95, y + 6)
		end
	end
	
end

class Window_Character_Selection2 < Window_Base
	
	def initialize
		super(0, 0, 640, 51)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.visible = false
		self.z = 2000
		refresh
	end
	
	def refresh
		self.contents.clear
		self.contents.font.color = system_color
		cx = contents.text_size("Sélectionnez un personnage.").width
		self.contents.draw_text(145, -6, cx, 32, "Sélectionnez un personnage.", 2)
	end
end

#==============================================================================
# ** Window_Selectable
#------------------------------------------------------------------------------
# This window class contains cursor movement and scroll functions.
#==============================================================================

class Window_Selectable3 < Window_Base
	#--------------------------------------------------------------------------
	# * Public Instance Variables
	#--------------------------------------------------------------------------
	attr_reader :index # cursor position
	attr_reader :help_window # help window
	#--------------------------------------------------------------------------
	# * Object Initialization
	# x : window x-coordinate
	# y : window y-coordinate
	# width : window width
	# height : window height
	#--------------------------------------------------------------------------
	def initialize(x, y, width, height)
		super(x, y, width, height)
		@item_max = 1
		@column_max = 1
		@index = -1
	end
	#--------------------------------------------------------------------------
	# * Set Cursor Position
	# index : new cursor position
	#--------------------------------------------------------------------------
	def index=(index)
		@index = index
		# Update Help Text (update_help is defined by the subclasses)
		if self.active and @help_window != nil
			update_help
		end
		# Update cursor rectangle
		update_cursor_rect
	end
	#--------------------------------------------------------------------------
	# * Get Row Count
	#--------------------------------------------------------------------------
	def row_max
		# Compute rows from number of items and columns
		return (@item_max + @column_max - 1) / @column_max
	end
	#--------------------------------------------------------------------------
	# * Get Top Row
	#--------------------------------------------------------------------------
	def top_row
		# Divide y-coordinate of window contents transfer origin by 1 row
		# height of 32
		return self.oy / 32
	end
	#--------------------------------------------------------------------------
	# * Set Top Row
	# row : row shown on top
	#--------------------------------------------------------------------------
	def top_row=(row)
		# If row is less than 0, change it to 0
		if row < 0
			row = 0
		end
		# If row exceeds row_max - 1, change it to row_max - 1
		if row > row_max - 1
			row = row_max - 1
		end
		# Multiply 1 row height by 32 for y-coordinate of window contents
		# transfer origin
		self.oy = row * 32
	end
	#--------------------------------------------------------------------------
	# * Get Number of Rows Displayable on 1 Page
	#--------------------------------------------------------------------------
	def page_row_max
		# Subtract a frame height of 32 from the window height, and divide it by
		# 1 row height of 32
		return (self.height - 32) / 32
	end
	#--------------------------------------------------------------------------
	# * Get Number of Items Displayable on 1 Page
	#--------------------------------------------------------------------------
	def page_item_max
		# Multiply row count (page_row_max) times column count (@column_max)
		return page_row_max * @column_max
	end
	#--------------------------------------------------------------------------
	# * Set Help Window
	# help_window : new help window
	#--------------------------------------------------------------------------
	def help_window=(help_window)
		@help_window = help_window
		# Update help text (update_help is defined by the subclasses)
		if self.active and @help_window != nil
			update_help
		end
	end
	#--------------------------------------------------------------------------
	# * Update Cursor Rectangle
	#--------------------------------------------------------------------------
	def update_cursor_rect
		# If cursor position is less than 0
		if @index < 0
			self.cursor_rect.empty
			return
		end
		# Get current row
		row = @index / @column_max
		# If current row is before top row
		if row < self.top_row
			# Scroll so that current row becomes top row
			self.top_row = row
		end
		# If current row is more to back than back row
		if row > self.top_row + (self.page_row_max - 1)
			# Scroll so that current row becomes back row
			self.top_row = row - (self.page_row_max - 1)
		end
		# Calculate cursor width
		cursor_width = self.width / @column_max - 32
		# Calculate cursor coordinates
		x = @index % @column_max * (cursor_width + 32)
		y = @index / @column_max * 32 - self.oy
		# Update cursor rectangle
		if $game_party.actors.size < 2
			self.cursor_rect.set(250 + @index * 140, y, 100, 20)
		else
			self.cursor_rect.set(160 + @index * 140, y, 150, 20)
		end
	end
	#--------------------------------------------------------------------------
	# * Frame Update
	#--------------------------------------------------------------------------
	def update
		super
		# If cursor is movable
		if self.active and @item_max > 0 and @index >= 0
			# If pressing down on the directional buttons
			if Input.repeat?(Input::DOWN)
				# If column count is 1 and directional button was pressed down with no
				# repeat, or if cursor position is more to the front than
				# (item count - column count)
				if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
					@index < @item_max - @column_max
					# Move cursor down
					$game_system.se_play($data_system.cursor_se)
					@index = (@index + @column_max) % @item_max
				end
			end
			# If the up directional button was pressed
			if Input.repeat?(Input::UP)
				# If column count is 1 and directional button was pressed up with no
				# repeat, or if cursor position is more to the back than column count
				if (@column_max == 1 and Input.trigger?(Input::UP)) or
					@index >= @column_max
					# Move cursor up
					$game_system.se_play($data_system.cursor_se)
					@index = (@index - @column_max + @item_max) % @item_max
				end
			end
			# If the right directional button was pressed
			if Input.repeat?(Input::RIGHT)
				# If column count is 2 or more, and cursor position is closer to front
				# than (item count -1)
				if @column_max >= 2 and @index < @item_max - 1
					# Move cursor right
					$game_system.se_play($data_system.cursor_se)
					@index += 1
				end
			end
			# If the left directional button was pressed
			if Input.repeat?(Input::LEFT)
				# If column count is 2 or more, and cursor position is more back than 0
				if @column_max >= 2 and @index > 0
					# Move cursor left
					$game_system.se_play($data_system.cursor_se)
					@index -= 1
				end
			end
			# If R button was pressed
			if Input.repeat?(Input::R)
				# If bottom row being displayed is more to front than bottom data row
				if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
					# Move cursor 1 page back
					$game_system.se_play($data_system.cursor_se)
					@index = [@index + self.page_item_max, @item_max - 1].min
					self.top_row += self.page_row_max
				end
			end
			# If L button was pressed
			if Input.repeat?(Input::L)
				# If top row being displayed is more to back than 0
				if self.top_row > 0
					# Move cursor 1 page forward
					$game_system.se_play($data_system.cursor_se)
					@index = [@index - self.page_item_max, 0].max
					self.top_row -= self.page_row_max
				end
			end
		end
		# Update help text (update_help is defined by the subclasses)
		if self.active and @help_window != nil
			update_help
		end
		# Update cursor rectangle
		update_cursor_rect
	end
end

class Window_StatusCharacter1 < Window_Base
	
	def initialize
		super(0, 0, 440,180)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.contents.font.name = "Tahoma"
		self.contents.font.size = 22
		refresh
	end
	
	def refresh
		self.contents.clear
		self.contents.font.color = system_color
		self.contents.font.size = 20
		self.contents.draw_text(215, -63, 144, 144, "Statut:")
		self.contents.draw_text(190, 114, 120, 32, "Expérience:")
		self.contents.draw_text(0, -7, 120, 32, "Nom:")
		actor = @actor
		@actor = $game_party.actors[0]
		draw_actor_name(@actor, x + 55, y - 7)
		draw_actor_state(@actor, 325, -8, 144)
		draw_actor_parameter2(@actor, 0, 15 + 10, 0)
		draw_actor_parameter2(@actor, 0, 15 + 40, 1)
		draw_actor_parameter2(@actor, 0, 15 + 70, 2)
		draw_actor_parameter2(@actor, 0, 15 + 100, 3)
		draw_actor_parameter2(@actor, 190, 15 + 10, 4)
		draw_actor_parameter2(@actor, 190, 15 + 40, 5)
		draw_actor_parameter2(@actor, 190, 15 + 70, 6)
		draw_actor_barz(@actor, 0, 15 + 37, "horizontal", 168, 1, @actor.atk, 999, Color.new(242, 2, 6, 255), Color.new(253, 53, 56, 255))
		draw_actor_barz(@actor, 0, 15 + 67, "horizontal", 168, 1, @actor.pdef, 999, Color.new(228, 253, 48, 255), Color.new(238, 254, 124, 255))
		draw_actor_barz(@actor, 0, 15 + 97, "horizontal", 168, 1, @actor.mdef, 999, Color.new(229, 78, 253, 255), Color.new(237, 134, 254, 255))
		draw_actor_barz(@actor, 0, 15 + 127, "horizontal", 168, 1, @actor.str, 999, Color.new(254, 209, 154, 255), Color.new(253, 163, 53, 255))
		draw_actor_barz(@actor, 190, 15 + 37, "horizontal", 168, 1, @actor.dex, 999, Color.new(222, 222, 222, 255), Color.new(255, 255, 255, 255))
		draw_actor_barz(@actor, 190, 15 + 67, "horizontal", 168, 1, @actor.agi, 999, Color.new(8, 160, 253, 255), Color.new(119, 203, 254, 255))
		draw_actor_barz(@actor, 190, 15 + 97, "horizontal", 168, 1, @actor.int, 999, Color.new(33, 253, 86, 255), Color.new(124, 254, 155, 255))
		draw_actor_barz(@actor, 190, 15 + 127, "horizontal", 168, 1, @actor.now_exp.to_f, @actor.next_exp, Color.new(-255, 200, -86, 255), Color.new(-168, -157, 184, 255))
	end
	
end

class Window_StatusCharacter2 < Window_Base
	
	def initialize
		super(0, 0, 440,200)
		self.contents = Bitmap.new(width - 32, height - 32)
		self.contents.font.name = "Tahoma"
		self.contents.font.size = 22
		refresh
	end
	
	def refresh
		self.contents.clear
		if $game_party.actors.size < 2
			self.contents.draw_text(25, 55, 50, 28, "Empty")
		else
			self.contents.font.color = system_color
			self.contents.font.size = 20
			self.contents.draw_text(215, -63, 144, 144, "Statut:")
			self.contents.draw_text(190, 114, 120, 32, "Expérience:")
			self.contents.draw_text(0, -7, 120, 32, "Nom:")
			actor = @actor
			@actor = $game_party.actors[1]
			draw_actor_name(@actor, x + 55, y - 7)
			draw_actor_state(@actor, 325, -8, 144)
			draw_actor_parameter2(@actor, 0, 15 + 10, 0)
			draw_actor_parameter2(@actor, 0, 15 + 40, 1)
			draw_actor_parameter2(@actor, 0, 15 + 70, 2)
			draw_actor_parameter2(@actor, 0, 15 + 100, 3)
			draw_actor_parameter2(@actor, 190, 15 + 10, 4)
			draw_actor_parameter2(@actor, 190, 15 + 40, 5)
			draw_actor_parameter2(@actor, 190, 15 + 70, 6)
			draw_actor_barz(@actor, 0, 15 + 37, "horizontal", 168, 1, @actor.atk, 999, Color.new(242, 2, 6, 255), Color.new(253, 53, 56, 255))
			draw_actor_barz(@actor, 0, 15 + 67, "horizontal", 168, 1, @actor.pdef, 999, Color.new(228, 253, 48, 255), Color.new(238, 254, 124, 255))
			draw_actor_barz(@actor, 0, 15 + 97, "horizontal", 168, 1, @actor.mdef, 999, Color.new(229, 78, 253, 255), Color.new(237, 134, 254, 255))
			draw_actor_barz(@actor, 0, 15 + 127, "horizontal", 168, 1, @actor.str, 999, Color.new(254, 209, 154, 255), Color.new(253, 163, 53, 255))
			draw_actor_barz(@actor, 190, 15 + 37, "horizontal", 168, 1, @actor.dex, 999, Color.new(222, 222, 222, 255), Color.new(255, 255, 255, 255))
			draw_actor_barz(@actor, 190, 15 + 67, "horizontal", 168, 1, @actor.agi, 999, Color.new(8, 160, 253, 255), Color.new(119, 203, 254, 255))
			draw_actor_barz(@actor, 190, 15 + 97, "horizontal", 168, 1, @actor.int, 999, Color.new(33, 253, 86, 255), Color.new(124, 254, 155, 255))
			draw_actor_barz(@actor, 190, 15 + 127, "horizontal", 168, 1, @actor.now_exp.to_f, @actor.next_exp, Color.new(-255, 200, -86, 255), Color.new(-168, -157, 184, 255))
		end
	end
	
end

class Scene_Load2 < Scene_File
	
	def initialize
		$game_temp = Game_Temp.new
		$game_temp.last_file_index = 0
		latest_time = Time.at(0)
		for i in 0..3
			filename = make_filename(i)
			if FileTest.exist?(filename)
				file = File.open(filename, "r")
				if file.mtime > latest_time
					latest_time = file.mtime
					$game_temp.last_file_index = i
				end
				file.close
			end
		end
		super("Choisissez un bloc.")
	end
	
	def on_decision(filename)
		unless FileTest.exist?(filename)
			$game_system.se_play($data_system.buzzer_se)
			return
		end
		$game_system.se_play($data_system.load_se)
		file = File.open(filename, "rb")
		read_save_data(file)
		file.close
		$game_system.bgm_play($game_system.playing_bgm)
		$game_system.bgs_play($game_system.playing_bgs)
		$game_map.update
		$scene = Scene_Map.new
	end
	
	def on_cancel
		$game_system.se_play($data_system.cancel_se)
		$scene = Scene_Menu.new(3)
	end
	
	def read_save_data(file)
		characters = Marshal.load(file)
		Graphics.frame_count = Marshal.load(file)
		$game_system = Marshal.load(file)
		$game_switches = Marshal.load(file)
		$game_variables = Marshal.load(file)
		$game_self_switches = Marshal.load(file)
		$game_screen = Marshal.load(file)
		$game_actors = Marshal.load(file)
		$game_party = Marshal.load(file)
		$game_troop = Marshal.load(file)
		$game_map = Marshal.load(file)
		$game_player = Marshal.load(file)
		
		if $game_system.magic_number != $data_system.magic_number
			$game_map.setup($game_map.map_id)
			$game_player.center($game_player.x, $game_player.y)
		end
		$game_party.refresh
	end
end

class Window_EquipLeft2 < Window_Base
	
	def initialize(actor)
		super(0, 64, 272, 192)
		self.contents = Bitmap.new(width - 32, height - 32)
		@actor = actor
		refresh
	end
	
	def refresh
		self.contents.clear
		draw_actor_name(@actor, 4, 0)
		draw_actor_level3(@actor, 4, 32)
		draw_actor_parameter(@actor, 4, 64, 0)
		draw_actor_parameter(@actor, 4, 96, 1)
		draw_actor_parameter(@actor, 4, 128, 2)
		if @new_atk != nil
			self.contents.font.color = system_color
			self.contents.draw_text(160, 64, 40, 32, "->", 1)
			self.contents.font.color = normal_color
			self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
		end
		if @new_pdef != nil
			self.contents.font.color = system_color
			self.contents.draw_text(160, 96, 40, 32, "->", 1)
			self.contents.font.color = normal_color
			self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
		end
		if @new_mdef != nil
			self.contents.font.color = system_color
			self.contents.draw_text(160, 128, 40, 32, "->", 1)
			self.contents.font.color = normal_color
			self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
		end
	end
	
	def set_new_parameters(new_atk, new_pdef, new_mdef)
		if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef
			@new_atk = new_atk
			@new_pdef = new_pdef
			@new_mdef = new_mdef
			refresh
		end
	end
end

class Window_EquipRight2 < Window_Selectable
	
	def initialize(actor)
		super(272, 64, 368, 192)
		self.contents = Bitmap.new(width - 32, height - 32)
		@actor = actor
		refresh
		self.index = 0
	end
	
	def item
		return @data[self.index]
	end
	
	def refresh
		self.contents.clear
		@data = []
		@data.push($data_weapons[@actor.weapon_id])
		@data.push($data_armors[@actor.armor1_id])
		@data.push($data_armors[@actor.armor2_id])
		@data.push($data_armors[@actor.armor3_id])
		@data.push($data_armors[@actor.armor4_id])
		@item_max = @data.size
		self.contents.font.color = system_color
		self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon)
		self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor1)
		self.contents.draw_text(4, 32 * 2, 92, 32, $data_system.words.armor2)
		self.contents.draw_text(4, 32 * 3, 92, 32, $data_system.words.armor3)
		self.contents.draw_text(5, 32 * 4, 92, 32, $data_system.words.armor4)
		draw_item_name(@data[0], 92, 32 * 0)
		draw_item_name(@data[1], 92, 32 * 1)
		draw_item_name(@data[2], 92, 32 * 2)
		draw_item_name(@data[3], 92, 32 * 3)
		draw_item_name(@data[4], 92, 32 * 4)
	end
	
	def update_help
		@help_window.set_text(self.item == nil ? "" : self.item.description)
	end
end

class Window_Character_Selection1 < Window_Selectable3
	
	attr_accessor :commands
	
	def initialize(commands)
		super(0, 50, 640, 50)
		self.contents = Bitmap.new(width - 32, height - 32)
		@commands = commands
		@width = width
		if $game_party.actors.size < 2
			@item_max = 1
			@column_max = 1
		else
			@item_max = 2
			@column_max =2
		end
		@commands = 2
		self.visible = false
		self.active = false
		self.index = -1
		self.z = 2000
		refresh
	end
	
	
	def refresh
		self.contents.clear
		self.contents.font.color = system_color
		if $game_party.actors.size < 2
			self.contents.draw_text(180, -6, 144, 32, $game_party.actors[0].name, 2)
		else
			self.contents.draw_text(120, -6, 144, 32, $game_party.actors[0].name, 2)
			self.contents.draw_text(240, -6, 144, 32, $game_party.actors[1].name, 2)
		end
	end
end

class Scene_Equip2
	
	def initialize(actor_index = 0, equip_index = 0)
		@actor_index = actor_index
		@equip_index = equip_index
	end
	
	def main
		@actor = $game_party.actors[@actor_index]
		@help_window = Window_Help.new
		@left_window = Window_EquipLeft2.new(@actor)
		@right_window = Window_EquipRight2.new(@actor)
		@item_window1 = Window_EquipItem.new(@actor, 0)
		@item_window2 = Window_EquipItem.new(@actor, 1)
		@item_window3 = Window_EquipItem.new(@actor, 2)
		@item_window4 = Window_EquipItem.new(@actor, 3)
		@item_window5 = Window_EquipItem.new(@actor, 4)
		@right_window.help_window = @help_window
		@item_window1.help_window = @help_window
		@item_window2.help_window = @help_window
		@item_window3.help_window = @help_window
		@item_window4.help_window = @help_window
		@item_window5.help_window = @help_window
		@right_window.index = @equip_index
		refresh
		Graphics.transition
		loop do
			Graphics.update
			Input.update
			update
			if $scene != self
				break
			end
		end
		Graphics.freeze
		@help_window.dispose
		@left_window.dispose
		@right_window.dispose
		@item_window1.dispose
		@item_window2.dispose
		@item_window3.dispose
		@item_window4.dispose
		@item_window5.dispose
	end
	
	def refresh
		@item_window1.visible = (@right_window.index == 0)
		@item_window2.visible = (@right_window.index == 1)
		@item_window3.visible = (@right_window.index == 2)
		@item_window4.visible = (@right_window.index == 3)
		@item_window5.visible = (@right_window.index == 4)
		item1 = @right_window.item
		case @right_window.index
		when 0
			@item_window = @item_window1
		when 1
			@item_window = @item_window2
		when 2
			@item_window = @item_window3
		when 3
			@item_window = @item_window4
		when 4
			@item_window = @item_window5
		end
		
		if @right_window.active
			@left_window.set_new_parameters(nil, nil, nil)
		end
		if @item_window.active
			item2 = @item_window.item
			last_hp = @actor.hp
			last_sp = @actor.sp
			@actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
			new_atk = @actor.atk
			new_pdef = @actor.pdef
			new_mdef = @actor.mdef
			@actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
			@actor.hp = last_hp
			@actor.sp = last_sp
			@left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
		end
	end
	
	def update
		@left_window.update
		@right_window.update
		@item_window.update
		refresh
		if @right_window.active
			update_right
			return
		end
		
		if @item_window.active
			update_item
			return
		end
	end
	
	def update_right
		if Input.trigger?(Input::B)
			$game_system.se_play($data_system.cancel_se)
			$scene = Scene_Menu.new(2)
			return
		end
		
		if Input.trigger?(Input::C)
			if @actor.equip_fix?(@right_window.index)
				$game_system.se_play($data_system.buzzer_se)
				return
			end
			
			$game_system.se_play($data_system.decision_se)
			@right_window.active = false
			@item_window.active = true
			@item_window.index = 0
			return
		end
		
		if Input.trigger?(Input::R)
			$game_system.se_play($data_system.cursor_se)
			@actor_index += 1
			@actor_index %= $game_party.actors.size
			$scene = Scene_Equip2.new(@actor_index, @right_window.index)
			return
		end
		
		if Input.trigger?(Input::L)
			$game_system.se_play($data_system.cursor_se)
			@actor_index += $game_party.actors.size - 1
			@actor_index %= $game_party.actors.size
			$scene = Scene_Equip2.new(@actor_index, @right_window.index)
			return
		end
	end
	
	def update_item
		if Input.trigger?(Input::B)
			$game_system.se_play($data_system.cancel_se)
			@right_window.active = true
			@item_window.active = false
			@item_window.index = -1
			return
		end
		
		if Input.trigger?(Input::C)
			$game_system.se_play($data_system.equip_se)
			item = @item_window.item
			@actor.equip(@right_window.index, item == nil ? 0 : item.id)
			@right_window.active = true
			@item_window.active = false
			@item_window.index = -1
			@right_window.refresh
			@item_window.refresh
			return
		end
	end
end

class Window_Graphic1 < Window_Base
	
	def initialize
		super(0, 0, 280, 200)
		self.contents = Bitmap.new(width - 32, height - 32)
		refresh
	end
	
	def refresh
		self.contents.clear
		actor = $game_party.actors[0]
		draw_actor_battler(actor, x + 130, y + 200)
	end
end

class Window_Graphic2 < Window_Base
	
	def initialize
		super(0, 0, 280, 220)
		self.contents = Bitmap.new(width - 32, height - 32)
		refresh
	end
	
	def refresh
		self.contents.clear
		if $game_party.actors.size < 2
			self.contents.clear
		else
			actor = $game_party.actors[1]
			draw_actor_battler(actor, x + 130, y + 200)
		end
	end
end

class Window_SkillStatus < Window_Base
	
	def initialize(actor)
		super(0, 64, 640, 64)
		self.contents = Bitmap.new(width - 32, height - 32)
		@actor = actor
		refresh
	end
	
	def refresh
		self.contents.clear
		draw_actor_name(@actor, 0, 0)
		draw_actor_state(@actor, 150, 0)
		draw_actor_hp2(@actor, 270, 0)
		draw_actor_sp2(@actor, 440, 0)
	end
end

class Scene_Skill2
	
	def initialize(actor_index = 0, equip_index = 0)
		@actor_index = actor_index
	end
	
	def main
		@actor = $game_party.actors[@actor_index]
		@help_window = Window_Help.new
		@status_window = Window_SkillStatus.new(@actor)
		@skill_window = Window_Skill.new(@actor)
		@skill_window.help_window = @help_window
		@target_window = Window_Target.new
		@target_window.visible = false
		@target_window.active = false
		Graphics.transition
		loop do
			Graphics.update
			Input.update
			update
			if $scene != self
				break
			end
		end
		Graphics.freeze
		@help_window.dispose
		@status_window.dispose
		@skill_window.dispose
		@target_window.dispose
	end
	
	def update
		@help_window.update
		@status_window.update
		@skill_window.update
		@target_window.update
		if @skill_window.active
			update_skill
			return
		end
		
		if @target_window.active
			update_target
			return
		end
	end
	
	def update_skill
		if Input.trigger?(Input::B)
			$game_system.se_play($data_system.cancel_se)
			$scene = Scene_Menu.new(1)
			return
		end
		
		if Input.trigger?(Input::C)
			@skill = @skill_window.skill
			if @skill == nil or not @actor.skill_can_use?(@skill.id)
				$game_system.se_play($data_system.buzzer_se)
				return
			end
			$game_system.se_play($data_system.decision_se)
			
			if @skill.scope >= 3
				@skill_window.active = false
				@target_window.x = (@skill_window.index + 1) % 2 * 304
				@target_window.visible = true
				@target_window.active = true
				if @skill.scope == 4 || @skill.scope == 6
					@target_window.index = -1
				elsif @skill.scope == 7
					@target_window.index = @actor_index - 10
				else
					@target_window.index = 0
				end
			else
				if @skill.common_event_id > 0
					$game_temp.common_event_id = @skill.common_event_id
					$game_system.se_play(@skill.menu_se)
					@actor.sp -= @skill.sp_cost
					@status_window.refresh
					@skill_window.refresh
					@target_window.refresh
					$scene = Scene_Map.new
					return
				end
			end
			return
		end
		if Input.trigger?(Input::R)
			$game_system.se_play($data_system.cursor_se)
			@actor_index += 1
			@actor_index %= $game_party.actors.size
			$scene = Scene_Skill.new(@actor_index)
			return
		end
		
		if Input.trigger?(Input::L)
			$game_system.se_play($data_system.cursor_se)
			@actor_index += $game_party.actors.size - 1
			@actor_index %= $game_party.actors.size
			$scene = Scene_Skill.new(@actor_index)
			return
		end
	end
	
	def update_target
		if Input.trigger?(Input::B)
			$game_system.se_play($data_system.cancel_se)
			@skill_window.active = true
			@target_window.visible = false
			@target_window.active = false
			return
		end
		
		if Input.trigger?(Input::C)
			unless @actor.skill_can_use?(@skill.id)
				$game_system.se_play($data_system.buzzer_se)
				return
			end
			
			if @target_window.index == -1
				used = false
				for i in $game_party.actors
					used |= i.skill_effect(@actor, @skill)
				end
			end
			
			if @target_window.index <= -2
				target = $game_party.actors[@target_window.index + 10]
				used = target.skill_effect(@actor, @skill)
			end
			
			if @target_window.index >= 0
				target = $game_party.actors[@target_window.index]
				used = target.skill_effect(@actor, @skill)
			end
			
			if used
				$game_system.se_play(@skill.menu_se)
				@actor.sp -= @skill.sp_cost
				@status_window.refresh
				@skill_window.refresh
				@target_window.refresh
				if $game_party.all_dead?
					$scene = Scene_Gameover.new
					return
				end
				if @skill.common_event_id > 0
					$game_temp.common_event_id = @skill.common_event_id
					$scene = Scene_Map.new
					return
				end
			end
			unless used
				$game_system.se_play($data_system.buzzer_se)
			end
			return
		end
	end
end


class Scene_Menu
	
	def initialize(menu_index = 0)
		@menu_index = menu_index
	end
	
	def main
		@update_frame = 0
		
		@window_location = Window_Location.new
		@window_location.x =420
		
		@window_character_selection1 = Window_Character_Selection1.new(@commands)
		@window_character_selection1.y = 50
		
		@window_character_selection2 = Window_Character_Selection2 .new
		
		
		@window_character1_graphic = Window_GraphicCharacter1.new
		@window_character1_graphic.y =100
		@window_character1_graphic.frame_update
		@window_character1_graphic.opacity = 0
		@window_character1_graphic.back_opacity = 0
		
		@window_character2_graphic = Window_GraphicCharacter2.new
		@window_character2_graphic.y =280
		@window_character2_graphic.frame_update
		@window_character2_graphic.opacity = 0
		@window_character2_graphic.back_opacity = 0
		
		@window_character1 = Window_Character1.new
		@window_character1.y =100
		
		@window_character2 = Window_Character2.new
		@window_character2.y =280
		
		@window_status_character1 = Window_StatusCharacter1.new
		@window_status_character1.x =200
		@window_status_character1.y =100
		
		@window_status_character2 = Window_StatusCharacter2.new
		@window_status_character2.x =200
		@window_status_character2.y =280
		
		@playtime_window = Window_PlayTime.new
		@playtime_window.x = 270
		
		@graphic1 = Window_Graphic1.new
		@graphic1.x = 240
		@graphic1.y = 92
		@graphic1.z = 501
		@graphic1.opacity = 0
		@graphic1.back_opacity = 0
		@graphic1.contents_opacity = 100
		
		@graphic2 = Window_Graphic2.new
		@graphic2.x = 240
		@graphic2.y = 272
		@graphic2.z = 501
		@graphic2.opacity = 0
		@graphic2.back_opacity = 0
		@graphic2.contents_opacity = 100
		
		@command_window = Window_Command2.new(["Objets", "Compétences", "Equiper", "Charger", "Sauver", "Quitter"])
		@command_window.index = @menu_index
		
		@dummy_window = Dummy_Window_Command.new
		@dummy_window.z = 500
		@dummy_window.opacity = 0
		@dummy_window.back_opacity = 0
		
		@dummy_window_icons = Dummy_Window_Command2.new
		@dummy_window_icons.opacity = 0
		@dummy_window_icons.back_opacity = 0
		@dummy_window_icons.contents_opacity = 100
		
		Graphics.transition
		loop do
			Graphics.update
			Input.update
			@update_frame += 1
			if @update_frame == 5
				@update_frame = 0
				@window_character2_graphic.frame_update
				@window_character1_graphic.frame_update
			end
			
			update
			if $scene != self
				break
			end
		end
		
		Graphics.freeze
		@window_location.dispose
		@window_character1.dispose
		@window_status_character1.dispose
		@window_character2.dispose
		@window_status_character2.dispose
		@playtime_window.dispose
		@command_window.dispose
		@graphic1.dispose
		@graphic2.dispose
		@dummy_window.dispose
		@dummy_window_icons.dispose
		@window_character1_graphic.dispose
		@window_character2_graphic.dispose
		@window_character_selection1.dispose
		@window_character_selection2.dispose
	end
	
	def update
		@playtime_window.update
		@command_window.update
		@window_character_selection1.update
		
		if @command_window.active
			update_command
			return
		end
		
		if @window_character_selection1.active
			update_character
			return
		end
	end
	
	def update_command
		if Input.trigger?(Input::B)
			$game_system.se_play($data_system.cancel_se)
			$scene = Scene_Map.new
			return
		end
		
		if Input.trigger?(Input::C)
			if $game_party.actors.size == 0 and @command_window.index < 4
				$game_system.se_play($data_system.buzzer_se)
				return
			end
			case @command_window.index
			when 0
				$game_system.se_play($data_system.decision_se)
				$scene = Scene_Item.new
			when 1
				$game_system.se_play($data_system.decision_se)
				@window_character_selection1.visible = true
				@window_character_selection2.visible = true
				@window_character_selection1.active = true
				@window_character_selection1.index = 0
				@command_window.active = false
			when 2
				$game_system.se_play($data_system.decision_se)
				@window_character_selection1.visible = true
				@window_character_selection1.active = true
				@window_character_selection2.visible = true
				@window_character_selection1.index = 0
				@command_window.active = false
			when 3
				$game_system.se_play($data_system.decision_se)
				$scene = Scene_Load2.new
			when 4
				if $game_system.save_disabled
					$game_system.se_play($data_system.buzzer_se)
					return
				end
				$game_system.se_play($data_system.decision_se)
				$scene = Scene_Save.new
			when 5
				$game_system.se_play($data_system.decision_se)
				$scene = Scene_End.new
			end
			return
		end
	end
	
	def update_character
		if Input.trigger?(Input::B)
			$game_system.se_play($data_system.cancel_se)
			@command_window.active = true
			@window_character_selection1.visible = false
			@window_character_selection1.active = false
			@window_character_selection2.visible = false
			@window_character_selection1.index = -1
			return
		end
		
		if Input.trigger?(Input::C)
			if $game_party.actors.size == 0 and @command_window.index < 4
				$game_system.se_play($data_system.buzzer_se)
				return
			end
			case @command_window.index
			when 1
				$game_system.se_play($data_system.decision_se)
				case @window_character_selection1.index
				when 0
					$scene = Scene_Skill2.new(@window_character_selection1.index)
				when 1
					$scene = Scene_Skill2.new(@window_character_selection1.index)
				end
			when 2
				$game_system.se_play($data_system.decision_se)
				case @window_character_selection1.index
				when 0
					$scene = Scene_Equip2.new(@window_character_selection1.index)
				when 1
					$scene = Scene_Equip2.new(@window_character_selection1.index)
				end
			end
			return
		end
	end
end

 

 

Edited by Dilos
Aggiornato Tag Code.

Setta dei makeratori originali™ - SMO - #settadeimakeratorioriginali

 

 

<DarK-SePHiRoTH-> raga sono mancato un anno ma a quanto vedo mahun non ha ancora imparato a disegnare :O

 

<cip_e_ciop> picasso ha fatto per la pittura ciò che mahun ha fatto per i fumetti

Link to comment
Share on other sites

carino °_°

il link giusto dell'immagine è questo comunque

http://img134.imageshack.us/img134/4605/cmsdh5.jpg

Mammina... perchè mettono papà sotto terra?

 

Ehi, signori, perchè lo mettete sotto terra?

 

No! Non voglio! Se lo fate...

 

...il mio papà non può andare al lavoro!

 

Papà ha detto che deve lavorare tanto!

 

No! Non lo mettete sotto terra!

 

 

 

PAPA'!!

Link to comment
Share on other sites

  • 1 month later...
  • 2 years later...

Ciao scusate ma ho 2 problemi

1- Il Playtime nn mi si vede

2- Quando seleziono le skille e gli equip mi dà 2 scelte ma le scritte nn c sn

 

Kiedo consigli cm sistemare...

http://i32.tinypic.com/iwt5hy.gifhttp://i36.tinypic.com/2nk6t1y.jpghttp://img385.imageshack.us/img385/5469/ichigoot4.gif
http://i42.tinypic.com/2mzmtcp.jpghttp://i39.tinypic.com/2vcufjb.jpg

Per ottenere qualcosa è necessario dare in cambio qualcos'altro che abbia il medesimo valore.

http://i43.tinypic.com/2yv1d8w.png

Link to comment
Share on other sites

Mi quoto:

Il problema dei font si verifica con alcune versioni di RPG Maker XP, spesso si risolve piazzando queste due righe all'interno del Main, sotto begin:

$defaultfonttype = $fontface = $fontname = Font.default_name = "Arial"
$defaultfontsize = $fontsize = Font.default_size = 22

Credo che dovrebbe essere questo il tuo problema.

Link to comment
Share on other sites

  • 2 months later...
Molto molto bello ... esattamente quello che mi serviva

 

Hai bisogno di characters o di dare una sistematina alla tua mappa? La pixel art non è il tuo forte? Vieni a visitare "La bottega di NAK"

 

Ti è piaciuta la DEMO?

SI: se vuoi farne parte clicca QUI

NO: dimmi la tua via PM ... ogni suggerimento o critica è prezioso!!!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...