Jump to content
Rpg²S Forum

*Object Development System


makgyver
 Share

Recommended Posts

Descrizione:

Avete presente il junction di FF8?! beh è una cosa così vi spiego:
Voi abbinate a un certo parametro un oggetto e questo fa aumentare o diminuire il suo valore in base al suo "potere" ke voi indicate. In più viene data la possibilità di creare delle combinazioni ovvero oltre all'effetto dei singoli oggetti vengono modificati i parametri anke da una combinazione di loro. Es avete in HP, MP, ATT una pozione e nelle combinazioni avete ke 3pozioni in "junction"(kiamiamolo così) fanno aumentare tutti i parametri di 1. E questo sempre lo decidete voi mettendo i valori, ke sono indicati nel codice, come volete.


Autore:

IO (makgyver)

Screen:
http://i34.tinypic.com/qxrpms.jpg

Codice:

 

#Script by makgyver

#$ID_RUNE = { id_oggetto_db=>quantitࡩn possesso dal party}
$ID_RUNE = { 1=>0, 2=>0, 3=>0 }

##############
# Parametri
# Alcune costanti utili
########################
module Parametri
	FONT_NAME = "Arial"
	FONT_SIZE = 24
	FONT_COLOR_NORMAL = Color.new(255,255,255)
	FONT_COLOR_INVERT = Color.new(0,0,0)
	FONT_COLOR_CRITIC = Color.new(0,255,0)
end

###################
# Rune Development
###################
module Rune_Development
	#Rune_effect = { id_oggetto => {parametro => percentuale potenziamento}}
	Rune_effect =
	{
	1 => {"hp"=>100,"mp"=>10,"str"=>-24,"int"=>25,"agi"=>75,"dex"=>0,"atk"=>10,"pdef"=>20,"mdef"=>25,"eva"=>0},
	2 => {"hp"=>200,"mp"=>400,"str"=>15,"int"=>9,"agi"=>13,"dex"=>10,"atk"=>60,"pdef"=>20,"mdef"=>58,"eva"=>0},
	3 => {"hp"=>300,"mp"=>50,"str"=>450,"int"=>19,"agi"=>2,"dex"=>8,"atk"=>200,"pdef"=>35,"mdef"=>80,"eva"=>10}
	}
	
	Rune_effect.default =
	{
	"hp"=>0,"mp"=>0,"str"=>0,"int"=>0,"agi"=>0,"dex"=>0,"atk"=>0,"pdef"=>0,"mdef"=>0,"eva"=>0
	}
	
	#Rune_Combination = { nome combinazione => {parametro => percentuale potenziamento}}
	Rune_Combination =
	{
	"3red" => {"hp"=>100,"mp"=>100,"str"=>-204,"int"=>250,"agi"=>705,"dex"=>0,"atk"=>100,"pdef"=>200,"mdef"=>250,"eva"=>0},
	"3yellow" => {"hp"=>25,"mp"=>40,"str"=>15,"int"=>9,"agi"=>13,"dex"=>10,"atk"=>60,"pdef"=>20,"mdef"=>58,"eva"=>0},
	"3green" => {"hp"=>15,"mp"=>50,"str"=>45,"int"=>19,"agi"=>2,"dex"=>8,"atk"=>20,"pdef"=>35,"mdef"=>80,"eva"=>10},
	"3blue" => {"hp"=>-15,"mp"=>50,"str"=>-45,"int"=>19,"agi"=>2,"dex"=>8,"atk"=>-20,"pdef"=>35,"mdef"=>-80,"eva"=>10},
	"allcolor" => {"hp"=>-15,"mp"=>50,"str"=>-45,"int"=>19,"agi"=>2,"dex"=>8,"atk"=>-20,"pdef"=>35,"mdef"=>-80,"eva"=>10}
	}
	
	Rune_Combination.default =
	{
	"hp"=>0,"mp"=>0,"str"=>0,"int"=>0,"agi"=>0,"dex"=>0,"atk"=>0,"pdef"=>0,"mdef"=>0,"eva"=>0
	}
	
	#Rune_object = { id_oggetto => [parametro, colore]}
	# il parametro non serve a niente ma mettetelo cmq e il colore serve per le combinazioni
	Rune_object =
	{
	1 => ["hp", "red"],
	2 => ["hp", "yellow"],
	3 => ["hp", "blue"]
	}
