Jump to content
Rpg²S Forum

*Draw Slant Bar Modificato


Belxebu
 Share

Recommended Posts

Draw Slant Bar Modificato da Rinnegatamante

Descrizione


Uno script che permette di inserire nel BS Standard le Barre di HP e MP all'eroe e ai mostri nemici il tutto in gran stile.(Qualcuno sa mettere sopra alla barra del nemico anche il nome del nemico???mi sarebbe molto utile)


Autore


Sephirot Spawn Modificato da me



Script

 

 

 

class Window_Base < Window  
 #--------------------------------------------------------------------------
 # * Draw Slant Bar(by SephirothSpawn modificato da Rinnegatamante)
 #--------------------------------------------------------------------------
 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))
   # Draw Border
   for i in 0..height
	 self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
   end
   # Draw Background
   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
   # Draws Bar
   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
   end
 end
end


class Window_EnemyHP < Window_Base
 
 def initialize
   super(0, 0, 640, 480)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.opacity = 0
   refresh
 end
 
 def refresh
   self.contents.clear
   $fontsize == 22
   $fontface == "Monotype Corsiva"
   for i in 0...$game_troop.enemies.size
	 @enemy = $game_troop.enemies[i]
	 @percent = (@enemy.hp * 100) / @enemy.maxhp
	 unless @enemy.hp == 0
	 draw_slant_bar(@enemy.screen_x - 55, @enemy.screen_y - 10, @enemy.hp, @enemy.maxhp, width = 75, height = 6, bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
	 self.contents.draw_text(@enemy.screen_x - 39, @enemy.screen_y - 22, 100, 32, "#{@percent}" + "%")
   end
 end
end
end

class Scene_Battle
 
 alias raz_update update
 alias raz_update_phase5 update_phase5
 alias raz_update_phase4_step1 update_phase4_step1
 alias raz_update_phase4_step5 update_phase4_step5
 alias raz_enemy_hp_main main
 
  def main
   @troop_id = $game_temp.battle_troop_id
   $game_troop.setup(@troop_id)
   @enemy_window = Window_EnemyHP.new
   @enemy_window.z = 95
   raz_enemy_hp_main
   @enemy_window.dispose
 end

 
 def update
   @enemy_window.update
   raz_update
 end

 def update_phase5
   # If wait count is larger than 0
   if @phase5_wait_count > 0
	 # Decrease wait count
	 @phase5_wait_count -= 1
	 # If wait count reaches 0
	 if @phase5_wait_count == 0
	   @enemy_window.visible = false
	   # Show result window
	   @result_window.visible = true
	   # Clear main phase flag
	   $game_temp.battle_main_phase = false
	   # Refresh status window
	   @status_window.refresh
	   @enemy_window.refresh
	 end
	 return
   end
  raz_update_phase5
end

def update_phase4_step1
 raz_update_phase4_step1
 @enemy_window.refresh
end

 def update_phase4_step5
   # Hide help window
   @help_window.visible = false
   # Refresh status window
   @status_window.refresh
   @enemy_window.refresh
   raz_update_phase4_step5
 end
end

class Window_BattleStatus < Window_Base
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
   super(0, 320, 640, 160)
   self.contents = Bitmap.new(width - 32, height - 32)
   @level_up_flags = [false, false, false, false]
   refresh
 end
 #--------------------------------------------------------------------------
 # * Dispose
 #--------------------------------------------------------------------------
 def dispose
   super
 end
 #--------------------------------------------------------------------------
 # * Set Level Up Flag
 #	 actor_index : actor index
 #--------------------------------------------------------------------------
 def level_up(actor_index)
   @level_up_flags[actor_index] = true
 end
 #--------------------------------------------------------------------------
 # * Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   $fontsize == 22
   $fontface == "Monotype Corsiva"
   @item_max = $game_party.actors.size
   for i in 0...$game_party.actors.size
	 actor = $game_party.actors[i]
	 actor_x = i * 160 + 4
	 draw_slant_bar(actor_x, 55, actor.hp, actor.maxhp, 120)
	 draw_slant_bar(actor_x, 88, actor.sp, actor.maxsp, 120, 6, bar_color = Color.new(150, 0, 150, 255), end_color = Color.new(0, 0, 255, 255))
	 draw_actor_name(actor, actor_x, 0)
	 draw_actor_hp(actor, actor_x, 32, 120)
	 draw_actor_sp(actor, actor_x, 64, 120)
	 if @level_up_flags[i]
	   self.contents.font.color = normal_color
	   self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
	 else
	   draw_actor_state(actor, actor_x, 96)
	 end
   end
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
   super
   # Slightly lower opacity level during main phase
   if $game_temp.battle_main_phase
	 self.contents_opacity -= 4 if self.contents_opacity > 191
   else
	 self.contents_opacity += 4 if self.contents_opacity < 255
   end
 end
end 

 

 

 

 

Istruzioni per l'uso


Create una nuova classe sopra Main ed inseriteci lo script che sta qui sopra.


ScreenShot


http://img402.imageshack.us/img402/8853/drawslantbarya5.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...