Forums Zelda Solarus

Jeux amateurs => Tutoriaux => Tutoriaux "Développement" => Topic started by: Couet on 17 Avril 2006 à 18:02

Title: [RMXP]Script de coeur à la zelda (par link78)
Post by: Couet on 17 Avril 2006 à 18:02
Plus simple, aussi performant, pas de bug (normalement), la toute dernière version de mon script de coeur zelda.

Moin de parlote! Le script!

Quote
class CoeurV4
 
  def initialize
    actor = $game_party.actors[0]
    @nb_coeur = actor.level
    @coeur_max = $data_actors[1].final_level
    @vie = actor.hp
    @coeur = []
    @img_coeur = []
    for i in 1..@nb_coeur
      if i <= @vie / 4
        @coeur = 4
      else
        if @coeur[i-1] == 4
          @coeur = @vie % 4
        else
          @coeur = 0
        end
      end
    end
    for i in 0..@coeur_max
      @img_coeur = Sprite.new
    end
    refresh
  end

  def refresh
    for i in 1..@coeur_max / 2
      if (@img_coeur.bitmap != nil)
        @img_coeur.bitmap.clear
      end
      if @coeur != nil
        if (@coeur >= 0)
          @img_coeur.bitmap = Bitmap.new("Graphics/Pictures/" + @coeur.to_s + "-4")
          @img_coeur.x = i * @img_coeur.bitmap.width + 10 + i
          @img_coeur.y = 2
          @img_coeur.z = 50000
        end
      end
    end
   
    for i in @coeur_max / 2 + 1..@coeur_max
      if (@img_coeur.bitmap != nil)
        @img_coeur.bitmap.clear
      end
      if @coeur != nil
        if (@coeur >= 0)
          @img_coeur.bitmap = Bitmap.new("Graphics/Pictures/" + @coeur.to_s + "-4")
          @img_coeur.x = (i - @coeur_max / 2) * @img_coeur.bitmap.width + 10 + (i - @coeur_max / 2)
          @img_coeur.y = 2 + @img_coeur.bitmap.height
          @img_coeur.z = 50000
        end
      end
    end
  end

  def update
    if @nb_coeur != $game_party.actors[0].level or @vie != $game_party.actors[0].hp
      initialize
    end
  end
 
  def efface
    for i in 0..@coeur_max
      if (@img_coeur.bitmap != nil)
        @img_coeur.bitmap.clear
      end
    end
  end
end

class Scene_Map
  alias old_main main
  def main
    @coeur = CoeurV4.new
    old_main
    @coeur.efface
  end
  alias old_update update
  def update
    @coeur.update
    old_update
  end
end

S'auto instal, n'a besoin que de 5 ressource (comme l'ancien, 0-4 1-4 2-4 3-4 4-4) mais lui contrairment à l'ancien, utilise la base de donnée, les coeur sont compté par rapport au niveau, ce qui fait vous monter de niveau vous gagner un coeur, par contre il faut mettre une courbe de vie spécial.
Ouvrez l'éditeur de courbe de vie, et cliquez sur généré quelque chose (j'ai la version anglaise) et mettez en niveau 1, 4 et 99, 396.
Le niveau max est le nombre de coeurs maximun, le niveau initiale le nombre de coeurs au début.

Près pour blaisser il suffi de changer les pv, donc aussi utilisable avec les script d'abs.

Il adapte l'affichage à vos image, peut-imlporte leur taille il n'y aura jamais de superposition.


Je pense avoir tout dis, voila amusez vous avec cette merveille.

Merci de me signaler tout bug apparent.




PS:Je vous donne enfin une version de mon script, et vous avez pas la plus mauvaise.