end

class Window_Selectable2 < Window_Base
	#--------------------------------------------------------------------------
	# ? Apri una variabile istanza
	#--------------------------------------------------------------------------
	attr_reader :index # Posizione del cursore
	attr_reader :help_window # Finestra di aiuto
	#--------------------------------------------------------------------------
	# ? Inizializzazione dell'oggetto
	# x : Coordinate X della finestra
	# y : Coordinate Y della finestra
	# width : Larghezza della finestra
	# height : Altezza della finestra
	#--------------------------------------------------------------------------
	def initialize(x, y, width, height)
		super(x, y, width, height)
		@item_max = 1
		@column_max = 1
		@index = -1
	end
	#--------------------------------------------------------------------------
	# ? Sistemazione della posizione del cursore
	# index : Nuova posizione del cursore
	#--------------------------------------------------------------------------
	def index=(index)
		@index = index
		# Viene aggiornato il testo di aiuto
		# (update_help viene definito dal posto successivo)
		if self.active and @help_window != nil
			update_help
		end
		# Viene aggiornato il rettangolo del cursore
		update_cursor_rect
	end
	#--------------------------------------------------------------------------
	# ? Acquisizione del numero di linee
	#--------------------------------------------------------------------------
	def row_max
		# Il numero di linee viene elaborato dal numero di oggetti e il numero
		# delle sequenze
		return (@item_max + @column_max - 1) / @column_max
	end
	#--------------------------------------------------------------------------
	# ? Acquisizione di una linea superiore
	#--------------------------------------------------------------------------
	def top_row
		# Origine di trasmissione dei contenuti di una finestra:
		# Sulle coordinate Y, l'altezza di una linea viene divisa per 32
		return self.oy / 20
	end
	#--------------------------------------------------------------------------
	# ? Sistemazione di una linea superiore
	# row : La linea viene mostrata in cima
	#--------------------------------------------------------------------------
	def top_row=(row)
		# Quando row 衭inore di zero, allora correggi ed inserisci 0
		if row < 0
			row = 0
		end
		# Quando row 衭aggiore di row_max - 1, poni row = row_max - 1
		if row > row_max - 1
			row = row_max - 1
		end
		# row Altezza di una linea. 衬'origine di trasmissione dei contenuti
		# di una finestra. Si considera come coordinata Y
		self.oy = row * 20
	end
	#--------------------------------------------------------------------------
	# ? 1 Acquisizione del numero di linee che possono essere mostrate
	# su una pagina
	#--------------------------------------------------------------------------
	def page_row_max
		# Altezza della finestra del frame. Si sottrare 32 all'altezza di
		# una linea e si divide per 32
		return (self.height - 20) / 20
	end
	#--------------------------------------------------------------------------
	# ? 1 Acquisizione del numero di oggetti che possono essere mostrati
	# su una pagina
	#--------------------------------------------------------------------------
	def page_item_max
		# Numero di linee, page_row_max il numero di sequenze per
		# le colonne @column_max
		return page_row_max * @column_max
	end
	#--------------------------------------------------------------------------
	# ? Sistemazione della finestra di aiuto
	# help_window : Nuova finestra di aiuto
	#--------------------------------------------------------------------------
	def help_window=(help_window)
		@help_window = help_window
		# Il testo di aiuto viene aggiornato
		# (update_help viene definito dal posto successivo)
		if self.active and @help_window != nil
			update_help
		end
	end
	#--------------------------------------------------------------------------
	# ? Aggiornamento del rettangolo del cursore
	#--------------------------------------------------------------------------
	def update_cursor_rect
		# Posizione del cursore. Quando 衭inore di 0...
		if @index < 0
			self.cursor_rect.empty
			return
		end
		# La linea corrente viene acquisita
		row = @index / @column_max
		# Nel caso di prima, la linea corrente viene mostrata in cima
		if row < self.top_row
			# Scorre in modo tale che la linea corrente vada in cima
			self.top_row = row
		end
		# Nel caso precedente, la linea corrente viene mostrata fino alla
		# fine della coda
		if row > self.top_row + (self.page_row_max - 1)
			# Scorre in modo tale che la linea corrente vada in coda
			self.top_row = row - (self.page_row_max - 1)
		end
		# Viene calcolata l'ampiezza del cursore
		cursor_width = self.width / @column_max - 32
		# Vengono calcolate le coordinate del cursore
		x = @index % @column_max * (cursor_width + 20)
		y = @index / @column_max * 20 - self.oy+5
		# Viene aggiornato il rettangolo del cursore
		self.cursor_rect.set(x, y, cursor_width, 20)
	end
	#--------------------------------------------------------------------------
	# ? Aggiornamento frame
	#--------------------------------------------------------------------------
	def update
		super
		# Quando 衮ello stato in cui si muove il cursore...
		if self.active and @item_max > 0 and @index >= 0
			# Quando il pulsante viene premuto nella direzione bassa...
			if Input.repeat?(Input::DOWN)
				# Numero di squenze: 1 nel caso in cui non viene ripetuta su una
				# direzione del pulsante
				# Nel caso precedente, la posizione del cursore viene data da:
				# (Numero di sequenze - Numero degli oggetti)
				if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
					@index < @item_max - @column_max
					# Il cursore viene mosso in basso
					$game_system.se_play($data_system.cursor_se)
					@index = (@index + @column_max) % @item_max
				end
			end
			# Quando il pulsante viene premuto nella direzione alta...
			if Input.repeat?(Input::UP)
				# Numero di squenze: 1 nel caso in cui non viene ripetuta su una
				# direzione del pulsante
				# Nel caso precedente, la posizione del cursore viene data dal
				# numero di sequenze
				if (@column_max == 1 and Input.trigger?(Input::UP)) or
					@index >= @column_max
					# Il cursore viene mosso verso l'alto
					$game_system.se_play($data_system.cursor_se)
					@index = (@index - @column_max + @item_max) % @item_max
				end
			end
			# Quando il pulsante viene premuto nella direzione di destra...
			if Input.repeat?(Input::RIGHT)
				# Numero di sequenze >= 2 e @index < (numero di oggetti - 1) quando la
				# posizione del cursore...
				if @column_max >= 2 and @index < @item_max - 1
					# ...viene mossa verso destra
					$game_system.se_play($data_system.cursor_se)
					@index += 1
				end
			end
			# Quando il pulsante viene premuto nella direzione di sinistra...
			if Input.repeat?(Input::LEFT)
				# Numero di sequenze >= 2 e @index > 0 quando la posizione
				# del cursore...
				if @column_max >= 2 and @index > 0
					# ...viene mossa verso sinistra
					$game_system.se_play($data_system.cursor_se)
					@index -= 1
				end
			end
			# Quando il pulsante R viene premuto...
			if Input.repeat?(Input::R)
				# Prima dell'ultima linea sui dati, viene mostrata la linea fino
				# alla fine della coda
				if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
					# Il cursore si muove avanti di una pagina
					$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
			# Quando il pulsante L viene premuto...
			if Input.repeat?(Input::L)
				# La linea correntemente mostrata in cima, se > 0...
				if self.top_row > 0
					# Il cursore si muove indietro di una pagina
					$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
		# Viene aggiornato il testo di aiuto
		# (update_help viene definito dal posto successivo)
		if self.active and @help_window != nil
			update_help
		end
		# Aggiornamento del rettangolo del cursore
		update_cursor_rect
	end
