Jump to content
Rpg²S Forum

Benjamin Ficus

Utenti
  • Posts

    77
  • Joined

  • Last visited

Posts posted by Benjamin Ficus

  1. Scusate se riprendo 'sto topic parecchio vecchio, ma volevo far notare una cosa piuttosto curiosa.

    Per chi non se li ricordasse: ProgettOne e ProjecTwo erano due giochi (uno completo, l'altro una demo) che avevano partecipato al secondo Game Contest della community.

     

    Oggi ho scoperto che Benjamin Ficus ha creato il suo team e completato/ampliato il gioco, ora chiamato "Doom and destiny", facendolo uscire su diverse piattaforme, e prendendo anche ottime recensioni dalla stampa, nazionale e internazionale.

    http://doomanddestiny.com/the-game/

     

    Complimenti a Benjamin, se mai leggerà!

    il caso ha voluto che leggessi :D dopo anni :D

    sono tornato a bazzicare i forum dove "tutto è cominciato" :tongue:

  2. Grazie, tuttavia ora sto sistemando pesantemente la meccanica di gioco (in realtà è sempre la stessa, ma voglio farla più chiara e semplice possibile e il lavoro è immenso)

    lo script usato è: KGC_SkillCPSystem

    se cerchi con google scoprirai una fantastica raccolta di script fatta da KGC, tutti interconnessi tra loro, uno spettacolo!

    ci vuole un pò per capire come farli andare e personalizzarli, ma il risultato è mooolto piacevole!

    Paradossalmente, quello script è il primo che ho rimosso nel mio aggiornamento di ProjecTwo! :biggrin:

    ti ringrazio, ma devo frenare il tuo entusiasmo, purtroppo non penso che porterò avanti questo progetto nello specifico, ora come ora mi sono dato al "professionale" e lavoro a indi games per xbox live e se mai uscirà un ProjecTwo sarà su console... ed a pagamento :rovatfl: , ma prometto che lo venderò a poco e sarà alla portata di tutti! :Ok:

  3. Ho postato un gioco completo ed una demo di 2 ore, ma mi servono voti!!!

    Forza, ne rimarrete piacevolmente sorpresi! Sono da sturbo (si può dire strurbo?)

    VOGLIO I RENS!!!

    ecco i link:

     

    http://www.rpg2s.net/forum/index.php?showtopic=6990

     

    http://www.rpg2s.net/forum/index.php?showtopic=8050

     

    sono curati sia a livello di script che di tiles, che di gestione characters, hanno un'ottima colonna sonora, una trama originale e fanno riddere!

    Cosa aspettate, sono gratiz!

    (in alternativa troverete i link aggiornati all'ultimo minuto qui: http://thebenjaminficusproduction.blogspot.com/ )

     

    TIMI EDIT: Quando avrai i voti mandami un PM ;)

  4. ma l'errore dov'è? io non l'ho trovato... puoi mandarmi uno screen o essere più preciso, ti sarò infinitamente grato!

     

    Il gioco è già stato scaricato una 70 di volte e nessun altro ha riportato problemi.

    Probabilmente si è trattato di un errore random, può capitare. RPG Maker non è un tool perfetto.

  5. bella demo complimenti molto curata, anche se ci ho giocato poco perche sto lavorando sul mio progetto.

     

    una domanda di chi è lo script per l'assegnazione delle abilità?

     

    Grazie, tuttavia ora sto sistemando pesantemente la meccanica di gioco (in realtà è sempre la stessa, ma voglio farla più chiara e semplice possibile e il lavoro è immenso)

    lo script usato è: KGC_SkillCPSystem

    se cerchi con google scoprirai una fantastica raccolta di script fatta da KGC, tutti interconnessi tra loro, uno spettacolo!

    ci vuole un pò per capire come farli andare e personalizzarli, ma il risultato è mooolto piacevole!

    Paradossalmente, quello script è il primo che ho rimosso nel mio aggiornamento di ProjecTwo! :rolleyes:

  6. non so quanti di voi siano familiari con questo script (il nome è quello dell'argomento del topic): il suo scopo è quello di distribuire punti per implementare le caratteristiche ad ogni level up.

    E' anche possibile modificare per ogni personaggio o classe i costi delle caratteristiche e la quantità di punti acquisiti ad ogni level up.

    Tuttavia, quest'ultima caratteristica (quella di personalizzare il guadagno dei punti abilità per ogni personaggio o classe) NON FUNZIONA.

    il comando richiesto: " :maxrpexp => "non sembra funzionare e viene completamente ignorato.

     

    Spero che qualcuno possa darmi una mano!

    Grazie in anticipo

     

    Qui lo script (non è mio, i crediti al suo interno...):

     

    #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_#_/ ◆ Attribute Point Stat Distribution - KGC_DistributeParameter  ◆ VX ◆#_/ ◇  Last Update: 11/16/2008#_/ ◆ Written by TOMY	 #_/ ◆ Translation & Extended Updates by Mr. Anonymous#_/ ◆ Extended Annotation by Touchfuzzy #_/ ◆ KGC Site:												   #_/ ◆  http://ytomy.sakura.ne.jp/								   #_/ ◆ Translator's Blog:											 #_/ ◆  http://mraprojects.wordpress.com   #_/-----------------------------------------------------------------------------#_/  This script gives you the ability to completely change the way actors' #_/ attributes are gained. This system allows for the player to distribute stat#_/ points to actors which are gained upon level up.#_/=============================================================================#_/					   ◆ Script Commands ◆#_/  These commands are used in "Script" function in the third page of event#_/   commands under "Advanced".#_/#_/ * gain_rp(ActorID, Value)#_/	Increases the MaxRP of a given actor.#_/#_/ * reset_distributed_count(ActorID)#_/	Resets the distributed RP of a given actor.#_/#_/ * call_distribute_parameter(ActorID)#_/	Calls the Distribute Parameter screen for a given actor.#_/#_/=============================================================================#_/ Install: Insert below KGC_ExtendedEquipScene and KGC_CustomMenuCommand.#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ #==============================================================================##						   ★ Customization ★								  ##==============================================================================# module KGC module DistributeParameter  #					  ◆ Distribution Tables ◆  # Here you may customize the costs and increase rates of specific parameters.  # The order in which these costs and increase rates are set are as follows:  #					 [IPC, IPSG, MAP, PCI, PSGI]  #								Key:  # IPC = Initial Point Cost. This is how many AP it cost to buy the first  #	   point of this parameter.  #  # IPSG = Initial Point Stat Growth. This is how much the stat will go up with  #		the first point of this parameter.  #											    # MAP = Maximum Attribute Points. The maximum amount of AP that can be spent    #	   on this stat.  You may also put a level based equation in this but  #	   remember that if you put in an equation it is IMPORTANT that you put  #	   quotation marks ("") around it and to use level in all lower case.  #	   By using 0 here, you effectively remove the limitation on how the  #	   stat's growth ceiling.  #  # PCI = Point Cost Increase.  For every AP spent in this parameter the cost  #	   of this parameter increases by this amount.  #  # PSGI = Point Stat Growth Increase.  For every AP spent in this parameter  #		the number of points you gain in the stat increases by this much.  #  #   Also, if you completely remove a line (e.g. ":hit => [1, 1, 20, 0.7],")  #   it will remove it from the distribution screen altogether.  #   Very useful if your project doesn't require a specific stat to be shown.  GAIN_PARAMETER = {  # Parameter	  IPC, IPSG,  MAP,   PCI,   PSGI	:maxhp	   => [2,   15,   15,   0,	 0],  # Maximum HP	:maxmp	   => [2,   15,   15,   0,	 0],  # Maximum MP	:atk		 => [1,	1,   20,   0,	 0],  # Attack	:def		 => [1,	1,   20,   0,	 0],  # Defense	:spi		 => [1,	1,   20,   0,	 0],  # Spirit	:agi		 => [1,	1,   20,   0,	 0],  # Agility	:hit		 => [1,	2,   10,   0],		 # Hit Ratio (Accuracy)	:eva		 => [1,	2,   10,   0],		 # Evasion	:cri		 => [1,	2,   10,   0],		 # Critical	}  # Do not remove this bracket.   #						 ◆ AP Gain Rate ◆  #  This is the equation that determines your total AP gained every level.  #  (Character Level to the 0.25th power + 2) * Level  #  This causes you to start at 3 points per level and increase slightly over  #  time.  #  As an example if you wish to gain a static 3 points per level write it as  #  MAXRP_EXP = "level * 3"	  MAXRP_EXP = "level * 3"   #			  ◆ Individual Actor Gain Parameter Tables ◆  #  You may choose to manually specify an individual actor's gain parameters.  #  To do so, use the same format as above GAIN_PARAMETER table but instead  #  use PERSONAL_GAIN_PARAMETER [n] (Where n = Actor ID)  #  Any parameter you do not set in this table will instead draw from the  #  GAIN_PARAMETER chart.  #  #  Example:  # PERSONAL_GAIN_PARAMETER[1] = {  # :maxhp => [2, 20, 50, 0.5,   5],	  # :maxmp => [1, 10, 30, 0.3, 0.5],    # :atk   => [1,  1, 30, 0.3, 0.5],    # :def   => [1,  2, 30, 0.4, 0.5],    # :spi   => [1,  2, 50, 0.5, 0.8],    # :agi   => [1,  2, 30, 0.4, 0.6],    # :hit   => [1,  1, 20, 0.7],	    # :eva   => [1,  1, 20, 0.7],	    # :cri   => [1,  1, 20, 0.7],  # :skill_speed => [1,  1, 20, 0.5],	  # :item_speed  => [1,  1, 20, 0.5],	     # :odds		=> [1,  1, 5],			   # :maxrpexp => ["(level ** 0.25 + 2.0) * level"]  # }    PERSONAL_GAIN_PARAMETER = []     #			★ Insert Custom Actor Gain Tables Below Here ★   PERSONAL_GAIN_PARAMETER[6] = {  :maxrpexp => ["((level * 3) - 9))"] }   #			★ Insert Custom Actor Gain Tables Above Here ★    #			   ◆ Class-Specific Gain Parameter Tables ◆  #  You may choose to manually specify an entire class's gain parameters.  #  To do so, use the same format as above GAIN_PARAMETER table but instead  #  use CLASS_GAIN_PARAMETER [n] (Where n = Number of class in the database)  #  Any parameter you do not set in this table will instead draw from the  #  GAIN_PARAMETER chart. Also note that class gain parameters take the highest  #  priority.  CLASS_GAIN_PARAMETER = []  #			★ Insert Custom Class Gain Tables Below Here ★      #			★ Insert Custom Class Gain Tables Above Here ★    # ◆ AP = Attribute Points. These settings are for the AP Distrubution Screen.  #  VOCAB_RP appears at the top of the column which lists the AP cost of  #  the parameter  VOCAB_RP   = "Cost"  # VOCAB_RP_A appears next to where it lists your current and total AP.  VOCAB_RP_A = "AP"   #					 ◆ Parameter Labels ◆  #  Allows you to change the text of Hit Ratio, Evasion, Critical, Skill   #   Speed, Item Speed, and Odds (luck) on the distribution screen.  VOCAB_PARAM = {	:hit		 => "HIT",  # Hit Ratio (Accuracy)	:eva		 => "EVA",  # Evasion	:cri		 => "CRI",  # Critical	:skill_speed => "SSD",  # Skill Speed	:item_speed  => "ISD",  # Item Speed	:odds		=> "LCK",  # Odds (Luck)  }  # <- Do not remove this bracket.   #					   ◆ Caption Text ◆    # Added by Mr. Anonymous.  # These fields affect the text at the top of the distribution screen.  # Attribute name label.  AT_CAPTION = "Attribute"  # AP cost/rate label.  RT_CAPTION = "Rate"  # Current AP ppent on given attribute label.  SP_CAPTION = "Spent"  # Current status (right window) label.  CS_CAPTION = "Current Status"   #					  ◆ Help Window Text ◆    #  Text of the menu title for the AP Distribution Screen.  DISTRIBUTE_SCENE_CAPTION = "Stat Distribution - Press Q or W to switch characters."   #			   ◆ Stat Distribution Cost When Maxed ◆  #  This toggle allows you to remove the characters proceeding the amount of  #  points that have been spent on a skill when a growth ceiling on that stat  #  is unlimited (see growth tables: MAP). For example, let's say Max HP has  #  an umilimited ceiling of growth. Let's say you've spent 3 points in this  #  stat so far, so under the "Spent" column, this would normally read 3/---.  #  With this toggle set to true, it would instead simply read as 3.  #  true  : Only the amount currently spent in the stat is displayed.  #  false : A line is drawn representing no ceiling to the stat.  HIDE_MAX_COUNT_INFINITE  = true   #					  ◆ AP Gauge Colors ◆  #  Allows you to change the color of the guages that appear under the stats  #   side bar. The color can also be determined by a numerical expression.  #  Example: GAUGE_START_COLOR = Color.new(255, 0, 0)  <- This is red.  #  This is the fill color for the early phase of the guage.  GAUGE_START_COLOR = 28  #  This is the fill color for the late phase of the guage. (When full)  GAUGE_END_COLOR   = 29   #				  ◆ Menu Command Button & Text ◆  #  When USE_MENU_DISTRIBUTE_PARAMETER_COMMAND = true,  #  the AP Distribution System is added to the menu under "Quit Game".  #  When false, it does not. (Obviously)  USE_MENU_DISTRIBUTE_PARAMETER_COMMAND = true  #  Allows you to change the text for this button on the main command menu.  VOCAB_MENU_DISTRIBUTE_PARAMETER	   = "Level Up"   #				   ◆ Parameter Re-distribution ◆  #  This affects whether the player can reassign the parameters that have  #  been increased.  #  true  : Allows the player to reassign AP.  #  false : Prevents the player from unassigning AP if set to false.  ENABLE_REVERSE_DISTRIBUTE = false   #					 ◆ AP in Status Window ◆  # Added by Mr. Anonymous.  #  This toggle allows you to enable/disable the AP display on the status   #   screen.  SHOW_STATUS_RP = true  #  This toggle allows you to adjust the position of the AP display on the  #   status screen. (If SHOW_STATUS_RP = true)  #  0. Below Actor's Face Image  #  1. Below Actor's Parameters  SHOW_STATUS_RP_POS = 0   #				◆ Extra Parameters in Status Window ◆  # Added by Mr. Anonymous.  #  This toggle allows you to enable/disable the parameters for accuracy,   #   evasion, and critical below the regular paramaters (STR, DEF, SPI, AGI)  SHOW_STATUS_EX_PARAMS = true   #		◆ Call DistributeParameter From Actor Status Window ◆  # Added by Mr. Anonymous.  #  This allows you to change what key/button is pressed on the status window  #   to shift to the DistributeParameter window.  #  When set to nil, this is disabled. ( CALL_DISTPARAMKEY = Input::nil )  CALL_DISTPARAMKEY = Input::X   # On the keyboard, button X is the A key.   #					   ◆ Show Actor Graphic ◆  # Added by Mr. Anonymous.  #  This toggle allows you to enable/disable the actor sprite in the Distribute  #   Parameter window next to the actor name.  #  true = Show the sprite.  #  false = Do not show.  SHOW_SPRITE = true    endend #=============================================================================##						  ★ End Customization ★							  ##=============================================================================# #=================================================##					IMPORT					   ##=================================================# $imported = {} if $imported == nil$imported["DistributeParameter"] = true #=================================================# module KGC::DistributeParameter  # Set up parameter array  PARAMS = [:maxhp, :maxmp, :atk, :def, :spi, :agi, :hit, :eva, :cri,	:skill_speed, :item_speed, :odds]   # Parameter Increase Structure  GainInfo = Struct.new("GainInfo",	:rp_cost, :value, :max_count, :rp_rev, :value_rev)   #--------------------------------------------------------------------------  # ○ Create Parameter Increase Structures  #--------------------------------------------------------------------------  def self.create_gain_param_structs(target)	params = {}	target.each { |k, v|	  info = GainInfo.new	  info.rp_cost   = v[0]	  info.value	 = v[1]	  info.max_count = v[2]	  info.rp_rev	= v[3]	  info.value_rev = v[4]	  params[k] = info	}	return params  end  #--------------------------------------------------------------------------  # ○ Create Parameter Increase Structures (For Individual Actors)  #--------------------------------------------------------------------------  def self.create_gain_param_structs_for_personal(target)	params = []	target.each_with_index { |gain_list, i|	  next if gain_list == nil	  params[i] = create_gain_param_structs(gain_list)	}	return params  end   # Create Parameter Increase Structures  GAIN_PARAMS = create_gain_param_structs(GAIN_PARAMETER)  PERSONAL_GAIN_PARAMS =	create_gain_param_structs_for_personal(PERSONAL_GAIN_PARAMETER)  CLASS_GAIN_PARAMS =	create_gain_param_structs_for_personal(CLASS_GAIN_PARAMETER)end #=================================================# #==============================================================================# ■ Vocab#============================================================================== module Vocab  def self.hit	return KGC::DistributeParameter::VOCAB_PARAM[:hit]	return $data_system.terms.hit	# Added 4/1/08  end   def self.eva	return KGC::DistributeParameter::VOCAB_PARAM[:eva]	return $data_system.terms.eva	# Added 4/1/08  end   def self.cri	return KGC::DistributeParameter::VOCAB_PARAM[:cri]	return $data_system.terms.cri	# Added 4/1/08  end   def self.skill_speed	return KGC::DistributeParameter::VOCAB_PARAM[:skill_speed]	return $data_system.terms.skill_speed	# Added 9/14/08  end   def self.item_speed	return KGC::DistributeParameter::VOCAB_PARAM[:item_speed]  end   def self.odds	return KGC::DistributeParameter::VOCAB_PARAM[:odds]	return $data_system.terms.odds	# Added 9/14/08  end   def self.rp	return KGC::DistributeParameter::VOCAB_RP  end   def self.rp_a	return KGC::DistributeParameter::VOCAB_RP_A  end   def self.distribute_parameter	return KGC::DistributeParameter::VOCAB_MENU_DISTRIBUTE_PARAMETER  endend #=================================================# #==============================================================================# □ KGC::Commands#============================================================================== module KGCmodule Commands  module_function  #--------------------------------------------------------------------------  # ○ パラメータ振り分けに関する値をチェック  #--------------------------------------------------------------------------  def check_distribution_values	(1...$data_actors.size).each { |i|	  actor = $game_actors[i]	  actor.check_distribution_values	  actor.restore_distribution_values	}  end  #--------------------------------------------------------------------------  # ○ RP の増減  #	 actor_id : アクター ID  #	 value	: 増減量  #--------------------------------------------------------------------------  def gain_rp(actor_id, value)	actor = $game_actors[actor_id]	return if actor == nil	actor.gain_rp(value)  end  #--------------------------------------------------------------------------  # ○ 振り分け回数をリセット  #	 actor_id : アクター ID  #--------------------------------------------------------------------------  def reset_distributed_count(actor_id)	actor = $game_actors[actor_id]	return if actor == nil	actor.clear_distribution_values	actor.restore_distribution_values  end  #--------------------------------------------------------------------------  # ○ パラメータ振り分け画面の呼び出し  #	 actor_index : アクターインデックス  #--------------------------------------------------------------------------  def call_distribute_parameter(actor_index = 0)	return if $game_temp.in_battle	$game_temp.next_scene = :distribute_parameter	$game_temp.next_scene_actor_index = actor_index  endendend #=================================================##			 INCLUDE COMMANDS					##=================================================##	Include KGC::Commands in Game_Interpreter	##=================================================# class Game_Interpreter  include KGC::Commandsend #=================================================# #==============================================================================# ■ Game_Battler#============================================================================== class Game_Battler  #--------------------------------------------------------------------------  # ● 能力値に加算する値をクリア  #--------------------------------------------------------------------------  alias clear_extra_values_KGC_DistributeParameter clear_extra_values  def clear_extra_values	clear_extra_values_KGC_DistributeParameter 	clear_distribution_values	calc_distribution_values  end  #--------------------------------------------------------------------------  # ○ パラメータ振り分けに関する値をクリア  #--------------------------------------------------------------------------  def clear_distribution_values	@distributed_count = {}	KGC::DistributeParameter::PARAMS.each { |param|	  @distributed_count[param] = 0	}  end  #--------------------------------------------------------------------------  # ○ パラメータ振り分けに関する値をチェック  #--------------------------------------------------------------------------  def check_distribution_values	last_distributed_count = @distributed_count 	clear_distribution_values 	@distributed_count = last_distributed_count if last_distributed_count != nil  end  #--------------------------------------------------------------------------  # ○ 各種修正値を計算  #--------------------------------------------------------------------------  def calc_distribution_values	# 継承先で定義  end  #--------------------------------------------------------------------------  # ○ 振り分けによる上昇値を取得  #	 param : パラメータの Symbol  #--------------------------------------------------------------------------  def distributed_param(param)	return 0  endend #=================================================# #==============================================================================# ■ Game_BattleAction#============================================================================== class Game_BattleAction  #--------------------------------------------------------------------------  # ● 行動スピードの決定  #--------------------------------------------------------------------------  alias make_speed_KGC_DistributeParameter make_speed  def make_speed	make_speed_KGC_DistributeParameter 	if skill?	  n = [battler.distributed_param(:skill_speed), skill.speed].min	  @speed -= n	end	if item?	  n = [battler.distributed_param(:item_speed), item.speed].min	  @speed -= n	end  endend #=================================================# #==============================================================================# ■ Game_Actor#============================================================================== class Game_Actor < Game_Battler  #--------------------------------------------------------------------------  # ● オブジェクト初期化  #	 actor_id : アクター ID  #--------------------------------------------------------------------------  alias initialize_KGC_DistributeParameter initialize  def initialize(actor_id)	@actor_id = actor_id	@class_id = $data_actors[actor_id].class_id 	initialize_KGC_DistributeParameter(actor_id)  end  #--------------------------------------------------------------------------  # ○ パラメータ増加量を取得  #--------------------------------------------------------------------------  def gain_parameter_list	result = KGC::DistributeParameter::GAIN_PARAMS	# アクター固有	list = KGC::DistributeParameter::PERSONAL_GAIN_PARAMS[self.id]	result = result.merge(list) if list != nil	# 職業固有	list = KGC::DistributeParameter::CLASS_GAIN_PARAMS[self.class_id]	result = result.merge(list) if list != nil 	return result  end  #--------------------------------------------------------------------------  # ○ 各種修正値を計算  #--------------------------------------------------------------------------  def calc_distribution_values	@rp_cost = 0	@distributed_param = {}	gain_parameter_list.each { |k, v|	  next if v == nil	  cost = 0	  param = 0	  distributed_count(k).times { |i|		cost_plus   = v.rp_cost		cost_plus  += v.rp_rev * i if v.rp_rev != nil		param_plus  = v.value		param_plus += v.value_rev * i if v.value_rev != nil		cost  += Integer(cost_plus)		param += Integer(param_plus)	  }	  @rp_cost += [cost, 0].max	  @distributed_param[k] = param	}  end  #--------------------------------------------------------------------------  # ○ 各種修正値を修復  #--------------------------------------------------------------------------  def restore_distribution_values	calc_distribution_values	self.hp = self.hp	self.mp = self.mp  end  #--------------------------------------------------------------------------  # ○ 振り分けによる上昇値を取得  #	 param : パラメータの Symbol  #--------------------------------------------------------------------------  def distributed_param(param)	return 0 if @distributed_param == nil	return 0 if @distributed_param[param] == nil	return @distributed_param[param]  end  #--------------------------------------------------------------------------  # ● 基本 MaxHP の取得  #--------------------------------------------------------------------------  alias base_maxhp_KGC_DistributeParameter base_maxhp  def base_maxhp	n = base_maxhp_KGC_DistributeParameter + distributed_param(:maxhp)	return n  end  #--------------------------------------------------------------------------  # ● 基本 MaxMP の取得  #--------------------------------------------------------------------------  alias base_maxmp_KGC_DistributeParameter base_maxmp  def base_maxmp	n = base_maxmp_KGC_DistributeParameter + distributed_param(:maxmp)	return n  end  #--------------------------------------------------------------------------  # ● 基本攻撃力の取得  #--------------------------------------------------------------------------  alias base_atk_KGC_DistributeParameter base_atk  def base_atk	n = base_atk_KGC_DistributeParameter + distributed_param(:atk)	return n  end  #--------------------------------------------------------------------------  # ● 基本防御力の取得  #--------------------------------------------------------------------------  alias base_def_KGC_DistributeParameter base_def  def base_def	n = base_def_KGC_DistributeParameter + distributed_param(:def)	return n  end  #--------------------------------------------------------------------------  # ● 基本精神力の取得  #--------------------------------------------------------------------------  alias base_spi_KGC_DistributeParameter base_spi  def base_spi	n = base_spi_KGC_DistributeParameter + distributed_param(:spi)	return n  end  #--------------------------------------------------------------------------  # ● 基本敏捷性の取得  #--------------------------------------------------------------------------  alias base_agi_KGC_DistributeParameter base_agi  def base_agi	n = base_agi_KGC_DistributeParameter + distributed_param(:agi)	return n  end  #--------------------------------------------------------------------------  # ● 命中率の取得  #--------------------------------------------------------------------------  alias hit_KGC_DistributeParameter hit  def hit	n = hit_KGC_DistributeParameter + distributed_param(:hit)	return n  end  #--------------------------------------------------------------------------  # ● 回避率の取得  #--------------------------------------------------------------------------  alias eva_KGC_DistributeParameter eva  def eva	n = eva_KGC_DistributeParameter + distributed_param(:eva)	return n  end  #--------------------------------------------------------------------------  # ● クリティカル率の取得  #--------------------------------------------------------------------------  alias cri_KGC_DistributeParameter cri  def cri	n = cri_KGC_DistributeParameter + distributed_param(:cri)	return n  end  #--------------------------------------------------------------------------  # ● 狙われやすさの取得  #--------------------------------------------------------------------------  alias odds_KGC_DistributeParameter odds  def odds	n = odds_KGC_DistributeParameter + distributed_param(:odds)	return n  end  #--------------------------------------------------------------------------  # ○ MaxRP の取得  #--------------------------------------------------------------------------  def maxrp	n = Integer(eval(KGC::DistributeParameter::MAXRP_EXP))	return [n + maxrp_plus, 0].max  end  #--------------------------------------------------------------------------  # ○ MaxRP 補正値の取得  #--------------------------------------------------------------------------  def maxrp_plus	@maxrp_plus = 0 if @maxrp_plus == nil	return @maxrp_plus  end  #--------------------------------------------------------------------------  # ○ RP の取得  #--------------------------------------------------------------------------  def rp	return [maxrp - @rp_cost, 0].max  end  #--------------------------------------------------------------------------  # ○ 振り分け回数の取得  #	 param : 振り分け先パラメータ (Symbol)  #--------------------------------------------------------------------------  def distributed_count(param)	clear_distribution_values if @distributed_count == nil	@distributed_count[param] = 0 if @distributed_count[param] == nil	return @distributed_count[param]  end  #--------------------------------------------------------------------------  # ○ RP の増減  #	 value : 増減量  #--------------------------------------------------------------------------  def gain_rp(value)	@maxrp_plus = maxrp_plus + value  end  #--------------------------------------------------------------------------  # ○ 振り分け回数の増減  #	 param : 振り分け先パラメータ (Symbol)  #	 value : 増減量  #--------------------------------------------------------------------------  def gain_distributed_count(param, value = 1)	n = distributed_count(param)	@distributed_count[param] += value if n.is_a?(Integer)  end  #--------------------------------------------------------------------------  # ○ RP 振り分けによる成長効果適用  #	 param   : 振り分け先パラメータ (Symbol)  #	 reverse : 逆加算のときは true  #--------------------------------------------------------------------------  def rp_growth_effect(param, reverse = false)	gain = gain_parameter_list[param]	return if gain == nil  # 無効なパラメータ 	if reverse	  return if distributed_count(param) == 0  # 逆加算不可	else	  return unless can_distribute?(param)	end 	gain_distributed_count(param, reverse ? -1 : 1)	restore_distribution_values  end  #--------------------------------------------------------------------------  # ○ パラメータ振り分け可否判定  #	 param : 振り分け先パラメータ (Symbol)  #--------------------------------------------------------------------------  def can_distribute?(param)	gain = gain_parameter_list[param]	return false if gain == nil						# 無効なパラメータ	return false if self.rp < distribute_cost(param)   # RP 不足	if gain.max_count > 0	  return false if gain.max_count <= distributed_count(param)  # 回数上限	end 	return true  end  #--------------------------------------------------------------------------  # ○ パラメータ振り分けコスト計算  #	 param : 振り分け先パラメータ (Symbol)  #--------------------------------------------------------------------------  def distribute_cost(param)	gain = gain_parameter_list[param]	return 0 if gain == nil  # 無効なパラメータ 	n = gain.rp_cost	if gain.rp_rev != nil	  count = distributed_count(param)	  count = [count, gain.max_count - 1].min if gain.max_count > 0	  n += gain.rp_rev * count	end	return [Integer(n), 0].max  end  #--------------------------------------------------------------------------  # ○ パラメータ振り分け時の増加量計算  #	 param : 振り分け先パラメータ (Symbol)  #--------------------------------------------------------------------------  def distribute_gain(param)	gain = gain_parameter_list[param]	return 0 if gain == nil  # 無効なパラメータ 	n = gain.value	if gain.value_rev != nil	  count = distributed_count(param)	  count = [count, gain.max_count - 1].min if gain.max_count > 0	  n += gain.value_rev * count	end	return Integer(n)  endend #=================================================# #==============================================================================# ■ Window_Base#============================================================================== class Window_Base < Window  #--------------------------------------------------------------------------  # ○ RP の文字色を取得  #	 actor : アクター  #--------------------------------------------------------------------------  def rp_color(actor)	return (actor.rp == 0 ? knockout_color : normal_color)  end  #--------------------------------------------------------------------------  # ○ 振り分けゲージの色 1 の取得  #--------------------------------------------------------------------------  def distribute_gauge_color1	color = KGC::DistributeParameter::GAUGE_START_COLOR	return (color.is_a?(Integer) ? text_color(color) : color)  end  #--------------------------------------------------------------------------  # ○ 振り分けゲージの色 2 の取得  #--------------------------------------------------------------------------  def distribute_gauge_color2	color = KGC::DistributeParameter::GAUGE_END_COLOR	return (color.is_a?(Integer) ? text_color(color) : color)  end  #--------------------------------------------------------------------------  # ○ RP の描画  #	 actor : アクター  #	 x	 : 描画先 X 座標  #	 y	 : 描画先 Y 座標  #	 width : 幅  #--------------------------------------------------------------------------  def draw_actor_rp(actor, x, y, width = 120)	self.contents.font.color = system_color	self.contents.draw_text(x, y, 40, WLH, Vocab::rp_a)	self.contents.font.color = rp_color(actor)	xr = x + width	if width < 120	  self.contents.draw_text(xr - 40, y, 40, WLH, actor.rp, 2)	else	  self.contents.draw_text(xr - 90, y, 40, WLH, actor.rp, 2)	  self.contents.font.color = normal_color	  self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)	  self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxrp, 2)	end	self.contents.font.color = normal_color  end  #--------------------------------------------------------------------------  # ○ 振り分けゲージの描画  #	 actor : アクター  #	 param : パラメータ  #	 x	 : 描画先 X 座標  #	 y	 : 描画先 Y 座標  #	 width : 幅  #--------------------------------------------------------------------------  def draw_actor_distribute_gauge(actor, param, x, y, width = 120)	gain = actor.gain_parameter_list[param]	return if gain == nil || gain.max_count <= 0	gw = width * actor.distributed_count(param) / gain.max_count	gc1 = distribute_gauge_color1	gc2 = distribute_gauge_color2	self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)	self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)  end  #=============================================================================  #   Added by Mr. Anonymous ( 4/1/08 )  # Sets up the initial parameters and the entended/extra parameters.  #=============================================================================  if KGC::DistributeParameter::SHOW_STATUS_EX_PARAMS	alias draw_actor_parameter_KGC_DistributeParameter draw_actor_parameter	def draw_actor_parameter(actor, x, y, type)	  draw_actor_parameter_KGC_DistributeParameter(actor, x, y, type)	  case type		when 4		  parameter_name = Vocab::hit		  parameter_value = actor.hit		when 5		  parameter_name = Vocab::eva		  parameter_value = actor.eva		when 6		  parameter_name = Vocab::cri		  parameter_value = actor.cri		#when 7		 # parameter_name = Vocab::odds		  #parameter_value = actor.odds	   end	   self.contents.font.color = system_color	   self.contents.draw_text(x, y, 120, WLH, parameter_name)	   self.contents.font.color = normal_color	   self.contents.draw_text(x + 120, y, 36, WLH, parameter_value, 2)	end  endend #=================================================# #==============================================================================# ■ Window_Command#============================================================================== class Window_Command < Window_Selectable  unless method_defined?(:add_command)  #--------------------------------------------------------------------------  # ○ コマンドを追加  #	追加した位置を返す  #--------------------------------------------------------------------------  def add_command(command)	@commands << command	@item_max = @commands.size	item_index = @item_max - 1	refresh_command	draw_item(item_index)	return item_index  end  #--------------------------------------------------------------------------  # ○ コマンドをリフレッシュ  #--------------------------------------------------------------------------  def refresh_command	buf = self.contents.clone	self.height = [self.height, row_max * WLH + 32].max	create_contents	self.contents.blt(0, 0, buf, buf.rect)	buf.dispose  end  #--------------------------------------------------------------------------  # ○ コマンドを挿入  #--------------------------------------------------------------------------  def insert_command(index, command)	@commands.insert(index, command)	@item_max = @commands.size	refresh_command	refresh  end  #--------------------------------------------------------------------------  # ○ コマンドを削除  #--------------------------------------------------------------------------  def remove_command(command)	@commands.delete(command)	@item_max = @commands.size	refresh  end  endend #=================================================# #==============================================================================# ■ Window_Status#==============================================================================# Added by Mr. Anonymous  ( 4/1/08 )# Checks SHOW_STATUS_RP's value, if true RP is added to Status Window.#==============================================================================if KGC::DistributeParameter::SHOW_STATUS_RP  class Window_Status < Window_Base  #--------------------------------------------------------------------------  # ● Draw RP in Status Window   #	 x : Width X - 128 (beneath actor face)  #	 y : Hight Y (On row + Window_Status Definition)  #--------------------------------------------------------------------------	alias draw_basic_info_KGC_DistributeParameter draw_basic_info	def draw_basic_info(x, y)	  # Run original process	  draw_basic_info_KGC_DistributeParameter(x, y)	  # Checks SHOW_STATUS_RP_POS, if 0, RP is shown beneath face of actor.	  if KGC::DistributeParameter::SHOW_STATUS_RP_POS == 0		draw_actor_rp(@actor, x - 129, y + WLH * 4)	  end	  # If 1, RP is shown under parameters. (Centered)	  if KGC::DistributeParameter::SHOW_STATUS_RP_POS == 1		draw_actor_rp(@actor, x - 80, y + WLH * 14 - 6)	  end	end	#------------------------------------------------------------------------	# ● Draw Extra (Normally Hidden) Parameters in Status Window 	#	 x : Width X - 128 (beneath actor face)	#	 y : Hight Y (On row + Window_Status Definition)	# Added by Mr. Anonymous  ( 4/1/08 )	#-------------------------------------------------------------------------	alias draw_parameters_KCG_DistributeParameter draw_parameters	def draw_parameters(x, y)	   # Run original process	   draw_parameters_KCG_DistributeParameter(x, y)	   if KGC::DistributeParameter::SHOW_STATUS_EX_PARAMS		 draw_actor_parameter(@actor, x, y + WLH * 4, 4)		 draw_actor_parameter(@actor, x, y + WLH * 5, 5)		 draw_actor_parameter(@actor, x, y + WLH * 6, 6)		 draw_actor_parameter(@actor, x, y + WLH * 7, 7)	   end	end  end end #=================================================# #==============================================================================# □ Window_DistributeParameterActor#------------------------------------------------------------------------------#   振り分け画面で、アクターの情報を表示するウィンドウです。#============================================================================== class Window_DistributeParameterActor < Window_Base  #--------------------------------------------------------------------------  # ● オブジェクト初期化  #	 x	 : ウィンドウの X 座標  #	 y	 : ウィンドウの Y 座標  #	 actor : アクター  #--------------------------------------------------------------------------  def initialize(x, y, actor)	super(x, y, Graphics.width, WLH + 32)	@actor = actor	refresh  end  #--------------------------------------------------------------------------  # ● リフレッシュ  #--------------------------------------------------------------------------  def refresh	self.contents.clear	draw_actor_name(@actor, 32, 0)	draw_actor_level(@actor, 264, 0)	draw_actor_rp(@actor, 372, 0)	# Include actor class	# Added by Mr. Anonymous  ( 4/1/08 )	draw_actor_class(@actor, 152, 0)	 # Method for displaying actor's sprite	 # Added by Mr. Anonymous  ( 4/1/08 )	if KGC::DistributeParameter::SHOW_SPRITE	   draw_actor_graphic(@actor, 14, 31)	end  endend #=================================================# #==============================================================================# □ Window_DistributeParameterList#------------------------------------------------------------------------------#   振り分け画面で、成長させるパラメータを選択するウィンドウです。#============================================================================== class Window_DistributeParameterList < Window_Selectable  #--------------------------------------------------------------------------  # ● オブジェクト初期化  #	 actor : アクター  #--------------------------------------------------------------------------  def initialize(actor)	off_h = (WLH + 32) * 2	super(0, off_h, Graphics.width / 2 + 80, Graphics.height - off_h)	@actor = actor	refresh	self.index = 0  end  #--------------------------------------------------------------------------  # ○ 選択中のパラメータの Symbol を取得  #--------------------------------------------------------------------------  def parameter_symbol	return @data[self.index]  end  #--------------------------------------------------------------------------  # ● 1 ページに表示できる行数の取得  #--------------------------------------------------------------------------  def page_row_max	return super - 1  end  #--------------------------------------------------------------------------  # ● 項目を描画する矩形の取得  #	 index : 項目番号  #--------------------------------------------------------------------------  def item_rect(index)	rect = super(index)	rect.y += WLH	return rect  end  #--------------------------------------------------------------------------  # ● カーソルを 1 ページ後ろに移動  #--------------------------------------------------------------------------  def cursor_pagedown	return if Input.repeat?(Input::R)	super  end  #--------------------------------------------------------------------------  # ● カーソルを 1 ページ前に移動  #--------------------------------------------------------------------------  def cursor_pageup	return if Input.repeat?(Input::L)	super  end  #--------------------------------------------------------------------------  # ● リフレッシュ  #--------------------------------------------------------------------------  def refresh	@data = []	gain_params = @actor.gain_parameter_list	KGC::DistributeParameter::PARAMS.each { |param|	  next if gain_params[param] == nil	  @data << param	}	@item_max = @data.size + 1	create_contents	@item_max -= 1	draw_caption	@item_max.times { |i| draw_item(i, @actor.can_distribute?(@data[i])) }  end  #--------------------------------------------------------------------------  # ○ Draw Captions  # Editted by Mr. Anonymous  #--------------------------------------------------------------------------  def draw_caption	self.contents.font.color = system_color  # This is shown at the top of the column that lists the stats.	self.contents.draw_text(  4, 0, 96, WLH, KGC::DistributeParameter::AT_CAPTION)	self.contents.draw_text(120, 0, 40, WLH, Vocab.rp, 2)  # This is shown at the top of the column that lists the number of stat points  #   you will gain from buying the next point of the parameter.	self.contents.draw_text(170, 0, 60, WLH, KGC::DistributeParameter::RT_CAPTION, 2)  # This is shown at the top of the column that lists the current and max  #   points you have in each parameter.	self.contents.draw_text(240, 0, 80, WLH, KGC::DistributeParameter::SP_CAPTION, 2)	self.contents.font.color = normal_color  end  #--------------------------------------------------------------------------  # ○ 項目の描画  #	 index   : 項目番号  #	 enabled : 有効フラグ  #--------------------------------------------------------------------------  def draw_item(index, enabled = true)	rect = item_rect(index)	self.contents.clear_rect(rect)	item = @data[index]	if item != nil	  draw_parameter(rect.x, rect.y, @data[index], enabled)	end  end  #--------------------------------------------------------------------------  # ○ 能力値の描画  #	 x	   : 描画先 X 座標  #	 y	   : 描画先 Y 座標  #	 type	: 能力値の種類  #	 enabled : 有効フラグ  #--------------------------------------------------------------------------  def draw_parameter(x, y, type, enabled)	case type	when :maxhp	  name  = Vocab.hp	when :maxmp	  name  = Vocab.mp	when :atk	  name  = Vocab.atk	when :def	  name  = Vocab.def	when :spi	  name  = Vocab.spi	when :agi	  name  = Vocab.agi	when :hit	  name  = Vocab.hit	when :eva	  name  = Vocab.eva	when :cri	  name  = Vocab.cri	when :skill_speed	  name  = Vocab.skill_speed	when :item_speed	  name  = Vocab.item_speed	when :odds	  name  = Vocab.odds	else	  return	end 	self.contents.font.color = normal_color	self.contents.font.color.alpha = enabled ? 255 : 128	self.contents.draw_text(x + 4, y, 96, WLH, name) 	gain = @actor.gain_parameter_list[type]	value = @actor.distribute_cost(type)	self.contents.draw_text(x + 120, y, 40, WLH, value, 2)	value = sprintf("%+d", @actor.distribute_gain(type))	self.contents.draw_text(x + 190, y, 40, WLH, value, 2)	if gain.max_count > 0	  value = sprintf("%3d/%3d", @actor.distributed_count(type), gain.max_count)	else	  value = sprintf("%3d%s", @actor.distributed_count(type),		KGC::DistributeParameter::HIDE_MAX_COUNT_INFINITE ? "" : "/---")	end	self.contents.draw_text(x + 236, y, 80, WLH, value, 2)	self.contents.font.color = normal_color  endend #=================================================# #==============================================================================# □ Window_DistributeParameterStatus#------------------------------------------------------------------------------#   振り分け画面で、アクターのステータスを表示するウィンドウです。#============================================================================== class Window_DistributeParameterStatus < Window_Base  #--------------------------------------------------------------------------  # ● オブジェクト初期化  #	 actor : アクター  #--------------------------------------------------------------------------  def initialize(actor)	dx = Graphics.width / 2 + 80	off_h = (WLH + 32) * 2	super(dx, off_h, Graphics.width - dx, Graphics.height - off_h)	@actor = actor	refresh  end  #--------------------------------------------------------------------------  # ● Refresh  #--------------------------------------------------------------------------  def refresh	original_height = self.height	self.height = WLH * (existing_params.size + 1) + 32	create_contents	self.height = original_height 	self.contents.font.color = system_color	# Editted by Mr. Anonymous	# This allows you to change the text that appears on top of the right panel	#  which contains current parameter changes.	self.contents.draw_text(0, 0, width - 32, WLH, KGC::DistributeParameter::CS_CAPTION, 1)	self.contents.font.color = normal_color	dy = WLH	existing_params.each { |param|	  draw_parameter(0, dy, param)	  dy += WLH	}  end  #--------------------------------------------------------------------------  # ○ 存在するパラメータの一覧  #--------------------------------------------------------------------------  def existing_params	result = []	gain_params = @actor.gain_parameter_list	KGC::DistributeParameter::PARAMS.each { |param|	  next if gain_params[param] == nil	  result << param	}	return result  end  #--------------------------------------------------------------------------  # ○ 能力値の描画  #	 x	: 描画先 X 座標  #	 y	: 描画先 Y 座標  #	 type : 能力値の種類  #--------------------------------------------------------------------------  def draw_parameter(x, y, type)	case type	when :maxhp	  name  = Vocab.hp	  value = @actor.maxhp	when :maxmp	  name  = Vocab.mp	  value = @actor.maxmp	when :atk	  name  = Vocab.atk	  value = @actor.atk	when :def	  name  = Vocab.def	  value = @actor.def	when :spi	  name  = Vocab.spi	  value = @actor.spi	when :agi	  name  = Vocab.agi	  value = @actor.agi	when :hit	  name  = Vocab.hit	  value = @actor.hit	when :eva	  name  = Vocab.eva	  value = @actor.eva	when :cri	  name  = Vocab.cri	  value = @actor.cri	when :skill_speed	  name  = Vocab.skill_speed	  value = @actor.distributed_param(type)	when :item_speed	  name  = Vocab.item_speed	  value = @actor.distributed_param(type)	when :odds	  name  = Vocab.odds	  value = @actor.odds	else	  return	end	draw_actor_distribute_gauge(@actor, type, x + 106, y, 48)	self.contents.font.color = system_color	self.contents.draw_text(x + 4, y, 96, WLH, name)	self.contents.font.color = normal_color	self.contents.draw_text(x + 106, y, 48, WLH, value, 2)  endend #=================================================# #==============================================================================# ■ Scene_Map#============================================================================== class Scene_Map < Scene_Base  #--------------------------------------------------------------------------  # ● 画面切り替えの実行  #--------------------------------------------------------------------------  alias update_scene_change_KGC_DistributeParameter update_scene_change  def update_scene_change	return if $game_player.moving?	# プレイヤーの移動中? 	if $game_temp.next_scene == :distribute_parameter	  call_distribute_parameter	  return	end 	update_scene_change_KGC_DistributeParameter  end  #--------------------------------------------------------------------------  # ○ パラメータ振り分け画面への切り替え  #--------------------------------------------------------------------------  def call_distribute_parameter	$game_temp.next_scene = nil	$scene = Scene_DistributeParameter.new(	  $game_temp.next_scene_actor_index,	  0,	  Scene_DistributeParameter::HOST_MAP)  endend #=================================================# #==============================================================================# ■ Scene_Menu#============================================================================== class Scene_Menu < Scene_Base  if KGC::DistributeParameter::USE_MENU_DISTRIBUTE_PARAMETER_COMMAND  #--------------------------------------------------------------------------  # ● コマンドウィンドウの作成  #--------------------------------------------------------------------------  alias create_command_window_KGC_DistributeParameter create_command_window  def create_command_window	create_command_window_KGC_DistributeParameter 	return if $imported["CustomMenuCommand"] 	@__command_distribute_parameter_index =	  @command_window.add_command(Vocab.distribute_parameter)	if @command_window.oy > 0	  @command_window.oy -= Window_Base::WLH	end	@command_window.index = @menu_index  end  end  #--------------------------------------------------------------------------  # ● コマンド選択の更新  #--------------------------------------------------------------------------  alias update_command_selection_KGC_DistributeParameter update_command_selection  def update_command_selection	call_distribute_parameter_flag = false	if Input.trigger?(Input::C)	  case @command_window.index	  when @__command_distribute_parameter_index  # パラメータ振り分け		call_distribute_parameter_flag = true	  end	end 	# パラメータ振り分け画面に移行	if call_distribute_parameter_flag	  if $game_party.members.size == 0		Sound.play_buzzer		return	  end	  Sound.play_decision	  start_actor_selection	  return	end 	update_command_selection_KGC_DistributeParameter  end  #--------------------------------------------------------------------------  # ● アクター選択の更新  #--------------------------------------------------------------------------  alias update_actor_selection_KGC_DistributeParameter update_actor_selection  def update_actor_selection	if Input.trigger?(Input::C)	  $game_party.last_actor_index = @status_window.index	  Sound.play_decision	  case @command_window.index	  when @__command_distribute_parameter_index  # パラメータ振り分け		$scene = Scene_DistributeParameter.new(		  @status_window.index,		  @__command_distribute_parameter_index,		  Scene_DistributeParameter::HOST_MENU)		return	  end	end 	update_actor_selection_KGC_DistributeParameter  endend #=================================================# #==============================================================================# □ Scene_DistributeParameter#------------------------------------------------------------------------------#   パラメータ振り分け画面の処理を行うクラスです。#============================================================================== class Scene_DistributeParameter < Scene_Base  #--------------------------------------------------------------------------  # ○ 定数  #--------------------------------------------------------------------------  HOST_MENU   = 0  # 呼び出し元 : メニュー  HOST_MAP	= 1  # 呼び出し元 : マップ  #--------------------------------------------------------------------------  # ● オブジェクト初期化  #	 actor_index : アクターインデックス  #	 menu_index  : コマンドのカーソル初期位置  #	 host_scene  : 呼び出し元 (0..メニュー  1..マップ)  #--------------------------------------------------------------------------  def initialize(actor_index = 0, menu_index = 0, host_scene = HOST_MENU)	@actor_index = actor_index	@menu_index = menu_index	@host_scene = host_scene  end  #--------------------------------------------------------------------------  # ● 開始処理  #--------------------------------------------------------------------------  def start	super	create_menu_background 	@actor = $game_party.members[@actor_index]	create_windows  end  #--------------------------------------------------------------------------  # ○ ウィンドウ作成  #--------------------------------------------------------------------------  def create_windows	@help_window = Window_Help.new	@help_window.set_text(KGC::DistributeParameter::DISTRIBUTE_SCENE_CAPTION)	dy = @help_window.height	@actor_window = Window_DistributeParameterActor.new(0, dy, @actor)	@parameter_window = Window_DistributeParameterList.new(@actor)	@status_window = Window_DistributeParameterStatus.new(@actor)  end  #--------------------------------------------------------------------------  # ● 終了処理  #--------------------------------------------------------------------------  def terminate	super	dispose_menu_background	@help_window.dispose	@actor_window.dispose	@parameter_window.dispose	@status_window.dispose  end  #--------------------------------------------------------------------------  # ○ 元の画面へ戻る  #--------------------------------------------------------------------------  def return_scene	case @host_scene	when HOST_MENU	  $scene = Scene_Menu.new(@menu_index)	when HOST_MAP	  $scene = Scene_Map.new	end  end  #--------------------------------------------------------------------------  # ● フレーム更新  #--------------------------------------------------------------------------  def update	super	update_menu_background	update_window	if @parameter_window.active	  update_parameter_list	end  end  #--------------------------------------------------------------------------  # ○ ウィンドウ更新  #--------------------------------------------------------------------------  def update_window	@help_window.update	@actor_window.update	@parameter_window.update	@status_window.update  end  #--------------------------------------------------------------------------  # ○ ウィンドウ再描画  #--------------------------------------------------------------------------  def refresh_window	@actor_window.refresh	@parameter_window.refresh	@status_window.refresh	Graphics.frame_reset  end  #--------------------------------------------------------------------------  # ○ 次のアクターの画面に切り替え  #--------------------------------------------------------------------------  def next_actor	@actor_index += 1	@actor_index %= $game_party.members.size	$scene = Scene_DistributeParameter.new(@actor_index,	  @menu_index, @host_scene)  end  #--------------------------------------------------------------------------  # ○ 前のアクターの画面に切り替え  #--------------------------------------------------------------------------  def prev_actor	@actor_index += $game_party.members.size - 1	@actor_index %= $game_party.members.size	$scene = Scene_DistributeParameter.new(@actor_index,	  @menu_index, @host_scene)  end  #--------------------------------------------------------------------------  # ○ フレーム更新 (パラメータウィンドウがアクティブの場合)  #--------------------------------------------------------------------------  def update_parameter_list	@status_window.oy = @parameter_window.oy 	if Input.trigger?(Input::B)	  Sound.play_cancel	  return_scene	elsif input_growth?	  # 加算	  param = @parameter_window.parameter_symbol	  unless @actor.can_distribute?(param)		Sound.play_buzzer		return	  end	  Input.repeat?(Input::C) ? Sound.play_decision : Sound.play_cursor	  @actor.rp_growth_effect(param)	  refresh_window	elsif input_reverse_growth?	  # 減算	  param = @parameter_window.parameter_symbol	  if @actor.distributed_count(param) == 0		Sound.play_buzzer		return	  end	  Input.repeat?(Input::A) ? Sound.play_decision : Sound.play_cursor	  @actor.rp_growth_effect(param, true)	  refresh_window	elsif Input.trigger?(Input::R)	  Sound.play_cursor	  next_actor	elsif Input.trigger?(Input::L)	  Sound.play_cursor	  prev_actor	end  end  #--------------------------------------------------------------------------  # ○ 加算入力  #--------------------------------------------------------------------------  def input_growth?	if KGC::DistributeParameter::ENABLE_REVERSE_DISTRIBUTE	  return Input.repeat?(Input::C) || Input.repeat?(Input::RIGHT)	else	  return Input.trigger?(Input::C)	end  end  #--------------------------------------------------------------------------  # ○ 減算入力  #--------------------------------------------------------------------------  def input_reverse_growth?	if KGC::DistributeParameter::ENABLE_REVERSE_DISTRIBUTE	  return Input.repeat?(Input::A) || Input.repeat?(Input::LEFT)	else	  return false	end  endend #=================================================# #==============================================================================# ■ Scene_Status#==============================================================================# Added by Mr. Anonymous#==============================================================================class Scene_Status < Scene_Base  #--------------------------------------------------------------------------  # ● Update Actor  #--------------------------------------------------------------------------	alias update_KGC_DistributeParameter update	def update	  # If the key assigned for calling distribute parameter from the status	  # screen is assigned and pressed, called the DistributeParameter scene.	  if KGC::DistributeParameter::CALL_DISTPARAMKEY != nil &&		 Input.trigger?(KGC::DistributeParameter::CALL_DISTPARAMKEY)		 Sound.play_decision		 $scene = Scene_DistributeParameter.new(@actor_index)	   end	   # Run original process	 update_KGC_DistributeParameter   end end #=================================================# #==============================================================================# ■ Scene_File#============================================================================== class Scene_File < Scene_Base  #--------------------------------------------------------------------------  # ● Read Saved Data  #	 file : 読み込み用ファイルオブジェクト (オープン済み)  #--------------------------------------------------------------------------  alias read_save_data_KGC_DistributeParameter read_save_data  def read_save_data(file)	read_save_data_KGC_DistributeParameter(file) 	KGC::Commands.check_distribution_values	Graphics.frame_reset  endend

     

  7. Bè, provo a scaricare (:

    Quanto dura più o meno?

     

    Dà un erroreeeeeeee

    sembra che manchi una risorsa.. quando si è dal re..

    Speravo fosse un "finto errore" come goi altri.. e invece no, stavolta era vero ._.

     

    il gioca dura sulle 5 ore...

    ma l'errore dov'è? io non l'ho trovato... puoi mandarmi uno screen o essere più preciso, ti sarò infinitamente grato!

  8. A voi i primi due fra i quattro generali che simboleggiano le catastrofi naturali di un mondo che si avvicina alla fine. Dopo l'immaginona in cui c'erano solo la silhouettes, ecco i disegni completi, direttamente dagli schizzi preparatori del fumetto.

     

     

    http://i27.tinypic.com/1py177.jpg

     

     

    http://i29.tinypic.com/11brpf8.jpg

     

     

    Ed infine gli ultimi due generali.

     

     

    http://i25.tinypic.com/2e6af0m.jpg

     

     

    http://i25.tinypic.com/14sgqc8.jpg

     

     

    Badate, esposizione limitata nel tempo! XD

     

    porca vacca, se i disegni sono fatti da te hai un tratto decisamente impressionante... soprattutto la cura dei dettagli!

    wow!!!

  9. tile_id è diverso da terrain_tag, anche nell'xp . . .

    Si tratta di un ID assegnato dall'editor alle caselline che compongono un tileset.

     

    L'autore di questo script ha inserito un sistema per ricavarlo in-game, inserendo la chiamata al metodo debug_tileid, nel punto indicato nello script stesso da queste frasi

    	 # Use "debug_tileid" here to bring up the numbers of all the current tiles	 # to use with definitions of the tileids, walk over tiles ingame...

    Camminando, quando nello script è stata inserita la chiamata al metodo, si fanno apparire dei messaggi che contengono i valori di tile_id da usare per configurare i suoni nello script . . .

     

    quindi nel vx posso fare come dici tu?

  10. Ho iniziato a provarlo, ma ti faccio subito un appunto...

    Le parolacce abbondano e finiscono dello scadere nella volgarità gratuita... una parolaccia detta ogni tanto può andar bene, ma che ad ogni forziere l'eroe dica "che culo"... dopo un pò non fa più ridere...

    Spero vivamente sia voluto, perchè non hai azzeccato neanche un congiuntivo! Eheh :rovatfl:

    L'attacco con la roccia è ultra potente, infligge 500 danni a tutti i nemici! Eccezionale se lo usi tu, ma secondo me un pò sgravato!

    I nemici hanno parecchi hp, il che obbliga ad usare sempre l'attacco speciale per non prenderle di santa ragione.

    Quando fai il riassunto della storia, qualche nome potrebbe far comodo, tipo il cattivo o il padre, tanto da creare più atmosfera!

     

    Comunque vedo che c'è parecchia passione nel progetto e voglio vedere come andrà a finire!

  11. l'animazione dei personaggi è decisamente ammirabile, ma ho 2 problemi:

    all'inizio dici che per combattere devi premere Y... ma non funziona e per fortuna ho scoperto che con la tastiera bisogna premere S e la direzione di dovè il mostro, altrimenti si mollano fendenti all'aria.

     

    sull'isola c'è un quick time event dove devo premmere "su, su, su C, C"... ma che cosa è C. No di certo il tasto lettera c della tastiera...

  12. la demo del capitolo 1 è gia disponibile (area apposita, qulla delle release e demo),

    ma per darvi un'idea di quello che verrà, eccovi la locandina del capitolo 2:

     

    http://i27.tinypic.com/2mg5hk6.png

  13. Gioco Completo, ProgettOne:

    http://www.rpg2s.net/forum/index.php?showtopic=6990

     

    Demo di 1 ora, ProjecTwo:

    http://www.rpg2s.net/forum/index.php?showtopic=8050

     

    VOTAZIONI

    Alle demo e ai giochi completi verranno assegnati Rens solo se saranno presenti, nel topic della release 10 voti utente + 1 voto di un membro dello staff, utili per fare la media e assegnare i corrispondenti Rens.

    I voti vanno da 1 a 10 e ogni voto deve assolutamente essere accompagnato da un accurato commento (pena l'annullamento del voto).

    NB.Sarà considerato solo il voto degli utenti che sono attivi nella community (100 post e connessione recente)

    NB. Lo staff potrà controllare le votazioni e stabilire se i voti dati sono stati obiettivi o meno (nel secondo caso non verranno tenuti in conto).

     

    Aspetto i voti ;)

  14. in download!

    indubbiamente la cura per la grafica (in senso lato) è notevole... io non sarei capace!

     

    tra l'intro e la copertina, vedo che c'è una buona cura grafica. poi hai usato per il mapping tiles diversi dai base, dando un tono di novità!

    l'unica critica è che hai usato al posto delle faccine dei personaggi interi (dove gli hai trovati? li hai fatti tu, sono una figata), ma immagino che per farli stare tu li abbia ridotti di dimensione, ma sono quasi tutti tagliati male, deformi e sgranati...

    poco piacevoli, soprattutto la ragazza, è bassa e tozza... decisamente poco sensuale.

    Dunque, ho provato il gioco:

    il battle sistem è ok, ma siccome non riesco a mettere in tutto schermo (problemi del mio pc) la gran quantità di cose sullo schermo (soprattutto i nemici grossi) ed il fatto che ATB è in attivo, crea un pò di confusione. ti consiglio almeno di mettere in pausa quando stà ad un giocatore, per dargli la possibilità di guardare cosa fare...

     

    latro appunto, ma marginale, è che le window che usi NON sono trasparenti ed a volte coprono tutta l'azione... vedi tu se farci qualcosa, ogni tanto mi hanno dato qualche problema, ma non più di tanto.

     

    vedo che stai mettendo molto nella trama e fa piacere, soprattutto quando mediamente i videogiochi che escono adesso hanno sempre trame cessose, fa piacere trovare qualcuno che abbia ancora cuore per la cosa, ma ti faccio qualche appunto...

    ho apprezzato il fatto che tu non ti dilunghi eccessivamente in spiegazioni, ma ho l'impressione giocando che le cose accadano con troppa rapidità. da un lato potrebbe essere una cosa buona, come se il protagonista fosse trascinato dagli eventi, ma ho avuto l'impressione che a lui non gliene freghi molto...

    esempio: a parte il combattimento in giardino che ho trovato molto divertente, perchè se ci pensi, vedere dei marmocchi che combattono a palle di fuoco in un giardino di un orfanotrofio per uno stupido diverbio, con le suore che guardano divertite, bhè, WOW...

    all'inizio quando si parla del reclutamento, potresti dire che altri amici sono stati reclutati precedentemente e la guerra li ha uccisi (anche se sarebbe più probabile che dei giovani vengano prima allenati che mandati al confine...) e tu ed i tuoi amici non volete fare la stessa fine... oppure fare che la tua amica ti fa scappare perchè non vuole vederti andare via, perchè sennò lei rimarrebbe da sola e non vuole vedere la tua morte... cose così, vai pure sul patetico (nel senso di ricco di pathos), serve solo a dare un pò di stimolo.

     

    quando vengono a prelevarti di notte, c'è fin troppa epicità, immagino che quel tizio in maschera sia il cattivone, ma viene sconfitto, insieme a due guardie, da QUATTRO MARMOCCHI APPENA IN PUBERTA', SENZA ALLENAMENTO MILITARE!!! e poi dice una frase ad effetto e ti cattura... sarebbe stato meglio che ti sconfiggesse in duello (puoi farlo, metti il mostro mooolto forte e fai che non muori a fine combattimento spuntando la casella quando crei l'evento del combattimento)

     

    altra obbiezione, quando decidi di unirti ai ribelli, la motivazione del ragazzo è "io gli credo", ripetuta quasi ad ogni battuta... fa molto cartone giapponese, dove l'importante è "crederci"... di piuttosto che il protagonista è stufo di vedere i suoi amici morire (magari qualcuno è morto nella fuga accusato di essere disertore, magari addirittura la tua amica) e vuole essere parte attiva nella soluzione del problema.

     

    questi sono solo consigli libero di ignorarli, in fondo il gioco non è male e sono curioso id vedere come andrà avanti!

     

    ps, riduci gli incontri casuali, sono frustranti, fai almeno 70~100 passi...

  15. dunque sono arrivato alla boss ma mi ha inchiodato...

    devo dire che la prima cosa che balza all'occhio è la cura grafica! incredibile, soprattutto quella del menu!

    wow! mi piace molto il sistema di gestione del personaggio, con l'opzione di scegliere da un set di abilità, veramente bello, a tal proposito volevo chiederti se lo avevi fatto tu o trovato in giro, mi piacerebbe metterci su le mani :rolleyes:

     

    da noioso quale sono, ho qualche lamentela, tipo la trama ed i dialoghi iniziali non mi hanno convinto molto... li ho trovati un pò stereotipati e eccessivamente "fuori luogo"... se esistesse un posto dove la gente perde la memoria, cavoli, sarei sorpreso e allarmato e non manderei una bamboccia con un bastone e quel vecchio di merda potrebbe aiutarmi con un pò più di passione...

    in oltre il BS, per quanto ben fatto (non so come tu ci sia riuscito, è veramente bello) è un pò macchinoso e poco fluido, nel senso dei limiti di RPG Maker VX...

    MA ciò nonostante mi sono divertito e parecchio! ho provavo gusto nell'uccidere i nemici erranti e nel vedere la barra verde del level up aumentare fino alla fallica esplosione del "nuovo livello" con la fregola di scegliere la nuova abilità!

    BELLO!

    purtroppo, come dicevo, per problemi di macchinosità, il boss mi ha ammazzato di brutto...

     

    complimenti, un lavoro incredibile!

    comunque, visto che l'unico difetto per me è la trama poco chiara, non so, ma una breve intro farebbe comodo... non mi sono soffermato troppo a leggere il tuo post, ma immagino ci sia scritto qualcosa, ma appena ho iniziato a giocare (e grazie a dio per caso sono partito degli extra trovandomi subito a fare il gioco) mi sono ritrovato un pò spaesato (controlli a parte)...

     

    comunque, good job!!!

  16. io l'ho provato e devo dire che mi è piaciuto da morire

    finalmente un gioco ben fatto e che non annoia

    P.S.:sei stato grande a inserire Final Fantasy VII,Zelda e altri nel gioco!

     

    grazie mille! i complimenti fanno sempre mooolto piacere!

    devo dire che ci sono ancora delle imperfezioni, ma credo che l'aspetto comico le nasconda...

     

    nel seguito ho curato molto più la gestione del level up ed i bug vari!

×
×
  • Create New...