| 赞 | 2 |
| VIP | |
| 好人卡 | |
| 积分 | 2 |
| 经验 | |
| 最后登录 | 2017-7-18 |
| 在线时间 | 2070 小时 |
Mr.Gandum
- 梦石
- 0
- 星屑
- 226
- 在线时间
- 2070 小时
- 注册时间
- 2007-1-31
- 回帖
- 2982

|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 feizhaodan 于 2011-6-26 14:04 编辑
Apart:[code]# ▽△▽ XRXSv9. BaST【バトルシステムテンプレート】VX. ▽△▽
#
# publish 2010/ 3/ 5
# update - 11/ 2/16b
#
#==============================================================================
# カスタマイズポイント - BaST本体
#==============================================================================
module XRXSV9
#
# バトルコマンド設定
# 0 : 攻撃
# 1 : スキル
# 2 : ぼうぎょ
# 3 : アイテム
# 4 : 装備
# 5 : ステータス
# 6 : クイックコマンド
# 7 : パーティスキル
# 8 : にげる
# 9 : ターン終了
# 10 : 個人マテリアルバッグ
# 11 : パーティマテリアルバッグ
# 12 : アイテムトラッシュ確認
#
CommandIDs = [0, 1, 2, 3, 13 ,8]
#
# バトルコマンドの表示サイズ (VX標準 : 4)
#
CommandRow = 4
#
# [用語]
#
S_QUICK = "マジック "
S_PSKILL = "アタック "
S_TURNEND = "ターンエンド"
S_BAG = "マイバッグ "
S_PBAG = "アイテム "
S_TRASH = "トラッシュ "
#
# [クイックコマンド機能]
# ※メモ quick があるアイテム・スキルはクイックコマンドとして扱います。
#
# クイックコマンドを元のウインドウに表示しないようにする?
#
QuickListHiding = true
#
# 仲間のクイックコマンドを選択可能にする?
#
QuickFriendSupport = true
#
# クイックコマンド時の画面色調とBGM音量
#
QuickTone = Tone.new(-32,-40,0,96)
QuickVolume = 60
#
#
# [「行動側アニメーション」機能 ]
#
# 「魔法」と判定されるスキルに自動設定される行動側アニメーションID[一括設定]
# ( 0 を指定するとアニメは再生されません)
# ( メモ preanime[n] でn番を指定しているスキルはその指定が優先されます )
#
MagicPreanimationID = 0
#
# 行動側アニメーション再生時のウェイト時間指定[単位:F]
# ( 0 を指定するとアニメ終了時まで待機します)
#
PreanimationWaitCount = 0
#
# 「勝利前バトルイベント」を有効にする?
#
NonJudgeBattleEvent = true
#
# 「アクションスパンイベント」を有効にする?
# (有効な行動の終了時にバトルイベントスパン[ターン]をクリアします)
#
BattleEventActionSpan = false
#
# 勝利演出スキップ - スイッチID
#
BattleEndSkipSwitchID = 0
#
# 勝利BGM/ME+マップBGM復帰処理スキップ - スイッチID
#
BattleEndMapBGMMESkipSwitchID = 0
#
# コマンドポップSE
#
CommandPopSE = RPG::SE.new("", 80, 150)
#
# コマンドセットウィンドウを表示する?
#
CommandSetVisible = true
#
# 戦闘背景ファイル名接頭語(Graphics/Parallaxes)
#
BBMap = "Map"
BBTrrain = "Terrain"
#
# 戦闘テストに使用する戦闘背景(Graphics/Parallaxes)
#
BBBTEST = "Map1"
#
# パトルステータスの内容更新をまとめて軽量化する?
#
BattleStatusRefreshAtEnd = true
#
# ターンコントローラー・トループインデックス
#
TCTI = 0
#
# 用語配列の作成
#
def self.command_names
names = [
Vocab::attack,
Vocab::skill,
Vocab::guard,
Vocab::item,
Vocab::equip,
Vocab::status,
XRXSV9::S_QUICK,
XRXSV9::S_PSKILL,
Vocab::escape,
XRXSV9::S_TURNEND,
XRXSV9::S_BAG,
XRXSV9::S_PBAG,
XRXSV9::S_TRASH,
"队伍编辑"
]
return names
end
end
#==============================================================================
# カスタマイズポイント - バトルリザルト専用
#==============================================================================
module XRXSV9
#
# 勝利BGMの初期設定(Audio/BGM)
#
BattleEndBGM = "Win"
#
# 人数によるEXPレート[単位:%]
#
EXPRates = [120, 100, 80, 67, 50]
#
# EXP獲得不可ステートID配列 ([]と空にすると戦闘不能でもEXP獲得します)
#
EXPnStates = [1]
#
# ドロップアイテム獲得・最大数制限(0だと制限しない)
#
DropItemMax = 0
end
#==============================================================================
# 魔法?の判定
#==============================================================================
class Game_BattleAction
def magic_skill?
return (self.skill? and self.skill.magic?)
end
end
class RPG::UsableItem
def magic?
return (self.spi_f >= 1 and not self.physical_attack)
end
end
#==============================================================================
# 各種設定
#==============================================================================
class Game_Temp
attr_accessor :preemptive
attr_accessor :surprise
attr_accessor :turn_shift
attr_accessor :link_done
attr_accessor :battle_phase
attr_accessor :attacking_battler
attr_accessor :battle_timing_type
def used_skill_hash
@used_skill_hash ||= {}
return @used_skill_hash
end
end
#==============================================================================
# BGM音量変化
#==============================================================================
module RPG
class BGM < AudioFile
@@last_volume = nil
def self.volume_down
@@last_volume = @@last.volume
@@last.volume = XRXSV9::QuickVolume
@@last.play
end
def self.volume_back
if @@last_volume
@@last.volume = @@last_volume
@@last.play
@@last_volume = nil
end
end
end
end
#==============================================================================
# スキルの行動側アニメーションIDの取得
#==============================================================================
module XRXSV9_SkillPreanimaion
def preanimation_id
self.note.gsub(/preanime[([0-9]+?)]/) do
return $1.to_i if $1.to_i > 0
end
return 0
end
end
class RPG::UsableItem
include XRXSV9_SkillPreanimaion
end
#==============================================================================
# アクターバトラーグラフィック
#==============================================================================
class Game_Battler
def in_floor?
return true
end
end
class Game_Actor < Game_Battler
def battler_name
return ""
end
def battler_hue
return 0
end
def in_floor?
return false
end
def use_sprite?
return true
end
def screen_x
return self.battlestatus_x + self.battlestatus_offset
end
def screen_y
return self.battlestatus_y
end
def screen_z
return 101
end
end
#==============================================================================
# バトルスプライトセット/バトルトーン2
#==============================================================================
class Spriteset_Battle
def create_actors
@actor_sprites = []
end
alias xrxsv9_update_actors update_actors
def update_actors
for i in @actor_sprites.size...[$game_party.members.size, 4].max
@actor_sprites = Sprite_ActorBattler.new(@viewport1)
end
for i in 4...@actor_sprites.size
@actor_sprites.battler = $game_party.members
end
xrxsv9_update_actors
end
alias xrxsv9_update_viewports update_viewports
def update_viewports
$game_temp.battle_tone2_update
@viewport2.tone = $game_temp.battle_tone2
xrxsv9_update_viewports
end
end
class Game_Temp
def battle_tone2
@battle_tone2 ||= Tone.new(0,0,0)
return @battle_tone2
end
def battle_tone2_update
@battle_tone2_duration ||= 0
if @battle_tone2_duration >= 1
d = @battle_tone2_duration
@battle_tone2.red = (@battle_tone2.red * (d - 1) + @battle_tone2_target.red ) / d
@battle_tone2.green = (@battle_tone2.green * (d - 1) + @battle_tone2_target.green) / d
@battle_tone2.blue = (@battle_tone2.blue * (d - 1) + @battle_tone2_target.blue ) / d
@battle_tone2.gray = (@battle_tone2.gray * (d - 1) + @battle_tone2_target.gray ) / d
@battle_tone2_duration -= 1
end
end
def start_battle_tone2_change(tone, duration)
@battle_tone2_target = tone.clone
@battle_tone2_duration = duration
if @battle_tone2_duration == 0
@battle_tone2 = @battle_tone2_target.clone
end
end
def bluestop_battle_tone2
start_battle_tone2_change(XRXSV9::QuickTone, 6)
end
def clear_battle_tone2
start_battle_tone2_change(Tone.new(0,0,0), 6)
end
end
#==============================================================================
# アニメーションホールド/バトルメッセージホールド機能
#==============================================================================
class Sprite_Base < Sprite
def animation_hold!
@held_animation_set ||= []
if self.animation?
@held_animation_set.push([@animation, @animation_sprites, @animation_duration, @animation_bitmap1, @animation_bitmap2])
@animation = nil
@animation_sprites = nil
@animation_duration = 0
@animation_bitmap1 = nil
@animation_bitmap2 = nil
end
end
def animation_unhold!
@held_animation_set ||= []
set = @held_animation_set.shift
if set
dispose_animation
@animation = set[0]
@animation_sprites = set[1]
@animation_duration = set[2]
@animation_bitmap1 = set[3]
@animation_bitmap2 = set[4]
end
end
end
class Spriteset_Battle
def animation_hold!
for sprite in @enemy_sprites + @actor_sprites do sprite.animation_hold! end
end
def animation_unhold!
for sprite in @enemy_sprites + @actor_sprites do sprite.animation_unhold! end
end
end
class Window_BattleMessage < Window_Message
def message_hold!
@held_lines ||= []
@held_lines.push(@lines)
@lines = []
refresh
end
def message_unhold!
@held_lines ||= []
lines = @held_lines.shift
if lines
@lines = lines
refresh
end
end
end
#==============================================================================
# バトルカメラ対応
#==============================================================================
class XRXSV_BattleCam3D
attr_accessor :lock
def reverse?
return false
end
def direction_angle
return 2
end
def set_horize(active_battler, targets)
end
def watch(active_battler, targets)
end
def go_reset
end
end
class Game_Temp
def xcam
@xcam ||= XRXSV_BattleCam3D.new
return @xcam
end
end
#==============================================================================
# バトルカメラへの対応
#==============================================================================
class Sprite_Base < Sprite
def update_battler_xcam
end
end
module XRXSV9SceneBattleExForCam
def update_battle_cam
end
def xcam_reset
end
def xcam_turn_refresh
end
def xcam_win
end
def xcam_animation_start(targets)
end
def xcam_preanimation
end
def xcam_animation(targets)
end
end
class Scene_Battle < Scene_Base
include XRXSV9SceneBattleExForCam
end
#==============================================================================
# ダメージシェイクへの対応
#==============================================================================
class Sprite_Base
def update_damageshake
end
end
#==============================================================================
# 各種対応 : スプライト+バトルジャンプ / バトラーモーション/自動回復
#==============================================================================
class Sprite_ActorBattler < Sprite_Battler
def update_jumping
end
end
module XRXSV9_inGameBattler
def battlermotion_reset
end
def do_auto_recovery
end
def battlejjump_at_post?
return true
end
def battler_initialize
end
end
class Game_Battler
include XRXSV9_inGameBattler
end
class Scene_Base
def create_extra_windows
end
def dispose_extra_windows
end
end
#==============================================================================
# BaSTバトルシーン各種対応
#==============================================================================
module XRXSV9_inSceneBattle
def cp_initialize
end
def wait_for_xcam
end
def open_timing_command(timing_type, targets)
end
def battlermotion_action
end
def battlermotion_reset
end
def battlejump_back
end
def battlejump_escape
end
def battlejump_for_targets(targets)
end
def battlejump_action_end
end
def wait_for_jump(battlers = self.members)
end
def allclear_power
end
def process_additional_effects(target, obj)
end
end
class Scene_Battle < Scene_Base
include XRXSV9_inSceneBattle
end
#==============================================================================
# バトルステータス位置
#==============================================================================
class Window_BattleStatus < Window_Selectable
def initialize
super(128, 288, 416, 128)
refresh
self.active = false
end
def refresh_lite
end
end
class Game_Battler
def battlestatus_x(window_width = 416)
return 0
end
def battlestatus_y
return Graphics.height - 32
end
def battlestatus_offset
return 0
end
def battlestatus_cp_x
return self.battlestatus_x + self.battlestatus_offset
end
def battlestatus_cp_y
return 400
end
end
class Game_Actor < Game_Battler
def battlestatus_x(window_width = 416)
w = (window_width * Graphics.width / 544 - 32) / $game_party.members.size
x = w * self.index
x += w / 2
return x
end
def battlestatus_offset
return (128 * Graphics.width / 544) + 16
end
end
class Scene_Battle < Scene_Base
def battlestatus_offset
return (128 * Graphics.width / 544) + 16
end
end
#==============================================================================
# バトル用ウィンドウ
#==============================================================================
class Window_TargetActor < Window_Command
def initialize
commands = []
for actor in $game_party.members
commands.push(actor.name)
end
super(416, commands, 2, 4)
end
end
class Window_BattleSkill < Window_Skill
def initialize(battler)
super(0, 288, 544, 104, battler)
self.z += 501
end
end
class Window_BattleItem < Window_Item
def initialize
super(0, 288, 544, 104)
self.z += 501
end
end
class Window_BattleHelp < Window_Help
def initialize
super
self.y = Graphics.height - self.height + 16
self.z += 500
end
end
if XRXSV9::QuickListHiding
class Window_BattleSkill < Window_Skill
def refresh
@data = []
for skill in @actor.skills
next unless include?(skill)
@data.push(skill)
if skill.id == @actor.last_skill_id
self.index = @data.size - 1
end
end
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
def include?(skill)
return false if skill and skill.quick?
return true
end
end
class Window_BattleItem < Window_Item
def include?(item)
return false if item and item.quick?
return super(item)
end
end
end
class Window_BattleTrash < Window_BattleItem
def refresh
@data = []
for material in $game_party.trash
@data.push(material.item)
end
@data.push(nil) if include?(nil)
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
if item != nil
rect.width -= 20
draw_item_name(item, rect.x + 8, rect.y, false)
end
end
end
#==============================================================================
# マテリアルバッグウィンドウ
#==============================================================================
class Window_BattleMaterial < Window_BattleItem
def initialize(holder)
@holder = holder
super()
end
def refresh
@data = []
for material in @holder.bag
@data.push(material.item)
end
@data.push(nil) if @data.size == 0
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
end
#==============================================================================
# アイテムマテリアル機能への対応
#==============================================================================
class Material
end
class RPG::BaseItem
attr_accessor :material
def materialized?
return self.material.is_a?(Material)
end
end
#==============================================================================
# マテリアルバッグ/トラッシュ機能
#==============================================================================
class Game_Party < Game_Unit
def bag
@bag ||= []
return @bag
end
def trash
@trash ||= []
return @trash
end
end
class Game_Actor < Game_Battler
def bag
@bag ||= []
return @bag
end
end
#==============================================================================
# アイテム・スキルのクイックコマンド判別
#==============================================================================
module RPG
class BaseItem
def quick?
return (self.note.include?("quick"))
end
end
end
class Game_BattleAction
def quick?
return ((self.skill and self.skill.quick?) or
(self.item and self.item.quick?))
end
end
#==============================================================================
# ナンバー描画への対応
#==============================================================================
module XRXSVForDNX
def draw_number(x, y, width, height, number, align, skin, opacity = 224)
self.draw_text(x, y, width, height, number, align)
end
def draw_number_l(x, y, width, height, number, align = 0)
skin = Cache.system(XRXSVDsIn::NumberL) rescue nil
self.draw_number(x, y, width, height, number, align, skin)
end
def draw_number_s(x, y, width, height, number, align = 0)
skin = Cache.system(XRXSVDsIn::NumberS) rescue nil
self.draw_number(x, y, width, height, number, align, skin)
end
end
class Bitmap
include XRXSVForDNX
end
#==============================================================================
# 属性アイコンの描画への対応
#==============================================================================
class Window_Base < Window
def draw_element_icon(element_id, x, y, enabled = true)
icon_index = (XRXSV52::Icons rescue [])[element_id]
draw_icon(icon_index, x, y, enabled) if icon_index
end
end
#==============================================================================
# バトル用ウィンドウ - クイック/パーティスキル/ガード 共通項目
#==============================================================================
class Window_BattlePartyAction < Window_BattleSkill
def initialize(battler = nil)
@battler = battler
super(battler)
@spacing = 12
refresh
end
def setup(actor)
@battler = actor
refresh
end
def refresh
refresh_data
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
def user
return @user[self.index]
end
def draw_item(index)
item = @data[index]
actor = @user[index]
rect = item_rect(index)
rect.x += 50
rect.width -= 50
self.contents.clear_rect(rect)
en_costs = (item.en_costs rescue [])
if item
self.contents.blt(rect.x - 46, rect.y, actor.miniface, actor.miniface.rect) rescue nil
self.contents.clear_rect(rect.x - 46, rect.y, 48, 1)
self.contents.clear_rect(rect.x - 46, rect.y + 23, 48, 1)
end
if item.is_a?(RPG::Item)
number = $game_party.item_number(item)
enabled = enable?(item)
rect.width -= 4
draw_item_name(item, rect.x, rect.y, enabled)
self.contents.draw_text(rect, sprintf(":%2d", number), 2)
else
skill = item
rect.width -= 4
if skill
self.contents.font.size = 19
enabled = enable_skill?(actor, skill)
draw_item_name(skill, rect.x, rect.y, enabled)
mp_cost = actor.calc_mp_cost(skill)
if en_costs.empty? and mp_cost >= 1
self.contents.draw_text(rect, mp_cost, 2)
end
else
self.contents.draw_text(rect, nil_text())
end
end
if en_costs.size >= 1
x = rect.x + rect.width - 24 * en_costs.size
for element_id in en_costs
draw_element_icon(element_id, x, rect.y)
x += 24
end
end
end
def nil_text()
return "---"
end
#--------------------------------------------------------------------------
# ○ アイテムの取得
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
# enable状態
#--------------------------------------------------------------------------
def enable?(item)
return $game_party.item_can_use?(item)
end
def enable_skill?(actor, skill)
return (actor.skill_can_use?(skill))
end
def item_enable?
if self.item.is_a?(RPG::Skill)
return self.user.skill_can_use?(item)
elsif self.item.is_a?(RPG::Item)
return $game_party.item_can_use?(item)
end
return true
end
end
#==============================================================================
# バトル用ウィンドウ - クイックコマンド
#==============================================================================
class Window_BattleQuick < Window_BattlePartyAction
def refresh_data
@data = []
@user = []
enable_set = []
disable_set = []
for actor in $game_party.members
for material in (actor.bag rescue []) #for item in $game_party.items
item = material.item
if item.is_a?(RPG::Item) and item.occasion <= 1 and item.quick?
enable_set.push([actor, item])
end
end
end
for actor in (XRXSV9::QuickFriendSupport ? $game_party.members : [@battler])
for skill in actor.skills
if skill.quick?
if enable_skill?(actor, skill)
enable_set.push([actor, skill])
else
disable_set.push([actor, skill])
end
end
end
end
for set in enable_set + disable_set
@user.push(set[0])
@data.push(set[1])
end
end
end
#==============================================================================
# バトル用ウィンドウ - パーティスキル
#==============================================================================
class Window_BattlePartySkill < Window_BattlePartyAction
def refresh_data
@data = []
@user = []
enable_set = []
disable_set = []
for actor in $game_party.members
set1 = []
set2 = []
for skill in actor.skills
if not skill.quick?
if enable_skill?(actor, skill)
set1.push(skill)
else
set2.push(skill)
end
end
end
if set1.empty? and set2.empty?
set1.push(nil)
end
for skill in set1
enable_set.push([actor, skill])
end
for skill in set2
disable_set.push([actor, skill])
end
end
for set in enable_set + disable_set
@user.push(set[0])
@data.push(set[1])
end
end
def enable_skill?(actor, skill)
return false if skill.for_guard?
return (not actor.commanded and
(skill == nil or actor.skill_can_use?(skill)))
end
end
#==============================================================================
# 戦闘背景の取得 (背景をビットマップで取得する)
#==============================================================================
class Game_Map
def battleback
$data_mapinfos = load_data("Data/MapInfos.rvdata") if $data_mapinfos.nil?
id = self.map_id
bitmap = nil
while id >= 1
name = XRXSV9::BBMap + id.to_s
begin
bitmap = Cache.parallax(name)
break
rescue
nil
end
id = $data_mapinfos[id].parent_id
end
if bitmap == nil
id = ($game_player.terrain_id rescue 0)
if id >= 1
name = XRXSV9::BBTrrain + id.to_s
bitmap = Cache.parallax(name) rescue nil
end
end
return bitmap
end
end
#==============================================================================
# バトラー設定 / 魔法の「詠唱セット」
#==============================================================================
class Game_Temp
def commanded_battlers
@commanded_battlers = [] if @commanded_battlers == nil
return @commanded_battlers
end
end
class Game_Battler
attr_accessor :power_increase_turn
attr_accessor :action
def commanded
return $game_temp.commanded_battlers.include?(self)
end
def commanded=(b)
if b
$game_temp.commanded_battlers.push(self)
else
$game_temp.commanded_battlers.delete(self)
end
end
alias xrxsv9_skill_effective? skill_effective?
def skill_effective?(user, skill)
return false if user.action.blocked
return xrxsv9_skill_effective?(user, skill)
end
end
#==============================================================================
# バトルアクション設定
#==============================================================================
class Game_BattleAction
attr_accessor :counter
attr_accessor :material
attr_accessor :orderer
attr_accessor :blocked
attr_accessor :target_spirit
#--------------------------------------------------------------------------
# ● スキルオブジェクト取得
#--------------------------------------------------------------------------
alias xrxsv9_skill skill
def skill
return (@skill_obj ? @skill_obj : xrxsv9_skill)
end
#--------------------------------------------------------------------------
# マテリアル機能ほか各種への対応
#--------------------------------------------------------------------------
alias xrxsv9_clear clear
def clear
xrxsv9_clear
@material = nil
@orderer = nil
@skill_obj = nil
@blocked = false
@target_spirit = nil
end
def set_skill_obj(skill)
@kind = 1
@skill_obj = skill
end
def set_material(material)
@kind = 2
@material = material
end
def set_spell(material)
@kind = 4
@material = material
end
alias xrxsv9_item item
def item
return @material.item if @material
return xrxsv9_item
end
#--------------------------------------------------------------------------
# ○ 逃走を設定
#--------------------------------------------------------------------------
def set_escape
@kind = 0
@basic = 2
end
def escape?
return (@kind == 0 and @basic == 2)
end
end
#==============================================================================
# CP機能 - 表示セットの基本形
#==============================================================================
class Spriteset_CP
def initialize(members, info_viewport = nil)
end
def refresh(reserve_actions = nil)
end
def update
end
def visible=(b)
end
def opacity
return 255
end
def opacity=(n)
end
def dispose
end
def reset_members(member)
end
end
#==============================================================================
# CP機能 - 対応
#==============================================================================
class Game_Battler
def cp_per48
return cp_per96/2
end
def cp_per96
return 0 if self.dead?
return 96
end
def cp_max?
return true
end
def cp_reset
end
def cp_nillize
end
end
#==============================================================================
# ATB対応方式 - ガード/入力可能?
#==============================================================================
module XRXSV9BattlerATBNeeds
attr_accessor :guarding
def guarding?
return self.guarding
end
def inputable?
return (self.cp_max? and super)
end
end
class Game_Actor < Game_Battler
include XRXSV9BattlerATBNeeds
end
class Game_Enemy < Game_Battler
include XRXSV9BattlerATBNeeds
end
#==============================================================================
# バトルリザルト - データ
#==============================================================================
class Game_Temp
attr_accessor :battle_result_gold
attr_accessor :battle_result_tresures
attr_accessor :battle_result_ap
end
class Game_Battler
attr_accessor :battle_result_exp
end
#==============================================================================
# バトルリザルト - EXP権利
#==============================================================================
class Game_Enemy < Game_Battler
def exp_rights
@exp_rights = [] if @exp_rights == nil
return @exp_rights
end
attr_accessor :exp_mvp
end
#==============================================================================
# バトルリザルト - BGMの取得と設定
#==============================================================================
class Game_System
def battle_end_bgm=(battle_end_bgm)
@battle_end_bgm = battle_end_bgm
end
def battle_end_bgm
if @battle_end_bgm == nil
return RPG::BGM.new(XRXSV9::BattleEndBGM) rescue nil
else
return @battle_end_bgm
end
end
end
#==============================================================================
# バトルリザルト - 対応
#==============================================================================
module XRXSV9_SceneBattleTemplates
def battle_result_enabled?
return false
end
def actor_battler_initialize
end
end
class Scene_Battle < Scene_Base
include XRXSV9_SceneBattleTemplates
end
#==============================================================================
# エネミーインフォウィンドウ
#==============================================================================
class Window_EnemyInfo < Window_Base
def initialize
super(0,0,36,36)
self.opacity = 0
end
def refresh
end
end
#==============================================================================
# ■ バトルメッセージ
#==============================================================================
class Window_BattleMessage < Window_Message
def last_instant_text
return @lines[-1].to_s
end
def set(object)
end
def close_force
@closing = true if self.openness > 0
@opening = false
end
end
#==============================================================================
# ■ アクターコマンド [再定義]
#==============================================================================
class Window_ActorCommand < Window_Command
def initialize
@quick_one_mode = false
@command_ids = XRXSV9::CommandIDs
super(128, [], 1, XRXSV9::CommandRow)
self.active = false
self.openness = 0
self.x = 0
self.y = Graphics.height - self.height
self.z = 204
end
def setup(actor)
@command_ids = XRXSV9::CommandIDs
names = XRXSV9.command_names
if actor.class.skill_name_valid # スキルのコマンド名が有効?
names[1] = actor.class.skill_name # コマンド名を置き換える
end
@commands = []
for id in XRXSV9::CommandIDs
@commands.push(names[id])
end
@item_max = @commands.size
refresh
escape_index = names.index(Vocab::escape)
escape_index = XRXSV9::CommandIDs.index(escape_index.to_i)
if escape_index
draw_item(escape_index, ($game_troop.can_escape and not $game_temp.battle_phase))
end
self.index = 0
@quick_one_mode = false
end
def command_id
return @command_ids[self.index].to_i
end
def row_max
return XRXSV9::CommandIDs.size
end
end
#==============================================================================
# コマンド確認ウィンドウ
#==============================================================================
class Window_ActorCommandSet < Window_Base
if XRXSV9::CommandSetVisible
def initialize
x = 0
y = 252
w = 128
h = 36
@original_y = y
@back_window = Window_Base.new(x, y, w, h)
@back_window.contents.dispose
super(x-16, y-16, w+32, h+32)
self.visible = false
self.opacity = 0
self.z = 208
@back_window.z = 105
end
def y=(n)
@back_window.y = n
super(n - 16)
end
def dispose
@back_window.dispose
super
end
def set(object)
self.visible = true
case object
when RPG::Item, RPG::Skill
draw_line(object.name)
self.y = @original_y
when Game_Battler
draw_actor(object)
else
draw_line(object.to_s)
self.y = @original_y
end
end
def draw_actor(actor)
self.contents.clear
rect = self.contents.rect.dup
rect.x += 8
rect.width -= 16
begin
self.contents.blt(rect.x, 6, actor.miniface, actor.miniface.rect)
rect.x += 48
rect.width -= 48
rescue
nil
end
self.contents.draw_text(rect, actor.name, 1)
end
def draw_line(text)
self.contents.clear
rect = self.contents.rect
self.contents.draw_text(rect.x + 8, rect.y, rect.width - 16, rect.height, text, 1)
end
def visible=(b)
@back_window.visible = b
super
end
else
def initialize
super(0, 0, 36, 36)
self.visible = false
end
def set(object)
end
end
def clear
self.visible = false
end
end
#==============================================================================
# スパン[ターン]バトルベントのクリア
#==============================================================================
class Game_Troop < Game_Unit
def clear_turn_battle_event
for page in troop.pages
if page.span == 1
@event_flags |
|