Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.
|
|
| Bantuin nuntasin script error | |
| 2012-12-31, 20:07 | Bantuin nuntasin script error |
---|
Deenos Advance
Posts : 487 Thanked : 7 Engine : RMVX Ace Skill : Skilled Type : Databaser
Awards:
| gini... aku kan dapat script ring command... ini nih - Spoiler:
- Code:
-
=begin ************************************************************************ ▼ WGB Battle Layout (Layout part) ver1.01 By ziifee ( http://neomemo.web.fc2.com/ ) Localization Team: Mr. Bubble and TakamiDaisuke Script that creates the wait gauge accumulation system. <Table of Contents : Please use the search feature (Ctrl+F)> >>> Super Class base > Wait Gauge command creation > Status Indicator Display > Battle Help + Message Rewrite
<Required Scripts> > State Animation Ver 2.0 > Damage Pop Script Ver2.0 < Required Images : Graphics/System/ > Cursor Image : TargetCursor Command Image : Spin40 Wait Gauge Bar : (See Wait Gauge Plugin) Wait Gauge Back : (See Wait Gauge Plugin) <Notes to Scripters> - In Battle, text is displayed in the help window using the following method: set_battle_help("Displayed Text") set_battle_help("Secret Artes") # Secret Artes Text is displayed - Battle Messages are disabled, but will still show up if called through an event command.
=end # ************************************************************************
module ZiiN7 # ▼ Setting ( true / false ) HelpOn = true # Display Skill/Item description in a help window. # ▼ Spin Command/Icon Index Number ATTACK = 2713 # Attack (Default) GUARD = 2721 # Guard SKILL = 2736 # Skill ITEM = 2724 # Item ESCAPE = 2756 # Escape
# ▼ Spin Command/Direction of Rotation ( "normal" or "reverse" ) # Determines how Spin Command rotates according to left/right key press. TURN = "normal" # ▼ WP Gauge Settings (Images in Graphics/System folder) WPGauge = "" # Body Gauge Image WPMax = "" # Max Gauge Image WPBack = "" # Background Gauge Image WPFore = "" # Foreground Gauge Image WPX , WPY = -12 , -90 # Gauge coordinate x,y WPOffX = 0 # Shift Meter X WPOffY = 0 # Shift Meter Y
#-------------------------------------------------------------------------- # ● 通常回転 の判定 (スピンコマンド) #-------------------------------------------------------------------------- def self.turn_normal? return false if TURN == "reverse" return true end end
=begin ----------# # ▼ Related Stuff ▼ # Ver.SpinCommand #-MyMemo-------------------------------------------------===================--- - Party Command window is disabled and will instead start from Actor Command. - @active_battler has been changed to @select_battler in certain cases. - Window relation, without moving info! - Relation between Spin Command and Background has been deleted. =end # ------------------------------------------------------------------------
=begin ************************************************************************ ◆ ベース用スーパークラス作成 =end # ************************************************************************
#============================================================================== # ■ Window_SpinCommand #------------------------------------------------------------------------------ # 回転用コマンド選択を行うウィンドウです。 #==============================================================================
class Window_SpinCommand < Window_Base #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :index # カーソル位置 attr_reader :help_window # ヘルプウィンドウ #-------------------------------------------------------------------------- # ● Object Initialization # cx / cy : Center Coordinates # commands : Command Arrangement ([name, kind, pull, enabled?]) # setting : Hash Settings ("R"=>radius "S"=>speed "G"=>graphic "L"=>text) #-------------------------------------------------------------------------- def initialize(cx, cy, commands, setting = {}) @radius = setting.has_key?("R") ? setting["R"] : 40 # Drawn Radius @speed = setting.has_key?("S") ? setting["S"] : 36 # Rotate Speed @spin_back = setting.has_key?("G") ? setting["G"] : "" # Background Image @spin_line = setting.has_key?("L") ? setting["L"] : nil # Text Position(?) x, y = cx - @radius - 28, cy - @radius - 28 width = height = @radius * 2 + 56 super(x, y, width, height) self.opacity = 0 @index = 0 @commands = commands # コマンド @spin_right = true @spin_count = 0 update_cursor end #-------------------------------------------------------------------------- # ▽ スピン画像を描画する (描画内容 強化用) # i : インデックス # cx : 表示 中心位置 X座標 # cy : 表示 中心位置 Y座標 #-------------------------------------------------------------------------- def draw_spin_graphic(i, cx, cy) case command_kind(i) when "icon" draw_icon(command_pull(i), cx - 12, cy - 12, command_enabled?(i)) end end #-------------------------------------------------------------------------- # ★ リフレッシュ バグ回避用 #-------------------------------------------------------------------------- def refresh set_spin end #-------------------------------------------------------------------------- # ★ 項目の描画 バグ回避用 #-------------------------------------------------------------------------- def draw_item(index, enabled = true) @commands[index][3] = enabled set_spin end #-------------------------------------------------------------------------- # ● 現在のコマンド名を取得する #-------------------------------------------------------------------------- def command_name(index = @index) return "" if index < 0 name = @commands[index][0] return name != nil ? name : "" end #-------------------------------------------------------------------------- # ● コマンドの種類を取得 #-------------------------------------------------------------------------- def command_kind(index) result = @commands[index][1] return result != nil ? result : "" end #-------------------------------------------------------------------------- # ● コマンドの引数 を取得 #-------------------------------------------------------------------------- def command_pull(index) result = @commands[index][2] return result != nil ? result : "" end #-------------------------------------------------------------------------- # ● コマンドの有効フラグを取得 #-------------------------------------------------------------------------- def command_enabled?(index) result = @commands[index][3] return result != nil ? result : true end #-------------------------------------------------------------------------- # ● 名前の位置に index を設定する #-------------------------------------------------------------------------- def set_index(name) n = -1 for i in 0...@commands.size n = i if @commands[i][0] == name end @index = n if n >= 0 update_cursor call_update_help set_spin end #-------------------------------------------------------------------------- # ● カーソル位置の設定 # index : 新しいカーソル位置 #-------------------------------------------------------------------------- def index=(index) @index = index update_cursor call_update_help set_spin end #-------------------------------------------------------------------------- # ● 中心のX座標を取得 #-------------------------------------------------------------------------- def center_x return contents.width / 2 end #-------------------------------------------------------------------------- # ● 中心のY座標を取得 #-------------------------------------------------------------------------- def center_y return contents.height / 2 end #-------------------------------------------------------------------------- # ● 項目数の取得 #-------------------------------------------------------------------------- def item_max return @commands.size end #-------------------------------------------------------------------------- # ● 背景の設定 (再定義 向き) #-------------------------------------------------------------------------- def set_background return if @spin_back == "" bitmap = Cache.system(@spin_back) rect = Rect.new(0, 0, bitmap.width, bitmap.height) self.contents.blt(12, 12, bitmap, rect) end #-------------------------------------------------------------------------- # ● 文章の設定 (再定義 向き) #-------------------------------------------------------------------------- def set_text return if @spin_line == nil y = center_y - WLH / 2 + @spin_line self.contents.draw_text(center_x - 48, y, 96, WLH, command_name, 1) end #-------------------------------------------------------------------------- # ● スピンアイコンの角度の差を取得する #-------------------------------------------------------------------------- def angle_size return (Math::PI * 2 / item_max) end #-------------------------------------------------------------------------- # ● スピンアイコン回転時のカウント を設定する #-------------------------------------------------------------------------- def set_spin_count @spin_count = angle_size * 360 / @speed set_spin(true) end #-------------------------------------------------------------------------- # ● スピン設定 の実行 # spin : 回転フラグ (true の時回転中) #-------------------------------------------------------------------------- def set_spin(spin = false) self.contents.clear set_background angle = spin ? @speed * @spin_count / 360 : 0 angle = @spin_right ? angle : -angle for i in 0...item_max n = (i - @index) * angle_size + angle cx = @radius * Math.sin(n) + center_x cy = - @radius * Math.cos(n) + center_y draw_spin_graphic(i, cx, cy) end set_text end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super update_cursor if @spin_count > 0 @spin_count -= 1 set_spin(@spin_count >= 1) return end update_command end #-------------------------------------------------------------------------- # ● コマンドの移動可能判定 #-------------------------------------------------------------------------- def command_movable? return false if @spin_count > 0 return false if (not visible or not active) return false if (index < 0 or index > item_max or item_max == 0) return false if (@opening or @closing) return true end #-------------------------------------------------------------------------- # ● コマンドを右に移動 #-------------------------------------------------------------------------- def command_right @index = (@index + 1) % item_max @spin_right = true set_spin_count end #-------------------------------------------------------------------------- # ● コマンドを左に移動 #-------------------------------------------------------------------------- def command_left @index = (@index - 1 + item_max) % item_max @spin_right = false set_spin_count end #-------------------------------------------------------------------------- # ● コマンド選択の更新 #-------------------------------------------------------------------------- def update_command if command_movable? if Input.press?(Input::RIGHT) Sound.play_cursor ZiiN7.turn_normal? ? command_right : command_left end if Input.press?(Input::LEFT) Sound.play_cursor ZiiN7.turn_normal? ? command_left : command_right end end call_update_help end #-------------------------------------------------------------------------- # ● カーソルの更新 #-------------------------------------------------------------------------- def update_cursor if @index < 0 self.cursor_rect.empty else rect = Rect.new(0, 0, 24, 24) rect.x = center_x - rect.width / 2 rect.y = center_y - rect.height / 2 - @radius self.cursor_rect = rect end end #-------------------------------------------------------------------------- # ● ヘルプウィンドウの設定 # help_window : 新しいヘルプウィンドウ #-------------------------------------------------------------------------- def help_window=(help_window) @help_window = help_window call_update_help end #-------------------------------------------------------------------------- # ● ヘルプウィンドウ更新メソッドの呼び出し #-------------------------------------------------------------------------- def call_update_help if self.active and @help_window != nil update_help end end #-------------------------------------------------------------------------- # ● ヘルプウィンドウの更新 (内容は継承先で定義する) #-------------------------------------------------------------------------- def update_help end end
#============================================================================== # ■ Gauge_Base #------------------------------------------------------------------------------ # ゲージの表示をするスプライトセットのクラスです。 #==============================================================================
class Gauge_Base #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :offset_x # ゲージオフセット X 座標 attr_accessor :offset_y # ゲージオフセット Y 座標 attr_reader :gauge_rate # ゲージ 割合 (確認用) #-------------------------------------------------------------------------- # ● オブジェクト初期化 # bitmap1 : ビットマップ ゲージ本体 # bitmap2 : ビットマップ ゲージ背景 # bitmap3 : ビットマップ ゲージ前景 #-------------------------------------------------------------------------- def initialize(bitmap1, bitmap2 = nil, bitmap3 = nil) create_gauge(bitmap1) create_ground_gauge(bitmap2, bitmap3) set_offset(0, 0) self.x , self.y , self.z = 0 , 0 , 1 @gauge_rate = 100 gauge_setting(@gauge_rate) end #-------------------------------------------------------------------------- # ● ゲージ本体の作成 #-------------------------------------------------------------------------- def create_gauge(bitmap1) @gauge = Sprite.new @gauge.bitmap = bitmap1 @gauge.viewport = Viewport.new(0, 0, bitmap1.width, bitmap1.height) end #-------------------------------------------------------------------------- # ● ゲージ背景・前景の作成 #-------------------------------------------------------------------------- def create_ground_gauge(bitmap2 = nil, bitmap3 = nil) @back = Sprite.new @back.bitmap = bitmap2 unless bitmap2.nil? @fore = Sprite.new @fore.bitmap = bitmap3 unless bitmap3.nil? end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- def dispose @gauge.viewport.dispose @gauge.dispose @back.dispose @fore.dispose end #-------------------------------------------------------------------------- # ● 計算用ゲージ最大値の取得 #-------------------------------------------------------------------------- def gauge_max return @gauge.width end #-------------------------------------------------------------------------- # ● 計算用ゲージ現在値の取得 #-------------------------------------------------------------------------- def gauge_width return @gauge.viewport.rect.width end #-------------------------------------------------------------------------- # ● ゲージオフセットの設定 #-------------------------------------------------------------------------- def set_offset(x, y) @offset_x , @offset_y = x , y end #-------------------------------------------------------------------------- # ● X 座標の取得 #-------------------------------------------------------------------------- def x return @back.x end #-------------------------------------------------------------------------- # ● Y 座標の取得 #-------------------------------------------------------------------------- def y return @back.y end #-------------------------------------------------------------------------- # ● Z 座標の取得 #-------------------------------------------------------------------------- def z return @back.z end #-------------------------------------------------------------------------- # ● X 座標の設定 #-------------------------------------------------------------------------- def x=(x) @gauge.viewport.rect.x = x + @offset_x @back.x = x @fore.x = x end #-------------------------------------------------------------------------- # ● Y 座標の設定 #-------------------------------------------------------------------------- def y=(y) @gauge.viewport.rect.y = y + @offset_y @back.y = y @fore.y = y end #-------------------------------------------------------------------------- # ● Z 座標の設定 #-------------------------------------------------------------------------- def z=(z) @gauge.viewport.z = z @back.z = z - 1 @fore.z = z + 1 end #-------------------------------------------------------------------------- # ● ゲージの範囲を設定 # rate : ゲージの割合 (%) #-------------------------------------------------------------------------- def gauge_setting(rate) rate = [[rate, 0].max, 100].min return if @gauge == rate @gauge.viewport.rect.width = (gauge_max * rate / 100.0).ceil gauge_rate_setting(rate) @gauge_rate = rate end #-------------------------------------------------------------------------- # ● ゲージの変動処理 #-------------------------------------------------------------------------- def gauge_rate_setting(rate) end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update @gauge.viewport.update @gauge.update @back.update @fore.update end end
=begin ************************************************************************ ★ ウェイトゲージでのコマンド作成 =end # ************************************************************************
#============================================================================== # ■ Sprite_ZiiTarget #------------------------------------------------------------------------------ # バトル画面で、行動対象のキャラを選択する画像です。 #==============================================================================
class Sprite_ZiiTarget < Sprite #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :active # 選択状態 attr_reader :item_max # 項目数 attr_reader :index # カーソル位置 #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(targets, exist_on) super(nil) self.bitmap = Cache.system("TargetCursor") self.ox = self.width / 2 self.oy = self.height / 2 self.z = 500 @targets = [] for battler in targets next unless exist_on or battler.exist? @targets.push(battler) end @active = true @item_max = @targets.size self.index = 0 end #-------------------------------------------------------------------------- # ● ターゲットオブジェクト取得 #-------------------------------------------------------------------------- def target return @targets[@index] end #-------------------------------------------------------------------------- # ★ 敵キャラオブジェクト取得 (互換性用) #-------------------------------------------------------------------------- def enemy return @targets[@index] end #-------------------------------------------------------------------------- # ● カーソル位置の設定 # index : 新しいカーソル位置 #-------------------------------------------------------------------------- def index=(index) @index = index unless self.target.nil? self.x = self.target.screen_x self.y = self.target.screen_y else self.visible = false end end #-------------------------------------------------------------------------- # ● カーソルの移動可能判定 #-------------------------------------------------------------------------- def cursor_movable? return false if (not self.visible or not self.active) return false if (@index < 0 or @index > @item_max) return true end #-------------------------------------------------------------------------- # ● カーソルを右に移動 #-------------------------------------------------------------------------- def cursor_right self.index = (@index + 1) % @item_max end #-------------------------------------------------------------------------- # ● カーソルを左に移動 #-------------------------------------------------------------------------- def cursor_left self.index = (@index - 1 + @item_max) % @item_max end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super if cursor_movable? last_index = @index if Input.trigger?(Input::RIGHT) cursor_right end if Input.trigger?(Input::LEFT) cursor_left end if @index != last_index Sound.play_cursor end end end end
#============================================================================== # ■ Window_ActorCommand #==============================================================================
class Window_ActorCommand < Window_SpinCommand #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize set = [] set.push([Vocab::attack, "icon", ZiiN7::ATTACK, true]) set.push([Vocab::skill, "icon", ZiiN7::SKILL, true]) set.push([Vocab::guard, "icon", ZiiN7::GUARD, true]) set.push([Vocab::item, "icon", ZiiN7::ITEM, true]) if $game_troop.can_escape # 逃げれる場合 set.push([Vocab::escape, "icon", ZiiN7::ESCAPE, true]) end super(72, 356, set, {"R"=>40, "S"=>52, "L"=>-12}) self.active = false set_spin end #-------------------------------------------------------------------------- # ● セットアップ # actor : アクター #-------------------------------------------------------------------------- def setup(actor) @commands[0][2] = ZiiN7::ATTACK @commands[1][0] = Vocab::skill if actor.weapons[0] != nil n = actor.weapons[0].icon_index @commands[0][2] = n if n > 0 end @commands[1][0] = actor.class.skill_name if actor.class.skill_name_valid self.index = 0 set_spin end end
#============================================================================== # ■ Scene_Battle #==============================================================================
class Scene_Battle #-------------------------------------------------------------------------- # ● ウェイトゲージを動かすかどうか? (コマンド系ウィンドウから判別) #-------------------------------------------------------------------------- def wait_point_update? # イベント時は動かす設定に!!(ゲージは増えない) return true if $game_troop.interpreter.running? # イベント中(特殊) return false unless @target_enemy_window.nil? # エネミー 選択中(Wait) return false unless @target_actor_window.nil? # アクター 選択中(Wait) return false unless @skill_window.nil? # スキル 選択中(Wait) return false unless @item_window.nil? # アイテム 選択中(Wait) return true # (Active) end #-------------------------------------------------------------------------- # ● コマンド選択の排除 #-------------------------------------------------------------------------- def clear_command_setting unless @target_enemy_window.nil? @target_enemy_window.dispose @target_enemy_window = nil end unless @target_actor_window.nil? @target_actor_window.dispose @target_actor_window = nil end unless @skill_window.nil? @skill_window.dispose @skill_window = nil end unless @item_window.nil? @item_window.dispose @item_window = nil end unless @help_window.nil? @help_window.dispose @help_window = nil end @actor_command_window.active = false @actor_command_window.visible = false @status_window.index = -1 @select_battler = nil # コマンド状態削除 (忘れないでね^^) end #-------------------------------------------------------------------------- # ● フレーム更新 (コマンドセレクト) #-------------------------------------------------------------------------- def command_update if @target_enemy_window != nil update_target_enemy_selection # 対象敵キャラ選択 elsif @target_actor_window != nil update_target_actor_selection # 対象アクター選択 elsif @skill_window != nil update_skill_selection # スキル選択 elsif @item_window != nil update_item_selection # アイテム選択 elsif @actor_command_window.active update_actor_command_selection # アクターコマンド選択 end end #-------------------------------------------------------------------------- # ☆ 情報表示ビューポートの作成 #-------------------------------------------------------------------------- def create_info_viewport # メモ : 全体的に値変更 @info_viewport = Viewport.new(0, 0, 544, 416) @info_viewport.z = 70 @status_window = Window_BattleStatus.new @status_window.z = 80 @party_command_window = Window_PartyCommand.new @actor_command_window = Window_ActorCommand.new # <(ステータスはビューポートからはずす) @party_command_window.viewport = @info_viewport @actor_command_window.viewport = @info_viewport @status_window.x = 128 @actor_command_window.x = 4 @party_command_window.visible = false @actor_command_window.visible = false create_spin_command_back # <(スピンコマンドの背景はここで別に作成) end #-------------------------------------------------------------------------- # ● スピンコマンド背景の作成 #-------------------------------------------------------------------------- def create_spin_command_back @spin_command_back = Sprite.new @spin_command_back.bitmap = Cache.system("Spin40") @spin_command_back.ox = @spin_command_back.width @spin_command_back.oy = @spin_command_back.height @spin_command_back.x = 112 @spin_command_back.y = 396 end #-------------------------------------------------------------------------- # ● 情報表示ビューポートの解放 #-------------------------------------------------------------------------- alias :ziin7b_scene_dispose_info_viewport :dispose_info_viewport def dispose_info_viewport @spin_command_back.dispose ziin7b_scene_dispose_info_viewport end #-------------------------------------------------------------------------- # ☆ 情報表示ビューポートの更新 (info系修正) #-------------------------------------------------------------------------- def update_info_viewport @status_window.update # ステータスウィンドウのみの更新 end #-------------------------------------------------------------------------- # ● コマンド系ウィンドウの表示 #-------------------------------------------------------------------------- def battle_command_window_visible(visible) unless @skill_window.nil? @skill_window.visible = visible end unless @item_window.nil? @item_window.visible = visible end unless @help_window.nil? @help_window.visible = visible if ZiiN7::HelpOn end end #-------------------------------------------------------------------------- # ☆ アクターコマンド選択の開始 #-------------------------------------------------------------------------- def start_actor_command_selection # <(@party_command_window の処理なし!) @actor_command_window.setup(@select_battler) @actor_command_window.active = true @actor_command_window.visible = true @actor_command_window.index = 0 end #-------------------------------------------------------------------------- # ☆ アクターコマンド選択の更新 #-------------------------------------------------------------------------- def update_actor_command_selection @actor_command_window.update return unless @actor_command_window.command_movable? # コマンド回転中 if Input.trigger?(Input::B) prior_actor elsif Input.trigger?(Input::C) case @actor_command_window.command_name # コマンド名取得 when Vocab::attack # 攻撃 Sound.play_decision @select_battler.action.set_attack start_target_enemy_selection when Vocab::skill, @select_battler.class.skill_name # スキル Sound.play_decision start_skill_selection when Vocab::guard # 防御 Sound.play_decision @select_battler.action.set_guard next_actor when Vocab::item # アイテム Sound.play_decision start_item_selection when Vocab::escape # 逃げる Sound.play_decision @select_battler.action.set_escape next_actor end end end #-------------------------------------------------------------------------- # ☆ 対象敵キャラ選択の開始 (info系修正) #-------------------------------------------------------------------------- def start_target_enemy_selection @target_enemy_window = Sprite_ZiiTarget.new($game_troop.members, false) @actor_command_window.active = false battle_command_window_visible(false) end #-------------------------------------------------------------------------- # ☆ 対象敵キャラ選択の終了 (info系修正) #-------------------------------------------------------------------------- def end_target_enemy_selection @target_enemy_window.dispose @target_enemy_window = nil if @actor_command_window.index == 0 @actor_command_window.active = true end battle_command_window_visible(true) end #-------------------------------------------------------------------------- # ☆ 対象敵キャラ選択の更新 #-------------------------------------------------------------------------- def update_target_enemy_selection @target_enemy_window.update if Input.trigger?(Input::B) Sound.play_cancel end_target_enemy_selection elsif Input.trigger?(Input::C) if @target_enemy_window.enemy.nil? Sound.play_buzzer return end Sound.play_decision @select_battler.action.target_index = @target_enemy_window.enemy.index end_target_enemy_selection end_skill_selection end_item_selection next_actor end end #-------------------------------------------------------------------------- # ☆ 対象アクター対象選択の開始 (info系修正) #-------------------------------------------------------------------------- def start_target_actor_selection @target_actor_window = Sprite_ZiiTarget.new($game_party.members, true) @target_actor_window.active = true @actor_command_window.active = false battle_command_window_visible(false) end #-------------------------------------------------------------------------- # ☆ 対象アクター選択の終了 (info系修正) #-------------------------------------------------------------------------- def end_target_actor_selection @target_actor_window.dispose @target_actor_window = nil battle_command_window_visible(true) end #-------------------------------------------------------------------------- # ☆ 対象アクター選択の更新 #-------------------------------------------------------------------------- def update_target_actor_selection @target_actor_window.update if Input.trigger?(Input::B) Sound.play_cancel end_target_actor_selection elsif Input.trigger?(Input::C) Sound.play_decision @select_battler.action.target_index = @target_actor_window.index end_target_actor_selection end_skill_selection end_item_selection next_actor end end #-------------------------------------------------------------------------- # ☆ スキル選択の開始 #-------------------------------------------------------------------------- def start_skill_selection @help_window = Window_Help.new @help_window.y = 232 @help_window.visible = ZiiN7::HelpOn @skill_window = Window_Skill.new(0, 288, 544, 128, @select_battler) @skill_window.help_window = @help_window @actor_command_window.active = false end #-------------------------------------------------------------------------- # ● スキル選択の終了 (変更なし) #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ☆ スキル選択の更新 #-------------------------------------------------------------------------- def update_skill_selection @skill_window.active = true @skill_window.update @help_window.update if Input.trigger?(Input::B) Sound.play_cancel end_skill_selection elsif Input.trigger?(Input::C) @skill = @skill_window.skill if @skill != nil @select_battler.last_skill_id = @skill.id end if @select_battler.skill_can_use?(@skill) Sound.play_decision determine_skill else Sound.play_buzzer end end end #-------------------------------------------------------------------------- # ☆ スキルの決定 #-------------------------------------------------------------------------- def determine_skill @select_battler.action.set_skill(@skill.id) @skill_window.active = false if @skill.need_selection? if @skill.for_opponent? start_target_enemy_selection else start_target_actor_selection end else end_skill_selection next_actor end end #-------------------------------------------------------------------------- # ☆ アイテム選択の開始 #-------------------------------------------------------------------------- def start_item_selection @help_window = Window_Help.new @help_window.y = 232 @help_window.visible = ZiiN7::HelpOn @item_window = Window_Item.new(0, 288, 544, 128) @item_window.help_window = @help_window @actor_command_window.active = false end #-------------------------------------------------------------------------- # ● アイテム選択の終了 (変更なし) #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ● アイテム選択の更新 (変更なし) #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ☆ アイテムの決定 #-------------------------------------------------------------------------- def determine_item @select_battler.action.set_item(@item.id) @item_window.active = false if @item.need_selection? if @item.for_opponent? start_target_enemy_selection else start_target_actor_selection end else end_item_selection next_actor end end #-------------------------------------------------------------------------- # ☆ 戦闘行動の実行 (コマンド自体の変更にあわせる) #-------------------------------------------------------------------------- def execute_action case @active_battler.action.kind when 0 # 基本 case @active_battler.action.basic when 0 # 攻撃 execute_action_attack when 1 # 防御 execute_action_guard when 2 # 逃走 if @active_battler.actor? execute_party_escape # アクター else execute_action_escape # エネミー end when 3 # 待機 execute_action_wait end when 1 # スキル execute_action_skill when 2 # アイテム execute_action_item end end #-------------------------------------------------------------------------- # ▲ パーティの逃走 (逃走コマンドの作成+メッセージ取り消し) #-------------------------------------------------------------------------- def execute_party_escape set_battle_help(Vocab.escape) if $game_troop.preemptive success = true else success = (rand(100) < @escape_ratio) end Sound.play_escape wait(40) if success process_escape else @escape_ratio += 10 set_battle_help(Vocab::EscapeFailure) wait(40) end end end
=begin ************************************************************************ ★ ステータス表示の作成 =end # ************************************************************************
#============================================================================== # ■ Game_Actor #==============================================================================
class Game_Actor #-------------------------------------------------------------------------- # ● バトル画面 X 座標 #-------------------------------------------------------------------------- def screen_x i = self.index return 0 if i == nil return (i * 96 + 192) end #-------------------------------------------------------------------------- # ● バトル画面 Y 座標 #-------------------------------------------------------------------------- def screen_y return 398 end #-------------------------------------------------------------------------- # ● バトル画面 Z 座標の取得 #-------------------------------------------------------------------------- def screen_z return 100 end #-------------------------------------------------------------------------- # ● スプライトを使うか? (表示するに変更) #-------------------------------------------------------------------------- def use_sprite? return true end end
#============================================================================== # ■ Gauge_Wp #------------------------------------------------------------------------------ # バトル時にWPゲージの表示をします #==============================================================================
class Gauge_Wp < Gauge_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(x, y) gauge = Cache.system(ZiiN7::WPGauge) back = Cache.system(ZiiN7::WPBack) fore = Cache.system(ZiiN7::WPFore) super(gauge, back, fore) @offset_x = ZiiN7::WPOffX @offset_y = ZiiN7::WPOffY self.x , self.y = x , y end #-------------------------------------------------------------------------- # ● ゲージの変動処理 #-------------------------------------------------------------------------- def gauge_rate_setting(rate) if @gauge_rate < 100 and @gauge.bitmap != Cache.system(ZiiN7::WPGauge) @gauge.bitmap = Cache.system(ZiiN7::WPGauge) # 通常ゲージに変更 elsif @gauge_rate == 100 and @gauge.bitmap != Cache.system(ZiiN7::WPMax) @gauge.bitmap = Cache.system(ZiiN7::WPMax) # 最大ゲージに変更 end end end
#============================================================================== # ■ Sprite_Battler #==============================================================================
class Sprite_Battler #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias :ziin7b_sbattler_initialize :initialize def initialize(viewport, battler = nil) ziin7b_sbattler_initialize(viewport, battler) create_wait_gauge end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias :ziin7b_sbattler_dispose :dispose def dispose dispose_wait_gauge ziin7b_sbattler_dispose end #-------------------------------------------------------------------------- # ● ウェイトゲージの解放 #-------------------------------------------------------------------------- def dispose_wait_gauge if @wp_gauge != nil @wp_gauge.dispose @wp_gauge = nil end end #-------------------------------------------------------------------------- # ● ウェイトゲージの作成 #-------------------------------------------------------------------------- def create_wait_gauge(flag = false) if flag or (@wp_gauge != nil and (@battler.nil? or not @battler.actor?)) dispose_wait_gauge end if @battler != nil and (@wp_gauge.nil? and @battler.actor?) x, y = @battler.screen_x + ZiiN7::WPX, @battler.screen_y + ZiiN7::WPY @wp_gauge = Gauge_Wp.new(x, y) @wp_gauge.z = 90 @wp_gauge.gauge_setting(@battler.wp * 100.0 / ZiiWP::MaxWP) end end #-------------------------------------------------------------------------- # ☆ バトラーの設定 (再定義) #-------------------------------------------------------------------------- def battler=(battler) flag = (@battler != battler) @battler = battler set_wp_another_battler(flag) end #-------------------------------------------------------------------------- # ● 他のバトラーが設定された場合 #-------------------------------------------------------------------------- def set_wp_another_battler(flag) create_wait_gauge(flag) return unless flag return if @battler == nil if @battler.dead? # 戦闘不能時 @effect_type = COLLAPSE @effect_duration = 0 @battler_visible = false end end #-------------------------------------------------------------------------- # ● 転送元ビットマップの更新 (アクターは顔グラ) #-------------------------------------------------------------------------- alias :ziin7b_sbattler_update_battler_bitmap :update_battler_bitmap def update_battler_bitmap if @battler.actor? # ゲージ設定 unless @wp_gauge.nil? @wp_gauge.gauge_setting(@battler.wp * 100.0 / ZiiWP::MaxWP) end # 顔グラ設定 if @battler.face_name != @face_name or @battler.face_index != @face_index @face_name = @battler.face_name @face_index = @battler.face_index if self.bitmap != nil self.bitmap.dispose end self.bitmap = Bitmap.new(92, 92) face = Cache.face(@face_name) rect = Rect.new(0, 0, 92, 92) rect.x = @face_index % 4 * 96 + 2 rect.y = @face_index / 4 * 96 + 2 self.bitmap.blt(0, 0, face, rect) @width = bitmap.width @height = bitmap.height self.ox = @width / 2 self.oy = @height if @battler.dead? or @battler.hidden self.opacity = 0 end end else ziin7b_sbattler_update_battler_bitmap end end end
#============================================================================== # ■ Window_BattleStatus #==============================================================================
class Window_BattleStatus #-------------------------------------------------------------------------- # ● オブジェクト初期化 改 #-------------------------------------------------------------------------- def initialize super(128, 288, 416, 128) @column_max = 4 refresh self.active = false self.opacity = 0 end #-------------------------------------------------------------------------- # ● 項目の描画 改 #-------------------------------------------------------------------------- def draw_item(index) x = index * 96 rect = Rect.new(x, 0, 96, 96) self.contents.clear_rect(rect) self.contents.font.color = normal_color actor = $game_party.members[index] draw_actor_state(actor, x + 72, WLH * 3) self.contents.font.color = hp_color(actor) size = 14 self.contents.font.size = size self.contents.draw_text(x, WLH * 1 + 20 - size, 80, WLH, actor.name) self.contents.font.size = 20 draw_actor_hp(actor, x, WLH * 2, 80) draw_actor_mp(actor, x, WLH * 3, 70) end #-------------------------------------------------------------------------- # ● カーソルの更新 #-------------------------------------------------------------------------- def update_cursor if @index < 0 # カーソル位置が 0 未満の場合 self.cursor_rect.empty # カーソルを無効とする else # カーソル位置が 0 以上の場合 rect = Rect.new(index * 96, 0, 96, 96) self.cursor_rect = rect # カーソルの矩形を更新 end end end
=begin ************************************************************************ ★ バトルヘルプ+メッセージ修正 (ポップアップ必須/ポップアップのみ使用) =end # ************************************************************************
#============================================================================== # ■ RPG::Skill #==============================================================================
module RPG class Skill #---------------------------------------------------------------------- # ☆ 使用時メッセージ2 (空に) #---------------------------------------------------------------------- def message2 return "" end end end
#============================================================================== # ■ Window_LineHelp #------------------------------------------------------------------------------ # スキルやアイテムの説明、アクターのステータスなどを表示するウィンドウです。 #==============================================================================
class Window_LineHelp < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(-16, 0, 576, WLH + 32) self.opacity = 0 end #-------------------------------------------------------------------------- # ● テキスト設定 # text : ウィンドウに表示する文字列 # align : アラインメント (0..左揃え、1..中央揃え、2..右揃え) #-------------------------------------------------------------------------- def set_text(text, align = 0) if text != @text or align != @align self.contents.clear back_color = Color.new(0, 0, 0, 80) self.contents.fill_rect(0, y = 12, contents.width, WLH - y, back_color) self.contents.font.color = normal_color self.contents.draw_text(20, 0, self.width - 72, WLH, text, align) @text = text @align = align end end end
#============================================================================== # ■ Scene_Battle #==============================================================================
class Scene_Battle #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_start :start def start ziin7b_scene_start @battle_help_window = Window_LineHelp.new @battle_help_window.visible = false @message_window.y = 0 end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_terminate :terminate def terminate ziin7b_scene_terminate @battle_help_window.dispose end #-------------------------------------------------------------------------- # ● 基本更新処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_update_basic :update_basic def update_basic(main = false) ziin7b_scene_update_basic(main) @battle_help_window.update set_message_window_visible end #-------------------------------------------------------------------------- # ● メッセージウィンドウの表示 #-------------------------------------------------------------------------- def set_message_window_visible return unless $game_temp.zii_wait_battle if $game_temp.process_action_doing @message_window.visible = false else @message_window.visible = $game_message.visible end end #-------------------------------------------------------------------------- # ● 勝利の処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_process_victory :process_victory def process_victory @battle_help_window.visible = false ziin7b_scene_process_victory end #-------------------------------------------------------------------------- # ● 敗北の処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_process_defeat :process_defeat def process_defeat @battle_help_window.visible = false ziin7b_scene_process_defeat end #-------------------------------------------------------------------------- # ● 画面切り替えの実行 #-------------------------------------------------------------------------- alias :ziin7b_scene_update_scene_change :update_scene_change def update_scene_change @battle_help_window.visible = false if $game_temp.next_scene != nil ziin7b_scene_update_scene_change end #-------------------------------------------------------------------------- # ● 行動後処理への追加 #-------------------------------------------------------------------------- def after_action_sub @battle_help_window.visible = false # バトルヘルプを非表示に end #-------------------------------------------------------------------------- # ● バトルヘルプの表示 #-------------------------------------------------------------------------- def set_battle_help(text = "") @battle_help_window.set_text(text, 1) @battle_help_window.visible = (not text.empty?) end #-------------------------------------------------------------------------- # ☆ 現在のステートの表示 (行動終了後使用/表示なし) #-------------------------------------------------------------------------- def display_current_state end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : 防御 #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_guard :execute_action_guard def execute_action_guard set_battle_help(Vocab.guard) ziin7b_scene_execute_action_guard end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : 逃走 #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_escape :execute_action_escape def execute_action_escape set_battle_help(Vocab.escape) ziin7b_scene_execute_action_escape end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : 待機 #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_wait :execute_action_wait def execute_action_wait text = sprintf(Vocab::DoWait, @active_battler.name) set_battle_help(text) ziin7b_scene_execute_action_wait end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : スキル #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_skill :execute_action_skill def execute_action_skill set_battle_help(@active_battler.action.skill.name) ziin7b_scene_execute_action_skill end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : アイテム #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_item :execute_action_item def execute_action_item set_battle_help(@active_battler.action.item.name) ziin7b_scene_execute_action_item end #-------------------------------------------------------------------------- # ☆ 行動結果の表示 #-------------------------------------------------------------------------- def display_action_effects(target, obj = nil) unless target.skipped line_number = @message_window.line_number wait(5) @status_window.refresh display_critical(target, obj) display_damage(target, obj) display_state_changes(target, obj) if line_number == @message_window.line_number display_failure(target, obj) unless target.states_active? end # <(Waitをなしに変更!) @message_window.back_to(line_number) end end end
bagian yang error tuh 577 atau bisa di test sendiri... tolong bantuannya untuk benerin ini |
| | | 2012-12-31, 21:32 | Re: Bantuin nuntasin script error |
---|
larkuzo Advance
Posts : 445 Thanked : 12 Engine : RMXP Skill : Beginner Type : Event Designer
| Gak bisa buka spoiler om Coba scriptnya di paste ke pastebin biar kelihatan baris-barisnya |
| | | 2012-12-31, 21:33 | Re: Bantuin nuntasin script error |
---|
Radis3D Sang Iblis
Posts : 755 Thanked : 3 Engine : RMVX Ace Skill : Very Beginner Type : Writer
Awards:
| punya nya VX apa VX ace tuh?? coba pake ini |
| | | 2012-12-31, 23:50 | Re: Bantuin nuntasin script error |
---|
Orionez Novice
Posts : 107 Thanked : 2 Engine : RMVX Ace
| waduh ga bs nyoba, mesti ada import picturenya dulu ke graphic>system klo mw pake ini. line 577 tentang frame henkou artinya perubahan frame. |
| | | 2013-01-01, 01:42 | Re: Bantuin nuntasin script error |
---|
yeki Novice
Posts : 182 Thanked : 6 Engine : RMVX Ace Skill : Beginner Type : Scripter
Awards:
| SS tampilan error nya, script yang dipakai apa aja ? coba test pake yang ini - Spoiler:
=begin ************************************************************************ ▼ WGB Battle Layout (Layout part) ver1.01 By ziifee ( http://neomemo.web.fc2.com/ ) Localization Team: Mr. Bubble and TakamiDaisuke Script that creates the wait gauge accumulation system. <Table of Contents : Please use the search feature (Ctrl+F)> >>> Super Class base > Wait Gauge command creation > Status Indicator Display > Battle Help + Message Rewrite
<Required Scripts> > State Animation Ver 2.0 > Damage Pop Script Ver2.0 < Required Images : Graphics/System/ > Cursor Image : TargetCursor Command Image : Spin40 Wait Gauge Bar : (See Wait Gauge Plugin) Wait Gauge Back : (See Wait Gauge Plugin) <Notes to Scripters> - In Battle, text is displayed in the help window using the following method: set_battle_help("Displayed Text") set_battle_help("Secret Artes") # Secret Artes Text is displayed - Battle Messages are disabled, but will still show up if called through an event command.
=end # ************************************************************************
module ZiiN7 # ▼ Setting ( true / false ) HelpOn = true # Display Skill/Item description in a help window. # ▼ Spin Command/Icon Index Number ATTACK = 2713 # Attack (Default) GUARD = 2721 # Guard SKILL = 2736 # Skill ITEM = 2724 # Item ESCAPE = 2756 # Escape
# ▼ Spin Command/Direction of Rotation ( "normal" or "reverse" ) # Determines how Spin Command rotates according to left/right key press. TURN = "normal" # ▼ WP Gauge Settings (Images in Graphics/System folder) WPGauge = "" # Body Gauge Image WPMax = "" # Max Gauge Image WPBack = "" # Background Gauge Image WPFore = "" # Foreground Gauge Image WPX , WPY = -12 , -90 # Gauge coordinate x,y WPOffX = 0 # Shift Meter X WPOffY = 0 # Shift Meter Y
#-------------------------------------------------------------------------- # ● 通常回転 の判定 (スピンコマンド) #-------------------------------------------------------------------------- def self.turn_normal? return false if TURN == "reverse" return true end end
=begin ----------# # ▼ Related Stuff ▼ # Ver.SpinCommand #-MyMemo-------------------------------------------------===================--- - Party Command window is disabled and will instead start from Actor Command. - @active_battler has been changed to @select_battler in certain cases. - Window relation, without moving info! - Relation between Spin Command and Background has been deleted. =end # ------------------------------------------------------------------------
=begin ************************************************************************ ◆ ベース用スーパークラス作成 =end # ************************************************************************
#============================================================================== # ■ Window_SpinCommand #------------------------------------------------------------------------------ # 回転用コマンド選択を行うウィンドウです。 #==============================================================================
class Window_SpinCommand < Window_Base #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :index # カーソル位置 attr_reader :help_window # ヘルプウィンドウ #-------------------------------------------------------------------------- # ● Object Initialization # cx / cy : Center Coordinates # commands : Command Arrangement ([name, kind, pull, enabled?]) # setting : Hash Settings ("R"=>radius "S"=>speed "G"=>graphic "L"=>text) #-------------------------------------------------------------------------- def initialize(cx, cy, commands, setting = {}) @radius = setting.has_key?("R") ? setting["R"] : 40 # Drawn Radius @speed = setting.has_key?("S") ? setting["S"] : 36 # Rotate Speed @spin_back = setting.has_key?("G") ? setting["G"] : "" # Background Image @spin_line = setting.has_key?("L") ? setting["L"] : nil # Text Position(?) x, y = cx - @radius - 28, cy - @radius - 28 width = height = @radius * 2 + 56 super(x, y, width, height) self.opacity = 0 @index = 0 @commands = commands # コマンド @spin_right = true @spin_count = 0 update_cursor end #-------------------------------------------------------------------------- # ▽ スピン画像を描画する (描画内容 強化用) # i : インデックス # cx : 表示 中心位置 X座標 # cy : 表示 中心位置 Y座標 #-------------------------------------------------------------------------- def draw_spin_graphic(i, cx, cy) case command_kind(i) when "icon" draw_icon(command_pull(i), cx - 12, cy - 12, command_enabled?(i)) end end #-------------------------------------------------------------------------- # ★ リフレッシュ バグ回避用 #-------------------------------------------------------------------------- def refresh set_spin end #-------------------------------------------------------------------------- # ★ 項目の描画 バグ回避用 #-------------------------------------------------------------------------- def draw_item(index, enabled = true) @commands[index][3] = enabled set_spin end #-------------------------------------------------------------------------- # ● 現在のコマンド名を取得する #-------------------------------------------------------------------------- def command_name(index = @index) return "" if index < 0 name = @commands[index][0] return name != nil ? name : "" end #-------------------------------------------------------------------------- # ● コマンドの種類を取得 #-------------------------------------------------------------------------- def command_kind(index) result = @commands[index][1] return result != nil ? result : "" end #-------------------------------------------------------------------------- # ● コマンドの引数 を取得 #-------------------------------------------------------------------------- def command_pull(index) result = @commands[index][2] return result != nil ? result : "" end #-------------------------------------------------------------------------- # ● コマンドの有効フラグを取得 #-------------------------------------------------------------------------- def command_enabled?(index) result = @commands[index][3] return result != nil ? result : true end #-------------------------------------------------------------------------- # ● 名前の位置に index を設定する #-------------------------------------------------------------------------- def set_index(name) n = -1 for i in 0...@commands.size n = i if @commands[i][0] == name end @index = n if n >= 0 update_cursor call_update_help set_spin end #-------------------------------------------------------------------------- # ● カーソル位置の設定 # index : 新しいカーソル位置 #-------------------------------------------------------------------------- def index=(index) @index = index update_cursor call_update_help set_spin end #-------------------------------------------------------------------------- # ● 中心のX座標を取得 #-------------------------------------------------------------------------- def center_x return contents.width / 2 end #-------------------------------------------------------------------------- # ● 中心のY座標を取得 #-------------------------------------------------------------------------- def center_y return contents.height / 2 end #-------------------------------------------------------------------------- # ● 項目数の取得 #-------------------------------------------------------------------------- def item_max return @commands.size end #-------------------------------------------------------------------------- # ● 背景の設定 (再定義 向き) #-------------------------------------------------------------------------- def set_background return if @spin_back == "" bitmap = Cache.system(@spin_back) rect = Rect.new(0, 0, bitmap.width, bitmap.height) self.contents.blt(12, 12, bitmap, rect) end #-------------------------------------------------------------------------- # ● 文章の設定 (再定義 向き) #-------------------------------------------------------------------------- def set_text return if @spin_line == nil y = center_y - WLH / 2 + @spin_line self.contents.draw_text(center_x - 48, y, 96, WLH, command_name, 1) end #-------------------------------------------------------------------------- # ● スピンアイコンの角度の差を取得する #-------------------------------------------------------------------------- def angle_size return (Math::PI * 2 / item_max) end #-------------------------------------------------------------------------- # ● スピンアイコン回転時のカウント を設定する #-------------------------------------------------------------------------- def set_spin_count @spin_count = angle_size * 360 / @speed set_spin(true) end #-------------------------------------------------------------------------- # ● スピン設定 の実行 # spin : 回転フラグ (true の時回転中) #-------------------------------------------------------------------------- def set_spin(spin = false) self.contents.clear set_background angle = spin ? @speed * @spin_count / 360 : 0 angle = @spin_right ? angle : -angle for i in 0...item_max n = (i - @index) * angle_size + angle cx = @radius * Math.sin(n) + center_x cy = - @radius * Math.cos(n) + center_y draw_spin_graphic(i, cx, cy) end set_text end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super update_cursor if @spin_count > 0 @spin_count -= 1 set_spin(@spin_count >= 1) return end update_command end #-------------------------------------------------------------------------- # ● コマンドの移動可能判定 #-------------------------------------------------------------------------- def command_movable? return false if @spin_count > 0 return false if (not visible or not active) return false if (index < 0 or index > item_max or item_max == 0) return false if (@opening or @closing) return true end #-------------------------------------------------------------------------- # ● コマンドを右に移動 #-------------------------------------------------------------------------- def command_right @index = (@index + 1) % item_max @spin_right = true set_spin_count end #-------------------------------------------------------------------------- # ● コマンドを左に移動 #-------------------------------------------------------------------------- def command_left @index = (@index - 1 + item_max) % item_max @spin_right = false set_spin_count end #-------------------------------------------------------------------------- # ● コマンド選択の更新 #-------------------------------------------------------------------------- def update_command if command_movable? if Input.press?(Input::RIGHT) Sound.play_cursor ZiiN7.turn_normal? ? command_right : command_left end if Input.press?(Input::LEFT) Sound.play_cursor ZiiN7.turn_normal? ? command_left : command_right end end call_update_help end #-------------------------------------------------------------------------- # ● カーソルの更新 #-------------------------------------------------------------------------- def update_cursor if @index < 0 self.cursor_rect.empty else rect = Rect.new(0, 0, 24, 24) rect.x = center_x - rect.width / 2 rect.y = center_y - rect.height / 2 - @radius self.cursor_rect = rect end end #-------------------------------------------------------------------------- # ● ヘルプウィンドウの設定 # help_window : 新しいヘルプウィンドウ #-------------------------------------------------------------------------- def help_window=(help_window) @help_window = help_window call_update_help end #-------------------------------------------------------------------------- # ● ヘルプウィンドウ更新メソッドの呼び出し #-------------------------------------------------------------------------- def call_update_help if self.active and @help_window != nil update_help end end #-------------------------------------------------------------------------- # ● ヘルプウィンドウの更新 (内容は継承先で定義する) #-------------------------------------------------------------------------- def update_help end end
#============================================================================== # ■ Gauge_Base #------------------------------------------------------------------------------ # ゲージの表示をするスプライトセットのクラスです。 #==============================================================================
class Gauge_Base #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :offset_x # ゲージオフセット X 座標 attr_accessor :offset_y # ゲージオフセット Y 座標 attr_reader :gauge_rate # ゲージ 割合 (確認用) #-------------------------------------------------------------------------- # ● オブジェクト初期化 # bitmap1 : ビットマップ ゲージ本体 # bitmap2 : ビットマップ ゲージ背景 # bitmap3 : ビットマップ ゲージ前景 #-------------------------------------------------------------------------- def initialize(bitmap1, bitmap2 = nil, bitmap3 = nil) create_gauge(bitmap1) create_ground_gauge(bitmap2, bitmap3) set_offset(0, 0) self.x , self.y , self.z = 0 , 0 , 1 @gauge_rate = 100 gauge_setting(@gauge_rate) end #-------------------------------------------------------------------------- # ● ゲージ本体の作成 #-------------------------------------------------------------------------- def create_gauge(bitmap1) @gauge = Sprite.new @gauge.bitmap = bitmap1 @gauge.viewport = Viewport.new(0, 0, bitmap1.width, bitmap1.height) end #-------------------------------------------------------------------------- # ● ゲージ背景・前景の作成 #-------------------------------------------------------------------------- def create_ground_gauge(bitmap2 = nil, bitmap3 = nil) @back = Sprite.new @back.bitmap = bitmap2 unless bitmap2.nil? @fore = Sprite.new @fore.bitmap = bitmap3 unless bitmap3.nil? end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- def dispose @gauge.viewport.dispose @gauge.dispose @back.dispose @fore.dispose end #-------------------------------------------------------------------------- # ● 計算用ゲージ最大値の取得 #-------------------------------------------------------------------------- def gauge_max return @gauge.width end #-------------------------------------------------------------------------- # ● 計算用ゲージ現在値の取得 #-------------------------------------------------------------------------- def gauge_width return @gauge.viewport.rect.width end #-------------------------------------------------------------------------- # ● ゲージオフセットの設定 #-------------------------------------------------------------------------- def set_offset(x, y) @offset_x , @offset_y = x , y end #-------------------------------------------------------------------------- # ● X 座標の取得 #-------------------------------------------------------------------------- def x return @back.x end #-------------------------------------------------------------------------- # ● Y 座標の取得 #-------------------------------------------------------------------------- def y return @back.y end #-------------------------------------------------------------------------- # ● Z 座標の取得 #-------------------------------------------------------------------------- def z return @back.z end #-------------------------------------------------------------------------- # ● X 座標の設定 #-------------------------------------------------------------------------- def x=(x) @gauge.viewport.rect.x = x + @offset_x @back.x = x @fore.x = x end #-------------------------------------------------------------------------- # ● Y 座標の設定 #-------------------------------------------------------------------------- def y=(y) @gauge.viewport.rect.y = y + @offset_y @back.y = y @fore.y = y end #-------------------------------------------------------------------------- # ● Z 座標の設定 #-------------------------------------------------------------------------- def z=(z) @gauge.viewport.z = z @back.z = z - 1 @fore.z = z + 1 end #-------------------------------------------------------------------------- # ● ゲージの範囲を設定 # rate : ゲージの割合 (%) #-------------------------------------------------------------------------- def gauge_setting(rate) rate = [[rate, 0].max, 100].min return if @gauge == rate @gauge.viewport.rect.width = (gauge_max * rate / 100.0).ceil gauge_rate_setting(rate) @gauge_rate = rate end #-------------------------------------------------------------------------- # ● ゲージの変動処理 #-------------------------------------------------------------------------- def gauge_rate_setting(rate) end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update @gauge.viewport.update @gauge.update @back.update @fore.update end end
=begin ************************************************************************ ★ ウェイトゲージでのコマンド作成 =end # ************************************************************************
#============================================================================== # ■ Sprite_ZiiTarget #------------------------------------------------------------------------------ # バトル画面で、行動対象のキャラを選択する画像です。 #==============================================================================
class Sprite_ZiiTarget < Sprite #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :active # 選択状態 attr_reader :item_max # 項目数 attr_reader :index # カーソル位置 #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(targets, exist_on) super(nil) self.bitmap = Cache.system("TargetCursor") self.ox = self.width / 2 self.oy = self.height / 2 self.z = 500 @targets = [] for battler in targets next unless exist_on or battler.exist? @targets.push(battler) end @active = true @item_max = @targets.size self.index = 0 end #-------------------------------------------------------------------------- # ● ターゲットオブジェクト取得 #-------------------------------------------------------------------------- def target return @targets[@index] end #-------------------------------------------------------------------------- # ★ 敵キャラオブジェクト取得 (互換性用) #-------------------------------------------------------------------------- def enemy return @targets[@index] end #-------------------------------------------------------------------------- # ● カーソル位置の設定 # index : 新しいカーソル位置 #-------------------------------------------------------------------------- def index=(index) @index = index unless self.target.nil? self.x = self.target.screen_x self.y = self.target.screen_y else self.visible = false end end #-------------------------------------------------------------------------- # ● カーソルの移動可能判定 #-------------------------------------------------------------------------- def cursor_movable? return false if (not self.visible or not self.active) return false if (@index < 0 or @index > @item_max) return true end #-------------------------------------------------------------------------- # ● カーソルを右に移動 #-------------------------------------------------------------------------- def cursor_right self.index = (@index + 1) % @item_max end #-------------------------------------------------------------------------- # ● カーソルを左に移動 #-------------------------------------------------------------------------- def cursor_left self.index = (@index - 1 + @item_max) % @item_max end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super if cursor_movable? last_index = @index if Input.trigger?(:RIGHT) cursor_right end if Input.trigger?(:LEFT) cursor_left end if @index != last_index Sound.play_cursor end end end end
#============================================================================== # ■ Window_ActorCommand #==============================================================================
class Window_ActorCommand < Window_SpinCommand #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize set = [] set.push([Vocab::attack, "icon", ZiiN7::ATTACK, true]) set.push([Vocab::skill, "icon", ZiiN7::SKILL, true]) set.push([Vocab::guard, "icon", ZiiN7::GUARD, true]) set.push([Vocab::item, "icon", ZiiN7::ITEM, true]) if $game_troop.can_escape # 逃げれる場合 set.push([Vocab::escape, "icon", ZiiN7::ESCAPE, true]) end super(72, 356, set, {"R"=>40, "S"=>52, "L"=>-12}) self.active = false set_spin end #-------------------------------------------------------------------------- # ● セットアップ # actor : アクター #-------------------------------------------------------------------------- def setup(actor) @commands[0][2] = ZiiN7::ATTACK @commands[1][0] = Vocab::skill if actor.weapons[0] != nil n = actor.weapons[0].icon_index @commands[0][2] = n if n > 0 end @commands[1][0] = actor.class.skill_name if actor.class.skill_name_valid self.index = 0 set_spin end end
#============================================================================== # ■ Scene_Battle #==============================================================================
class Scene_Battle #-------------------------------------------------------------------------- # ● ウェイトゲージを動かすかどうか? (コマンド系ウィンドウから判別) #-------------------------------------------------------------------------- def wait_point_update? # イベント時は動かす設定に!!(ゲージは増えない) return true if $game_troop.interpreter.running? # イベント中(特殊) return false unless @target_enemy_window.nil? # エネミー 選択中(Wait) return false unless @target_actor_window.nil? # アクター 選択中(Wait) return false unless @skill_window.nil? # スキル 選択中(Wait) return false unless @item_window.nil? # アイテム 選択中(Wait) return true # (Active) end #-------------------------------------------------------------------------- # ● コマンド選択の排除 #-------------------------------------------------------------------------- def clear_command_setting unless @target_enemy_window.nil? @target_enemy_window.dispose @target_enemy_window = nil end unless @target_actor_window.nil? @target_actor_window.dispose @target_actor_window = nil end unless @skill_window.nil? @skill_window.dispose @skill_window = nil end unless @item_window.nil? @item_window.dispose @item_window = nil end unless @help_window.nil? @help_window.dispose @help_window = nil end @actor_command_window.active = false @actor_command_window.visible = false @status_window.index = -1 @select_battler = nil # コマンド状態削除 (忘れないでね^^) end #-------------------------------------------------------------------------- # ● フレーム更新 (コマンドセレクト) #-------------------------------------------------------------------------- def command_update if @target_enemy_window != nil update_target_enemy_selection # 対象敵キャラ選択 elsif @target_actor_window != nil update_target_actor_selection # 対象アクター選択 elsif @skill_window != nil update_skill_selection # スキル選択 elsif @item_window != nil update_item_selection # アイテム選択 elsif @actor_command_window.active update_actor_command_selection # アクターコマンド選択 end end #-------------------------------------------------------------------------- # ☆ 情報表示ビューポートの作成 #-------------------------------------------------------------------------- def create_info_viewport # メモ : 全体的に値変更 @info_viewport = Viewport.new(0, 0, 544, 416) @info_viewport.z = 70 @status_window = Window_BattleStatus.new @status_window.z = 80 @party_command_window = Window_PartyCommand.new @actor_command_window = Window_ActorCommand.new # <(ステータスはビューポートからはずす) @party_command_window.viewport = @info_viewport @actor_command_window.viewport = @info_viewport @status_window.x = 128 @actor_command_window.x = 4 @party_command_window.visible = false @actor_command_window.visible = false create_spin_command_back # <(スピンコマンドの背景はここで別に作成) end #-------------------------------------------------------------------------- # ● スピンコマンド背景の作成 #-------------------------------------------------------------------------- def create_spin_command_back @spin_command_back = Sprite.new @spin_command_back.bitmap = Cache.system("Spin40") @spin_command_back.ox = @spin_command_back.width @spin_command_back.oy = @spin_command_back.height @spin_command_back.x = 112 @spin_command_back.y = 396 end #-------------------------------------------------------------------------- # ● 情報表示ビューポートの解放 #-------------------------------------------------------------------------- alias :ziin7b_scene_dispose_info_viewport :dispose_info_viewport def dispose_info_viewport @spin_command_back.dispose ziin7b_scene_dispose_info_viewport end #-------------------------------------------------------------------------- # ☆ 情報表示ビューポートの更新 (info系修正) #-------------------------------------------------------------------------- def update_info_viewport @status_window.update # ステータスウィンドウのみの更新 end #-------------------------------------------------------------------------- # ● コマンド系ウィンドウの表示 #-------------------------------------------------------------------------- def battle_command_window_visible(visible) unless @skill_window.nil? @skill_window.visible = visible end unless @item_window.nil? @item_window.visible = visible end unless @help_window.nil? @help_window.visible = visible if ZiiN7::HelpOn end end #-------------------------------------------------------------------------- # ☆ アクターコマンド選択の開始 #-------------------------------------------------------------------------- def start_actor_command_selection # <(@party_command_window の処理なし!) @actor_command_window.setup(@select_battler) @actor_command_window.active = true @actor_command_window.visible = true @actor_command_window.index = 0 end #-------------------------------------------------------------------------- # ☆ アクターコマンド選択の更新 #-------------------------------------------------------------------------- def update_actor_command_selection @actor_command_window.update return unless @actor_command_window.command_movable? # コマンド回転中 if Input.trigger?(Input::B) prior_actor elsif Input.trigger?(Input::C) case @actor_command_window.command_name # コマンド名取得 when Vocab::attack # 攻撃 Sound.play_decision @select_battler.action.set_attack start_target_enemy_selection when Vocab::skill, @select_battler.class.skill_name # スキル Sound.play_decision start_skill_selection when Vocab::guard # 防御 Sound.play_decision @select_battler.action.set_guard next_actor when Vocab::item # アイテム Sound.play_decision start_item_selection when Vocab::escape # 逃げる Sound.play_decision @select_battler.action.set_escape next_actor end end end #-------------------------------------------------------------------------- # ☆ 対象敵キャラ選択の開始 (info系修正) #-------------------------------------------------------------------------- def start_target_enemy_selection @target_enemy_window = Sprite_ZiiTarget.new($game_troop.members, false) @actor_command_window.active = false battle_command_window_visible(false) end #-------------------------------------------------------------------------- # ☆ 対象敵キャラ選択の終了 (info系修正) #-------------------------------------------------------------------------- def end_target_enemy_selection @target_enemy_window.dispose @target_enemy_window = nil if @actor_command_window.index == 0 @actor_command_window.active = true end battle_command_window_visible(true) end #-------------------------------------------------------------------------- # ☆ 対象敵キャラ選択の更新 #-------------------------------------------------------------------------- def update_target_enemy_selection @target_enemy_window.update if Input.trigger?(Input::B) Sound.play_cancel end_target_enemy_selection elsif Input.trigger?(Input::C) if @target_enemy_window.enemy.nil? Sound.play_buzzer return end Sound.play_decision @select_battler.action.target_index = @target_enemy_window.enemy.index end_target_enemy_selection end_skill_selection end_item_selection next_actor end end #-------------------------------------------------------------------------- # ☆ 対象アクター対象選択の開始 (info系修正) #-------------------------------------------------------------------------- def start_target_actor_selection @target_actor_window = Sprite_ZiiTarget.new($game_party.members, true) @target_actor_window.active = true @actor_command_window.active = false battle_command_window_visible(false) end #-------------------------------------------------------------------------- # ☆ 対象アクター選択の終了 (info系修正) #-------------------------------------------------------------------------- def end_target_actor_selection @target_actor_window.dispose @target_actor_window = nil battle_command_window_visible(true) end #-------------------------------------------------------------------------- # ☆ 対象アクター選択の更新 #-------------------------------------------------------------------------- def update_target_actor_selection @target_actor_window.update if Input.trigger?(Input::B) Sound.play_cancel end_target_actor_selection elsif Input.trigger?(Input::C) Sound.play_decision @select_battler.action.target_index = @target_actor_window.index end_target_actor_selection end_skill_selection end_item_selection next_actor end end #-------------------------------------------------------------------------- # ☆ スキル選択の開始 #-------------------------------------------------------------------------- def start_skill_selection @help_window = Window_Help.new @help_window.y = 232 @help_window.visible = ZiiN7::HelpOn @skill_window = Window_Skill.new(0, 288, 544, 128, @select_battler) @skill_window.help_window = @help_window @actor_command_window.active = false end #-------------------------------------------------------------------------- # ● スキル選択の終了 (変更なし) #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ☆ スキル選択の更新 #-------------------------------------------------------------------------- def update_skill_selection @skill_window.active = true @skill_window.update @help_window.update if Input.trigger?(Input::B) Sound.play_cancel end_skill_selection elsif Input.trigger?(Input::C) @skill = @skill_window.skill if @skill != nil @select_battler.last_skill_id = @skill.id end if @select_battler.skill_can_use?(@skill) Sound.play_decision determine_skill else Sound.play_buzzer end end end #-------------------------------------------------------------------------- # ☆ スキルの決定 #-------------------------------------------------------------------------- def determine_skill @select_battler.action.set_skill(@skill.id) @skill_window.active = false if @skill.need_selection? if @skill.for_opponent? start_target_enemy_selection else start_target_actor_selection end else end_skill_selection next_actor end end #-------------------------------------------------------------------------- # ☆ アイテム選択の開始 #-------------------------------------------------------------------------- def start_item_selection @help_window = Window_Help.new @help_window.y = 232 @help_window.visible = ZiiN7::HelpOn @item_window = Window_Item.new(0, 288, 544, 128) @item_window.help_window = @help_window @actor_command_window.active = false end #-------------------------------------------------------------------------- # ● アイテム選択の終了 (変更なし) #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ● アイテム選択の更新 (変更なし) #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ☆ アイテムの決定 #-------------------------------------------------------------------------- def determine_item @select_battler.action.set_item(@item.id) @item_window.active = false if @item.need_selection? if @item.for_opponent? start_target_enemy_selection else start_target_actor_selection end else end_item_selection next_actor end end #-------------------------------------------------------------------------- # ☆ 戦闘行動の実行 (コマンド自体の変更にあわせる) #-------------------------------------------------------------------------- def execute_action case @active_battler.action.kind when 0 # 基本 case @active_battler.action.basic when 0 # 攻撃 execute_action_attack when 1 # 防御 execute_action_guard when 2 # 逃走 if @active_battler.actor? execute_party_escape # アクター else execute_action_escape # エネミー end when 3 # 待機 execute_action_wait end when 1 # スキル execute_action_skill when 2 # アイテム execute_action_item end end #-------------------------------------------------------------------------- # ▲ パーティの逃走 (逃走コマンドの作成+メッセージ取り消し) #-------------------------------------------------------------------------- def execute_party_escape set_battle_help(Vocab.escape) if $game_troop.preemptive success = true else success = (rand(100) < @escape_ratio) end Sound.play_escape wait(40) if success process_escape else @escape_ratio += 10 set_battle_help(Vocab::EscapeFailure) wait(40) end end end
=begin ************************************************************************ ★ ステータス表示の作成 =end # ************************************************************************
#============================================================================== # ■ Game_Actor #==============================================================================
class Game_Actor #-------------------------------------------------------------------------- # ● バトル画面 X 座標 #-------------------------------------------------------------------------- def screen_x i = self.index return 0 if i == nil return (i * 96 + 192) end #-------------------------------------------------------------------------- # ● バトル画面 Y 座標 #-------------------------------------------------------------------------- def screen_y return 398 end #-------------------------------------------------------------------------- # ● バトル画面 Z 座標の取得 #-------------------------------------------------------------------------- def screen_z return 100 end #-------------------------------------------------------------------------- # ● スプライトを使うか? (表示するに変更) #-------------------------------------------------------------------------- def use_sprite? return true end end
#============================================================================== # ■ Gauge_Wp #------------------------------------------------------------------------------ # バトル時にWPゲージの表示をします #==============================================================================
class Gauge_Wp < Gauge_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(x, y) gauge = Cache.system(ZiiN7::WPGauge) back = Cache.system(ZiiN7::WPBack) fore = Cache.system(ZiiN7::WPFore) super(gauge, back, fore) @offset_x = ZiiN7::WPOffX @offset_y = ZiiN7::WPOffY self.x , self.y = x , y end #-------------------------------------------------------------------------- # ● ゲージの変動処理 #-------------------------------------------------------------------------- def gauge_rate_setting(rate) if @gauge_rate < 100 and @gauge.bitmap != Cache.system(ZiiN7::WPGauge) @gauge.bitmap = Cache.system(ZiiN7::WPGauge) # 通常ゲージに変更 elsif @gauge_rate == 100 and @gauge.bitmap != Cache.system(ZiiN7::WPMax) @gauge.bitmap = Cache.system(ZiiN7::WPMax) # 最大ゲージに変更 end end end
#============================================================================== # ■ Sprite_Battler #==============================================================================
class Sprite_Battler #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias :ziin7b_sbattler_initialize :initialize def initialize(viewport, battler = nil) ziin7b_sbattler_initialize(viewport, battler) create_wait_gauge end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias :ziin7b_sbattler_dispose :dispose def dispose dispose_wait_gauge ziin7b_sbattler_dispose end #-------------------------------------------------------------------------- # ● ウェイトゲージの解放 #-------------------------------------------------------------------------- def dispose_wait_gauge if @wp_gauge != nil @wp_gauge.dispose @wp_gauge = nil end end #-------------------------------------------------------------------------- # ● ウェイトゲージの作成 #-------------------------------------------------------------------------- def create_wait_gauge(flag = false) if flag or (@wp_gauge != nil and (@battler.nil? or not @battler.actor?)) dispose_wait_gauge end if @battler != nil and (@wp_gauge.nil? and @battler.actor?) x, y = @battler.screen_x + ZiiN7::WPX, @battler.screen_y + ZiiN7::WPY @wp_gauge = Gauge_Wp.new(x, y) @wp_gauge.z = 90 @wp_gauge.gauge_setting(@battler.wp * 100.0 / ZiiWP::MaxWP) end end #-------------------------------------------------------------------------- # ☆ バトラーの設定 (再定義) #-------------------------------------------------------------------------- def battler=(battler) flag = (@battler != battler) @battler = battler set_wp_another_battler(flag) end #-------------------------------------------------------------------------- # ● 他のバトラーが設定された場合 #-------------------------------------------------------------------------- def set_wp_another_battler(flag) create_wait_gauge(flag) return unless flag return if @battler == nil if @battler.dead? # 戦闘不能時 @effect_type = COLLAPSE @effect_duration = 0 @battler_visible = false end end #-------------------------------------------------------------------------- # ● 転送元ビットマップの更新 (アクターは顔グラ) #-------------------------------------------------------------------------- alias :ziin7b_sbattler_update_battler_bitmap :update_battler_bitmap def update_battler_bitmap if @battler.actor? # ゲージ設定 unless @wp_gauge.nil? @wp_gauge.gauge_setting(@battler.wp * 100.0 / ZiiWP::MaxWP) end # 顔グラ設定 if @battler.face_name != @face_name or @battler.face_index != @face_index @face_name = @battler.face_name @face_index = @battler.face_index if self.bitmap != nil self.bitmap.dispose end self.bitmap = Bitmap.new(92, 92) face = Cache.face(@face_name) rect = Rect.new(0, 0, 92, 92) rect.x = @face_index % 4 * 96 + 2 rect.y = @face_index / 4 * 96 + 2 self.bitmap.blt(0, 0, face, rect) @width = bitmap.width @height = bitmap.height self.ox = @width / 2 self.oy = @height if @battler.dead? or @battler.hidden self.opacity = 0 end end else ziin7b_sbattler_update_battler_bitmap end end end
#============================================================================== # ■ Window_BattleStatus #==============================================================================
class Window_BattleStatus #-------------------------------------------------------------------------- # ● オブジェクト初期化 改 #-------------------------------------------------------------------------- def initialize super(128, 288, 416, 128) @column_max = 4 refresh self.active = false self.opacity = 0 end #-------------------------------------------------------------------------- # ● 項目の描画 改 #-------------------------------------------------------------------------- def draw_item(index) x = index * 96 rect = Rect.new(x, 0, 96, 96) self.contents.clear_rect(rect) self.contents.font.color = normal_color actor = $game_party.members[index] draw_actor_state(actor, x + 72, WLH * 3) self.contents.font.color = hp_color(actor) size = 14 self.contents.font.size = size self.contents.draw_text(x, WLH * 1 + 20 - size, 80, WLH, actor.name) self.contents.font.size = 20 draw_actor_hp(actor, x, WLH * 2, 80) draw_actor_mp(actor, x, WLH * 3, 70) end #-------------------------------------------------------------------------- # ● カーソルの更新 #-------------------------------------------------------------------------- def update_cursor if @index < 0 # カーソル位置が 0 未満の場合 self.cursor_rect.empty # カーソルを無効とする else # カーソル位置が 0 以上の場合 rect = Rect.new(index * 96, 0, 96, 96) self.cursor_rect = rect # カーソルの矩形を更新 end end end
=begin ************************************************************************ ★ バトルヘルプ+メッセージ修正 (ポップアップ必須/ポップアップのみ使用) =end # ************************************************************************
#============================================================================== # ■ RPG::Skill #==============================================================================
module RPG class Skill #---------------------------------------------------------------------- # ☆ 使用時メッセージ2 (空に) #---------------------------------------------------------------------- def message2 return "" end end end
#============================================================================== # ■ Window_LineHelp #------------------------------------------------------------------------------ # スキルやアイテムの説明、アクターのステータスなどを表示するウィンドウです。 #==============================================================================
class Window_LineHelp < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(-16, 0, 576, WLH + 32) self.opacity = 0 end #-------------------------------------------------------------------------- # ● テキスト設定 # text : ウィンドウに表示する文字列 # align : アラインメント (0..左揃え、1..中央揃え、2..右揃え) #-------------------------------------------------------------------------- def set_text(text, align = 0) if text != @text or align != @align self.contents.clear back_color = Color.new(0, 0, 0, 80) self.contents.fill_rect(0, y = 12, contents.width, WLH - y, back_color) self.contents.font.color = normal_color self.contents.draw_text(20, 0, self.width - 72, WLH, text, align) @text = text @align = align end end end
#============================================================================== # ■ Scene_Battle #==============================================================================
class Scene_Battle #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_start :start def start ziin7b_scene_start @battle_help_window = Window_LineHelp.new @battle_help_window.visible = false @message_window.y = 0 end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_terminate :terminate def terminate ziin7b_scene_terminate @battle_help_window.dispose end #-------------------------------------------------------------------------- # ● 基本更新処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_update_basic :update_basic def update_basic(main = false) ziin7b_scene_update_basic(main) @battle_help_window.update set_message_window_visible end #-------------------------------------------------------------------------- # ● メッセージウィンドウの表示 #-------------------------------------------------------------------------- def set_message_window_visible return unless $game_temp.zii_wait_battle if $game_temp.process_action_doing @message_window.visible = false else @message_window.visible = $game_message.visible end end #-------------------------------------------------------------------------- # ● 勝利の処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_process_victory :process_victory def process_victory @battle_help_window.visible = false ziin7b_scene_process_victory end #-------------------------------------------------------------------------- # ● 敗北の処理 #-------------------------------------------------------------------------- alias :ziin7b_scene_process_defeat :process_defeat def process_defeat @battle_help_window.visible = false ziin7b_scene_process_defeat end #-------------------------------------------------------------------------- # ● 画面切り替えの実行 #-------------------------------------------------------------------------- alias :ziin7b_scene_update_scene_change :update_scene_change def update_scene_change @battle_help_window.visible = false if $game_temp.next_scene != nil ziin7b_scene_update_scene_change end #-------------------------------------------------------------------------- # ● 行動後処理への追加 #-------------------------------------------------------------------------- def after_action_sub @battle_help_window.visible = false # バトルヘルプを非表示に end #-------------------------------------------------------------------------- # ● バトルヘルプの表示 #-------------------------------------------------------------------------- def set_battle_help(text = "") @battle_help_window.set_text(text, 1) @battle_help_window.visible = (not text.empty?) end #-------------------------------------------------------------------------- # ☆ 現在のステートの表示 (行動終了後使用/表示なし) #-------------------------------------------------------------------------- def display_current_state end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : 防御 #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_guard :execute_action_guard def execute_action_guard set_battle_help(Vocab.guard) ziin7b_scene_execute_action_guard end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : 逃走 #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_escape :execute_action_escape def execute_action_escape set_battle_help(Vocab.escape) ziin7b_scene_execute_action_escape end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : 待機 #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_wait :execute_action_wait def execute_action_wait text = sprintf(Vocab::DoWait, @active_battler.name) set_battle_help(text) ziin7b_scene_execute_action_wait end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : スキル #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_skill :execute_action_skill def execute_action_skill set_battle_help(@active_battler.action.skill.name) ziin7b_scene_execute_action_skill end #-------------------------------------------------------------------------- # ● 戦闘行動の実行 : アイテム #-------------------------------------------------------------------------- alias :ziin7b_scene_execute_action_item :execute_action_item def execute_action_item set_battle_help(@active_battler.action.item.name) ziin7b_scene_execute_action_item end #-------------------------------------------------------------------------- # ☆ 行動結果の表示 #-------------------------------------------------------------------------- def display_action_effects(target, obj = nil) unless target.skipped line_number = @message_window.line_number wait(5) @status_window.refresh display_critical(target, obj) display_damage(target, obj) display_state_changes(target, obj) if line_number == @message_window.line_number display_failure(target, obj) unless target.states_active? end # <(Waitをなしに変更!) @message_window.back_to(line_number) end end end
|
| | | 2013-01-01, 06:40 | Re: Bantuin nuntasin script error |
---|
Deenos Advance
Posts : 487 Thanked : 7 Engine : RMVX Ace Skill : Skilled Type : Databaser
Awards:
| kak bantuin donk letakkan di tengah actor gimana? ini scriptnya - Code:
-
=begin ************************************************************************ Ÿ ‰ñ“]Ž®ƒoƒgƒ‹ƒRƒ}ƒ“ƒh Ver.1.10 --------------------------------------------------------------------------- ƒoƒgƒ‹ƒRƒ}ƒ“ƒh‚ð‰ñ“]Ž®ƒAƒCƒRƒ“ƒRƒ}ƒ“ƒh‚É•ÏX‚µ‚Ü‚·B =end # ************************************************************************
#-information------------------------------------------------------------------ $ziifee ||= {} $ziifee[:RollBattleCommand] = true #------------------------------------------------------------------------------ #-memo------------------------------------------------------------------------- # [•K—vƒXƒNƒŠƒvƒg] # ‰æ‘œƒRƒ}ƒ“ƒhƒXƒNƒŠƒvƒg (Ver.1.50ˆÈã) # [•K—v‰æ‘œ] ˆÈ‰º‚̉摜‚ð Graphics/System ‚ɃCƒ“ƒ|[ƒg‚µ‚Ä‚‚¾‚³‚¢B # ƒoƒgƒ‹ƒRƒ}ƒ“ƒh—p”wŒi‰æ‘œ ( ƒtƒ@ƒCƒ‹–¼ : Ring96x88 ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # ‚±‚̃XƒNƒŠƒvƒg‚ÍA‰æ‘œƒRƒ}ƒ“ƒhƒXƒNƒŠƒvƒg‚̉º‚É“ü‚ê‚Ä‚‚¾‚³‚¢B # ƒAƒCƒRƒ“‚Ì•ÏX‚ÍA‰æ‘œƒRƒ}ƒ“ƒhƒXƒNƒŠƒvƒg‚Ì’†‚Ås‚¦‚Ü‚·B #------------------------------------------------------------------------------
#****************************************************************************** # ¥ ‰ñ“]Ž®ƒRƒ}ƒ“ƒh“±“ü•” #******************************************************************************
class Window_PartyCommand; include ZiifSpriteCommand_RollIcon; end class Window_ActorCommand; include ZiifSpriteCommand_RollIcon; end
#****************************************************************************** # ¥ ƒŒƒCƒAƒEƒg•” #******************************************************************************
#============================================================================== # ¡ Sprite_ZiifRollIconActorBattleCommand #==============================================================================
class Sprite_ZiifRollIconActorBattleCommand < Sprite_ZiifRollIconCommand #-------------------------------------------------------------------------- # œ ƒAƒCƒRƒ“”Ô†‚̎擾 #-------------------------------------------------------------------------- def icon_index if command_set.command_symbol(self.index) == :attack return command_set.attack_icon_index end return super end end
#============================================================================== # ¡ Window_PartyCommand #==============================================================================
class Window_PartyCommand #-------------------------------------------------------------------------- # œ •‚̎擾 #-------------------------------------------------------------------------- def window_width return 96 end #-------------------------------------------------------------------------- # œ ‚‚³‚̎擾 #-------------------------------------------------------------------------- def window_height return 88 end #-------------------------------------------------------------------------- # œ ”wŒi‰æ‘œ‚̃tƒ@ƒCƒ‹–¼‚ðŽæ“¾ #-------------------------------------------------------------------------- def background_filename return "SpinCommand" end end
#============================================================================== # ¡ Window_ActorCommand #==============================================================================
class Window_ActorCommand #-------------------------------------------------------------------------- # œ •‚̎擾 #-------------------------------------------------------------------------- def window_width return 96 end #-------------------------------------------------------------------------- # œ ‚‚³‚̎擾 #-------------------------------------------------------------------------- def window_height return 88 end #-------------------------------------------------------------------------- # œ ”wŒi‰æ‘œ‚̃tƒ@ƒCƒ‹–¼‚ðŽæ“¾ #-------------------------------------------------------------------------- def background_filename return "SpinCommand" end #-------------------------------------------------------------------------- # œ ƒXƒvƒ‰ƒCƒgƒRƒ}ƒ“ƒhƒNƒ‰ƒX‚̎擾 #-------------------------------------------------------------------------- def sprite_command_class return Sprite_ZiifRollIconActorBattleCommand end #-------------------------------------------------------------------------- # œ UŒ‚ƒAƒCƒRƒ“”Ô†‚ðŽæ“¾ #-------------------------------------------------------------------------- def attack_icon_index if @actor && !@actor.weapons.compact.empty? return @actor.weapons.compact.first.icon_index end ZiifManager::IconSet[:attack][nil] end end
#============================================================================== # ¡ Scene_Battle #==============================================================================
class Scene_Battle #-------------------------------------------------------------------------- # œ ƒp[ƒeƒBƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚Ìì¬ #-------------------------------------------------------------------------- alias :ziif_roll_battle_command_create_party_command_window :create_party_command_window def create_party_command_window ziif_roll_battle_command_create_party_command_window @party_command_window.x = 64 @party_command_window.y = 200 end #-------------------------------------------------------------------------- # œ ƒAƒNƒ^[ƒRƒ}ƒ“ƒhƒEƒBƒ“ƒhƒE‚Ìì¬ #-------------------------------------------------------------------------- alias :ziif_roll_battle_command_create_actor_command_window :create_actor_command_window def create_actor_command_window ziif_roll_battle_command_create_actor_command_window @actor_command_window.x += 0 @actor_command_window.y = 425 end end
|
| | | | Re: Bantuin nuntasin script error |
---|
Sponsored content
| | | | | Bantuin nuntasin script error | |
|
Similar topics | |
|
Similar topics | |
| |
Halaman 1 dari 1 | |
| Permissions in this forum: | Anda tidak dapat menjawab topik
| |
| |
Latest 10 Topics | [Web Novel] Gloria Infidelis 2016-11-17, 21:27 by LightNightKnight
[Announcement] Forum baru untuk RMID 2016-08-25, 16:39 by TheoAllen
Where I'm Wrong ? 2016-07-24, 16:10 by ReydVires
flakeheartnet's Resources part III 2016-07-08, 14:30 by flakeheartnet
Keira's Art Warehouse 2016-06-28, 19:27 by KeiraBlaze
Theo Core Time System + Bingung 2016-06-27, 16:24 by Lockin
Error Script, Maybe ? 2016-06-27, 16:20 by Lockin
Nusaimoe @ RMID Lounge 2016-06-21, 05:02 by Jihad Bagas
Call Random Battle 2016-06-15, 17:04 by Lockin
Flakeheartnet Resources Part II [come back gift] 2016-06-07, 15:51 by flakeheartnet
|
Statistics
|
Members: [ 4947 ]
Topics: [ 8258 ]
Posts: [ 112606 ]
Newest member: [ https://rmid.forumotion.net/u4968 ]
|
|
|
|
|
|