#------------------------------------------------- -------------------------
# ● 角色“确定”
#------------------------------------------------- -------------------------
def on_actor_ok
#[url]https://rpg.blue/forum.php?mod=viewthread&tid=411480[/url]
#当在菜单对我方使用了一个包含了行动限制状态的道具时角色会进入行动限制的状态,
#此时若我方全部人员都被限制了行动,则道具显示变成灰色,
#但是光标仍然留在选择道具的目标窗口,此时如果再点击一次确定键就会报错。
#将【Scene_ItemBase】的第65行改成 if user and item_usable?
if item_target_actors && item_usable? #~这里用不用加 item_target_actors (?,还是直接 if item_usable?
BattleManager.actor.input.target_index = @actor_window.index
@actor_window.hide
@skill_window.hide
@item_window.hide
next_command
else
BattleManager.actor.input.target_index = @actor_window.index #~这句是有什么用途的? 要不要删去??
@actor_window.activate
Sound.play_buzzer
end
end
#------------------------------------------------- -------------------------
# ● 获取物品的使用目标数组
#------------------------------------------------- -------------------------
def item_target_actors
item = @item_window.item
if !item.for_friend?
[]
elsif item.for_all?
$game_party.members
else
[$game_party.members[@actor_window.index]]
end
end
#------------------------------------------------- -------------------------
# ● 判定物品是否可以使用
#------------------------------------------------- -------------------------
def item_usable?
item = @item_window.item
item_target_actors.any? do |target|
target.usable?(item) && item_effects_valid?
end
end
#------------------------------------------------- -------------------------
# ● 判定物品的效果是否有效
#------------------------------------------------- -------------------------
def item_effects_valid?
item = @item_window.item
item_target_actors.any? do |target|
target.item_test(target, item) #~ 在【Scene_ItemBase】中是 target.item_test(user, item)
#~ 我改成 target.item_test(target, item) 是不是不对?
end
end