RPG Fusion
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

 

 Barre de status

Aller en bas 
2 participants
AuteurMessage
cucureuill
Acrobate
Acrobate
cucureuill


Masculin
Nombre de messages : 96
Age : 32
Date d'inscription : 26/06/2007

Barre de status Empty
MessageSujet: Barre de status   Barre de status EmptyJeu 30 Aoû 2007, 20:39

Auteur inconnu

-info : ce script permet de voir la vie, la mana et les exp du perso.

-screen :
Barre de status Screen7wh2

-script :
mettre au dessus de main (vous pouvez mettre un nom de votre choix)

Code:
class Scene_Map
 
  SWITCH_ID = 1 #vous pouvez changer ici l'interrupteur de declenchement
  $center_hud = false
 
  alias raz_hud_main main
  alias raz_hud_update update
 
  def main
    @size = $game_party.actors.size
    raz_hud_main
    @hud_window.dispose
    for i in 0...$game_party.actors.size
      @hud_dummy[i].dispose
    end
  end
 
  def update
    if @size != $game_party.actors.size
      @hud_window.refresh
      show_window
    end
    if @hud != true
      main_window
    end
    turn_hud_on_off
    @hud_window.update
    raz_hud_update
  end
 
  def show_window
    @size = $game_party.actors.size
    for i in 0..3
      @hud_dummy[i].visible = ($game_party.actors[i] != nil)
    end
  end
 
  def main_window
    @opacity = 200
    @hud_dummy = []
    for i in 0...4
      y = $game_party.actors.size - 1
        x = 240 - (y * 80)
      if $center_hud == true
      @hud_dummy[i] = Window_Base.new(160 * i + x, 0,160, 108)
    else
      @hud_dummy[i] = Window_Base.new(160 * i, 0,160, 108)
      end
      @hud_dummy[i].opacity = @opacity
      @hud_dummy[i].visible = false
    end
    @hud_window = Window_HUD.new
    for i in 0...$game_party.actors.size
      @hud_dummy[i].visible = $game_party.actors[i] != nil
    end
    @hud = true
  end
 
def turn_hud_on_off
 if $game_switches[SWITCH_ID] == false
  @hud_window.visible = false
    for i in 0...$game_party.actors.size
      @hud_dummy[i].visible = false
    end
  end
 
 
  if $game_switches[SWITCH_ID] == true
    @hud_window.visible = true
    for i in 0...$game_party.actors.size
      @hud_dummy[i].visible = true
    end
  end
end

end

 
class Window_HUD < Window_Base
  def initialize
    super(0, 0, 800, 600)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = "Arial"
    self.opacity = 0
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      eval("@old_hp#{i+1} = actor.hp; @old_sp#{i+1} = actor.sp; @old_exp#{i+1} = actor.now_exp")
    end
    refresh
  end
 
  def refresh
    self.contents.clear
    for i in 0...$game_party.actors.size
      a = $game_party.actors.size - 1
      actor = $game_party.actors[i]
      if $center_hud == true
      x = (i * 160 + 25) + (240 - (a * 80))
    else
      x = i * 160 + 25
      end
      self.contents.font.size = 21
      draw_actor_graphic(actor, x - 15, 75)
      self.contents.font.color = normal_color
      self.contents.draw_text(x - 25, 0, 100, 32, actor.name)
      width = 100
      height = 6
      draw_slant_bar(x + 8, 36, actor.hp, actor.maxhp, width, height, Color.new(150, 0, 0), Color.new(155, 155, 60))
      draw_slant_bar(x + 8, 56, actor.sp, actor.maxsp, width, height, Color.new(0, 0, 150), Color.new(60, 155, 155))
      unless actor.level == 99
        draw_slant_bar(x + 8, 76, actor.now_exp, actor.next_exp, width, height, Color.new(0, 150, 0), Color.new(60, 255, 60))
      else
        draw_slant_bar(x + 8, 66, 1, 1, width = 100, height = 6, Color.new(0, 150, 0), Color.new(60, 255, 60))
      end
      self.contents.font.size = 16
      draw_actor_state(actor, x + 45, 0)
      self.contents.font.color = normal_color
      self.contents.font.bold = true
      self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
      self.contents.draw_text(x + 16, 20, 100, 32, "#{actor.hp}/#{actor.maxhp}", 1)
      self.contents.font.color = actor.sp == 0 ? crisis_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
      self.contents.draw_text(x + 16, 40, 100, 32, "#{actor.sp}/#{actor.maxsp}", 1)
      self.contents.font.color = system_color
      self.contents.font.size = 20
      self.contents.font.bold = false
      self.contents.draw_text(x, 23, 50, 32, $data_system.words.hp)
      self.contents.draw_text(x, 43, 50, 32, $data_system.words.sp)
      self.contents.draw_text(x, 63, 50, 32, "Exp")
    end
  end

  def update
    super
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      if (eval("@old_hp#{i+1}") != actor.hp or eval("@old_sp#{i+1}") != actor.sp or
        eval("@old_exp#{i+1}") != actor.now_exp)
        refresh
        eval("@old_hp#{i+1} = actor.hp; @old_sp#{i+1} = actor.sp; @old_exp#{i+1} = actor.now_exp")
      end
    end
  end
end
 
class Window_Base < Window
  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))
    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 / 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 Game_Actor
  def now_exp
    return @exp - @exp_list[@level]
  end
  def next_exp
    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  end
end

-utilisation : activer un interupteur avec un event en processus parallèle (le nom de l'interupteur est à la ligne 3 et peut être changer)
Vous pouvez aussi changer l'écriture à la ligne 83
Et le windowskin est celui que vous metter dans le système.
Revenir en haut Aller en bas
Don Estebahn
Maître du Savoir
Maître du Savoir
Don Estebahn


Masculin
Nombre de messages : 2145
Age : 34
Jeux Préférés : Soul Reaver, Morrowind, Way of the Samurai
Date d'inscription : 18/02/2007

Barre de status Empty
MessageSujet: Re: Barre de status   Barre de status EmptyJeu 30 Aoû 2007, 20:55

Hé, mais ça rend pas mal du tout ^^.
Le script était pas tout à fait dans la bonne section par contre, c'est d'avantage un script de menu ; j'ai déplacé.

Toujours est-il que tout ça est présenté strictement selon nos règles, c'est ton premier script posté, je t'ajoute donc 1 PA.
Merci à toi! [Don hypocrite]
Revenir en haut Aller en bas
 
Barre de status
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Barre de status
» Plusieurs status?
» Barre HP/SP sur map

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Fusion :: BANQUE DU CODE :: Antre des Scripts :: Menu-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser