[解決済み]使用すると別のアイテムに変化するアイテム

KAP
記事: 6
登録日時: 2019年2月06日(水) 12:06

[解決済み]使用すると別のアイテムに変化するアイテム

投稿記事by KAP » 2019年2月06日(水) 15:19

「水の入った瓶」というアイテムを使うと「水の入った瓶」が1つ減り、代わりに「空き瓶」が1つ手に入る
といった感じのイベントを作成したのですが、それをコモンイベントで作成すると
アイテム選択画面が閉じてしまいます(通常であれば、アイテムを使用しても選択画面が閉じずに
再度アイテムが使用できる状態になりますがデータベース→アイテム・使用効果欄では
直接「アイテムの増減」を実行できないため、「アイテムの増減:空き瓶+1」というイベントを
コモンイベントで作成し使用効果の欄に組み込むことで実行可能になりますが、前述のとおり使用効果欄に
コモンイベントが含まれたアイテムを使用すると使用後に必ずアイテム選択画面が閉じてしまいます)

手順としては

 ①アイテム選択画面で「水の入った瓶」を使用する
             ↓
 ②「水の入った瓶」が1つ消費される
             ↓
 ③「空き瓶」が1つ手に入る

これらの手順を他のアイテム(使用効果の欄にコモンイベントが含まれていないアイテム)と同様に
アイテム選択画面を閉じないまま実行する方法はないでしょうか。

様々な方法を試したのですが上手くいきませんでした。

なお、使用ソフトは『RPGツクールVX Ace』です。
どうかご検討の程をよろしくお願いします。
最後に編集したユーザー KAP on 2019年2月12日(火) 20:19 [ 編集 1 回目 ]

TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 使用すると別のアイテムに変化するアイテム

投稿記事by TOMO » 2019年2月06日(水) 17:39

こんな感じですか?

コード: 全て選択

# <アイテム入手:ab,c>
# a   I=アイテム,W=武器,A=防具
# b   ID
# c   個数
#
# ※使用例
# <アイテム入手:I1,3>
# →アイテム使用後、アイテムID:1を3個入手
#
# <アイテム入手:W2,1>
# →アイテム使用後、武器ID:2を1個入手

class Game_Party
  #--------------------------------------------------------------------------
  # ● アイテムの消耗
  #    指定されたオブジェクトが消耗アイテムであれば、所持数を 1 減らす。
  #--------------------------------------------------------------------------
  alias tomo_change_item_consume_item consume_item
  def consume_item(item)
    tomo_change_item_consume_item(item)
    if item.is_a?(RPG::Item)
      item.note.each_line do |line|
        if line.match(/<アイテム入手:\s?([IWA])(\d+),\s?(\d+)>/i)
          case $1.upcase
          when "I"; gain_item($data_items[$2.to_i], $3.to_i)
          when "W"; gain_item($data_weapons[$2.to_i], $3.to_i)
          when "A"; gain_item($data_armors[$2.to_i], $3.to_i)
          end
        end
      end
    end
  end
end

アイテムのメモ欄に書く事で使用できます
KAP
記事: 6
登録日時: 2019年2月06日(水) 12:06

上手くいきました!

投稿記事by KAP » 2019年2月06日(水) 18:04

先程のスクリプト、早速使わせて頂きました :D

まさに理想通りです ;) ありがとうございました :mrgreen:

“VX / Ace:質問” へ戻る