#============================================================================== # ■ VX-RGSS2-3 閃きシステム [Ver.1.2.0] by Claimh #------------------------------------------------------------------------------ # 通常攻撃時、スキル使用時にある確率でスキルを新たに覚える(= 閃く) # 次の3タイプの閃き動作を行います # 通常 :通常攻撃時に設定した閃き率で閃く # スキル派生 :特定のスキル使用時に閃く # エネミー閃き :エネミーが通常攻撃時またはスキル使用時に閃く #------------------------------------------------------------------------------ #【VX版 機能制限】 # ・閃き時のアニメーションは使えません。代わりにメッセージ表示をしてます。 # ・付属機能の一部に制限があります。 #============================================================================== module SysFlash TYPE_NORMAL=0;TYPE_DERIVE=1;TYPE_ENEMY=2 #============================================================================== # □ 基本設定 #============================================================================== # 通常閃き NORMAL_FLASH = true # 無効化→false # スキル派生 DERIVE_FLASH = true # 無効化→false # スキル派生時の閃き基準 # スキル使用回数:true # 閃き率 :false DEREIVE_USE = false # スキル使用時に通常閃き判定有り # …この機能を有効化するとスキル派生に失敗した後に通常閃きの判定に入ります # (結果、スキル使用時は閃きやすくなります) SKILL_NORMAL_FLASH = true # スキル使用時の通常閃きで基本ダメージの落ちるスキルは閃かない DISABLE_PW_DOWN = true # スキル使用時の通常閃きでは同一属性を持つスキルしか閃かない ONLY_SAME_ELEMENT = false UNCHECK_ELEMENTS = [20, 21] # チェック対象外とする属性ID # エネミー閃き(通常攻撃時)有り ENEMY_NORMAL = true # 無効化→false # エネミー閃き(スキル使用時)有り ENEMY_SKILL = true # 無効化→false =begin !!機能制限により使用不可!! # 閃き用のアニメーションを使用する FLASH_ANIME = true # 無効化→false # スキルを閃いたときに表示するアニメーションID FLASH_ANIMATION_ID = 49 # アニメーションの待ち時間 FLASH_ANIME_WAIT = 10 =end # スキル閃き時の消費MPを0にする FLASH_COST = true # 無効化→false #============================================================================ # □ 閃き率上昇機能設定 #============================================================================ # ピンチの時ほど閃きやすくする USE_PINCH_UP = true # 最大HPの何パーセントでピンチと判定する? PINCH_HP_RATE = 25 # ピンチ時の閃き上昇値 PINCH_PRO_UP = 10 #+++ 熟練度システムとの併用 +++# # 攻撃属性が得意・不得意かによって確率を変動させる USE_ATK_ATTR_UP = false # 閃き対象の攻撃属性が得意・不得意かによって確率を変動させる USE_FLASH_ATTR_UP = false # 熟練度による閃き上昇値 ATTR_PRO_UP = 3 =begin !!機能制限により使用不可!! #+++ スキルアップデートとの併用 +++# # スキルLvが上昇するほど派生しやすくする(スキル派生時のみ効果あり) USE_SKILL_LV_UP = false # スキルLvによる閃き上昇値 SKILL_LV_PRO_UP = 1 =end #+++ エネミー設定との併用 +++# # エネミーとのレベル差によって閃く確率を上げる USE_DIF_LV_UP = false # どの位のレベル差で判定を開始するか? DIF_LEVEL = 3 # 敵とのレベル差による閃き上昇値 ENEMY_LEVEL_PRO_UP = 1 #============================================================================== # □ 通常閃きの設定 #============================================================================== =begin <基本設定形式> XXXX = [ スキル閃き設定@, スキル閃き設定A, … ] [スキル閃き設定] --> [閃きスキルID, 閃く確率] 閃きスキルID : ここで指定したものを閃く 閃く確率 : 閃く確率or使用回数 =end # アクターID:1 FA = [ [57,28.5], [58,10] ] # アクターID:2 FB = [ [61,30], [62,12.5], [63,5] ] # アクターID:3 FS = [ [65,40], [66,9.5], [67,3.6] ] # アクターID:4 FD = [ [69,20], [70,15.5] ] # アクターID:5 FE = [ [73,30], [74,12.4], [75,8] ] # アクターID:6 FP = [ [77,18.6], [78,10], [79,3.3] ] # アクターID:7 FG = [] # 個別で閃きなしの場合はこんな感じで # アクターID:8 FH = [ [7,20], [10,20], [13,20], [16,20], [19,20], [22,20], [25,20], [28,20], [31,20] ] #============================================================================== # □ スキル派生の設定 #============================================================================== =begin スキル派生の指定方法 スキル派生は少し複雑な設定となっています。 スキル派生についてはまず派生元のスキルから決める必要があります。 (この派生元スキルを使用したときに閃く判定が実行されます) <基本設定形式> XXXX = { 派生元スキルID => [派生スキル設定@, 派生スキル設定A, …] } <派生スキル設定> [派生適合確率, 閃き条件, 閃きスキルID] 派生適合確率 : 派生が発生する確率or使用回数 閃き条件 : 派生元スキル以外に特定のスキルを習得しておく必要のあるスキル 閃きスキルID : ここで指定したものを閃く <閃き条件設定形式> [条件@スキルID, 条件AスキルID, …] =end # アクターID:1 FDA = { # 派生元スキルID => [派生スキル設定@, 派生スキル設定A, …] 57 => [ # 派生スキル@ [10, # 派生適合確率:10% nil, # 閃き条件:なし 59], # 閃くスキル:スキルID 59 # 派生スキルA [5, # 派生適合確率:5% [58, 59], # 閃き条件:スキルID 58,59を習得済み 60] # 閃くスキル:スキルID 60 ] } #簡略化した例 #FDA ={ # 57 => [[10, nil, 59], [5, [58, 59], 60]] #} # アクターID:2 FDB = { 61 => [[3, [63],60]] } # アクターID:3 FDS = { 33 => [[10, nil, 34]], 65 => [[15, [67], 68]] } # アクターID:4 FDD = { 70 => [[20, nil, 71]], 69 => [[50, [71], 72]] } # アクターID:5 FDE = { 74 => [[50, [75], 76]] } # アクターID:6 FDP = { 77 => [[30, nil, 80]] } # アクターID:7 FDG = { 1 => [[15, nil, 2]], 2 => [[5, [1], 3]], 4 => [[15, nil, 5]] } # アクターID:8 FDH = [ 7 => [[15, nil, 8]], 8 => [[5, [7], 9]], 10 => [[15, nil, 11]], 11 => [[5, [10], 12]], 13 => [[15, nil, 14]], 14 => [[5, [13], 15]], 16 => [[15, nil, 17]], 17 => [[5, [16], 18]], 19 => [[15, nil, 20]], 20 => [[5, [19], 21]], 22 => [[15, nil, 23]], 23 => [[5, [22], 24]], 25 => [[15, nil, 26]], 26 => [[5, [25], 27]], 28 => [[15, nil, 29]], 29 => [[5, [27], 30]], 31 => [[2, nil, 32]] ] #============================================================================== # □ エネミー閃きの設定 #============================================================================== E_FLASH = [] # エネミー用の閃き設定 # 閃くスキルの指定方法(通常閃きと同様) # 1.スキル設定 ⇒ [閃くスキルID,閃き率%] #     これは何個でも増やせる # 2.閃くスキルの一覧作成(上記のスキル設定を羅列する) # あとは以下の例を参考にしてください。 # E_FLASH[エネミーID] = [スキル指定1, スキル指定2・・・] # エネミーID:1 E_FLASH[1] = [[7,10], [8,5.5]] # エネミーID:2 E_FLASH[2] = [[10, 20], [11,5]] # エネミーID:8 E_FLASH[8] = [[10, 10], [11,50]] #============================================================================== # □ 閃き対象外スキルの設定 # 特定のスキルのみ閃きの対象外に指定できます。 # 回復スキル等はこちらに設定することをお勧めします。 #============================================================================== # スキル派生のみ有効にするスキル # ONLY_DERIVE_SKILL = [スキルID, スキルID,・・・] ONLY_DERIVE_SKILL = [1,2,4,5] # スキル使用時には絶対閃きをなしにするスキル # NOT_FLASH_SKILL = [スキルID, スキルID,・・・] NOT_FLASH_SKILL = [3,6] #============================================================================== # □ 熟練度による閃き制限(要:熟練度システム) # 特定の熟練度以上に達している場合のみ閃きます。 # 達していないスキルは強制的に閃かないようにします。 #============================================================================== # 熟練度による閃き制限を使用する? USE_ATTR_LV_LIMER = false if defined?(SysUpdate) # この行は削除禁止 # 熟練度LVと閃くスキルの設定 ATTR_LIMIT_SKILL = { # スキルID => [[熟練度属性ID, 閃き可能な熟練度レベル], …] # ※熟練度属性IDには熟練度内の設定を使うと後々の変更も簡単です 9 => [[SysUpdate::FIRE, 3]], 12 => [[SysUpdate::ICE, 3]], 15 => [[SysUpdate::THUNDER, 3]], 18 => [[SysUpdate::WATER, 3]], 21 => [[SysUpdate::GROUND, 3]], 24 => [[SysUpdate::WIND, 3]], 27 => [[SysUpdate::LIGHT, 3]], 30 => [[SysUpdate::DARK, 3]], 60 => [[SysUpdate::SWORD, 4]], 64 => [[SysUpdate::LANCE, 4]], 68 => [[SysUpdate::AX, 5]], 72 => [[SysUpdate::SWORD, 5]], 76 => [[SysUpdate::BOW, 5]], 80 => [[SysUpdate::GUN, 5]], } end #if defined?(SysUpdate) # この行は削除禁止 #============================================================================== # □ スキルレベルによる閃き制限(要:スキルアップデート) # スキル派生時に特定のスキルレベル以上に達している場合のみ閃きます。 # 設定したスキルレベルに達していない場合はスキル派生は発生しません。 #============================================================================== =begin !!機能制限により使用不可!! # スキルレベルによる閃き制限を使用する? USE_SKILL_LV_LIMER = false # スキルレベルと閃くスキルの設定 SKILL_LV_LIMIT = { # スキルID => スキル派生が可能な熟練度レベル 9 => 3, 12 => 3, 15 => 3, 18 => 3, 21 => 3, 24 => 3, 27 => 3, 30 => 3, 60 => 4, 64 => 4, 68 => 5, 72 => 5, 76 => 5, 80 => 5, } =end #-------------------------------------------------------------------------- module_function #-------------------------------------------------------------------------- # ● 通常閃き 対象振り分け ☆カスタマイズポイント # アクター別 -> actor.id # クラス別 -> actor.class_id # 装備武器別 -> actor.weapon_id # 装備武器属性別 -> HELPページ参照 #-------------------------------------------------------------------------- def divide_normal(actor) # 閃き対象の振り分け case actor.id when 1 # ラルフ flash_skills = FA when 2 # ウルリカ flash_skills = FB when 3 # ベネット flash_skills = FS when 4 # イルヴァ flash_skills = FD when 5 # ロレンス flash_skills = FE when 6 # オスカー flash_skills = FP when 7 # ヴェラ flash_skills = FG when 8 # エルマー flash_skills = FH else flash_skills = [] end # 空定義は無視する。 return nil if flash_skills.nil? or flash_skills.empty? # 閃き対象がある場合はクラス化して返す return NormalFlash.new(actor, flash_skills.dup).randum_set end #-------------------------------------------------------------------------- # ● スキル派生 対象振り分け ☆カスタマイズポイント # アクター別 -> actor.id # クラス別 -> actor.class_id # 装備武器別 -> actor.weapon_id # 装備武器属性別 -> HELPページ参照 #-------------------------------------------------------------------------- def divide_derive(actor, skill_id) # アクター別閃き対象の振り分け case actor.id when 1 # ラルフ flash_skills = FDA when 2 # ウルリカ flash_skills = FDB when 3 # ベネット flash_skills = FDS when 4 # イルヴァ flash_skills = FDD when 5 # ロレンス flash_skills = FDE when 6 # オスカー flash_skills = FDP when 7 # ヴェラ flash_skills = FDG when 8 # エルマー flash_skills = FDH else flash_skills = [] end # 空定義は無視する。 return nil if flash_skills.nil? or flash_skills.empty? or flash_skills[skill_id].nil? # 閃き対象がある場合はクラス化して返す return DeriveFlash.new(actor, flash_skills[skill_id].dup, skill_id) end end