#============================================================================== # ■ RGSS3 レベルアップアイテム・スキル Ver2.01 by 星潟 #------------------------------------------------------------------------------ # 使用時にレベルが増加するアイテム・スキルを作成できるようになります。 # 以下、追加されるイベントコマンド(スクリプトで使用)の解説です。 # 戦闘中でも使えますが、最低限の要素しか考慮していませんので # 非戦闘時限定にするのが妥当かと思われます。 # # なお、この効果はアクター限定です。 #============================================================================== # アイテム/スキルのメモ欄に記述。 #------------------------------------------------------------------------------ # <レベルアップ効果:5> # # 対象のレベルが5上昇します。 #------------------------------------------------------------------------------ # <レベルアップ効果:5,25> # # 25%の確率で対象のレベルが5上昇します。 #------------------------------------------------------------------------------ # <レベルアップ効果:1+rand(3),100-level> # # (100-対象のレベル)%の確率で対象のレベルが1〜3上昇します。 #============================================================================== module LevelUpItem #レベルアップアイテムのメモ欄に記入するキーワードを指定します。 Word = "レベルアップ効果" #非戦闘時のレベルアップメッセージの表示可否を設定します。(true 表示/false 非表示) LVNB = true #戦闘時のレベルアップメッセージの表示可否を設定します。(true 表示/false 非表示) LVIB = true #-------------------------------------------------------------------------- # テキスト表示フラグ #-------------------------------------------------------------------------- def self.text_ok? SceneManager.scene_is?(Scene_Battle) ? LVIB : LVNB end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # スキル/アイテムに有効な使用効果が一つでもあるかを判定 #-------------------------------------------------------------------------- alias item_has_any_valid_effects_level_up_is? item_has_any_valid_effects? def item_has_any_valid_effects?(user, item) return true if item_has_any_valid_effects_level_up_is?(user, item) level_up_is_check(item) end #-------------------------------------------------------------------------- # レベルアップ効果のチェック #-------------------------------------------------------------------------- def level_up_is_check(item) !item.level_up_effect.empty? && (actor? && level < max_level) end #-------------------------------------------------------------------------- # スキル/アイテムの使用者側への効果 #-------------------------------------------------------------------------- alias item_user_effect_level_up_is item_user_effect def item_user_effect(user, item) level_up_is_effect(user,item) item_user_effect_level_up_is(user, item) end #-------------------------------------------------------------------------- # レベルアップ効果 #-------------------------------------------------------------------------- def level_up_is_effect(user,item) return unless actor? a = item.level_up_effect return if a.empty? or eval(a[1]) < rand(100) d = eval(a[0]) return if d == 0 d = d + level change_level(d, LevelUpItem.text_ok?) @result.success = true end end class RPG::UsableItem < RPG::BaseItem #-------------------------------------------------------------------------- # レベルアップ効果 #-------------------------------------------------------------------------- def level_up_effect @level_up_effect ||= create_level_up_effect end #-------------------------------------------------------------------------- # レベルアップ効果の作成 #-------------------------------------------------------------------------- def create_level_up_effect a = (/<#{LevelUpItem::Word}[::](\S+)>/ =~ note ? $1.to_s : "").split( /\s*,\s*/).inject([]) {|r,i| r.push(i)} case a.size when 1;a.push("100");a when 2;a else;[] end end end