Project1
标题:
双持武器怎么指定部分武器不能双持?
[打印本页]
作者:
つづく
时间:
2016-6-26 19:31
标题:
双持武器怎么指定部分武器不能双持?
我设定了单手剑和手枪是可以双持的
装备到主手位会,副手还是可以装备巨剑
像巨剑和弓箭这类的双手武器怎么设定才能不会双持?
单手类武器怎么设置才不会影响双手武器?
作者:
御曹司
时间:
2016-6-26 21:48
本帖最后由 御曹司 于 2016-6-26 23:17 编辑
试试这个脚本。
在所有的弓箭、巨剑类武器上附加“禁止装备武器类型”把所有武器类型禁掉就可以了
#==============================================================================
# 「スキル必要武器タイプ拡張」(ACE) ver2.1 by奈々
#
# ◇使用規約
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
# このスクリプトを改変したり、改変したものを配布するなどは自由ですが
# その場合も元のスクリプトの作成者として名前は載せて下さい。
#
#------------------------------------------------------------------------------
#
# スキルの必要武器タイプを拡張します。
# 使い方は、スキルのメモ欄にタグを記入して下さい。
#
# <要求武器タイプ n>:設定した武器タイプを「1つでも」装備していれば使用可能。
# デフォルトの必要武器タイプはこれと同じ扱いになります。
#
# <要求防具タイプ n>:設定した防具タイプを「1つでも」装備していれば使用可能。
# 要求武器タイプを含めてどれか1つあればOKの判定です。
#
# <必須武器タイプ n>:設定した武器タイプを「全て」装備していれば使用可能。
#
# <必須防具タイプ n>:設定した防具タイプを「全て」装備していれば使用可能。
#
#
# <禁止武器タイプ n>:設定した武器タイプを「装備していなければ」使用可能。
#
# <禁止防具タイプ n>:設定した防具タイプを「装備していなければ」使用可能。
#
# タグは何個でも追加できます。またどのタイプも併用が可能です。
# 併用する場合は
# 禁止タイプの判定→必須タイプの判定→要求タイプの判定
# とタイプ毎にそれぞれ独立したチェックをして
# 全て満たしていた場合のみ使用可能になります。
#
#==============================================================================
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
# アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors)
# の内部で使用され、Game_Party クラス($game_party)からも参照されます。
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● スキルの必要武器を装備しているか(再定義)
#--------------------------------------------------------------------------
def skill_wtype_ok?(skill)
#要求武器タイプはデータベースの設定も反映
any_wtype_id = []
any_wtype_id.push skill.required_wtype_id1
any_wtype_id.push skill.required_wtype_id2
#無設定が0で入っているので、それを除外
any_wtype_id -= [0]
any_wtype_id += skill.required_any_wtype_id
#他も参照しやすいように取り出す
any_atype_id = skill.required_any_atype_id
all_wtype_id = skill.required_all_wtype_id
all_atype_id = skill.required_all_atype_id
notany_wtype_id = skill.required_notany_wtype_id
notany_atype_id = skill.required_notany_atype_id
# 武器タイプと防具タイプの複合判定
#要求タイプの判定
any_etype_ok = false
any_etype_ok = true if any_wtype_id == [] && any_atype_id == []
any_etype_ok = true if any_wtype_equipped?(any_wtype_id) || any_atype_equipped?(any_atype_id)
#any判定を武器か防具のどちらかで満たせばtrue
#もしくは両方指定なしの場合もtrue
#それ以外がfalse
#必須タイプの判定
all_etype_ok = true
all_etype_ok = false if !(all_wtype_equipped?(all_wtype_id) || all_wtype_id == [])
all_etype_ok = false if !(all_wtype_equipped?(all_wtype_id) || all_wtype_id == [])
#all判定か指定なしか、これを武器と防具の両方で満たすならtrue
#これを逆にしたfalseを洗い出すことで判定を簡単にしている
#禁止タイプの判定
notany_etype_ok = true
notany_etype_ok = false if any_wtype_equipped?(notany_wtype_id) || any_atype_equipped?(notany_atype_id)
#any判定を武器か防具のどちらかで満たせばfalse
#そうでなければtrue
return false if !any_etype_ok
return false if !all_etype_ok
return false if !notany_etype_ok
return true
end
#--------------------------------------------------------------------------
# ● 特定のタイプの武器をどれか1つでも装備しているか(新規メソッド)
#--------------------------------------------------------------------------
def any_wtype_equipped?(any_wtype_id)
any_wtype_id.each {|wtype|
return true if weapons.any? {|weapon| weapon.wtype_id == wtype }
}
return false
end
#--------------------------------------------------------------------------
# ● 特定のタイプの防具をどれか1つでも装備しているか(新規メソッド)
#--------------------------------------------------------------------------
def any_atype_equipped?(any_atype_id)
any_atype_id.each {|atype|
return true if armors.any? {|armor| armor.atype_id == atype }
}
return false
end
#--------------------------------------------------------------------------
# ● 特定のタイプの武器を全て装備しているか(新規メソッド)
#--------------------------------------------------------------------------
def all_wtype_equipped?(all_wtype_id)
all_wtype_id.each {|wtype|
return false if not weapons.any? {|weapon| weapon.wtype_id == wtype }
}
return true
end
#--------------------------------------------------------------------------
# ● 特定のタイプの防具を全て装備しているか(新規メソッド)
#--------------------------------------------------------------------------
def all_atype_equipped?(all_atype_id)
all_atype_id.each {|atype|
return false if not armors.any? {|armor| armor.atype_id == atype }
}
return true
end
end
class RPG::Skill < RPG::UsableItem
#--------------------------------------------------------------------------
# ● 要求武器タイプの定義(追加定義)
#--------------------------------------------------------------------------
def required_any_wtype_id
list = []
@note.scan(/<要求武器タイプ\s?(\d*)>/) {|s| list.push($1.to_i) if $1}
return list
end
#--------------------------------------------------------------------------
# ● 要求防具タイプの定義(追加定義)
#--------------------------------------------------------------------------
def required_any_atype_id
list = []
@note.scan(/<要求防具タイプ\s?(\d*)>/) {|s| list.push($1.to_i) if $1}
return list
end
#--------------------------------------------------------------------------
# ● 必須武器タイプの定義(追加定義)
#--------------------------------------------------------------------------
def required_all_wtype_id
list = []
@note.scan(/<必須武器タイプ\s?(\d*)>/) {|s| list.push($1.to_i) if $1}
return list
end
#--------------------------------------------------------------------------
# ● 必須防具タイプの定義(追加定義)
#--------------------------------------------------------------------------
def required_all_atype_id
list = []
@note.scan(/<必須防具タイプ\s?(\d*)>/) {|s| list.push($1.to_i) if $1}
return list
end
#--------------------------------------------------------------------------
# ● 禁止武器タイプの定義(追加定義)
#--------------------------------------------------------------------------
def required_notany_wtype_id
list = []
@note.scan(/<禁止武器タイプ\s?(\d*)>/) {|s| list.push($1.to_i) if $1}
return list
end
#--------------------------------------------------------------------------
# ● 禁止防具タイプの定義(追加定義)
#--------------------------------------------------------------------------
def required_notany_atype_id
list = []
@note.scan(/<禁止防具タイプ\s?(\d*)>/) {|s| list.push($1.to_i) if $1}
return list
end
end
复制代码
作者:
紫苍焰
时间:
2016-6-28 07:37
本帖最后由 紫苍焰 于 2016-6-28 07:40 编辑
双持武器这种装备风格,不加在职业身上,而是加给所有可以双持的武器就好了吧……
与职业和角色无关,只要装备可双持的武器就能双持。武器类型里直接把可以双持的和不能双持的武器分开……
比如有双持武器风格的在武器类型里都标记为副手,然后可以双持的职业允许装备的武器类型里有副手这个类型……
装备了副手之后才可以双持武器……
这样的思路……
你试试看……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1