end


#################
# Game_Actor Add
#################
class Game_Actor < Game_Battler
	attr_accessor :rune_equipped
	attr_accessor :rune_plus
	attr_accessor :comb_rune_plus
	
	alias setup_old setup
	def setup(actor_id)
		@rune_equipped = {}
		@rune_equipped.default = nil
		@rune_plus = {}
		@rune_plus.default = 0
		@comb_rune_plus = {}
		@comb_rune_plus.default = 0
		setup_old(actor_id)
	end
	
	alias base_maxhp_old base_maxhp
	def base_maxhp
		return base_maxhp_old + @rune_plus["hp"] + @comb_rune_plus["hp"]
	end
	
	alias base_maxsp_old base_maxsp
	def base_maxsp
		return base_maxsp_old + @rune_plus["mp"] + @comb_rune_plus["mp"]
	end
	
	alias base_str_old base_str
	def base_str
		return base_str_old + @rune_plus["str"] + @comb_rune_plus["str"]
	end
	
	alias base_dex_old base_dex
	def base_dex
		return base_dex_old + @rune_plus["dex"] + @comb_rune_plus["dex"]
	end
	
	alias base_agi_old base_agi
	def base_agi
		return base_agi_old + @rune_plus["agi"] + @comb_rune_plus["agi"]
	end
	
	alias base_int_old base_int
	def base_int
		return base_int_old + @rune_plus["int"] + @comb_rune_plus["int"]
	end
	
	alias base_atk_old base_atk
	def base_atk
		return base_atk_old + @rune_plus["atk"] + @comb_rune_plus["atk"]
	end
	
	alias base_pdef_old base_pdef
	def base_pdef
		return base_pdef_old + @rune_plus["pdef"] + @comb_rune_plus["pdef"]
	end
	
	alias base_mdef_old base_mdef
	def base_mdef
		return base_mdef_old + @rune_plus["mdef"] + @comb_rune_plus["mdef"]
	end
	
	alias base_eva_old base_eva
	def base_eva
		return base_eva_old + @rune_plus["eva"] + @comb_rune_plus["eva"]
	end
	
	def rune_effect
		par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"]
		for i in par
			obj_id = @rune_equipped[i]
			coeff = Rune_Development::Rune_effect[obj_id][i]/100
			@rune_plus[i] = 0
			case i
			when "hp"
				@rune_plus[i] = base_maxhp*coeff/100
			when "mp"
				@rune_plus[i] = base_maxsp*coeff/100
			when "str"
				@rune_plus[i] = base_str*coeff/100
			when "int"
				@rune_plus[i] = base_int*coeff/100
			when "agi"
				@rune_plus[i] = base_agi*coeff/100
			when "dex"
				@rune_plus[i] = base_dex*coeff/100
			when "atk"
				@rune_plus[i] = base_atk*coeff/100
			when "pdef"
				@rune_plus[i] = base_pdef*coeff/100
			when "mdef"
				@rune_plus[i] = base_mdef*coeff/100
			when "eva"
				@rune_plus[i] = base_eva*coeff/100
			end
		end
		rune_combination_effect
	end
	
	def rune_combination_effect
		par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"]
		#colors [r,y,g,b]
		colors = {"red"=>0,"green"=>0,"yellow"=>0,"blue"=>0}
		for i in par
			index = ""
			index = Rune_Development::Rune_object[@rune_equipped[i]][1] if @rune_equipped[i] != nil
			if (index != "")
				colors[index] += 1
			end
		end
		r_string = colors["red"].to_s+"red"
		y_string = colors["yellow"].to_s+"yellow"
		b_string = colors["blue"].to_s+"blue"
		g_string = colors["green"].to_s+"green"
		count_color = 0
		for i in par
			@comb_rune_plus[i] = 0
		end
		if (Rune_Development::Rune_Combination.has_key?(r_string))
			x = Rune_Development::Rune_Combination[r_string]
			for i in par
				@comb_rune_plus[i] += x[i]
			end
			count_color += 1
		end
		if (Rune_Development::Rune_Combination.has_key?(y_string))
			x = Rune_Development::Rune_Combination[y_string]
			for i in par
				@comb_rune_plus[i] += x[i]
			end
			count_color += 1
		end
		if (Rune_Development::Rune_Combination.has_key?(g_string))
			x = Rune_Development::Rune_Combination[g_string]
			for i in par
				@comb_rune_plus[i] += x[i]
			end
			count_color += 1
		end
		if (Rune_Development::Rune_Combination.has_key?(b_string))
			x = Rune_Development::Rune_Combination[b_string]
			for i in par
				@comb_rune_plus[i] += x[i]
			end
			count_color += 1
		end
		if (count_color == 4)
			x = Rune_Development::Rune_Combination["all_color"]
			for i in par
				@comb_rune_plus[i] += x[i]
			end
		end
	end
