赞 | 0 |
VIP | 1 |
好人卡 | 11 |
积分 | 1 |
经验 | 17928 |
最后登录 | 2018-9-22 |
在线时间 | 461 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 461 小时
- 注册时间
- 2008-11-19
- 帖子
- 607
|
本帖最后由 sai90306 于 2012-5-26 01:00 编辑
狀態窗口...我找了元版的腳本改好true=false了 直接貼上覆蓋原來的就可以了
#============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ # 处理地图画面的类。 #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ● 在这里控制脚本的属性 #-------------------------------------------------------------------------- SWITCH_ID = 2 #在这里设定开关的编号…… $center_hud = false #这里决定是否将HUD(状态窗口)居中显示…… #-------------------------------------------------------------------------- # ● 初始化别名 #-------------------------------------------------------------------------- alias raz_hud_main main alias raz_hud_update update #-------------------------------------------------------------------------- # ● 主进程 #-------------------------------------------------------------------------- def main @size = $game_party.actors.size raz_hud_main @hud_window.dispose for i in 0...$game_party.actors.size @hud_dummy[i].dispose end #for end #def #-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update if @size != $game_party.actors.size @hud_window.refresh show_window end #if if @hud != true main_window end #if turn_hud_on_off @hud_window.update raz_hud_update end #def #-------------------------------------------------------------------------- # ● 与状态窗口的显示行为相关的语句 #-------------------------------------------------------------------------- def show_window @size = $game_party.actors.size for i in 0..3 @hud_dummy[i].visible = ($game_party.actors[i] != nil) end #for end #def #-------------------------------------------------------------------------- # ● 与状态窗口的创建相关的语句 #-------------------------------------------------------------------------- def main_window @opacity = 200 @hud_dummy = [] for i in 0...4 y = $game_party.actors.size - 1 x = 240 - (y * 80) if $center_hud == true @hud_dummy[i] = Window_Base.new(160 * i + x, 372,160, 108) else @hud_dummy[i] = Window_Base.new(160 * i, 372,160, 108) end #if @hud_dummy[i].opacity = @opacity @hud_dummy[i].visible = false end #for @hud_window = Window_HUD.new for i in 0...$game_party.actors.size @hud_dummy[i].visible = $game_party.actors[i] != nil end #for @hud = true end #def #-------------------------------------------------------------------------- # ● 与状态窗口的开关相关的语句 #-------------------------------------------------------------------------- def turn_hud_on_off if $game_switches[SWITCH_ID] == false #关掉开关 @hud_window.visible = false for i in 0...$game_party.actors.size @hud_dummy[i].visible = false end #for end #if if $game_switches[SWITCH_ID] == true #打开开关 @hud_window.visible = true for i in 0...$game_party.actors.size @hud_dummy[i].visible = true end #for end #if end #def end #class #============================================================================== # ■ Window_HUD #------------------------------------------------------------------------------ # 地图画面中显示的状态窗口。 #============================================================================== class Window_HUD < Window_Base #-------------------------------------------------------------------------- # ● 初始化对象 #-------------------------------------------------------------------------- def initialize super(0, 0, 800, 600) self.contents = Bitmap.new(width - 32, height - 32) self.opacity = 0 for i in 0...$game_party.actors.size actor = $game_party.actors[i] eval("@old_hp#{i+1} = actor.hp; @old_sp#{i+1} = actor.sp; @old_exp#{i+1} = actor.now_exp") end #for refresh end #def #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...$game_party.actors.size a = $game_party.actors.size - 1 actor = $game_party.actors[i] if $center_hud == true x = (i * 160 + 25) + (240 - (a * 80)) else x = i * 160 + 25 end #if self.contents.font.size = 21 draw_actor_graphic(actor, x - 15, 445) self.contents.font.color = normal_color self.contents.draw_text(x - 25, 360, 100, 32, actor.name) width = 100 height = 6 draw_slant_bar(x + 8, 396, actor.hp, actor.maxhp, width, height, Color.new(150, 0, 0), Color.new(155, 155, 60)) draw_slant_bar(x + 8, 416, actor.sp, actor.maxsp, width, height, Color.new(0, 0, 150), Color.new(60, 155, 155)) unless actor.level == 99 draw_slant_bar(x + 8, 436, actor.now_exp, actor.next_exp, width, height, Color.new(0, 150, 0), Color.new(60, 255, 60)) else draw_slant_bar(x + 8, 436, 1, 1, width = 100, height = 6, Color.new(0, 150, 0), Color.new(60, 255, 60)) end #unless self.contents.font.size = 16 draw_actor_state(actor, x + 45, 360) self.contents.font.color = normal_color self.contents.font.bold = true self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color self.contents.draw_text(x + 16, 382, 100, 32, "#{actor.hp}/#{actor.maxhp}", 1) self.contents.font.color = actor.sp == 0 ? crisis_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color self.contents.draw_text(x + 16, 402, 100, 32, "#{actor.sp}/#{actor.maxsp}", 1) self.contents.font.color = system_color self.contents.font.size = 20 self.contents.font.bold = false self.contents.draw_text(x, 384, 50, 32, "力") #HP的显示文本,可修改。 self.contents.draw_text(x, 404, 50, 32, "气") #SP的显示文本,可修改。 self.contents.draw_text(x, 424, 50, 32, "验") #EXP的显示文本,可修改。 end #for end #def #-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update super for i in 0...$game_party.actors.size actor = $game_party.actors[i] if (eval("@old_hp#{i+1}") != actor.hp or eval("@old_sp#{i+1}") != actor.sp or eval("@old_exp#{i+1}") != actor.now_exp) refresh eval("@old_hp#{i+1} = actor.hp; @old_sp#{i+1} = actor.sp; @old_exp#{i+1} = actor.now_exp") end #if end #super end #def end #class #============================================================================== # ■ Window_Base #------------------------------------------------------------------------------ # 游戏中全部窗口的超级类。 #============================================================================== class Window_Base < Window #状态条的绘制 def draw_slant_bar(x, y, min, max, width = 152, height = 6, bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255)) for i in 0..height self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255)) end #for for i in 1..(height - 1) r = 100 * (height - i) / height + 0 * i / height g = 100 * (height - i) / height + 0 * i / height b = 100 * (height - i) / height + 0 * i / height a = 255 * (height - i) / height + 255 * i / height self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a)) end #for for i in 1..( (min / max.to_f) * width - 1) for j in 1..(height - 1) r = bar_color.red * (width - i) / width + end_color.red * i / width g = bar_color.green * (width - i) / width + end_color.green * i / width b = bar_color.blue * (width - i) / width + end_color.blue * i / width a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a)) end #for end #for end #def end #class #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ # 处理角色的类。本类在 Game_Actors 类 ($game_actors) # 的内部使用、Game_Party 类请参考 ($game_party) 。 #============================================================================== class Game_Actor #获取当前EXP def now_exp return @exp - @exp_list[@level] end #def #获取下一级需要EXP的数值 def next_exp return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0 end #def end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 处理地图画面的类。
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# ● 在这里控制脚本的属性
#--------------------------------------------------------------------------
SWITCH_ID = 2 #在这里设定开关的编号……
$center_hud = false #这里决定是否将HUD(状态窗口)居中显示……
#--------------------------------------------------------------------------
# ● 初始化别名
#--------------------------------------------------------------------------
alias raz_hud_main main
alias raz_hud_update update
#--------------------------------------------------------------------------
# ● 主进程
#--------------------------------------------------------------------------
def main
@size = $game_party.actors.size
raz_hud_main
@hud_window.dispose
for i in 0...$game_party.actors.size
@hud_dummy[i].dispose
end #for
end #def
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
if @size != $game_party.actors.size
@hud_window.refresh
show_window
end #if
if @hud != true
main_window
end #if
turn_hud_on_off
@hud_window.update
raz_hud_update
end #def
#--------------------------------------------------------------------------
# ● 与状态窗口的显示行为相关的语句
#--------------------------------------------------------------------------
def show_window
@size = $game_party.actors.size
for i in 0..3
@hud_dummy[i].visible = ($game_party.actors[i] != nil)
end #for
end #def
#--------------------------------------------------------------------------
# ● 与状态窗口的创建相关的语句
#--------------------------------------------------------------------------
def main_window
@opacity = 200
@hud_dummy = []
for i in 0...4
y = $game_party.actors.size - 1
x = 240 - (y * 80)
if $center_hud == true
@hud_dummy[i] = Window_Base.new(160 * i + x, 372,160, 108)
else
@hud_dummy[i] = Window_Base.new(160 * i, 372,160, 108)
end #if
@hud_dummy[i].opacity = @opacity
@hud_dummy[i].visible = false
end #for
@hud_window = Window_HUD.new
for i in 0...$game_party.actors.size
@hud_dummy[i].visible = $game_party.actors[i] != nil
end #for
@hud = true
end #def
#--------------------------------------------------------------------------
# ● 与状态窗口的开关相关的语句
#--------------------------------------------------------------------------
def turn_hud_on_off
if $game_switches[SWITCH_ID] == false #关掉开关
@hud_window.visible = false
for i in 0...$game_party.actors.size
@hud_dummy[i].visible = false
end #for
end #if
if $game_switches[SWITCH_ID] == true #打开开关
@hud_window.visible = true
for i in 0...$game_party.actors.size
@hud_dummy[i].visible = true
end #for
end #if
end #def
end #class
#==============================================================================
# ■ Window_HUD
#------------------------------------------------------------------------------
# 地图画面中显示的状态窗口。
#==============================================================================
class Window_HUD < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
def initialize
super(0, 0, 800, 600)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
eval("@old_hp#{i+1} = actor.hp; @old_sp#{i+1} = actor.sp; @old_exp#{i+1} = actor.now_exp")
end #for
refresh
end #def
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...$game_party.actors.size
a = $game_party.actors.size - 1
actor = $game_party.actors[i]
if $center_hud == true
x = (i * 160 + 25) + (240 - (a * 80))
else
x = i * 160 + 25
end #if
self.contents.font.size = 21
draw_actor_graphic(actor, x - 15, 445)
self.contents.font.color = normal_color
self.contents.draw_text(x - 25, 360, 100, 32, actor.name)
width = 100
height = 6
draw_slant_bar(x + 8, 396, actor.hp, actor.maxhp, width, height, Color.new(150, 0, 0), Color.new(155, 155, 60))
draw_slant_bar(x + 8, 416, actor.sp, actor.maxsp, width, height, Color.new(0, 0, 150), Color.new(60, 155, 155))
unless actor.level == 99
draw_slant_bar(x + 8, 436, actor.now_exp, actor.next_exp, width, height, Color.new(0, 150, 0), Color.new(60, 255, 60))
else
draw_slant_bar(x + 8, 436, 1, 1, width = 100, height = 6, Color.new(0, 150, 0), Color.new(60, 255, 60))
end #unless
self.contents.font.size = 16
draw_actor_state(actor, x + 45, 360)
self.contents.font.color = normal_color
self.contents.font.bold = true
self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(x + 16, 382, 100, 32, "#{actor.hp}/#{actor.maxhp}", 1)
self.contents.font.color = actor.sp == 0 ? crisis_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(x + 16, 402, 100, 32, "#{actor.sp}/#{actor.maxsp}", 1)
self.contents.font.color = system_color
self.contents.font.size = 20
self.contents.font.bold = false
self.contents.draw_text(x, 384, 50, 32, "力") #HP的显示文本,可修改。
self.contents.draw_text(x, 404, 50, 32, "气") #SP的显示文本,可修改。
self.contents.draw_text(x, 424, 50, 32, "验") #EXP的显示文本,可修改。
end #for
end #def
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
super
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
if (eval("@old_hp#{i+1}") != actor.hp or eval("@old_sp#{i+1}") != actor.sp or
eval("@old_exp#{i+1}") != actor.now_exp)
refresh
eval("@old_hp#{i+1} = actor.hp; @old_sp#{i+1} = actor.sp; @old_exp#{i+1} = actor.now_exp")
end #if
end #super
end #def
end #class
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
# 游戏中全部窗口的超级类。
#==============================================================================
class Window_Base < Window
#状态条的绘制
def draw_slant_bar(x, y, min, max, width = 152, height = 6,
bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
for i in 0..height
self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
end #for
for i in 1..(height - 1)
r = 100 * (height - i) / height + 0 * i / height
g = 100 * (height - i) / height + 0 * i / height
b = 100 * (height - i) / height + 0 * i / height
a = 255 * (height - i) / height + 255 * i / height
self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
end #for
for i in 1..( (min / max.to_f) * width - 1)
for j in 1..(height - 1)
r = bar_color.red * (width - i) / width + end_color.red * i / width
g = bar_color.green * (width - i) / width + end_color.green * i / width
b = bar_color.blue * (width - i) / width + end_color.blue * i / width
a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
end #for
end #for
end #def
end #class
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
# 处理角色的类。本类在 Game_Actors 类 ($game_actors)
# 的内部使用、Game_Party 类请参考 ($game_party) 。
#==============================================================================
class Game_Actor
#获取当前EXP
def now_exp
return @exp - @exp_list[@level]
end #def
#获取下一级需要EXP的数值
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end #def
end
XY窗口的話
試試看改
class Scene_Map alias xy_66rpg_main main def main @xy_window = Window_xy.new @xy_window.x = 640 - 160 @xy_window.y = 480 - 96 @xy_window.opacity = 0
class Scene_Map
alias xy_66rpg_main main
def main
@xy_window = Window_xy.new
@xy_window.x = 640 - 160
@xy_window.y = 480 - 96
@xy_window.opacity = 0
的
@xy_window.x = 640 - 160
為
@xy_window.x = 160
效果如圖
|
评分
-
查看全部评分
|