ページ 11

【解決済み】アクターコマンド選択時にヘルプをつけたい【Ace_RGSS3/バトル関連】

Posted: 2018年1月04日(木) 23:04
by 庚の字
お世話になります。

表題のとおりです。
戦闘時に表示されるアクターコマンドに各コマンドの説明を表示するヘルプをつけたいと考えています。
星潟様のパーティコマンドウィンドウサブテキストスクリプトを参考に、自力でどうにかやれないものかと
試行錯誤したのですが、ウィンドウ表示まではできてもコマンド選択に合わせて任意の説明文を表示する
条件分岐がわからず、お力をお借りしたい次第です。
(*スクリプトに関してはまだまだ知識不足のため、何をやってるんだという部分はご容赦ください…)

開発中画面のため、お見苦しいですが画像を添付しましたのでそちらも併せてみていただけたらうれしいです。

よろしくお願いいたします。

Re: 【Ace_RGSS3/バトル関連】アクターコマンド選択時にヘルプをつけたい

Posted: 2018年1月05日(金) 17:24
by TOMO
デフォルトのアクターコマンドの場合なら、
条件分岐はシンボルとスキルタイプIDで出来ると思います

コード: 全て選択

case current_symbol # シンボル
when :attack # 攻撃
when :guard # 防御
when :item # アイテム
when :skill # スキル
  case current_ext # 拡張データ内のスキルタイプID
  when 1
  when 2
  end
end

ただ、画像のはデフォルトのではないようなので、
current_symbol等が取得できるかはそのスクリプト次第です

Re: 【Ace_RGSS3/バトル関連】アクターコマンド選択時にヘルプをつけたい

Posted: 2018年1月06日(土) 00:12
by 庚の字
ご返信有難うございます。
試してみましたがやはり case current_symbol の部分で

名称未設定 1.png
名称未設定 1.png (33.29 KiB) 閲覧数: 4848 回


図のようなエラーが出てしまいました。

*なおこちらも記載しておけばよかったのですが、アクターコマンド部分にはatelierRGSS様の
「Battle Command EX (v2.1)」を使用しています。

Re: 【Ace_RGSS3/バトル関連】アクターコマンド選択時にヘルプをつけたい

Posted: 2018年1月06日(土) 06:50
by faida
横から失礼します。
このスクリプトは元々パーティコマンドを親ウィンドウとし、ヘルプウィンドウを子ウィンドウとして作成する時
のみテキストを描画しています。
TOMO様の示された回答であると「子ウィンドウのWindow_Base」にはcurrent_symbolがないのでエラーとなるわけです。
なので、親ウィンドウを取得する必要があるのと、ウィンドウ更新でテキスト描画する必要があります。

コード: 全て選択

class Window_PTST < Window_Base
  #--------------------------------------------------------------------------
  # 初期化
  #--------------------------------------------------------------------------
  def initialize(w)
    r = PTSTW::R
    super(r[0],r[1],r[2],r[3])
    @wpc = w # これ親ウィンドウ
    @current_command = [nil, nil] # 軽量化のための保存用
#~     draw_text_ex(0,0,PTSTW::T) # ここ特にいらない
    self.openness = 0
    self.opacity = PTSTW::O
  end
  #--------------------------------------------------------------------------
  # 更新
  #--------------------------------------------------------------------------
  def update
    super
    # 追加
    if @current_command != [@wpc.current_symbol, @wpc.current_ext]
      @current_command = [@wpc.current_symbol, @wpc.current_ext]
      case @wpc.current_symbol
      when :attack # 攻撃
      when :guard # 防御
      when :item # アイテム
      when :skill # スキル
        case @wpc.current_ext # 拡張データ内のスキルタイプID
        when 1
        when 2
        end
      end
    end
    # /追加
    @wpc.open? && @wpc.active ? open : close
  end
end
ついでのついでですが、:attackとか:skillとかは「add_command」で検索してそれっぽいところの名前です。
なので独自コマンドがさらに追加されている場合は追加が必要になります。

Re: 【Ace_RGSS3/バトル関連】アクターコマンド選択時にヘルプをつけたい

Posted: 2018年1月06日(土) 18:14
by 庚の字
ご返信有難うございます。

導入してみたところ、コマンドに合わせて説明文を表示することはできました。
が、もう少しだけご教授ください。
以下のように導入したのですが
1.jpg
1.jpg (216.62 KiB) 閲覧数: 4820 回


実際の画面ではこのようになってしまいます。
2.jpg
2.jpg (55.1 KiB) 閲覧数: 4822 回


「一度表示したテキストがそのまま残りつづけて上に重ねて描写されまくっている状況で
恐らくどこかに開放処理を入れなければならないのでは」とは思うのですが、
恥ずかしながらどうすればよいのかわかりません…
(なお、これらのテキストは一度コマンドを選択してウィンドウ表示が消えたあとも、
キャンセルボタンで再びアクターコマンド選択に戻したり、次のアクターにコマンドが移行した際にも
すべて再表示されてしまいます)

また、そもそも「違うそうじゃない」という部分があればご指摘いただければ幸いです。

Re: 【Ace_RGSS3/バトル関連】アクターコマンド選択時にヘルプをつけたい

Posted: 2018年1月06日(土) 22:25
by faida
申し訳ありません。テキスト解放処理のことをすっかり失念しておりました。
「contents.clear」です。「case @wpc.current_symbol」の直上に挿入してください。

あと、スキルの部分ですが

コード: 全て選択

    case @wpc.current_ext # 拡張データ内のスキルタイプID
    when 1
      draw_text_ex(0, 0, "冷やしカレードリンク") # スキルタイプID1の説明文   
    when 2
      draw_text_ex(0, 0, "華麗なカツ躍") # スキルタイプID2の説明文
    end
本来は多分こんな風に使うんですが、スキルタイプによって変える必要が無ければそのままで構いません。

Re: 【解決済み】アクターコマンド選択時にヘルプをつけたい【Ace_RGSS3/バトル関連】

Posted: 2018年1月07日(日) 14:18
by 庚の字
ご返信有難うございます。

contents.clearを挿入したところ正常に動作することを確認いたしました。
画像1.png
画像1.png (393.58 KiB) 閲覧数: 4783 回

お二方ともありがとうございました!

あとスキルタイプの部分の件、
動作テストではスキルタイプを複数作成していなかったので
気づかなかったのですが、なるほど後々焦るところでした…!
ご指摘有難うございます、助かりました。