end

class Window_Rune_Item < Window_Selectable
	attr_accessor :data_id
	attr_accessor :data
	attr_accessor :item_max
	def initialize(actor)
		super(0, 334, 640, 146)
		#self.contents = Bitmap.new(width, height)
		self.index = 0
		self.z = 10000
		@actor = actor
		@column_max = 2
		@data_id = []
		refresh
	end
	
	def refresh
		if self.contents != nil
			self.contents.dispose
			self.contents = nil
		end
		@data = []
		# Aggiunta di un oggetto
		for i in 1...$data_items.size
			if ($ID_RUNE.has_key?(i))
				if $game_party.item_number(i) - $ID_RUNE[i] > 0
					@data.push($data_items[i])
					@data_id.push(i)
				end
			end
		end
		@item_max = @data.size
		if @item_max > 0
			self.contents = Bitmap.new(width-32, row_max * 32)
			for i in 0...@item_max
				draw_item(i)
			end
		end
	end
	
	def draw_item(index)
		item = @data[index]
		number = $game_party.item_number(item.id) - $ID_RUNE[item.id]
		self.contents.font.color = normal_color
		self.contents.font.name = Parametri::FONT_NAME
		self.contents.font.size = Parametri::FONT_SIZE
		x = 4 + index % 2 * (288 + 32)
		y = index / 2 * 32
		rect = Rect.new(x, y, self.width / @column_max - 20, 32)
		self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
		bitmap = RPG::Cache.icon(item.icon_name)
		opacity = self.contents.font.color == Parametri::FONT_COLOR_INVERT ? 255 : 128
		self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
		self.contents.draw_text(x + 28, y, 212, 32, " "+item.name, 0)
		self.contents.font.size = Parametri::FONT_SIZE + 4
		self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
		self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
	end
