HOME
ツクール
RGSS
テクニック
ゲーム紹介
制作中のゲーム
ダウンロード
掲示板
ブログ
EnDREss DREamERブログ
PCパーツ・ソフト通販(仮)
DIYチューンブログ
リンク
職業能力補正
コンセプト
職業別に%単位で能力補正を行いたい。
挿入位置
「▼ 素材」のすぐ下辺りに。
完成すると
職業変更ごとに元のステータスをベースに補正処理が行われる。
更新履歴
6/4:LEVEL_UP_CUSTOM_PARAMSでのレベルアップによる能力加算修正。 2/15:ヘルプの記述「アクターID」ではなく「クラスID」に修正。 ========== 2010年 ============================================================ 11/14:能力加算処理を修正。 7/22:クリティカル関係のメソッドでのエラー修正。
#============================================================================== # ☆VX RGSS2 「職業能力補正」☆ # EnDlEss DREamER # URL:http://mitsu-evo.6.ql.bz/ # 製作者 mitsu-evo # Last:2010/6/4 # アクターのデータベース能力を職業別に%で補正する。 # ▼ 素材よりも下に。 #============================================================================== $ed_rgss2 = {} if $ed_rgss2 == nil $ed_rgss2["ed_class_revision"] = true =begin 6/4:LEVEL_UP_CUSTOM_PARAMSでのレベルアップによる能力加算修正。 ★ 機能説明 ★ ・下記設定すると、各パラメータが現在のアクターステータスを%補正します。 50と設定したなら現在の能力の50%に。200なら現在のパラメータの200%に。 職業ごとに設定すると職業による能力差を出せます。 ・LEVEL_UP_CUSTOM_PARAMS を true にすると CLASS_PARAMS を設定することで 職業別の成長度を「データベースの成長値に加算して」設定出来ます。 途中で職業を変えると次のレベルで加算される値も変更されます。 =end module ED CLASS_REVISION = [] # %で補正する [クラスID] = [HP,MP,攻撃,防御,精神,敏捷,クリティカル] # 「0..20」はデータベース職業ID。1からでも良い。 # 一括設定をする場合に便利。 #for i in 0..20 # CLASS_REVISION.push([100,100,100,100,100,100,100]) #end CLASS_REVISION[1] = [100,100,100,100,100,100,100] CLASS_REVISION[2] = [120,65,120,120,30,40,100] CLASS_REVISION[3] = [70,150,40,50,130,55,100] CLASS_REVISION[4] = [80,140,50,50,115,60,100] CLASS_REVISION[5] = [140,65,130,120,30,50,100] CLASS_REVISION[6] = [110,90,100,80,80,65,100] CLASS_REVISION[7] = [150,20,140,80,20,100,130] CLASS_REVISION[8] = [85,30,90,80,40,200,100] # 職業ごとのレベルアップ時の能力上昇値設定をアクターに適用するかどうか LEVEL_UP_CUSTOM_PARAMS = true # 上記を適用する場合は以下の設定を全職業分行なって下さい。 # パラメータ×99して、最終的にどれくらいになるかあらかじめ計算して # ゲームに合った値を設定して下さい。 CLASS_PARAMS = [] # 上昇する値[クラスID] = [HP,MP,攻撃,防御,精神,敏捷] CLASS_PARAMS[1] = [10,5,4,4,4,3] CLASS_PARAMS[2] = [15,3,6,4,2,2] CLASS_PARAMS[3] = [6,15,3,3,6,3] CLASS_PARAMS[4] = [7,12,3,3,5,3] CLASS_PARAMS[5] = [11,3,6,5,3,4] CLASS_PARAMS[6] = [10,6,5,4,4,5] CLASS_PARAMS[7] = [15,1,8,5,1,6] CLASS_PARAMS[8] = [8,8,5,3,4,10] end #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ # アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors) # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。 #============================================================================== class Game_Actor < Game_Battler attr_accessor :growth_maxhp attr_accessor :growth_maxmp attr_accessor :growth_atk attr_accessor :growth_def attr_accessor :growth_spi attr_accessor :growth_agi #-------------------------------------------------------------------------- # ● オブジェクト初期化 # actor_id : アクター ID #-------------------------------------------------------------------------- alias ed_class_revision_initialize initialize def initialize(actor_id) ed_class_revision_initialize(actor_id) @revision_flag = false @cri_plus = 0 end #-------------------------------------------------------------------------- # ● セットアップ # actor_id : アクター ID #-------------------------------------------------------------------------- alias ed_class_revision_setup setup def setup(actor_id) ed_class_revision_setup(actor_id) unless @revision_flag == true class_revision @revision_flag = true end end #-------------------------------------------------------------------------- # ● 範囲指定乱数メソッド作成 #-------------------------------------------------------------------------- def ed_rand(min,max) n = rand(max) if n < min until n < min rand(max) end end return n end #-------------------------------------------------------------------------- # ● 能力補正初期化 #-------------------------------------------------------------------------- def format_param_plus @maxhp_plus = 0 @maxmp_plus = 0 @atk_plus = 0 @def_plus = 0 @spi_plus = 0 @agi_plus = 0 @cri_plus = 0 @class_hp = 0 @class_mp = 0 @class_atk = 0 @class_def = 0 @class_spi = 0 @class_agi = 0 @class_cri = 0 @growth_maxhp = 0 # 成長補正用変数 @growth_maxmp = 0 @growth_atk = 0 @growth_def = 0 @growth_spi = 0 @growth_agi = 0 end #-------------------------------------------------------------------------- # ● 職業 ID の変更 # class_id : 新しい職業 ID #-------------------------------------------------------------------------- alias ed_class_revision_class_id class_id= def class_id=(class_id) ed_class_revision_class_id(class_id) @class_parameters = Table.new(6,100) @old_hp = 0 @old_mp = 0 @old_atk = 0 @old_def = 0 @old_spi = 0 @old_agi = 0 class_revision end #-------------------------------------------------------------------------- # ● 能力補正処理 #-------------------------------------------------------------------------- def format_revision return @maxhp_plus == nil @maxhp_plus -= @class_hp if @maxhp_plus >= @class_hp @maxmp_plus -= @class_mp if @maxmp_plus >= @class_mp @atk_plus -= @class_atk if @atk_plus >= @class_atk @def_plus -= @class_def if @def_plus >= @class_def @spi_plus -= @class_spi if @spi_plus >= @class_spi @agi_plus -= @class_agi if @agi_plus >= @class_agi @cri_plus -= @class_cri if @cri_plus >= @class_cri end #-------------------------------------------------------------------------- # ● 能力補正処理 #-------------------------------------------------------------------------- def class_revision format_revision revision = ED::CLASS_REVISION[@class_id] == nil ? [100,100,100,100,100,100,100] : ED::CLASS_REVISION[@class_id] self.base_maxhp = revision[0] self.base_maxmp = revision[1] self.base_atk = revision[2] self.base_def = revision[3] self.base_spi = revision[4] self.base_agi = revision[5] self.cri = revision[6] end #-------------------------------------------------------------------------- # ● 基本 MaxHP の取得 #-------------------------------------------------------------------------- alias ed_class_revision_base_maxhp base_maxhp def base_maxhp @growth_maxhp = 0 if @growth_maxhp == nil @old_hp = 0 if @old_hp == nil if ED::CLASS_PARAMS[@class_id] != nil && @old_hp != @level a = @level b = @old_hp a -= b a = 1 if a < 0 @growth_maxhp += ED::CLASS_PARAMS[@class_id][0] if ED::LEVEL_UP_CUSTOM_PARAMS end @old_hp = @level return ed_class_revision_base_maxhp + @growth_maxhp end #-------------------------------------------------------------------------- # ● 基本 MaxMP の取得 #-------------------------------------------------------------------------- alias ed_class_revision_base_maxmp base_maxmp def base_maxmp @growth_maxmp = 0 if @growth_maxmp == nil @old_mp = 0 if @old_mp == nil if ED::CLASS_PARAMS[@class_id] != nil && @old_mp != @level a = @level b = @old_mp a -= b a = 1 if a < 0 @growth_maxmp += ED::CLASS_PARAMS[@class_id][1] if ED::LEVEL_UP_CUSTOM_PARAMS end @old_mp = @level return ed_class_revision_base_maxmp + @growth_maxmp end #-------------------------------------------------------------------------- # ● 基本攻撃力の取得 #-------------------------------------------------------------------------- alias ed_class_revision_base_atk base_atk def base_atk @growth_atk = 0 if @growth_atk == nil @old_atk = 0 if @old_atk == nil if ED::CLASS_PARAMS[@class_id] != nil && @old_atk != @level a = @level b = @old_atk a -= b a = 1 if a < 0 @growth_atk += ED::CLASS_PARAMS[@class_id][2] if ED::LEVEL_UP_CUSTOM_PARAMS end @old_atk = @level return ed_class_revision_base_atk + @growth_atk end #-------------------------------------------------------------------------- # ● 基本防御力の取得 #-------------------------------------------------------------------------- alias ed_class_revision_base_def base_def def base_def @growth_def = 0 if @growth_def == nil @old_def = 0 if @old_def == nil if ED::CLASS_PARAMS[@class_id] != nil && @old_def != @level a = @level b = @old_def a -= b a = 1 if a < 0 @growth_def += ED::CLASS_PARAMS[@class_id][3] if ED::LEVEL_UP_CUSTOM_PARAMS end @old_def = @level return ed_class_revision_base_def + @growth_def end #-------------------------------------------------------------------------- # ● 基本精神力の取得 #-------------------------------------------------------------------------- alias ed_class_revision_base_spi base_spi def base_spi @growth_spi = 0 if @growth_spi == nil @old_spi = 0 if @old_spi == nil if ED::CLASS_PARAMS[@class_id] != nil && @old_spi != @level a = @level b = @old_spi a -= b a = 1 if a < 0 @growth_spi += ED::CLASS_PARAMS[@class_id][4] if ED::LEVEL_UP_CUSTOM_PARAMS end @old_spi = @level return ed_class_revision_base_spi + @growth_spi end #-------------------------------------------------------------------------- # ● 基本敏捷性の取得 #-------------------------------------------------------------------------- alias ed_class_revision_base_agi base_agi def base_agi @growth_agi = 0 if @growth_agi == nil @old_agi = 0 if @old_agi == nil if ED::CLASS_PARAMS[@class_id] != nil && @old_agi != @level a = @level b = @old_agi a -= b a = 1 if a < 0 @growth_agi += ED::CLASS_PARAMS[@class_id][5] if ED::LEVEL_UP_CUSTOM_PARAMS end @old_agi = @level return ed_class_revision_base_agi + @growth_agi end #-------------------------------------------------------------------------- # ● クリティカル率の取得 #-------------------------------------------------------------------------- alias ed_class_revision_cri cri def cri @cri_plus = 0 if @cri_plus == nil return ed_class_revision_cri end #-------------------------------------------------------------------------- # ● 基本 MaxHP の補正 #-------------------------------------------------------------------------- def base_maxhp=(value=0) @maxhp_plus -= @class_hp unless @class_hp == nil @class_hp = (base_maxhp * value) / 100 - base_maxhp @maxhp_plus += @class_hp return @maxhp_plus end #-------------------------------------------------------------------------- # ● 基本 MaxMP の補正 #-------------------------------------------------------------------------- def base_maxmp=(value=0) @maxmp_plus -= @class_mp unless @class_mp == nil @class_mp = (base_maxmp * value) / 100 - base_maxmp @maxmp_plus += @class_mp return @maxmp_plus end #-------------------------------------------------------------------------- # ● 基本攻撃力の補正 #-------------------------------------------------------------------------- def base_atk=(value=0) @atk_plus -= @class_atk unless @class_atk == nil @class_atk = (base_atk * value) / 100 - base_atk @atk_plus += @class_atk return @atk_plus end #-------------------------------------------------------------------------- # ● 基本防御力の補正 #-------------------------------------------------------------------------- def base_def=(value=0) @def_plus -= @class_def unless @class_def == nil @class_def = (base_def * value) / 100 - base_def @def_plus += @class_def return @def_plus end #-------------------------------------------------------------------------- # ● 基本精神力の補正 #-------------------------------------------------------------------------- def base_spi=(value=0) @spi_plus -= @class_spi unless @class_spi == nil @class_spi = (base_spi * value) / 100 - base_spi @spi_plus += @class_spi return end #-------------------------------------------------------------------------- # ● 基本敏捷性の補正 #-------------------------------------------------------------------------- def base_agi=(value=0) @agi_plus -= @class_agi unless @class_agi == nil @class_agi = (base_agi * value) / 100 - base_agi @agi_plus += @class_agi return @agi_plus end #-------------------------------------------------------------------------- # ● クリティカル率の補正 #-------------------------------------------------------------------------- def cri=(value=0) @cri_plus -= @class_cri unless @class_cri == nil @class_cri = (cri * value) / 100 - cri @cri_plus = @class_cri return @cri_plus end end
Copyright (C)
永遠の夢に向かって
. All Rights Reserved.
テンプレートのpondt
リサーチ