Jump to content
Rpg²S Forum

*Hp mostri migliorato! e se si vuole anche mp!


Andre4e
 Share

Recommended Posts

Sono andato a ritorvare uno script che visualizzava la barra della vita dei mostri, purtroppo era veramente pietoso e quindi mi è toccato migliorarlo




Screen prima:
post-2796-1251970006.jpg

Screen adesso:
post-2796-1251969808_thumb.jpg


Ecco lo script:

 

 

 

#########################
#Vita Mostri #
#########################
#Originale creato da SephirothSpawn ##
#########################
#Modificato interamente da Andre4e ###
#########################



class Window_Base
	#--------------------------------------------------------------------------
	# œ ƒ‰ƒCƒ“•`‰æ by ÷‰ë Ý“y
	#--------------------------------------------------------------------------
	def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
		# •`ŽÊ‹——£‚ÌŒvŽZB‘å‚«‚߂ɒ¼ŠpŽž‚Ì’·‚³B
		distance = (start_x - end_x).abs + (start_y - end_y).abs
		# •`ŽÊŠJŽn
		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
				self.contents.fill_rect(x, y, width, width, start_color)
			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
				self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))
			end
		end
	end
end
class Window_Base < Window
	#--------------------------------------------------------------------------
	# * Draw Slant Bar(by SephirothSpawn)
	#--------------------------------------------------------------------------
	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+3, y + height - i + 3, width+ 2,1, Color.new(0, 0, 0, 128))
			#self.contents.fill_rect(x + i + 4, y + height - i + 4, width + 2, 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




def draw_enemy_hp_meter_line(x, y, width = 356, height = 4)
	w = width * @enemy.hp / @enemy.maxhp
	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



def draw_enemy_sp_meter_line(x, y, width = 156, height = 4)
	w = width * @enemy.sp / @enemy.maxsp
	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



def draw_shadow_text_enemy(x, y, width, height, string, align = 0)
	# Œ³‚ÌF‚ð•Û‘¶‚µ‚Ä‚¨‚
	color = self.contents.font.color.dup
	# •Žš‚ʼne•`‰æ
	self.contents.font.color = Color.new(0, 0, 0)
	self.contents.draw_text(x + 2, y + 2, width, height, string, align)
	# Œ³‚ÌF‚É–ß‚µ‚Ä•`‰æ
	self.contents.font.color = color
	self.contents.draw_text(x, y, width, height, string, align)
end



def draw_enemy_cp_meter(x, y, width = 156, type = 0)
	self.contents.font.color = system_color
	self.contents.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
	if @enemy.cp == nil
		@enemy.cp = 0
	end
	w = width * [@enemy.cp,65535].min / 65535
	self.contents.fill_rect(x, y+28, w,1, Color.new(255, 255, 128, 255))
	self.contents.fill_rect(x, y+29, w,1, Color.new(255, 255, 0, 255))
	self.contents.fill_rect(x, y+30, w,1, Color.new(192, 192, 0, 255))
	self.contents.fill_rect(x, y+31, w,1, Color.new(128, 128, 0, 255))
end

#alias xrxs_bp7_draw_enemy_state draw_enemy_state
#def draw_enemy_state(x, y, width = 120)
#xrxs_bp7_draw_enemy_state(x, y, width) if @draw_ban != true
#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
		for i in 0...$game_troop.enemies.size
			@enemy = $game_troop.enemies[i]
			
			#no# @percent = (@enemy.hp * 100) / @enemy.maxhp
			unless @enemy.hp == 0
				#per abilitare mp togliere astersico alle righe
				#con scritto si e ad ogni parola sottostante
				#e non soprastante sostituire sp con hp
				#e viceversa
				# @enemy.hp, @enemy.maxhp
				#draw_slant_bar(@enemy.screen_x - 65, @enemy.screen_y - 60, @enemy.hp, @enemy.maxhp, width = 85, height = 12, bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
				#si# draw_enemy_sp_meter_line(@enemy.screen_x - 62, @enemy.screen_y - 120, width = 85, height = 8)
				draw_enemy_hp_meter_line(@enemy.screen_x - 62, @enemy.screen_y - 90, width = 85, height = 8)
				
				
				
				
				#no# draw_slant_bar(@enemy.screen_x - 65, @enemy.screen_y - 60, @enemy.hp, @enemy.maxhp, width = 85, height = 12, bar_color = Color.new(255, 0, 0, 192), end_color = Color.new(255, 255, 0, 192))
				#no# self.contents.draw_text(@enemy.screen_x - 20, @enemy.screen_y - 75, 100, 32, "#{@enemy.hp}")
				
				self.contents.font.size = 30 # HP/SP”’l‚Ì•¶Žš‚̑傫‚³
				#si# self.contents.font.color = @enemy.sp == 0 ? knockout_color :
				#si# @enemy.sp <= @enemy.maxsp / 4 ? crisis_color : normal_color
				#si# draw_shadow_text_enemy(@enemy.screen_x - 80, @enemy.screen_y - 142, 100, 32, @enemy.sp.to_s, 2)
				
				self.contents.font.color = @enemy.hp == 0 ? knockout_color :
				@enemy.hp <= @enemy.maxhp / 4 ? crisis_color : normal_color
				draw_shadow_text_enemy(@enemy.screen_x - 80, @enemy.screen_y - 112, 100, 32, @enemy.hp.to_s, 2)
				self.contents.font.size = 12 # —pŒêuHP/SPv‚Ì•¶Žš‚̑傫‚³
				self.contents.font.color = system_color # —pŒêuHP/SPv‚Ì•¶Žš‚ÌF
				#si# draw_shadow_text_enemy(@enemy.screen_x - 63 , @enemy.screen_y - 132, 96, 12, $data_system.words.sp)
				draw_shadow_text_enemy(@enemy.screen_x - 63 , @enemy.screen_y - 102, 96, 12, $data_system.words.hp)
				#si# draw_enemy_cp_meter(@enemy.screen_x - 70, @enemy.screen_y - 65, 120, 0)
				#no# draw_enemy_state(@enemy.screen_x - 68, @enemy.screen_y - 56)
				
			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



=begin
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
		@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
=end

 

 

Edited by Dilos
Applicato tag code.

 

 

http://files.nireblog.com/blogs4/narutozorro9kolas/files/firma-naruto-y-yondaime.gif

 

 

Link to comment
Share on other sites

meglio mettere uno screen, il vero autore e il nome di chi ha modificato lo script (tu) :ahsi:

http://img256.imageshack.us/img256/7639/ihateyou.gif

Un uomo senza religione è come un pesce senza bicicletta.

http://img18.imageshack.us/img18/3668/decasoft1.png

http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gif

Link to comment
Share on other sites

script buono, anche se si potreppe migliorare ancora. Tuttavia, non credo che sia buono avere le barre Hp e Mp che coprono completamente il nemico... xD

http://i46.tinypic.com/260qs1l.jpghttp://i48.tinypic.com/21owyt0.jpghttp://i45.tinypic.com/oj12x5.jpg

http://i45.tinypic.com/oj12x5.jpghttp://i48.tinypic.com/2qanw9v.jpghttp://i45.tinypic.com/oj12x5.jpg

http://i49.tinypic.com/2cpdkb8.jpg

 

http://i47.tinypic.com/vpyfix.jpg http://i45.tinypic.com/jago40.jpg http://img231.imageshack.us/img231/8504/tidus1.png

 

non esco l'ora che veda

Un gioco così ben fatto da farti sballare la testa! XD

 

 

 

 

http://img27.imageshack.us/img27/8540/dsbar.png

http://img294.imageshack.us/img294/6876/nostalebar.png

http://img90.imageshack.us/img90/2158/tbars.png

http://i40.tinypic.com/soqvb8.jpg

http://i45.tinypic.com/29duu1l.jpg

http://img237.imageshack.us/img237/2482/30275.png

http://img182.imageshack.us/img182/8/rpgxpbarrpgmzv1.png

http://img195.imageshack.us/img195/6998/userbarannette.png

http://i48.tinypic.com/awdylh.jpg

Link to comment
Share on other sites

Lo screen purtroppo non me lo carica nn so perchè avevo gia provato,

comunque io utilizzo solo la barra degli hp perchè alla fine a che ti serve sapere quanti mp a il nemico?

è stupido!

comunque lo script è stato creato da SephirothSpawn

--QUI--

 

Fra qualche giorno tornerò con lo script diario di viaggio di syaler perchè ho trovato 2 errori e li ho corretti

Bye :Ok:

Edited by Andre4e

 

 

http://files.nireblog.com/blogs4/narutozorro9kolas/files/firma-naruto-y-yondaime.gif

 

 

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...