end

class Window_Rune_Link < Window_Selectable2
	def initialize(actor)
		super(0, 64, 320, 270)
		self.index = 0
		self.contents = Bitmap.new(width-32, height-32)
		@actor = actor
		@links = ["RHp","RMp","RAtk","RPdef","RMdef",
		"RStr","RDex","RAgi","RInt","REva"]
		@item_max = @links.size
		@column_max = 1
		refresh
	end
	
	def refresh
		self.contents.clear
		par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"]
		for i in 0...@links.size
			x = 30
			y = i*20
			self.contents.font.name = Parametri::FONT_NAME
			self.contents.font.size = Parametri::FONT_SIZE-2
			draw_link(x, y, @links[i])
			z = @actor.rune_equipped[par[i]]
			draw_obj_link(x + 60, y, z)
		end
	end
	
	def draw_link(x, y, str_par)
		self.contents.font.color = system_color
		self.contents.draw_text(x , y, 50, 32, str_par)
	end
	
	def draw_obj_link(x, y, obj_id)
		if (obj_id != nil)
			bitmap = RPG::Cache.icon($data_items[obj_id].icon_name)
			self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), 255)
		end
		self.contents.font.color = normal_color
		self.contents.draw_text(x+28, y, 130, 32, (obj_id != nil)? $data_items[obj_id].name : "------")
	end
end

class Window_Rune_Status < Window_Base
	def initialize(actor)
		super(320, 64, 320, 270)
		self.contents = Bitmap.new(width-32, height-32)
		@actor = actor
		refresh
	end
	
	def refresh(obj_id = -1, link = "")
		self.contents.clear
		draw_actor_name(@actor, 30, 0)
		draw_actor_hp(@actor, 30, 20, 172)
		draw_actor_sp(@actor, 30, 40, 172)
		draw_actor_parameter(@actor, 30, 60, 0)
		draw_actor_parameter(@actor, 30, 80, 1)
		draw_actor_parameter(@actor, 30, 100, 2)
		draw_actor_parameter(@actor, 30, 120, 3)
		draw_actor_parameter(@actor, 30, 140, 4)
		draw_actor_parameter(@actor, 30, 160, 5)
		draw_actor_parameter(@actor, 30, 180, 6)
		self.contents.font.color = system_color
		self.contents.draw_text(30, 200, 120, 32, "Evasione")
		self.contents.font.color = normal_color
		self.contents.draw_text(150, 200, 36, 32, @actor.eva.to_s, 2)
		if (obj_id != -1)
			params = copy_parameter
			ex_obj = @actor.rune_equipped[link]
			@actor.rune_equipped[link] = obj_id
			@actor.rune_effect
			draw_variation(params)
			@actor.rune_equipped[link] = ex_obj
			@actor.rune_effect
		end
	end
	
	def copy_parameter
		result = Array.new(10)
		result [0] = @actor.maxhp
		result [1] = @actor.maxsp
		result [2] = @actor.atk
		result [3] = @actor.pdef
		result [4] = @actor.mdef
		result [5] = @actor.str
		result [6] = @actor.dex
		result [7] = @actor.agi
		result [8] = @actor.int
		result [9] = @actor.eva
		return result
	end
	
	def set_color(pnow, pnext)
		if (pnow == pnext)
			return normal_color
		end
		if (pnow > pnext)
			return Color.new(255,0,0)
		else
			return Color.new(14,220,55)
		end
	end
	
	def draw_variation(ex_parameter)
		now_parameter = copy_parameter
		for i in 0..9
			x = 210
			y = 20 + i*20
			self.contents.font.color = set_color(ex_parameter[i], now_parameter[i])
			self.contents.draw_text(x, y, 100, 32,now_parameter[i].to_s)
		end
	end
end

