装備画面のレイアウト変更

なっぱ
記事: 43
登録日時: 2015年11月19日(木) 20:19

装備画面のレイアウト変更

投稿記事by なっぱ » 2015年12月02日(水) 01:53

①装備画面中央部左側「パラメータ表示」右側「装備コマンド及び装備内容」の表示位置を左右逆にしたい。
②パラメータ表示の『→』の上あたりに、ホコグラを表示させたい。

①等は結構初歩的な内容かと思うのですが、未熟故スクリプトの扱い方がわかりません。
教えていただけないでしょうか?よろしくお願いします。

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

Re: 装備画面のレイアウト変更

投稿記事by TOMO » 2015年12月09日(水) 15:30

1については、

コード: 全て選択

class Scene_Equip < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  def start
    super
    create_help_window
    create_command_window
    create_slot_window
    create_status_window
    create_item_window
  end
  #--------------------------------------------------------------------------
  # ● コマンドウィンドウの作成
  #--------------------------------------------------------------------------
  def create_command_window
    wx = 0
    wy = @help_window.height
    ww = Graphics.width - 208
    @command_window = Window_EquipCommand.new(wx, wy, ww)
    @command_window.viewport = @viewport
    @command_window.help_window = @help_window
    @command_window.set_handler(:equip,    method(:command_equip))
    @command_window.set_handler(:optimize, method(:command_optimize))
    @command_window.set_handler(:clear,    method(:command_clear))
    @command_window.set_handler(:cancel,   method(:return_scene))
    @command_window.set_handler(:pagedown, method(:next_actor))
    @command_window.set_handler(:pageup,   method(:prev_actor))
  end
  #--------------------------------------------------------------------------
  # ● ステータスウィンドウの作成
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_EquipStatus.new(@slot_window.width, @help_window.height)
    @status_window.viewport = @viewport
    @status_window.actor = @actor
    @slot_window.status_window = @status_window
  end
  #--------------------------------------------------------------------------
  # ● スロットウィンドウの作成
  #--------------------------------------------------------------------------
  def create_slot_window
    wx = 0
    wy = @command_window.y + @command_window.height
    ww = Graphics.width - 208
    @slot_window = Window_EquipSlot.new(wx, wy, ww)
    @slot_window.viewport = @viewport
    @slot_window.help_window = @help_window
    @slot_window.actor = @actor
    @slot_window.set_handler(:ok,       method(:on_slot_ok))
    @slot_window.set_handler(:cancel,   method(:on_slot_cancel))
  end
end

といった感じに書き換えれば出来ます

2については、
Window_EquipStatusの48行目の下辺りに

コード: 全て選択

draw_actor_graphic(@actor, 120, 0) if @actor

を入れれば出来ます
(括弧内の数値は適当なので、自分で調節して下さい)
なっぱ
記事: 43
登録日時: 2015年11月19日(木) 20:19

Re: 装備画面のレイアウト変更

投稿記事by なっぱ » 2015年12月09日(水) 21:35

TOMOさん

ご助言ありがとうございます。
①に関しては、実は別のスクリプト素材有料対応の方にお願いして作って頂きました。諸々の事情によりここでスクリプトの公開はできませんが、スクリプト自体は10行程度でイメージしていた形となるものを作って頂けました。一応参考までに。

②については、諦めていたのでとても助かります。ありがとうございます。
そこで確認したいのですが、TOMOさんって「TOMOのスクリプト置き場」のサイトのTOMOさんでしょうか?
(もし人違いだったらごめんなさい)
実はアクターグラを入れたいと思ったのは「装備可能アクター描画」を導入した際にグラがあるとわかりやすいなぁ。」と思ったのがきっかけだったんです。
それで、もしそのTOMOさんであればもう一つお願いなのですが、「装備可能アクター描画」のグラ表示のように、一行分のスペースにグラを表示したいのですが、そのような表示方法についてアドバイスいただけないでしょうか?
(すでに文体が『そのTOMOさん』であることを前提のような書き方になってしまい、人違いでしたら重ね重ね申し訳ありません)

よろしくお願いします。
TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 装備画面のレイアウト変更

投稿記事by TOMO » 2015年12月10日(木) 18:25

確かに私はその「TOMO」です


そして、あれは単に、Window_Baseのdraw_characterの一部を変えただけの物です


歩行グラは、ファイル名に「$」が付いてる場合は「3×4」と並び、
付いてない場合は「12×8」と並びます

なので、まずはその識別をif文でやり、
ちょうど1キャラ分の幅と高さを計算してます
(Window_Baseの390~397行目)

そこからsrc_rectに、その画像から切り取ってくる範囲を指定して代入してます
(399行目)

あのスクリプトは、この時に「ch」を「24」とする事で、
ちょうど一行分の高さだけ取ってきてるという事です
(より正確には、24ではなくline_heightの方がいいです)

あとはcontents.bltで、指定した座標に、
範囲分(src_rect)の画像(bitmap)を切り取ってきて貼ってるという事です
(400行目)


こんな感じでいいですか?



ちなみに、①は確かに短くしようとすれば10行程度で可能ですね
(ウィンドウを全部作成した後に座標変更の処理を入れれば)

そっちの方が競合対策も出来てるだろうから、
私が作った方は対策をしてないので、使わなくていいです
なっぱ
記事: 43
登録日時: 2015年11月19日(木) 20:19

Re: 装備画面のレイアウト変更

投稿記事by なっぱ » 2015年12月10日(木) 22:01

TOMOさん、とても丁寧な説明をありがとうございます。

ですが申し訳ないことに、教養のない私には理屈はわかっても「だからどうすればいいのか」さっぱりわかりません。

本当にごめんなさい。

最初のご助言の時のように『○行目に△△を張り付けるとできるよ』のような形での提示は難しいでしょうか?

すみませんよろしくお願いします。
TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 装備画面のレイアウト変更

投稿記事by TOMO » 2015年12月11日(金) 19:11

なら、
「「装備可能アクター描画」の「draw_equip_actor_graphic」を利用すれば出来る」
って感じでいいですか?


今回のリクエストで行けば、

コード: 全て選択

draw_actor_graphic(@actor, 120, 0) if @actor

ではなく、

コード: 全て選択

draw_equip_actor_graphic(@actor, 120, 0) if @actor

とすれば簡単に出来ます
なっぱ
記事: 43
登録日時: 2015年11月19日(木) 20:19

Re: 装備画面のレイアウト変更

投稿記事by なっぱ » 2015年12月12日(土) 07:56

TOMOさん

無事表示することができました。ありがとうございました!
これからも活動頑張って下さい。

これにて、このトピックは解決済とします。

“VX / Ace:質問” へ戻る