| 
 
| 赞 | 0 |  
| VIP | 164 |  
| 好人卡 | 12 |  
| 积分 | 1 |  
| 经验 | 34544 |  
| 最后登录 | 2025-2-6 |  
| 在线时间 | 1553 小时 |  
 Lv1.梦旅人 夜天の主
	梦石0 星屑131 在线时间1553 小时注册时间2008-4-13帖子2348  
 | 
| 答一:在咱的工程里测试的时候敌人脚下没血条,LZ是加了其他脚本才会显示的吧.. 
 答二:脚本修改后如下:
 咱修改的效果是显示在Graphics/Pictures/下的图片,图片名称为00+角色ID号,例如1号角色就是001,11号角色就是0011..复制代码
#============================================================================== 
# 本脚本来自www.66RPG.com,使用和转载请保留此信息 
#============================================================================== 
# ———————————————————————————————————— 
# ▼▲▼ XRXS_BP 7. バトルステータス?クリアデザイン ver.1.03 ▼▲▼ 
# by 桜雅 在土 
#============================================================================== 
# ■ Window_BattleStatus 
#============================================================================== 
class Window_BattleStatus < Window_Base 
#-------------------------------------------------------------------------- 
# ● 公開インスタンス変数 
#-------------------------------------------------------------------------- 
attr_accessor :update_cp_only # CPメーターのみの更新 
#-------------------------------------------------------------------------- 
# ● オブジェクト初期化 
#-------------------------------------------------------------------------- 
alias xrxs_bp7_initialize initialize 
def initialize 
# 初期化 
@previous_hp = [] 
@previous_sp = [] 
# 呼び戻す 
xrxs_bp7_initialize 
##############################修改############################################
@sta_back = []
for actor_index in 1..$game_party.actors.size
@sta_back[actor_index] = Sprite.new
@sta_back[actor_index].bitmap = Bitmap.new("Graphics/Pictures/00"+$game_party.actors[actor_index - 1].id.to_s)
@sta_back[actor_index].x = (actor_index- 1)* 160 +7#在这里调整图片x坐标
@sta_back[actor_index].y = 480 - 78 -14#在这里调整图片y坐标
@sta_back[actor_index].z = self.z+1#在这里调整图片优先级
end
##############################修改############################################
# ↓Full-Viewの場合は下二行の # を消してください。 
#self.opacity = 0 
#self.back_opacity = 0 
##############################修改############################################
refresh
##############################修改############################################
end 
##############################修改############################################
def dispose
   super  
   for actor_index in 1..$game_party.actors.size
      @sta_back[actor_index].bitmap.dispose
      @sta_back[actor_index].dispose
   end
end
##############################修改############################################
#-------------------------------------------------------------------------- 
# ● リフレッシュ 
#-------------------------------------------------------------------------- 
alias xrxs_bp7_refresh refresh 
def refresh 
# CPメーターの更新のみ の場合 
if @update_cp_only 
xrxs_bp7_refresh 
return 
end 
# 変更するものがない場合、飛ばす 
@item_max = $game_party.actors.size 
bool = false 
for i in 0...@item_max 
actor = $game_party.actors[i] 
if (@previous_hp[i] != actor.hp) or (@previous_sp[i] != actor.sp) 
bool = true 
end 
end 
return if bool == false 
# 描写を開始 
self.contents.clear 
for i in 0...@item_max 
actor = $game_party.actors[i] 
actor_x = i * 160 + 21 
# 歩行キャラグラフィックの描写 
#draw_actor_graphic(actor, actor_x - 9, 116) 
# HP/SPメーターの描写 
draw_actor_hp_meter_line(actor, actor_x, 52, 96, 12) 
draw_actor_sp_meter_line(actor, actor_x, 84, 96, 12) 
# HP数値の描写 
self.contents.font.size = 24 # HP/SP数値の文字の大きさ 
self.contents.font.color = Color.new(0,0,0,192) 
self.contents.draw_text(actor_x, 40, 96, 24, actor.hp.to_s, 2) 
self.contents.font.color = actor.hp == 0 ? knockout_color : 
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color 
self.contents.draw_text(actor_x-2, 38, 96, 24, actor.hp.to_s, 2) 
# SP数値の描写 
self.contents.font.color = Color.new(0,0,0,192) 
self.contents.draw_text(actor_x, 72, 96, 24, actor.sp.to_s, 2) 
self.contents.font.color = actor.sp == 0 ? knockout_color : 
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color 
self.contents.draw_text(actor_x-2, 70, 96, 24, actor.sp.to_s, 2) 
# 用語「HP」と用語「SP」の描写 
self.contents.font.size = 18 # 用語「HP/SP」の文字の大きさ 
self.contents.font.color = Color.new(0,0,0,192) 
self.contents.draw_text(actor_x+2, 32, 196, 24, $data_system.words.hp) 
self.contents.draw_text(actor_x+2, 64, 196, 24, $data_system.words.sp) 
self.contents.font.color = system_color # 用語「HP/SP」の文字の色 
self.contents.draw_text(actor_x, 30, 196, 24, $data_system.words.hp) 
self.contents.draw_text(actor_x, 62, 196, 24, $data_system.words.sp) 
# ステートの描写 
draw_actor_state(actor, actor_x, 100) 
# 値を更新 
@previous_hp[i] = actor.hp 
@previous_hp[i] = actor.hp 
end 
end 
end 
#============================================================================== 
# ■ Window_Base 
#============================================================================== 
class Window_Base < Window 
#-------------------------------------------------------------------------- 
# ● HPメーター の描画 
#-------------------------------------------------------------------------- 
def draw_actor_hp_meter_line(actor, x, y, width = 156, height = 4) 
w = width * actor.hp / [actor.maxhp,1].max 
hp_color_1 = Color.new(255, 0, 0, 192) 
hp_color_2 = Color.new(255, 255, 0, 192) 
self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128)) 
draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2) 
x -= 1 
y += (height/4).floor 
self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128)) 
draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2) 
x -= 1 
y += (height/4).ceil 
self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128)) 
draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2) 
x -= 1 
y += (height/4).ceil 
self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128)) 
draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2) 
end 
#-------------------------------------------------------------------------- 
# ● SPメーター の描画 
#-------------------------------------------------------------------------- 
def draw_actor_sp_meter_line(actor, x, y, width = 156, height = 4) 
w = width * actor.sp / [actor.maxsp,1].max 
hp_color_1 = Color.new( 0, 0, 255, 192) 
hp_color_2 = Color.new( 0, 255, 255, 192) 
self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128)) 
draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2) 
x -= 1 
y += (height/4).floor 
self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128)) 
draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2) 
x -= 1 
y += (height/4).ceil 
self.contents.fill_rect(x+8, y+4, width, (height/4).ceil , Color.new(0, 0, 0, 128)) 
draw_line(x, y, x + w, y, hp_color_1, (height/4).ceil , hp_color_2) 
x -= 1 
y += (height/4).ceil 
self.contents.fill_rect(x+8, y+4, width, (height/4).floor, Color.new(0, 0, 0, 128)) 
draw_line(x, y, x + w, y, hp_color_1, (height/4).floor, hp_color_2) 
end 
#-------------------------------------------------------------------------- 
# ● 名前の描画 
#-------------------------------------------------------------------------- 
alias xrxs_bp7_draw_actor_name draw_actor_name 
def draw_actor_name(actor, x, y) 
xrxs_bp7_draw_actor_name(actor, x, y) if @draw_ban != true 
end 
#-------------------------------------------------------------------------- 
# ● ステートの描画 
#-------------------------------------------------------------------------- 
alias xrxs_bp7_draw_actor_state draw_actor_state 
def draw_actor_state(actor, x, y, width = 120) 
xrxs_bp7_draw_actor_state(actor, x, y, width) if @draw_ban != true 
end 
#-------------------------------------------------------------------------- 
# ● HP の描画 
#-------------------------------------------------------------------------- 
alias xrxs_bp7_draw_actor_hp draw_actor_hp 
def draw_actor_hp(actor, x, y, width = 144) 
xrxs_bp7_draw_actor_hp(actor, x, y, width) if @draw_ban != true 
end 
#-------------------------------------------------------------------------- 
# ● SP の描画 
#-------------------------------------------------------------------------- 
alias xrxs_bp7_draw_actor_sp draw_actor_sp 
def draw_actor_sp(actor, x, y, width = 144) 
xrxs_bp7_draw_actor_sp(actor, x, y, width) if @draw_ban != true 
end 
end 
#============================================================================== 
# ■ Scene_Battle 
#============================================================================== 
class Scene_Battle 
#-------------------------------------------------------------------------- 
# ● フレーム更新 
#-------------------------------------------------------------------------- 
alias xrxs_bp7_update update 
def update 
xrxs_bp7_update 
# メッセージウィンドウ表示中の場合 
if $game_temp.message_window_showing 
@status_window.update_cp_only = true 
else 
@status_window.update_cp_only = false 
end 
end 
end 
#============================================================================== 
# ◇ 外部ライブラリ 
#============================================================================== 
class Window_Base 
#-------------------------------------------------------------------------- 
# ● ライン描画 軽量版 by 桜雅 在土 
#-------------------------------------------------------------------------- 
def draw_lineght(start_x, start_y, end_x, end_y, start_color) 
# 描写距離の計算。大きめに直角時の長さ。 
distance = (start_x - end_x).abs + (start_y - end_y).abs 
# 描写開始 
for i in 1..distance 
x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i 
y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i 
self.contents.set_pixel(x, y, start_color) 
end 
end 
#-------------------------------------------------------------------------- 
# ● ライン描画 by 桜雅 在土 
#-------------------------------------------------------------------------- 
def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color) 
# 描写距離の計算。大きめに直角時の長さ。 
distance = (start_x - end_x).abs + (start_y - end_y).abs 
# 描写開始 
if end_color == start_color 
for i in 1..distance 
x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i 
y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i 
if width == 1 
self.contents.set_pixel(x, y, start_color) 
else 
self.contents.fill_rect(x, y, width, width, start_color) 
end 
end 
else 
for i in 1..distance 
x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i 
y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i 
r = start_color.red * (distance-i)/distance + end_color.red * i/distance 
g = start_color.green * (distance-i)/distance + end_color.green * i/distance 
b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance 
a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance 
if width == 1 
self.contents.set_pixel(x, y, Color.new(r, g, b, a)) 
else 
self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a)) 
end 
end 
end 
end 
end 
#============================================================================== 
# 本脚本来自www.66RPG.com,使用和转载请保留此信息 
#============================================================================== 
至于图片坐标调整请参看脚本中的注释~
 | 
 |