class Scene_Rune
	def initialize(actor_index)
		@actor = $game_party.actors[actor_index]
		@actor_index = actor_index
	end
	
	def main
		@help = Window_Help.new
		@window_link = Window_Rune_Link.new(@actor)
		@window_link.active = true
		@window_status = Window_Rune_Status.new(@actor)
		@window_item = Window_Rune_Item.new(@actor)
		@window_item.active = false
		@window_item.visible = false
		Graphics.transition
		loop do
			Graphics.update
			Input.update
			update
			if $scene != self
				break
			end
		end
		@help.dispose
		@window_item.dispose
		@window_link.dispose
		@window_status.dispose
	end
	
	def update
		@window_item.update
		@window_link.update
		@window_status.update
		help_update
		if (@window_link.active)
			link_update
		elsif (@window_item.active)
			item_update
		end
	end
	
	def link_update
		par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"]
		if Input.trigger?(Input::B)
			$game_system.se_play($data_system.cancel_se)
			$scene = Scene_Menu.new(1)
		end
		if Input.trigger?(Input::C)
			if(@window_item.item_max == 0)
				$game_system.se_play($data_system.buzzer_se)
				return
			end
			$game_system.se_play($data_system.decision_se)
			@window_link.active = false
			@window_item.active = true
			@window_item.visible = true
			@window_item.index = 0
			n = @window_item.data[@window_item.index].id
			@window_status.refresh(n, par[@window_link.index])
		end
		if Input.trigger?(Input::Z)
			$game_system.se_play($data_system.buzzer_se)
			if (@actor.rune_equipped[par[@window_link.index]] != nil)
				$ID_RUNE[@actor.rune_equipped[par[@window_link.index]]] -= 1
				@actor.rune_equipped[par[@window_link.index]] = nil
				@actor.rune_effect
				@window_link.refresh
				@window_status.refresh
				@window_item.refresh
			end
		end
		if Input.trigger?(Input::L)
			$game_system.se_play($data_system.cancel_se)
			@actor_index += $game_party.actors.size - 1
			@actor_index %= $game_party.actors.size
			$scene = Scene_Rune.new(@actor_index)
		end
		if Input.trigger?(Input::R)
			$game_system.se_play($data_system.cancel_se)
			@actor_index += 1
			@actor_index %= $game_party.actors.size
			$scene = Scene_Rune.new(@actor_index)
		end
	end
	
	def item_update
		par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"]
		n = @window_item.data[@window_item.index].id
		if Input.trigger?(Input::RIGHT)
			n = @window_item.data[@window_item.index].id
			@window_status.refresh(n, par[@window_link.index])
		end
		if Input.trigger?(Input::LEFT)
			n = @window_item.data[@window_item.index].id
			@window_status.refresh(n, par[@window_link.index])
		end
		if Input.trigger?(Input::DOWN)
			n = @window_item.data[@window_item.index].id
			@window_status.refresh(n, par[@window_link.index])
		end
		if Input.trigger?(Input::UP)
			n = @window_item.data[@window_item.index].id
			@window_status.refresh(n, par[@window_link.index])
		end
		if Input.trigger?(Input::B)
			@window_status.refresh
			$game_system.se_play($data_system.cancel_se)
			@window_link.active = true
			@window_item.active = false
			@window_item.visible = false
		end
		if Input.trigger?(Input::C)
			$game_system.se_play($data_system.decision_se)
			if @actor.rune_equipped[par[@window_link.index]] != nil
				$ID_RUNE[@actor.rune_equipped[par[@window_link.index]]] -= 1
			end
			$ID_RUNE[n] += 1
			@actor.rune_equipped[par[@window_link.index]] = n
			@window_item.refresh
			@actor.rune_effect
			@window_status.refresh
			@window_link.refresh
			if (@window_item.item_max == 0)
				@window_status.refresh
				@window_link.active = true
				@window_item.active = false
				@window_item.visible = false
				return
			end
			@window_item.index = 0
			n = @window_item.data[@window_item.index].id
			@window_status.refresh(n, par[@window_link.index])
		end
	end
	
	def help_update
		n = @window_item.data_id[@window_item.index]
		@help.set_text((@window_item.active)? $data_items[n].description : "Sviluppa il tuo PG con le Rune.")
	end
end

 

 

 

 

Istruzioni:

Create una classe sopra il main e incollate questo codice. Per togliere un oggetto dal "juction" basta posizionarsi sopra e premere D.


BUG o Conflitti:

EDIT : Risolti tutti i problemi!!

"A tre settimane da oggi io mieterò il mio raccolto, immaginate dove vorrete essere perchè così sarà. Serrate i ranghi! Seguitemi! E se vi ritroverete soli a cavalcare su verdi praterie col sole sulla faccia non preoccupatevi troppo perchè sarete nei campi elisi e sarete già morti! Fratelli, ciò che facciamo in vita riecheggia nell'eternità!"

 

"C'era un sogno che era roma sarà realizzato. Questo era il desiderio di Marco Aurelio!"

