《解決!》TOMO様の詳細ステートで・・・

デビルバスター
記事: 44
登録日時: 2019年3月16日(土) 08:05

《解決!》TOMO様の詳細ステートで・・・

投稿記事by デビルバスター » 2019年11月21日(木) 20:31

TOMO様の詳細ステートを利用しているのですが、説明文を三行にするスプリクトを使用しているため、下の部分がはみ出しており、最下層までステート表示時に画面からはみ出て見えにくいので、ヘルプウィンドウを2行にする。または、下ウィンドウサイズを弄れる方法を教えてください。
お願いいたします。
できれば、ヘルプウィンドウの方で・・・。
使用しているスプリクトはヒール様の『RGSS3 アイテム等の説明欄の大きさ変更』です。
一応、faida様が考案した『説明欄増やすスクリプト』の設定でも可能だと思います。
宜しくお願いいたします。
添付ファイル
詳細.png
詳細.png (473.86 KiB) 閲覧数: 4062 回
最後に編集したユーザー デビルバスター on 2019年11月23日(土) 16:42 [ 編集 1 回目 ]

フリーゲーム『World Odyssey』プロジェクト製作中
Twitter→https://twitter.com/dehilbastar
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: TOMO様の詳細ステートで・・・

投稿記事by faida » 2019年11月21日(木) 23:34

こんばんは。

TOMO様の詳細ステートは入手できませんでしたので、
一般論としてお答えします。

通常、ヘルプウィンドウを使用する場合は、
そのスクリプトのどこかに「@help_window = Window_Help.new」という
文言があるはずです。
実は、この文章は「@help_window = Window_Help.new(line_number)」というものが
略されたものとなっており、line_numberに任意の値を入れることで
ヘルプウィンドウの高さを変えることができます。
ヒール様のスクリプトはline_numberの初期値を設定項目にしたものですね。
(私のは記憶にないためどうなっているか知りません)

なので、「@help_window = Window_Help.new」があれば、
「@help_window = Window_Help.new(2)」と書き換えることで
ヘルプウィンドウを2行にできます。

ない場合は……一応打つ手がないわけではありません。
見たところ独自のシーンクラスを採用していると思われるので、
詳細ステートにある「Scene_○○」の「def initialize」処理中に
ヘルプウィンドウを作り直す方法があります。

ちなみに下ウィンドウサイズを弄る方法はもっと単純で、
それっぽいウィンドウを作成している箇所を見て
(おおよそWindow_○○.new(x,y,Graphics.width,height)と書いています)
その4番目の数値をいじるだけです。どのウィンドウかは知りません。
でも基本はヘルプウィンドウの高さに自動で合わせるようにスクリプトを作るんですけどね。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: TOMO様の詳細ステートで・・・

投稿記事by TOMO » 2019年11月23日(土) 07:40

ここのですか?
viewtopic.php?f=46&t=3559&start=10
探すの疲れた…


多分これで2行になったはずです(未テスト)

コード: 全て選択

module TOMO
  module StateHelp
    # 説明文の設定
    # ステートID => 説明文
    #
    # 説明文に制御文字が使えます
    Text = {
      1 => "HPが0になり、死亡した状態。", # 戦闘不能
      2 => "\\C[2]テスト\\C[0]", # 毒
    }
   
    # 一覧に表示させないステートID
    HideState = [9]
  end
end

class Window_StateList < Window_Command
  def make_command_list
    states = []
    ($game_party.members + $game_troop.members).each do |battler|
      states |= battler.states.collect{|s| s.id }
    end
    states.sort!
    states.each do |state_id|
      next if TOMO::StateHelp::HideState.include?(state_id)
      state = $data_states[state_id]
      add_command(state.name, :state_list, true, state)
    end
  end
 
  def window_width
    Graphics.width
  end
 
  def window_height
    Graphics.height - fitting_height(2)
  end
 
  def process_ok
  end
 
  def draw_item(index)
    change_color(normal_color, command_enabled?(index))
    rect = item_rect_for_text(index)
    draw_item_name(@list[index][:ext], rect.x, rect.y)
  end
 
  def update_help
    if @help_window && current_ext
      text = TOMO::StateHelp::Text[current_ext.id]
      text = "" if TOMO::StateHelp::Text[current_ext.id].nil?
      text += "\r\n\\}"
      ($game_party.members + $game_troop.members).each do |battler|
        text += battler.name + " " if battler.state?(current_ext.id)
      end
      text += "\\{"
      @help_window.set_text(text)
    end
  end
 
  def show
    refresh
    select(0)
    @help_window.show if @help_window
    super
  end
 
  def hide
    @help_window.hide if @help_window
    super
  end
end

class Window_PartyCommand < Window_Command
  alias tomo_state_help_make_command_list make_command_list
  def make_command_list
    tomo_state_help_make_command_list
    add_command("ステート確認", :state)
  end
end

class Scene_Battle < Scene_Base
  alias tomo_state_help_create_party_command_window create_party_command_window
  def create_party_command_window
    tomo_state_help_create_party_command_window
    @party_command_window.set_handler(:state, method(:command_state))
    @party_command_window.unselect
  end
 
  alias tomo_state_help_create_all_windows create_all_windows
  def create_all_windows
    tomo_state_help_create_all_windows
    @state_help_window = Window_Help.new(2)
    @state_window = Window_StateList.new(0, @state_help_window.height)
    @state_window.set_handler(:cancel, method(:on_state_cancel))
    @state_window.help_window = @state_help_window
    @state_window.hide.deactivate
  end
 
  def command_state
    @party_command_window.deactivate
    @state_help_window.clear
    @state_window.show.activate
  end
 
  def on_state_cancel
    @state_window.hide.deactivate
    @party_command_window.activate
  end
end

新しくヘルプウィンドウを作成して、そっちを使うようになります


あと下ウィンドウのサイズを変更する方ですが、
横サイズが32行目、縦サイズが36行目となってます

3行に対応するなら、

コード: 全て選択

Graphics.height - fitting_height(2)

の2を3にすれば出来ます
デビルバスター
記事: 44
登録日時: 2019年3月16日(土) 08:05

Re: TOMO様の詳細ステートで・・・

投稿記事by デビルバスター » 2019年11月23日(土) 16:41

ご親切に教えて下さり有難う御座いました。
TOMO様が出した対応スプリクトで確認してみたところ、無事解決に至りました!
協力してくださった皆様の力を糧に、必ず完成するよう頑張ります!
改めて、ご協力ありがとうございました! :D
フリーゲーム『World Odyssey』プロジェクト製作中
Twitter→https://twitter.com/dehilbastar

“VX / Ace:質問” へ戻る