Cerca nel Forum
Showing results for tags 'Allineamento personaggio'.
Trovato 1 risultato
-
BS/Battlers Addon Allineamento personaggio
Ally ha aggiunto un topic in Scripts RPG Maker VX (RGSS2)
Richiede la Total Conversion Nome Script: Allineamento personaggio Versione: N/D Autore/i: Leon w adattato da Rinnegatamante Informazioni: questo script permette di scegliere l'allineamento del PG: buono/neutrale/malvagio Istruzioni: Inserire sotto la total conversion Script: #=================================== # Leon's Good and Evil script adattato da Rinnegatamante #---------------------------------------------------------------------- # Features: # Gives an actor the "good", "Neutral" or "evil" alignment, based # upon their actions. # # Instructions: # Place above main, and below other scripts. # Use: draw_alignment_bar(actor, x, y) in a script to draw the alignment bar. # x and y being the position of the bar, and actor being the syntax for the actor's information. # # To use: # To add or subtract from their alignment, use: $game_actors[actor_id].alignment += x # To see if the actor's alignment is good, evil or neutral, use: # * Conditional Branch, tab 4, Script. # * For good, use $game_actors[actor_id] > 0 # * For evil, use $game_actors[actor_id] < 0 # * For neutral, use $game_actors[actor_id] == 0 # # Extra Information: # This script edits the original Window_Status script to add the good/evil. #=================================== #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Game_Actor #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class Game_Actor < Game_Battler attr_accessor :alignment attr_accessor :alignment_name alias leon_alignment_bars_ga_setup setup def setup(actor_id) @alignment = 0 @alignment_name = "Neutrale" leon_alignment_bars_ga_setup(actor_id) end def alignment if @alignment > 0 if @alignment > 100 @alignment = 100 end @alignment_name = "Buono" return @alignment end if @alignment < 0 if @alignment < -100 @alignment = -100 end @alignment_name = "Cattivo" return @alignment end @alignment_name = "Neutrale" return @alignment end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Window_Base #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class Window_Base def draw_bar(x, y, min, max, width = 152, height = 6, bar_color = Color.new(0, 75, 0, 255), end_color = Color.new(0, 255, 0, 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 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 i in 1..( (min.to_f / 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 def draw_backward_bar(x, y, min, max, width = 152, height = 6, bar_color = Color.new(75, 0, 0, 255), end_color = Color.new(255, 0, 0, 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 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 i in 1..( (min.to_f / 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 def draw_alignment_bar(actor, x, y) #x = 320 y = 147 draw_bar(x, y, 0, 200, 200, 6) if actor.alignment > 0 draw_bar(x + 100, y, actor.alignment, 100, 100, 6) actor.alignment_name = "Buono" elsif actor.alignment < 0 draw_backward_bar(x + 100, y, -1 * actor.alignment, 100, 100, 6) actor.alignment_name = "Cattivo" elsif actor.alignment == 0 draw_bar(x + 100, y, actor.alignment, 100, 100, 6) actor.alignment_name = "Neutrale" end draw_bar(x + 97, y - 2, 2, 2, 2, 10, Color.new(255, 255, 255, 255), Color.new(255, 255, 255,255)) end end #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Window_Status #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class Window_Status < Window_Base alias leon_alignment_bars_ws_refresh refresh def refresh leon_alignment_bars_ws_refresh if @actor.alignment > 100 @actor.alignment = 100 elsif @actor.alignment < -100 @actor.alignment = -100 end self.contents.font.color = system_color self.contents.draw_text(290, 122, 120, 32, "Carattere") draw_alignment_bar(@actor, 280, 157) self.contents.font.color = normal_color self.contents.draw_text(380, 122, 120, 32, @actor.alignment_name) end end