Make & Graph
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Point de caractéristiques

4 participants

Aller en bas  Message [Page 1 sur 1]

1RPG Maker XP Point de caractéristiques Sam 18 Oct - 11:39

Grégory

Grégory
Membre Royal
Membre Royal

Voilà un script qui permet à vos personnages d'augmenter leur caractéristiques:

Créer un script Window_caracplus.
Ensuite mettez-y le code suivant:

Code:
#=======================================================================
# ■ Distribution de point de caractéristiques
# ■ Scene_caracplus v1.0 par h2o74
#=======================================================================
# Ecrit par Krazplay, remastoriser par h2o74. Cadeaux ^^# A la base Krazplay l'a crer mais bourrer de bu, donc remodifier ^^
# Nécessite : le scrîpt Window_caracplus
# Description :
# Permet de donner des points à distribuer à n'importe quel personnage de l'équipe entre ses
#  4 caractéristiques principales (force, agilité, dextérité et intelligence).
# Utilisation :
# A l'aide de la ligne de scrîpt suivante dans n'importe quel scrîpt ou évènement :
# $scene = Scene_caracplus.new(acteurs, points à distribuer)
# Attention, ces deux variables doivent être des arrays (tableaux).
# MAUVAIS exemples : acteurs = $game_party.actors[0]      points = 10
# BONS exemples : acteurs = [$game_party.actors[0]]          points = [10]
# Ainsi pour donner 8 point au premier héro de l'équipe et 5 points au troisième, la bonne commande sera :
# $scene = Scene_caracplus.new([$game_party.actors[0], $game_party.actors[2]], [8,5])
# Pour donner 10 points à toute l'équipe on écrirait :
# $scene = Scene_caracplus.new($game_party.actors, [10,10,10,10])
# Oui $game_party.actors est déjà un tableau donc il n'a pas besoin de crochets supplémentaires
# Eviter de distribuer 0 ou nil point, enlever plutôt l'acteur de la variable.

#script PERMETTANT DE DEPENSER DE3S POIINTS DE CARCTERISTIK

#=======================================================================
class Scene_caracplus
 
  def initialize(actors, pointgagnés, n=0)
    @n = n
    @actors = actors
    @pg = pointgagnés
    @pointgagnés = pointgagnés[n]
    @actor = actors[n]
    @confirmation = false
  end
 
  def main
    @caracplus_window = Window_Caracplus.new(@actor,@pointgagnés)
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update_command
      if $scene != self
        @caracplus_window.dispose
        Graphics.update
        if @actors.size > @n+1 and @pg[@n+1] != nil
          $scene = Scene_caracplus.new(@actors, @pg, @n+1)
        else if @actors.size > @n+2 and @pg[@n+2] != nil
                  $scene = Scene_caracplus.new(@actors, @pg, @n+2)
                else if @actors.size > @n+3 and @pg[@n+3] != nil
                          $scene = Scene_caracplus.new(@actors, @pg, @n+3)
                        end
                end
        end
        break
      end
    end
  end #main
 
  def update_command
    if Input.trigger?(Input::DOWN) and @confirmation != true
      @caracplus_window.ligneplusun
      @caracplus_window.refresh
    end
    if Input.trigger?(Input::UP) and @confirmation != true
      @caracplus_window.lignemoinsun
      @caracplus_window.refresh
    end
    if Input.trigger?(Input::LEFT) and @confirmation != true
      @caracplus_window.pointmoinsun
      @caracplus_window.refresh
    end
    if Input.trigger?(Input::RIGHT) and @confirmation != true
      @caracplus_window.pointplusun
      @caracplus_window.refresh
    end
    if Input.trigger?(Input::B) and @confirmation != true #Cancel
      @caracplus_window.pointazero
      @caracplus_window.refresh
    end
    if Input.trigger?(Input::B) and @confirmation == true #Cancel
      @confirmation = false
      @confirmer_window.dispose
    end
    if Input.trigger?(Input::C) #Confirmer
      if @confirmation == true
        @confirmation = false
        @confirmer_window.dispose
        @caracplus_window.terminer
        $scene = Scene_Map.new
      else
        if @caracplus_window.toutestbon? == true and @confirmation != true
          @confirmer_window = Window_confirmer.new(450,20)
          @confirmation = true
        end
      end
    end
    if Input.trigger?(Input::X) #Touche A
      for i in 0..14
        @caracplus_window.pointmoinsun
      end
      @caracplus_window.refresh
    end
    if Input.trigger?(Input::A) #Touche Z
      for i in 0..14
        @caracplus_window.pointplusun
      end
      @caracplus_window.refresh
    end
  end
 
end