Link to comment
Share on other sites

Uao!Mi piace mescolare gli oggetti, molto utile nelle avventure classiche..Se un giorno ne farò una, userò di certo il tuo script!=)

http://www.freankexpo.net/signature/1129.png

2986.png

BIM_Banner3.png

Premi RpgMaker

 


http://www.rpg2s.net/forum/uploads/monthly_01_2017/msg-293-0-48316500-1483794996.jpghttp://www.rpg2s.net/dax_games/r2s_regali2.pngContesthttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gif http://rpg2s.net/gif/SCContest1Oct.gif http://rpg2s.net/gif/SCContest2Oct.gif http://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://www.rpg2s.net/awards/bestpixel2.jpghttp://www.rpg2s.net/awards/bestresourCSist2.jpghttp://www.rpg2s.net/awards/mostproductive1.jpghttp://i42.servimg.com/u/f42/13/12/87/37/iconap13.pnghttp://i42.servimg.com/u/f42/13/12/87/37/iconap14.pnghttp://i42.servimg.com/u/f42/13/12/87/37/iconap15.pnghttp://i42.servimg.com/u/f42/13/12/87/37/iconap16.pnghttp://i42.servimg.com/u/f42/13/12/87/37/screen10.pnghttp://www.rpgmkr.net/contest/screen-contest-primo.pnghttp://www.makerando.com/forum/uploads/jawards/iconawards3.png

Link to comment
Share on other sites

Uao!Mi piace mescolare gli oggetti, molto utile nelle avventure classiche..Se un giorno ne farò una, userò di certo il tuo script!=)

 

Più ke mescolare gli oggetti "mescola" o meglio dire combina i loro effetti. Cmq grazie mille!!

"A tre settimane da oggi io mieterò il mio raccolto, immaginate dove vorrete essere perchè così sarà. Serrate i ranghi! Seguitemi! E se vi ritroverete soli a cavalcare su verdi praterie col sole sulla faccia non preoccupatevi troppo perchè sarete nei campi elisi e sarete già morti! Fratelli, ciò che facciamo in vita riecheggia nell'eternità!"

 

"C'era un sogno che era roma sarà realizzato. Questo era il desiderio di Marco Aurelio!"

Link to comment
Share on other sites

Scusate il doppio post, ma volevo avvertirvi ke ho appena apportato delle modifiche al codice ke ora funziona perfettamente. L'unico problema resta la grafica ke, vi avviso in questo post senza dover aggiungerne un altro, credo sistemerò oggi stesso!! Grazie, ciao!!

"A tre settimane da oggi io mieterò il mio raccolto, immaginate dove vorrete essere perchè così sarà. Serrate i ranghi! Seguitemi! E se vi ritroverete soli a cavalcare su verdi praterie col sole sulla faccia non preoccupatevi troppo perchè sarete nei campi elisi e sarete già morti! Fratelli, ciò che facciamo in vita riecheggia nell'eternità!"

 

"C'era un sogno che era roma sarà realizzato. Questo era il desiderio di Marco Aurelio!"

Link to comment
Share on other sites

2 domande:

-1:come faccio ad usarlo?

-2:è compatibile con menù personalizzati?

 

-1 richiami il menu con $scene = Scene_Rune.new

-2 si è compatibile. forse la grafica avrà alcuni problemi ma credo facilmente risolvibili

"A tre settimane da oggi io mieterò il mio raccolto, immaginate dove vorrete essere perchè così sarà. Serrate i ranghi! Seguitemi! E se vi ritroverete soli a cavalcare su verdi praterie col sole sulla faccia non preoccupatevi troppo perchè sarete nei campi elisi e sarete già morti! Fratelli, ciò che facciamo in vita riecheggia nell'eternità!"

 

"C'era un sogno che era roma sarà realizzato. Questo era il desiderio di Marco Aurelio!"

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...