お世話になっております。
今回もCode Crush様の精霊システムについての質問になります。
デフォルトだと精霊をパートナーにして最大能力値が増加した後、一度全回復してから
パートナーを外したり変更すると現在のHP、MPが変更されずに最大値だけ変更されるため
限界突破した状態になってしまいます。
過去にあった同じ内容の投稿にあったように、
これを回避するために本スクリプトのデータベースでパートナーの変更などを行う箇所に
refreshを追加してみたのですが、限界突破現象は回避できるのですが変更前のデータが残らずに
パートナーがいない初期状態のHP、MPになってしまいます。
パートナーの変更はもちろん、選択リストで動かして選んでるだけで変更もせずにメニューに戻った場合でも
下の画像のように初期状態にリフレッシュされてしまいます。
これらの現象を回避してリフレッシュさせるためにどのように設定すればよいのかご指導お願いいたします。
【解決済み】VXAce Code Crush様の精霊システムについて②
【解決済み】VXAce Code Crush様の精霊システムについて②
- 添付ファイル
-
- 添付ファイル2.png (42.55 KiB) 閲覧された回数 4330 回
最後に編集したユーザー kuma1201 [ 2019年6月20日(木) 23:16 ], 累計 1 回
Re: VXAce Code Crush様の精霊システムについて②
kuma1201さん、こんばんは。
選択リストを動かすだけで初期値に戻ってしまう直接の原因は
入れ替え画面でアクターのステータスを表示するウィンドウで
アクターのコピーを使わずに直接アクターの精霊を変更しているので
そうなってしまいます。
(そこまで見てなかったです。すみません……)
それで回避する方法ですが上の原因を直すのは規約が厳しくてあれなので
入れ替え画面開始時にアクターの装備とHP、MPを保存しておいて
終了する時にそれに変更することで回避できると思います。
Scene_EditPartnerに以下のコードを追加してみてください。
選択リストを動かすだけで初期値に戻ってしまう直接の原因は
入れ替え画面でアクターのステータスを表示するウィンドウで
アクターのコピーを使わずに直接アクターの精霊を変更しているので
そうなってしまいます。
(そこまで見てなかったです。すみません……)
それで回避する方法ですが上の原因を直すのは規約が厳しくてあれなので
入れ替え画面開始時にアクターの装備とHP、MPを保存しておいて
終了する時にそれに変更することで回避できると思います。
Scene_EditPartnerに以下のコードを追加してみてください。
コード: 全て選択
def post_start
@before_member_status = $game_party.members.collect {|member| [member.hp, member.mp, member.equips]}
super
end
def pre_terminate
$game_party.members.each_with_index do |member,i|
@before_member_status[i][2].each_with_index {|item, slot_id| member.change_equip(slot_id, item)}
member.hp = @before_member_status[i][0]
member.mp = @before_member_status[i][1]
end
end
Re: VXAce Code Crush様の精霊システムについて②
ぽんぽこねるそんさん、ご返答ありがとうございます。
ご指摘の通り追加しましたところ現象が回避でき正常に動作するようになりました。
すごすぎて尊敬します。ぽんぽこねるそんさんのおかげでツクールがまた楽しくなりました。
本当にありがとうございます。
ご指摘の通り追加しましたところ現象が回避でき正常に動作するようになりました。
すごすぎて尊敬します。ぽんぽこねるそんさんのおかげでツクールがまた楽しくなりました。
本当にありがとうございます。