ページ 1 / 1
【RGSS3】バトル中スキル選択画面でカーソルを合わせているスキルの情報を表示したい
Posted: 2021年1月04日(月) 14:15
by さじかげん
質問,失礼します.
VXACEでバトル中コマンドからスキルを選び,どのスキルを使うか選択する際に,そのスキルカーソルの下に小さなウィンドウを表示し,その中にそのカーソルが合っているスキルの速度補正や,成功率,現在の自分の攻撃力,防御力を表示させようとしているのですが,なかなかうまくいきません.
どのようにスクリプトを書けばよいでしょう?投げるような質問で恐縮ですが,よろしければお願いします.
Re: 【RGSS3】バトル中スキル選択画面でカーソルを合わせているスキルの情報を表示したい
Posted: 2021年1月05日(火) 17:04
by TOMO
「どのようにスクリプトを書けばよいでしょう?」と言うけど、
これはある程度スクリプトを作り慣れてないと無理だと思います
とりあえず作ってみました
コード: 全て選択
class Window_BattleSkillMini < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0, 0, 120, 16 * 4 + 12 * 2)
@skill = nil
contents.font.size = 16
hide
end
#--------------------------------------------------------------------------
# ● スキルの設定
#--------------------------------------------------------------------------
def skill=(skill)
return if @skill == skill
@skill = skill
@skill.nil? ? hide : show
refresh
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
contents.clear
if @skill
actor = BattleManager.actor
size = contents.font.size
change_color(system_color)
draw_text(0, size * 0, contents.width, size, "速度補正:")
draw_text(0, size * 1, contents.width, size, "成功率:")
draw_text(0, size * 2, contents.width, size, "#{Vocab::param(2)}:")
draw_text(0, size * 3, contents.width, size, "#{Vocab::param(3)}:")
change_color(normal_color)
draw_text(0, size * 0, contents.width, size, @skill.speed, 2)
draw_text(0, size * 1, contents.width, size, "#{@skill.success_rate}%", 2)
draw_text(0, size * 2, contents.width, size, actor.atk, 2)
draw_text(0, size * 3, contents.width, size, actor.def, 2)
end
end
end
class Window_BattleSkill
attr_accessor :mini_window
#--------------------------------------------------------------------------
# ● カーソルの移動処理
#--------------------------------------------------------------------------
alias tomo_mini_info_process_cursor_move process_cursor_move
def process_cursor_move
last_index = @index
tomo_mini_info_process_cursor_move
set_mini_window if @mini_window && @index != last_index
end
#--------------------------------------------------------------------------
# ● 小ウィンドウの各種設定
#--------------------------------------------------------------------------
def set_mini_window
@mini_window.x = self.x + cursor_rect.x + standard_padding +
(item_width - @mini_window.width) / 2
@mini_window.y = self.y + cursor_rect.y + standard_padding + line_height
@mini_window.skill = index == -1 ? @data[0] : item
end
#--------------------------------------------------------------------------
# ● ウィンドウの表示
#--------------------------------------------------------------------------
alias tomo_mini_info_show show
def show
if @mini_window
set_mini_window
@mini_window.show if !@data.empty?
end
tomo_mini_info_show
end
#--------------------------------------------------------------------------
# ● ウィンドウの非表示
#--------------------------------------------------------------------------
alias tomo_mini_info_hide hide
def hide
@mini_window.hide if @mini_window
tomo_mini_info_hide
end
end
class Scene_Battle
#--------------------------------------------------------------------------
# ● スキルウィンドウの作成
#--------------------------------------------------------------------------
alias tomo_mini_info_create_skill_window create_skill_window
def create_skill_window
tomo_mini_info_create_skill_window
@mini_window = Window_BattleSkillMini.new
@mini_window.z = @skill_window.z + 1
@skill_window.mini_window = @mini_window
end
end
結構適当なので改造して使って下さい
Re: 【RGSS3】バトル中スキル選択画面でカーソルを合わせているスキルの情報を表示したい
Posted: 2021年1月05日(火) 21:14
by さじかげん
加減が分からず,大掛かりな質問をしてしまい申し訳ありませんでした.
本当にありがとうございます.