【图片】脚本:
# ▼▲▼ XRXS65A. CP制御ターンシステム「シンセ・ゲージ」 ▼▲▼ built201202
# by 桜雅 在土
#==============================================================================
# □ カスタマイズポイント
#==============================================================================
class XRXS65A
#--------------------------------------------------------------------------
# 「アイコン设定」
#--------------------------------------------------------------------------
DEFAULT = "046-Skill03" # ディフォルトアイコン
# アイコンハッシュ 记述方式 : アクターID=>アイコン名
ICONS = {
1=>"001-Weapon01",
2=>"002-Weapon02",
7=>"007-Weapon07",
8=>"008-Weapon08"
}
# アイコンハッシュE 记述方式 : エネミーID=>アイコン名
ICONE = {
1=>"046-Skill03",
2=>"047-Skill04",
}
#--------------------------------------------------------------------------
# 「シンセ・ゲージ」
#--------------------------------------------------------------------------
SKIN = "123" # スキン
X = 16 # X 座标
Y = 32 # Y 座标
end
#==============================================================================
# --- CP メーターをまとめて管理するクラス、表示関系はすべてココ --- [再定义]
#==============================================================================
class CP_Meters
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
# シンセゲージの生成
@base = Sprite.new
@base.bitmap = RPG::Cache.windowskin(XRXS65A::SKIN).dup
@base.x = XRXS65A::X
@base.y = XRXS65A::Y
@base.z = XRXS65A::X
@width = @base.bitmap.width
@height = @base.bitmap.height
@icon_set = []
refresh
end
#--------------------------------------------------------------------------
# ○ リフレッシュ
#--------------------------------------------------------------------------
def refresh
# 生成すべきバトラーの取得
need_initializes = []
for battler in $game_party.actors + $game_troop.enemies
exist = false
for set in @icon_set
exist |= (set[1] == battler)
end
need_initializes.push(battler) unless exist
end
for battler in need_initializes
iconname = nil
if battler.is_a?(Game_Actor)
iconname = XRXS65A::ICONS[battler.id]
else
iconname = XRXS65A::ICONE[battler.id]
end
if iconname == nil
iconname = XRXS65A::DEFAULT
end
sprite = Sprite.new
sprite.bitmap = RPG::Cache.icon(iconname).dup
sprite.y = XRXS65A::Y + @height / 2 - 12
@icon_set.push([sprite, battler])
end
# 更新
for set in @icon_set
set[0].x = XRXS65A::X + @width * set[1].cp / set[1].max_cp - 12
set[0].z = set[0].x
set[0].visible = false if set[1].dead? or !set[1].exist?
end
end
#--------------------------------------------------------------------------
# ○ 可视状态
#--------------------------------------------------------------------------
def visible=(b)
@base.visible = b
@icon_set.each{|set| set[0].visible = b }
end
#--------------------------------------------------------------------------
# ○ 解放
#--------------------------------------------------------------------------
def dispose
@base.dispose
@icon_set.each{|set| set[0].dispose }
end
end
# ▼▲▼ XRXS65A. CP制御ターンシステム「シンセ・ゲージ」 ▼▲▼ built201202
# by 桜雅 在土
#==============================================================================
# □ カスタマイズポイント
#==============================================================================
class XRXS65A
#--------------------------------------------------------------------------
# 「アイコン设定」
#--------------------------------------------------------------------------
DEFAULT = "046-Skill03" # ディフォルトアイコン
# アイコンハッシュ 记述方式 : アクターID=>アイコン名
ICONS = {
1=>"001-Weapon01",
2=>"002-Weapon02",
7=>"007-Weapon07",
8=>"008-Weapon08"
}
# アイコンハッシュE 记述方式 : エネミーID=>アイコン名
ICONE = {
1=>"046-Skill03",
2=>"047-Skill04",
}
#--------------------------------------------------------------------------
# 「シンセ・ゲージ」
#--------------------------------------------------------------------------
SKIN = "123" # スキン
X = 16 # X 座标
Y = 32 # Y 座标
end
#==============================================================================
# --- CP メーターをまとめて管理するクラス、表示関系はすべてココ --- [再定义]
#==============================================================================
class CP_Meters
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
# シンセゲージの生成
@base = Sprite.new
@base.bitmap = RPG::Cache.windowskin(XRXS65A::SKIN).dup
@base.x = XRXS65A::X
@base.y = XRXS65A::Y
@base.z = XRXS65A::X
@width = @base.bitmap.width
@height = @base.bitmap.height
@icon_set = []
refresh
end
#--------------------------------------------------------------------------
# ○ リフレッシュ
#--------------------------------------------------------------------------
def refresh
# 生成すべきバトラーの取得
need_initializes = []
for battler in $game_party.actors + $game_troop.enemies
exist = false
for set in @icon_set
exist |= (set[1] == battler)
end
need_initializes.push(battler) unless exist
end
for battler in need_initializes
iconname = nil
if battler.is_a?(Game_Actor)
iconname = XRXS65A::ICONS[battler.id]
else
iconname = XRXS65A::ICONE[battler.id]
end
if iconname == nil
iconname = XRXS65A::DEFAULT
end
sprite = Sprite.new
sprite.bitmap = RPG::Cache.icon(iconname).dup
sprite.y = XRXS65A::Y + @height / 2 - 12
@icon_set.push([sprite, battler])
end
# 更新
for set in @icon_set
set[0].x = XRXS65A::X + @width * set[1].cp / set[1].max_cp - 12
set[0].z = set[0].x
set[0].visible = false if set[1].dead? or !set[1].exist?
end
end
#--------------------------------------------------------------------------
# ○ 可视状态
#--------------------------------------------------------------------------
def visible=(b)
@base.visible = b
@icon_set.each{|set| set[0].visible = b }
end
#--------------------------------------------------------------------------
# ○ 解放
#--------------------------------------------------------------------------
def dispose
@base.dispose
@icon_set.each{|set| set[0].dispose }
end
end