Project1
标题:
二刀流和双手武器冲突的问题(已解决)
[打印本页]
作者:
世界第一中二
时间:
2018-6-6 18:57
标题:
二刀流和双手武器冲突的问题(已解决)
本帖最后由 世界第一中二 于 2018-6-10 22:12 编辑
在论坛里搜了一圈,没有发现较好的解决方案
角色a有【二刀流】特性
,有两个武器栏,无法禁用
那么该如何限制该角色只能装备一把双手武器呢?
或者说,怎样个武器附加禁用其他武器类型的效果
恳求各位大佬解答QvQ
作者:
世界第一中二
时间:
2018-6-8 22:01
自顶防沉……没有大佬填补一下这块的空白么?
作者:
shencao
时间:
2018-6-9 19:36
这个似乎是个bug,见过一个脚本:
二刀流時の両手持ち武器装備可能化を修正 Ver1.01
by 星潟(
http://artificialprovidence.web.fc2.com/
)
需要翻墙,我现在翻不了请自行翻一下了。
适用默认系统,如果有其他装备系统/合成系统什么的也不知道适用不……(我没用过OTZ)
我感觉,把双手武器单独分个类别,然后禁止双刀流的装备这个类别比较安全。
作者:
Nil2018
时间:
2018-6-9 22:42
帮你翻了,还有这个软件了解一下:
https://github.com/getlantern/forum/issues/833
#==============================================================================
# ■ RGSS3 二刀流時の両手持ち武器装備可能化を修正 Ver1.01 by 星潟
#------------------------------------------------------------------------------
# 二刀流時に両手持ち武器(装備封印:盾)を装備しようとした際の挙動を修正します。
# ただし装備画面(Scene_Equip)しか考慮していません。
#
# Ver1.01 最強装備時の判定を追加
# 二刀流時は両手武器単独の物と片手武器二つの物を比較する
#==============================================================================
class Window_EquipItem < Window_ItemList
alias ex_seal_include? include?
def include?(item)
data = ex_seal_include?(item)
return data if item == nil or
[email protected]
_wield?
return false if data == false
if (@slot_id == 0 && @actor.equips[1] != nil) or
(@slot_id == 1 && @actor.equips[0] != nil)
return false if @actor.equip_type_sealed?(1)
item.features.each do |f|
next if f.code != 54
next if f.data_id != 1
return false
end
end
return true
end
end
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 装備可能判定
#--------------------------------------------------------------------------
alias ex_seal_equippable? equippable?
def equippable?(item)
if @two_hand_seal != nil && item != nil
item.features.each do |f|
next if f.code != 54
next if f.data_id != 1
return false
end
end
return ex_seal_equippable?(item)
end
end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 最強装備
#--------------------------------------------------------------------------
alias ex_seal_optimize_equipments optimize_equipments
def optimize_equipments
ex_seal_optimize_equipments
return if !dual_wield?
change_equip(1, nil) if @equips[0] != nil && @equips[1] != nil && equip_type_sealed?(1)
data1 = 0
@equips.each do |e|
next if e == nil
next if e.object == nil
data1 += e.object.performance
end
@two_hand_seal = true
ex_seal_optimize_equipments
@two_hand_seal = nil
data2 = 0
@equips.each do |e|
next if e == nil
next if e.object == nil
data2 += e.object.performance
end
if data1 > data2
ex_seal_optimize_equipments
change_equip(1, nil) if @equips[0] != nil && @equips[1] != nil && equip_type_sealed?(1)
end
end
end
复制代码
作者:
世界第一中二
时间:
2018-6-10 22:11
实测有效,问题已解决,谢谢两位大佬~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1