-
Posts
77 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Benjamin Ficus
-
-
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!

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:
-
Allora questo è un gioco INDIE,non più amatoriale!
yep! :rovatfl:
-
COSA???
Metteranno progett0ne su xbox live? e tu come fai a saperlo?
bwahhh!gliel'ho detto io!
da quando ho iniziato a lavorare sull'xbox lo dico a tutti! ahaha!
dreams come true!
-
Per chi ha provato il gioco, vi prego di valutaro, in modo da darmi la possibilità di ricevere dei rens...
Thx!!! :rovatfl:
-
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 ;)
-
Ho postato la versione 2, sarà con questa che parteciperò!
-
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.
-
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:
-
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 -
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!
-
Postata la versione definitiva, 4.2, corretta da ogni bug, con un gameplay più lineare e friendly!
se non ci avete ancora giocato, FATELO SUBITO!
-
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!!!
-
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?
-
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!
-
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...
-
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 -
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 ;)
-
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...
-
Tutto risolto :)
Ottimo! cmq, quando avrai finito ProgettOne, ho postato una demo del primo capitolo del seguito, ProjecTwo
-
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!!!
-
in download!
indubbiamente la cura per la grafica (in senso lato) è notevole... io non sarei capace!
-
Se a partecipare ci sono solo io, magari riesco a vincere :smile:
Ho appena completato la demo del primo capitolo del seguito, 1 ora di gioco e tanto ancora!
(bhè a dire il vero, no...)
Provare per credere!
-
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!
-
Il nuovo capitolo siiiiiiiiii!!!!!!!!
Bella li, sapevo che saresti comparso super contento!

ProjecTwo: Re: Insert Subject Here [DEMO v 2.0]
in Release VX e VX-Ace
Posted
il caso ha voluto che leggessi :D dopo anni :D
sono tornato a bazzicare i forum dove "tutto è cominciato"