とりあえず試作品です。
メモ欄に<共有スキル>タグを入れたスキルの習得と喪失を共有します。
習得はレベルアップやイベントコマンド、アイテムなどで行うもので
特徴によって一時的に得るスキルとは別扱いです。なので特徴のものは共有しません。
(但し、私の公開素材の中にはそれを習得扱いにするものがあります)
コード: 全て選択
#==============================================================================
# 「共有スキル」(ACE) Ver.0.5a
# 製作者:奈々(なな)
# へぷたなすくろーる http://heptanas.mamagoto.com/
#
# ◇使用規約
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
# スクリプトの改変は自由に行って頂いて構いませんが
# その場合も元のスクリプトの作成者として名前を載せて下さい。
# また配布前に必ず、ブログにある利用規約を確認して下さい。
#
#------------------------------------------------------------------------------
#
# ツクマテのリクエスト品になります。
# 規約は「へぷたなすくろーる」の素材利用規約に準じるものとし
# サポートに関してもそれらと同様に受け付けます。
#
# スキルのメモ欄に<共有スキル>と入れると
# 誰かがそのスキルを習得した時点で、全アクターが習得します。喪失も同様。
#
#==============================================================================
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
# アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors)
# の内部で使用され、Game_Party クラス($game_party)からも参照されます。
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● スキルを覚える
#--------------------------------------------------------------------------
alias shareskill_learn_skill learn_skill
def learn_skill(skill_id)
if $data_skills[skill_id].note.include?("<共有スキル>")
unless skill_learn?($data_skills[skill_id])
for i in 1...$data_actors.size
$game_actors[i].shareskill_learn_skill(skill_id)
end
end
else
shareskill_learn_skill(skill_id)
end
end
#--------------------------------------------------------------------------
# ● スキルを忘れる
#--------------------------------------------------------------------------
alias shareskill_forget_skill forget_skill
def forget_skill(skill_id)
if $data_skills[skill_id].note.include?("<共有スキル>")
for i in 1...$data_actors.size
$game_actors[i].shareskill_forget_skill(skill_id)
end
else
@skills.delete(skill_id)
end
end
end
さて、これが試作品である理由なのですが、現状1つだけ
致命的なエラーを抱えているからです。
レベルアップ習得で共有スキルを一定数以上覚えるアクターが存在する場合
エラーを起こして止まります。
具体的にはデフォルトの僧侶・魔術師・賢者ですね。
流石にこれは改善予定ですが、すんなり直せるかは分かりません。