#=======================================================================
# ■ Distribution de point de caractéristiques
# ■ Window_caracplus v1.0 par Krazplay
#=======================================================================
# Ecrit par Krazplay, version la plus à jour disponible sur le forum du site rpgmakerxp.free.fr
# Nécessite : le scrîpt Scene_caracplus
# Description et Utilisation décris dans le scrîpt Scene_caraplus
#=======================================================================
class Window_Caracplus < Window_Base
 
  def initialize(actor,pointgagnés)
    super(5, 5, 630, 470)
    @ligne = 0
    @actor = actor
    @statplus = [0,0,0,0]
    @pointgagnés = pointgagnés
    @pointarépartir = pointgagnés
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = "Arial"
    self.contents.font.size = 24
    self.contents.clear
    deséquipement
    @str = actor.str
    @dex = actor.dex
    @agi = actor.agi
    @int = actor.int
    @carac = [@str, @dex, @agi, @int]
    refresh
  end
 
 
  def refresh
    self.contents.clear
    self.cursor_rect.set(190, (240 + 30*@ligne), 175, 30)
    actor = @actor
    self.contents.font.name = "Arial"
    self.contents.font.color = normal_color
    self.draw_actor_battler(actor, 90, 270)
    self.draw_actor_graphic(actor, 80, 140)
    self.contents.font.size = 26
    longueur = contents.text_size(actor.name).width
    self.draw_actor_name(actor, self.width/2-longueur/2, 10)
    self.contents.font.size = 24
    self.contents.draw_text(0, 50, self.width, 32, actor.class_name.to_s+"    Lv  "+actor.level.to_s, 1)
    self.draw_actor_exp(actor, 200, 78)
    self.draw_actor_hp(actor, 200, 101, width = 144)
    self.draw_actor_sp(actor, 200, 124, width = 144)
    équiper
    self.draw_actor_parameter(actor, 200, 150, 0)
    self.draw_actor_parameter(actor, 200, 175, 1)
    self.draw_actor_parameter(actor, 200, 200, 2)
    deséquipement
    self.contents.font.color = system_color
    self.contents.draw_text(200, 240, 120, 32, $data_system.words.str)
    self.contents.draw_text(200, 270, 120, 32, $data_system.words.dex)
    self.contents.draw_text(200, 300, 120, 32, $data_system.words.agi)
    self.contents.draw_text(200, 330, 120, 32, $data_system.words.int)
    self.contents.font.color = normal_color
    self.contents.draw_text(320, 240, 36, 32, @str.to_s, 2)
    self.contents.draw_text(320, 270, 36, 32, @dex.to_s, 2)
    self.contents.draw_text(320, 300, 36, 32, @agi.to_s, 2)
    self.contents.draw_text(320, 330, 36, 32, @int.to_s, 2)
    for i in 0..3
      self.contents.font.color = Color.new(255, 155, 155, 255)
      self.contents.draw_text(370, 240+30*i, 36, 32, "+")
      self.contents.draw_text(390, 240+30*i, 36, 32, @statplus[i].to_s, 2)
      self.contents.font.color = Color.new(155, 255, 155, 255)
      self.contents.draw_text(450, 240+30*i, 36, 32, "=")
      stat = @carac[i] + @statplus[i]
      self.contents.draw_text(490, 240+30*i, 36, 32, stat.to_s, 2)
    end
    self.contents.font.color = normal_color
    self.contents.draw_text(50, 380, 320, 32, "Nombre de points à répartir :")
    self.contents.draw_text(330, 380, 36, 32, @pointarépartir.to_s, 2)
    self.contents.draw_text(430, 150, 108, 32, "[A/Z = (-15)/(+15)]")
    self.contents.draw_text(430, 175, 72, 32, "[X = Reset]")
  end
 
  def ligneplusun
    if @ligne<3
      @ligne += 1
    end
  end
 
  def lignemoinsun
    if @ligne>0
      @ligne -= 1
    end
  end
 
  def pointmoinsun
    i = @ligne
    if @statplus[i]-1 > -1
      @statplus[i] -= 1
      @pointarépartir += 1
    end
  end
 
  def pointplusun
    i = @ligne
    if @pointarépartir > 0 and @statplus[i]+@carac[i]+1 < 1000
      @statplus[i] += 1
      @pointarépartir -= 1
    end
  end
 
  def pointazero
      @statplus = [0,0,0,0]
      @pointarépartir = @pointgagnés
  end
 
  def toutestbon?
    if @pointarépartir == 0
      return true
    else
      return false
    end
  end
 
  def terminer
    $game_actors[@actor.id].str += @statplus[0]
    $game_actors[@actor.id].dex +=  @statplus[1]
    $game_actors[@actor.id].agi +=  @statplus[2]
    $game_actors[@actor.id].int += @statplus[3]
    @actor.equip(0, @weapon_id)
    @actor.equip(1, @armor1_id)
    @actor.equip(2, @armor2_id)
    @actor.equip(3, @armor3_id)
    @actor.equip(4, @armor4_id)
  end
 
  def équiper
    @actor.equip(0, @weapon_id)
    @actor.equip(1, @armor1_id)
    @actor.equip(2, @armor2_id)
    @actor.equip(3, @armor3_id)
    @actor.equip(4, @armor4_id)
  end
 
  def deséquipement
    @weapon_id = @actor.weapon_id
    @armor1_id = @actor.armor1_id
    @armor2_id = @actor.armor2_id
    @armor3_id = @actor.armor3_id
    @armor4_id = @actor.armor4_id
    @actor.equip(0, 0)
    @actor.equip(1, 0)
    @actor.equip(2, 0)
    @actor.equip(3, 0)
    @actor.equip(4, 0)
  end
 
  def draw_actor_battler(actor, x, y)
    bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x - cw / 2, y - ch / 2, bitmap, src_rect)
  end
