Andre4e Posted August 18, 2009 Share Posted August 18, 2009 (edited) Sono andato a ritorvare uno script che visualizzava la barra della vita dei mostri, purtroppo era veramente pietoso e quindi mi è toccato migliorarloScreen prima:Screen adesso: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 April 26, 2013 by Dilos Applicato tag code. http://files.nireblog.com/blogs4/narutozorro9kolas/files/firma-naruto-y-yondaime.gif Link to comment Share on other sites More sharing options...
MasterSion Posted August 18, 2009 Share Posted August 18, 2009 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.gifUn uomo senza religione è come un pesce senza bicicletta.http://img18.imageshack.us/img18/3668/decasoft1.pnghttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gif Link to comment Share on other sites More sharing options...
tidus00 Posted August 18, 2009 Share Posted August 18, 2009 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.jpghttp://i45.tinypic.com/oj12x5.jpghttp://i48.tinypic.com/2qanw9v.jpghttp://i45.tinypic.com/oj12x5.jpghttp://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 vedaUn gioco così ben fatto da farti sballare la testa! XD http://img111.imageshack.us/img111/9452/eevtestvaporeontype4fs.png http://img27.imageshack.us/img27/8540/dsbar.pnghttp://img294.imageshack.us/img294/6876/nostalebar.pnghttp://img90.imageshack.us/img90/2158/tbars.pnghttp://i40.tinypic.com/soqvb8.jpghttp://i45.tinypic.com/29duu1l.jpghttp://img237.imageshack.us/img237/2482/30275.pnghttp://img182.imageshack.us/img182/8/rpgxpbarrpgmzv1.pnghttp://img195.imageshack.us/img195/6998/userbarannette.pnghttp://i48.tinypic.com/awdylh.jpg Link to comment Share on other sites More sharing options...
Andre4e Posted August 19, 2009 Author Share Posted August 19, 2009 (edited) 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 correttiBye :Ok: Edited August 19, 2009 by Andre4e http://files.nireblog.com/blogs4/narutozorro9kolas/files/firma-naruto-y-yondaime.gif Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now