82 lines
No EOL
3.3 KiB
Ruby
82 lines
No EOL
3.3 KiB
Ruby
#==============================================================================
|
||
# ■ RGSS3 レベルアップアイテム・スキル Ver1.00 by 星潟
|
||
#------------------------------------------------------------------------------
|
||
# 使用時にレベルが増加するアイテム・スキルを作成できるようになります。
|
||
# 以下、追加されるイベントコマンド(スクリプトで使用)の解説です。
|
||
# 戦闘中でも使えますが、最低限の要素しか考慮していませんので
|
||
# 非戦闘時限定にするのが妥当かと思われます。
|
||
#
|
||
# 使用例
|
||
# アイテムのメモ欄に<レベルアップ効果:5>と記入すると
|
||
# 使用時にレベルが5上昇します。
|
||
#==============================================================================
|
||
module L_U_Item
|
||
|
||
#レベルアップアイテムのメモ欄に記入するキーワードを指定します。
|
||
|
||
WORD = "レベルアップ効果"
|
||
|
||
#戦闘不能時も有効かどうかを決定します。(true 可能/false 不可能)
|
||
#なお、戦闘時に使用した場合、元々戦闘不能者に有効な設定でなければ
|
||
#ここでの設定に関わらず、非戦闘不能者へ効果対象が変更されます。
|
||
|
||
DEAD = false
|
||
|
||
#非戦闘時のレベルアップメッセージの表示可否を設定します。(true 表示/false 非表示)
|
||
|
||
LVNB = true
|
||
|
||
#戦闘時のレベルアップメッセージの表示可否を設定します。(true 表示/false 非表示)
|
||
|
||
LVIB = false
|
||
|
||
end
|
||
class Game_Battler < Game_BattlerBase
|
||
#--------------------------------------------------------------------------
|
||
# ● スキル/アイテムの適用テスト
|
||
# 使用対象が全快しているときの回復禁止などを判定する。
|
||
#--------------------------------------------------------------------------
|
||
alias item_test_lui item_test
|
||
def item_test(user, item)
|
||
data = item_test_lui(user, item)
|
||
return data unless lui_check(item)
|
||
return true
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 使用効果のテスト
|
||
#--------------------------------------------------------------------------
|
||
alias item_effect_test_lui item_effect_test
|
||
def item_effect_test(user, item, effect)
|
||
data = item_effect_test_lui(user, item, effect)
|
||
return data unless lui_check(item)
|
||
return true
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# ● 使用効果の適用
|
||
#--------------------------------------------------------------------------
|
||
alias item_apply_lui item_apply
|
||
def item_apply(user, item)
|
||
item_apply_lui(user, item)
|
||
return unless @result.hit? == true
|
||
return if !actor?
|
||
return if dead? && !L_U_Item::DEAD
|
||
return if level >= max_level
|
||
memo = item.note.scan(/<#{L_U_Item::WORD}[::](\S+)>/)
|
||
memo = memo.flatten
|
||
if memo != nil and !memo.empty?
|
||
if SceneManager.scene_is?(Scene_Battle)
|
||
change_level(level + memo[0].to_i, L_U_Item::LVIB)
|
||
else
|
||
change_level(level + memo[0].to_i, L_U_Item::LVNB)
|
||
end
|
||
@result.success = true
|
||
end
|
||
end
|
||
def lui_check(item)
|
||
return false if !actor?
|
||
return false if dead? && !L_U_Item::DEAD
|
||
return false if !item.note.include?(L_U_Item::WORD)
|
||
return false if level >= max_level
|
||
return true
|
||
end
|
||
end |