end


class Window_confirmer < Window_Base
  def initialize(x,y)
    super(x, y, 150, 64)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = "Arial"
    self.contents.font.size = 24
    self.contents.draw_text(0, 0, 120, 32, "Confirmer ?")
  end
end

Pour finir je vous donne les conseils pour le mettre en route.
Créer un evenement et mettez le code suivant.


Code:
$scene = Scene_caracplus.new($game_party.actors, [x])


IMPORTANT: x=nombre de points de caractéristiques

REMARQUE: Si vous voulez donner des points aux autres persos il faut coller ce code:
Code:
$scene = Scene_caracplus.new($game_party.actors, [x,x,x,x])


Autant de X que de personnages!!!
UTILISATION:

Vous pouvez faire un evenement commun pour qu'à chaque niveau cela distribue des points de caractéristiques!!!

Screen :
Point de caractéristiques 2dd2

Bonne journée.

http://zgk-software.forumactif.info/forum.htm

2RPG Maker XP Re: Point de caractéristiques Sam 18 Oct - 11:46

Skaaz

avatar
Fondateur
Fondateur

Très bon script mais tu a oublier de mettre l'auteur :surp: !

3RPG Maker XP Re: Point de caractéristiques Sam 18 Oct - 11:58

Grégory

Grégory
Membre Royal
Membre Royal

# ■ Distribution de point de caractéristiques
# ■ Scene_caracplus v1.0 par h2o74

Regarde l'entête du script la prochaine fois :p

http://zgk-software.forumactif.info/forum.htm

4RPG Maker XP Re: Point de caractéristiques Sam 18 Oct - 15:17

Zack Fair

Zack Fair
Membre Actif
Membre Actif

Oui , bon script.
Je vais pas te dire de mettre l'auteur , car mes coquipiers l'ont fait. Mais la prochaine fois , faut lire les régles avant de poster n'importe chose. Méme si l'auteur est présent sur l'entéte , tu dois le mettre. :)
Merci

http://www.google.com

5RPG Maker XP Re: Point de caractéristiques Sam 18 Oct - 15:25

Grégory

Grégory
Membre Royal
Membre Royal

Heuu c'est pas parce que c'est dans l'entête qu'on doit forcément le mettre, tout les auteurs sont sur l'entête des script, donc ce n'est pas important, faut lire l'entête...
Sinon oui c'est un bon script, permet de monter les caractéristiques que l'ont veut. J'lavais utiliser y'a pas mal de temps.

http://zgk-software.forumactif.info/forum.htm

6RPG Maker XP Re: Point de caractéristiques Sam 18 Oct - 15:32

Zack Fair

Zack Fair
Membre Actif
Membre Actif

ouais si tu le dis

http://www.google.com

7RPG Maker XP Re: Point de caractéristiques Sam 18 Oct - 20:23

senin jiraya

avatar
Membre
Membre

J aime bien ce script mais je voulais savoir qi il etait compatible avec le menu mog hunter?

8RPG Maker XP Re: Point de caractéristiques Dim 19 Oct - 7:29

Grégory

Grégory
Membre Royal
Membre Royal

Tu peut le mettre dans le menu via une commande, donc ben je pense qu'il est compatible oui.

http://zgk-software.forumactif.info/forum.htm

9RPG Maker XP Re: Point de caractéristiques Jeu 23 Oct - 14:19

Zack Fair

Zack Fair
Membre Actif
Membre Actif

Oui , absolument , mais je ne préfére pas cela , car avec un event ca sera mieux. Enfin , c'est votre choix

http://www.google.com

10RPG Maker XP Re: Point de caractéristiques Jeu 23 Oct - 14:31

Grégory

Grégory
Membre Royal
Membre Royal

Oui, le mieux se serais de l'activer quand le héros monte d'un niveau ^^

http://zgk-software.forumactif.info/forum.htm

Contenu sponsorisé



Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum

 

Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser