Project1
标题: 如何设置地图显示HP脚本X号开关打开才有效,队伍无人不显示? [打印本页]
作者: 天使喝可乐 时间: 2011-6-22 13:42
标题: 如何设置地图显示HP脚本X号开关打开才有效,队伍无人不显示?
既然RTAB无人研究所以就换了个新的HP显示脚本……这个比较简单和连击数没冲突
求改下
当队伍中无队友时,脚本会报错 所以 设置成 当队伍中无队友时脚本无效(不显示HP条也不报错)
另一个就是 当X号开关打开时 HP条才显示 X号开关关闭时脚本无效(不显示HP条也不报错)
谢谢咯~- #-----------------------------------------------------------------
- class Scene_Map
- #-----------------------------------------------------------------
- alias sk_bar_main main
- def main
- @bars = Window_Sk_Bars.new
- sk_bar_main
- @bars.dispose if @bars != nil
- end
- #-----------------------------------------------------------------
- alias sk_bar_update update
- def update
- @bars.update
- sk_bar_update
- end
- #-----------------------------------------------------------------
- end
- #-----------------------------------------------------------------
- class Window_Base < Window
- #-----------------------------------------------------------------
- def sk_initialize(font=0,size=22)
- font = "Tahoma" if font == 0
- self.contents = Bitmap.new(self.width-32,self.height-32)
- self.contents.font.name = font
- self.contents.font.size = size
- end
- #-----------------------------------------------------------------
- def draw_text_outline(x,y,w,h,str,c=normal_color,a=0)
- self.contents.font.color = Color.new(0,0,0,255)
- self.contents.draw_text(x-1,y,w,h,str,a)
- self.contents.draw_text(x+1,y,w,h,str,a)
- self.contents.draw_text(x,y+1,w,h,str,a)
- self.contents.draw_text(x,y-1,w,h,str,a)
- self.contents.font.color = c
- self.contents.draw_text(x,y,w,h,str,a)
- end
- #-----------------------------------------------------------------
- end
- #-----------------------------------------------------------------
- class Window_Sk_Bars < Window_Base
- #-----------------------------------------------------------------
- def initialize
- super(444,-8,206,96)
- sk_initialize("Arial")
- self.opacity = 0
- end
- #-----------------------------------------------------------------
- def update
- self.contents.clear
- actor = $game_party.actors[0]
- draw_text_outline(0,-4,64,26,"HP")
- draw_actor_hp(actor,30,0)
- end
- #-----------------------------------------------------------------
- def draw_actor_hp(actor,x,y)
- width = 128
- y += 4
- white = Color.new(255,255,255,255)
- black = Color.new(0,0,0,255)
- w = width * actor.hp / actor.maxhp
- # White border
- self.contents.fill_rect(x+1, y-1, width-2, 1, white)
- self.contents.fill_rect(x, y, width, 1, white)
- self.contents.fill_rect(x-1, y+1, width+2, 9, white)
- self.contents.fill_rect(x, y+10, width, 1, white)
- self.contents.fill_rect(x+1, y+11, width-2, 1, white)
- # Black back
- self.contents.fill_rect(x+2, y, width-4, 1, black)
- self.contents.fill_rect(x+1, y+1, width-2, 1, black)
- self.contents.fill_rect(x, y+2, width, 7, black)
- self.contents.fill_rect(x+1, y+9, width-2, 1, black)
- self.contents.fill_rect(x+2, y+10, width-4, 1, black)
- # Generating the color
- val = 255 * ((actor.hp*100)/actor.maxhp)
- green = 255 - val/100
- color = Color.new(224,green,0,255)
- w_color = Color.new(255,green+32,96,255)
- if green > 64 then green -= 32
- elsif green > 128 then green -= 64 end
- b_color = Color.new(172,green,0,255)
- # Making the bar
- self.contents.fill_rect(x+2, y, w-4, 1, w_color)
- self.contents.fill_rect(x+1, y+1, w-2, 1, w_color)
- self.contents.fill_rect(x, y+2, w, 7, color)
- self.contents.fill_rect(x+1, y+9, w-2, 1, color)
- self.contents.fill_rect(x+2, y+10, w-4, 1, b_color)
- end
- #-----------------------------------------------------------------
- end
- #-----------------------------------------------------------------
复制代码