ページ 11

<解決済み>【RGSS3】VXAceのショップステータス画面に[特徴]の能力上昇値も反映させたい

Posted: 2020年1月02日(木) 02:24
by まーくん
今回、VXAceのRGSS3スクリプト関連でお知恵を拝借させていただきたく、投稿いたしました。

VXAceでは、武器や防具に設定した[特徴]欄にて、
「通常能力値」のみで上昇値を設定した以下のような武器・防具を作成しても、
ショップ画面でのステータス上昇値には反映されない仕様となっています。

この[特徴]にて設定した能力上昇値をショップ画面でも反映表示させることはできないでしょうか。
恐らく「Window_ShopStatus」あたりに追記する必要があるのかな、とは考えているのですが、
自分では解決できそうになく、何卒お知恵を拝借いただけますと幸いです。

▼参考画像①
以下のような[特徴]の「通常能力値」で攻撃力が上昇する武器を作成
無題1.png


▼参考画像②
①の武器をショップで確認した時、[特徴]での上昇値は表示に反映されていない
無題2.png


以上、よろしくお願いいたします。


<追記です>
現状、白の魔様やCACAO SOFT様のショップ拡張スクリプト素材は
既に試している状態であり、競合してしまうことを確認済みです。
故に、なるべくシンプルな解決策を求めております。

Re: 【RGSS3】VXAceのショップステータス画面に[特徴]の能力上昇値も反映させたい

Posted: 2020年1月06日(月) 21:16
by 奏ねこま
作ってみました。
購入候補と同じタイプの武器防具を複数装備していたときの考慮は一応してますけど
きちんとした動作検証は行っていません。

コード: 全て選択

class Window_ShopStatus
  def draw_actor_param_change(x, y, actor, item1)
    temp_actor = nil
    actor.equip_slots.each_with_index do |slot_etype_id, i|
      if slot_etype_id == @item.etype_id
        if !temp_actor
          temp_actor = Marshal.load(Marshal.dump(actor))
          temp_actor.force_change_equip(i, @item)
        else
          _temp_actor = Marshal.load(Marshal.dump(actor))
          _temp_actor.force_change_equip(i, @item)
          if temp_actor.param(param_id) < _temp_actor.param(param_id)
            temp_actor = _temp_actor
          end
        end
      end
    end

    rect = Rect.new(x, y, contents.width - 4 - x, line_height)
    change = temp_actor.param(param_id) - actor.param(param_id)
    change_color(param_change_color(change))
    draw_text(rect, sprintf("%+d", change), 2)
  end
end

Re: 【RGSS3】VXAceのショップステータス画面に[特徴]の能力上昇値も反映させたい

Posted: 2020年1月08日(水) 03:29
by まーくん
こまさん、ありがとうございます!
現状、無事に動作しているようです!
もし何かしら問題が起きましたら、また別途ご相談させていただこうかと思います。
いつも本当にありがとうございます……!助かりました!
無題.png
無題.png (228.89 KiB) 閲覧数: 20873 回