【解決済み】VXAce Code Crush様の精霊システムについて②

kuma1201
記事: 4
登録日時: 2019年6月15日(土) 16:17

【解決済み】VXAce Code Crush様の精霊システムについて②

投稿記事by kuma1201 » 2019年6月20日(木) 01:36

お世話になっております。
今回もCode Crush様の精霊システムについての質問になります。
デフォルトだと精霊をパートナーにして最大能力値が増加した後、一度全回復してから
パートナーを外したり変更すると現在のHP、MPが変更されずに最大値だけ変更されるため
限界突破した状態になってしまいます。
添付ファイル.png
添付ファイル.png (84.69 KiB) 閲覧数: 2579 回

過去にあった同じ内容の投稿にあったように、
これを回避するために本スクリプトのデータベースでパートナーの変更などを行う箇所に
refreshを追加してみたのですが、限界突破現象は回避できるのですが変更前のデータが残らずに
パートナーがいない初期状態のHP、MPになってしまいます。
パートナーの変更はもちろん、選択リストで動かして選んでるだけで変更もせずにメニューに戻った場合でも
下の画像のように初期状態にリフレッシュされてしまいます。
これらの現象を回避してリフレッシュさせるためにどのように設定すればよいのかご指導お願いいたします。
添付ファイル
添付ファイル2.png
添付ファイル2.png (42.55 KiB) 閲覧数: 2579 回
最後に編集したユーザー kuma1201 on 2019年6月20日(木) 23:16 [ 編集 1 回目 ]

ぽんぽこねるそん
記事: 53
登録日時: 2018年10月26日(金) 12:24

Re: VXAce Code Crush様の精霊システムについて②

投稿記事by ぽんぽこねるそん » 2019年6月20日(木) 03:35

kuma1201さん、こんばんは。
選択リストを動かすだけで初期値に戻ってしまう直接の原因は
入れ替え画面でアクターのステータスを表示するウィンドウで
アクターのコピーを使わずに直接アクターの精霊を変更しているので
そうなってしまいます。
(そこまで見てなかったです。すみません……)
それで回避する方法ですが上の原因を直すのは規約が厳しくてあれなので
入れ替え画面開始時にアクターの装備と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
kuma1201
記事: 4
登録日時: 2019年6月15日(土) 16:17

Re: VXAce Code Crush様の精霊システムについて②

投稿記事by kuma1201 » 2019年6月20日(木) 23:15

ぽんぽこねるそんさん、ご返答ありがとうございます。
ご指摘の通り追加しましたところ現象が回避でき正常に動作するようになりました。
すごすぎて尊敬します。ぽんぽこねるそんさんのおかげでツクールがまた楽しくなりました。
本当にありがとうございます。

“VX / Ace:質問” へ戻る