Partagez
Aller en bas
avatar
Kaimaji
Membre

Nombre de messages : 19
Distinction : aucune
Date d'inscription : 23/01/2012

[Résolu] Ne pas gagner d'expérience quand mort

le Mar 4 Déc 2012 - 23:42
Bonsoir à tous et à toutes !

Pour faire simple, lorsque l'équipe gagne un combat, tout le monde gagne de l'expérience (même ceux qui sont morts), je cherche donc un moyen pour que les personnages "morts" ne gagnent pas d'expérience à la fin du combat (script à modifier, événement commun ou autres, je n'ai personnellement pas trouver...)

Merci d'avance ! Very Happy


Dernière édition par Kaimaji le Mar 11 Déc 2012 - 1:53, édité 2 fois
avatar
Kaimaji
Membre

Nombre de messages : 19
Distinction : aucune
Date d'inscription : 23/01/2012

Re: [Résolu] Ne pas gagner d'expérience quand mort

le Dim 9 Déc 2012 - 1:05
J'écris un deuxième post puisque je me suis rendu compte qu'à la base, le personnage ne gagne PAS d'exp quand il est mort hors, c'est un de mes scripts qui a modifié et fait que les personnages mort gagne quand même de l'expérience.
Je cherche donc maintenant que faut-il modifier dans ce script pour régler ça...

Le script en question est "Rapport de combat V3 par Blockade et voici son contenu :

Code:
#===============================================================
# ● [VX] ◦ Rapport de combat V3
#--------------------------------------------------------------
# ◦ Par  Blockade
# ◦ http://rpg-maker-vx.bbactif.com/forum.htm
# ◦ Crée le 06/04/2009
# ◦ Version 3.7
# ◦ Remerciment à Woratana, Moghunter
#--------------------------------------------------------------
#===============================================================
#===============================================================
# Notes de version :
#---------------------------------------------------------------
# ~ Version 1.0 :
#  - Création du script
# ~ Version 2.0 :
#  - Interface revue
#  - Regroupement et classement des objets gagnés
#  - Ajouts d'options de personalisations
# ~ Version 3.0 :
#  - Le script distibue l'argent gagné correctement.
#  - Module de configuration entiérement revu
#  - Compatibilité améliorée
#  - Pop-up lors d'un level up qui affiche les caractéristiques
#  - Affiche les sorts gagnés
# ~ Version 3.5
#  - Meilleur affichage des caractéristiques quand le héros gagne un niveau
#  - Affichage du temps de combat
# ~ Version 3.6
#  - Mise à la norme de mes scripts
#  - Compatible avec 3 systèmes de combat : Combat VX, SBS, SBS avec ATB
#  - Détecte automatiquement le SBS
# ~ Version 3.7
#  - Correction d'un bug avec le SBS avec ATB, le rapport d'affichais deux fois
#===============================================================
#===============================================================
# Utilisation :
#  Plug & Play, inserez le au dessus de Main !
#  Jettez un coup d'oeil au module de configuration !
#===============================================================
module Blockade
  module Config_Report
#===============================================================
#  Blockade::Config_Report Début du Module de configuration
#===============================================================
#-------------------------------------------
# >> Configuration du texte
#--------------------------------------------
# > Texte contenu dans l'help_window
 Text_help_window = "Rapport de Combat" 

# > Alignement du texte (0:Gauche, 1:Milieu, 2: Droite)
Alignement_texte = 0

# > Texte pour le temps de combat :
Texte_temps_combat = "Temps : "

# > Alignement du Texte_temps_combat (0:Gauche, 1:Milieu, 2: Droite)
Alignement_texte_temps_combat = 2

# > Expérience (abrégée)
Exp = "Exp : "

# > Monnaie (abrégée)
Gold = "Gils : "

#  > Niveau (abrégé)
Lvl = "Niv. "

#  > Dans la fenêtre de drop
Drop_nil = "Aucun objet trouvé."            # Si pas d'objet à la fin du combat
Drop_objets = "Objets trouvés :"            #  Si des objets sont trouvées
Drop_armures = "Armures trouvées :"  #  Si des armures sont trouvées
Drop_armes = "Armes trouvées :"        # Si des armes sont trouvées 

# > Dans la fenêtre de changement de niveau
Texte_hp  = "HP "                  # Texte pour les Hp
Texte_mp  = "MP "                  # Texte pour les Mp
Texte_atk  = "Attaque  "        # Texte pour l'attaque
Texte_def  = "Défense  "      # Texte pour la défense
Texte_int    = "Intelligence "  # Texte pour l'intelligence
Texte_agi  = "Agilité "            # Texte pour l'agilité

# > Couleur des noms de caracteristiques
Couleur_nom_carac = 4

# > Dans la fenêtre des nouveaux sorts
Couleur_new_skill = 4  # Couleur de Texte_new_skill
Texte_new_skill = "Nouveaux sorts : " # Texte pour introduire les nouveaux sorts
 #-------------------------------------------

 #-------------------------------------------
# >> Configuration des icones
#--------------------------------------------
# > Dans la fenêtre de changement de niveau
Icone_hp  = 99    # Id de l'icone pour les PV
Icone_mp = 100  # Id de l'icone pour les PM
Icone_atk  = 2              # Id de l'icone pour l'attaque
Icone_def  = 52          # Id de l'icone pour la défense
Icone_int  = 21          # Id de l'icone pour l'intelligence
Icone_agi  = 48          # Id de l'icone pour l'agilité

# > Dans la fenêtre des sorts
Icone_new_skill = 130
#-------------------------------------------

#-------------------------------------------
# >> Configuration des sons
#--------------------------------------------
# > Quand un héros gagne un niveau
Lvl_up_sound = "Son level up" # Nom du SE
Lvl_up_volume = 150 # Volume entre 50-150
Lvl_up_tempo = 100 # Tempo entre 50-150
#===============================================================
#  Blockade::Config_Report Fin du Module de configuration
#===============================================================
  end
end

$imported = {} if $imported == nil
$imported["Rapport_CombatV3"] = true

#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  Scene qui gère les combats
#==============================================================================
class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # * Prend le temps au début du combat
  #--------------------------------------------------------------------------
  alias start_battle_block start
  def start
    start_battle_block
    @temps = Time.now
  end
 
  #--------------------------------------------------------------------------
  # * Enpêche le rapport de s'afficher 2 fois (ATB fix)
  #--------------------------------------------------------------------------
  alias judge_win_loss_block judge_win_loss unless $@
  def judge_win_loss
    if defined?(::N02)
    return unless @fin_combat.nil?
    end
    judge_win_loss_block
  end
  #--------------------------------------------------------------------------
  # * Processus de victoire
  #--------------------------------------------------------------------------
  def process_victory
    if defined?(::N01)
          @status_window.visible = true
          @message_window.visible = false
          # ボスコラプスはウエイトを長く挟む
          for enemy in $game_troop.members
            break boss_wait = true if enemy.collapse_type == 3
          end
          wait(440) if boss_wait
          wait(N01::WIN_WAIT) unless boss_wait
          # 動けないアクターを除いて勝利アクション
          for actor in $game_party.members
            unless actor.restriction >= 4
            @spriteset.set_action(true, actor.index,actor.win)
          end
        end
      end
    @info_viewport.visible = false
    @message_window.visible = false
    RPG::BGM.stop
    $game_system.battle_end_me.play
    unless $BTEST
      $game_temp.map_bgm.play
      $game_temp.map_bgs.play
    end
    new_temps = Time.now
    temps = new_temps- @temps
    if temps >= 60
      @temps_combat = (temps / 60).truncate
      @suffixe = @temps_combat > 1 ?  "minutes" : "minute"
    else
      @temps_combat = temps.truncate
      @suffixe = "secondes"
    end
    @exp =$game_troop.exp_total
    @gold = $game_troop.gold_total
    @drop = $game_troop.make_drop_items
    $game_party.gain_gold(@gold)
    ini_variable   
    Graphics.fadeout(30)
    afficher_rapport
    Graphics.fadein(20)
end

  #--------------------------------------------------------------------------
  # * Initialise les variables
  #--------------------------------------------------------------------------
  def ini_variable
      @fin_combat = true
      @actors_lvl_up = []
      @num_passage= 0
    end
   
  #--------------------------------------------------------------------------
  # * Afficher le rapport de combat
  #--------------------------------------------------------------------------
def afficher_rapport
    @help_window = Window_Help_Combat.new
    @heros_window = []
      y=55 ; i=0
    for actor in $game_party.members
    @heros_window[i] = Heros_Window.new(actor,y,@exp)
    @actors_lvl_up.push([actor,@heros_window[i].get_old_carac,@heros_window[i].get_new_carac,@heros_window[i].get_new_skills]) if @heros_window[i].level_up
    y +=74; i += 1
    end
    @gold_exp_window = Gold_Exp_Window.new(@gold,@exp)
    @butin_window = Drop_Window.new(@drop)
    @help_window.set_text(Blockade::Config_Report::Text_help_window,Blockade::Config_Report::Alignement_texte,Blockade::Config_Report::Texte_temps_combat + "#{@temps_combat} #{@suffixe} ",Blockade::Config_Report::Alignement_texte_temps_combat)
    if @actors_lvl_up != []
      RPG::SE.new(Blockade::Config_Report::Lvl_up_sound, Blockade::Config_Report::Lvl_up_volume, Blockade::Config_Report::Lvl_up_tempo).play
      @actor_window = Carac_Window.new(@actors_lvl_up[@num_passage])
      new_skill = @actors_lvl_up[@num_passage]
      @actor_window2 = Skills_Window.new(@actors_lvl_up[@num_passage]) if @actors_lvl_up[@num_passage][3].size > 0
    end
  end
 
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  alias update_block update unless $@
  def update
    if @fin_combat != true
      update_block
    else
#  Si c'est la fin du combat
      @help_window.update
      @message_window.update
      for i in 0...@heros_window.size
        @heros_window[i].update
      end
      if @actors_lvl_up != []
      @actor_window.update
      @actor_window2.update  if @actors_lvl_up[@num_passage][3].size > 0 # if @heros_window[@num_passage].get_new_skills.size > 0
      if Input.trigger?(Input::C)
        @num_passage += 1
        @actor_window.dispose
        @actor_window2.visible = false if @actor_window2 != nil
        if @num_passage + 1  > @actors_lvl_up.size
          Input.update
          @actors_lvl_up = []
        end # fin @num_passage
        if @actors_lvl_up != []
          RPG::SE.new(Blockade::Config_Report::Lvl_up_sound, Blockade::Config_Report::Lvl_up_volume, Blockade::Config_Report::Lvl_up_tempo).play
          @actor_window = Carac_Window.new(@actors_lvl_up[@num_passage])
          @actor_window2 = Skills_Window.new(@actors_lvl_up[@num_passage])  if @actors_lvl_up[@num_passage][3].size >0    # if @heros_window[@num_passage].get_new_skills.size > 0
      end # fin @actors_lvl_up
    end # fin input
  else # si pas de lvl up
  end
# Si on appuye sur Entrée
  if Input.trigger?(Input::C) and @actors_lvl_up == []
    @help_window.dispose
    for i in 0...@heros_window.size
      @heros_window[i].dispose
    end
    @gold_exp_window.dispose
    @butin_window.dispose
    if $BTEST
      $scene = nil
    else
    Graphics.fadeout(30)
    battle_end(0)
  suppr_variables
  end
 end
end
end
 
#--------------------------------------------------------------------------
# * Reinitialise les variables
#--------------------------------------------------------------------------
def suppr_variables
    @fin_combat = false
    @actors_lvl_up = []
  end
end
 
#==============================================================================
# ** Window_Help_Combat
#------------------------------------------------------------------------------
#  This window shows skill and item explanations along with actor status.
#==============================================================================
class Window_Help_Combat < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 544, WLH + 32)
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #  text  : character string displayed in window
  #  align : alignment (0..flush left, 1..center, 2..flush right)
  #--------------------------------------------------------------------------
  def set_text(text1, align1,text2,align2)
    if text1 != @text1 or align1 != @align1 or text2 != @text2 or align2 != @align2
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, self.width - 40, WLH, text1, align1)
      self.contents.draw_text(4, 0, self.width - 40, WLH, text2, align2)
      @text1 = text1 ; @align = align2
      @text2 = text2 ; @align2 = align2
    end 
  end
end

 #==============================================================================
# ** Skills_Window
#------------------------------------------------------------------------------
#  Affiche les sorts
#==============================================================================
class Skills_Window < Window_Base
  def initialize(actor_info)
    @new_skills = actor_info[3]
    super(300,58,244,230)
    afficher_sorts
  end
 
  #--------------------------------------------------------------------------
  # * Affiche les nouveaux sorts
  #--------------------------------------------------------------------------
  def afficher_sorts
    self.contents.font.color = text_color(Blockade::Config_Report::Couleur_new_skill)
    self.contents.draw_text(25,0, 200, WLH, Blockade::Config_Report::Texte_new_skill)
    draw_icon(Blockade::Config_Report::Icone_new_skill,0,0)
    y = 25
    for skills in @new_skills
    draw_item_name(skills,0,y)
    y += 25
    end
  end
end

 #==============================================================================
# ** Carac_Window
#------------------------------------------------------------------------------
#  Affiche les caractérisqtiques
#==============================================================================
class Carac_Window < Window_Base
  def initialize(actor)
    @actor = actor[0]
    @old_carac = actor[1]
    @new_carac = actor[2]
    @new_skills = actor[3]
    x = 100
    x = 0 if @new_skills.size > 0
    super(x,58,300,230)
  afficher_info_actor
  afficher_icone
  afficher_carac
 end
 
  #--------------------------------------------------------------------------
  # * Affiche le nom et le niveau du héros
  #--------------------------------------------------------------------------
def afficher_info_actor
  draw_character(@actor.character_name, @actor.character_index, 20, 40)
  self.contents.draw_text(40,0, 200, WLH, @actor.name)
  self.contents.draw_text(40,20,200,WLH,Blockade::Config_Report::Lvl + @old_carac[0].to_s + " > " +
  Blockade::Config_Report::Lvl + @new_carac[0].to_s)
end

  #--------------------------------------------------------------------------
  # * Affiche les icones
  #--------------------------------------------------------------------------
def afficher_icone
  draw_icon(Blockade::Config_Report::Icone_hp,0,50)
  draw_icon(Blockade::Config_Report::Icone_mp ,0,75)
  draw_icon(Blockade::Config_Report::Icone_atk ,0,100)
  draw_icon(Blockade::Config_Report::Icone_def,0,125)
  draw_icon(Blockade::Config_Report::Icone_int,0,150)
  draw_icon(Blockade::Config_Report::Icone_agi,0,175)
end

  #--------------------------------------------------------------------------
  # * Affiche les caractéristiques
  #--------------------------------------------------------------------------
  def afficher_carac
    self.contents.font.color = text_color(Blockade::Config_Report::Couleur_nom_carac)
    self.contents.draw_text(25,50, 150, WLH,  Blockade::Config_Report::Texte_hp)
    self.contents.draw_text(25,75, 150, WLH,  Blockade::Config_Report::Texte_mp)
    self.contents.draw_text(25,100, 150, WLH,  Blockade::Config_Report::Texte_atk)
    self.contents.draw_text(25,125, 150, WLH,  Blockade::Config_Report::Texte_def)
    self.contents.draw_text(25,150, 150, WLH,  Blockade::Config_Report::Texte_int)
    self.contents.draw_text(25,175, 150, WLH,  Blockade::Config_Report::Texte_agi)
    self.contents.font.color = normal_color
    y = 50
    for i in 1...@new_carac.size
      self.contents.draw_text(150,y, 105, WLH, @old_carac[i],0)
      self.contents.draw_text(150,y, 110, WLH, "> ",1)
      self.contents.font.color =  power_up_color if @old_carac[i] < @new_carac[i]
      self.contents.font.color.alpha = 128 if @old_carac[i] == @new_carac[i]
      self.contents.draw_text(150,y, 105, WLH, @new_carac[i],2)
      self.contents.font.color.alpha = 255
      self.contents.font.color = normal_color
      y +=25
    end
  end
end

 #==============================================================================
# ** Gold_Exp_Window
#------------------------------------------------------------------------------
#  Affiche l'argent et l'exp obtenus
#==============================================================================
class Gold_Exp_Window < Window_Base
  def initialize(gold,exp)
    super(0,350,200,65)
    self.contents.draw_text(0,-6,200,WLH,Blockade::Config_Report::Exp + exp.to_s)
    self.contents.draw_text(0,14,200,WLH,Blockade::Config_Report::Gold + gold.to_s)
  end
end

#==============================================================================
# ** Heros_Window
#------------------------------------------------------------------------------
#  Affiche les informations d'exp sur les héros
#==============================================================================
class Heros_Window < Window_Base
  def initialize(actor,y,exp)
    super(0,y,200,75)
    @actor = actor
    @exp = exp
    afficher_info
  end
 
#--------------------------------------------------------------------------
# * Affiche les informations
#--------------------------------------------------------------------------
  def afficher_info
    @level_up = false
    last_lvl  = @actor.level
    last_hp =  @actor.maxhp
    last_mp = @actor.maxmp
    last_atk =  @actor.atk
    last_def = @actor.def
    last_spi = @actor.spi
    last_agi = @actor.agi
    last_skill = @actor.skills
    @actor.gain_exp(@exp,false)
    if @actor.level > last_lvl
      @level_up = true
      @old_carac = [last_lvl,last_hp,last_mp, last_atk, last_def, last_spi, last_agi]
      @new_carac =[@actor.level, @actor.maxhp,@actor.maxmp,@actor.atk,@actor.def,@actor.spi,@actor.agi]
      @new_skills = @actor.skills - last_skill
    end
    draw_character(@actor.character_name, @actor.character_index, 20, 40)
    draw_actor_exp_meter(@actor,40,20)
    self.contents.draw_text(40,0, 60, WLH, @actor.name)
    self.contents.draw_text(110,0,60,WLH,Blockade::Config_Report::Lvl + @actor.level.to_s)
  end
 
 #--------------------------------------------------------------------------
# * Renvoie les anciennes caractérisques
#--------------------------------------------------------------------------   
  def get_old_carac
    return @old_carac
  end
 
#--------------------------------------------------------------------------
# * Renvoie les nouvelles caractérisques
#--------------------------------------------------------------------------
  def get_new_carac
    return @new_carac
  end
 
#--------------------------------------------------------------------------
# * Renvoie les nouveaux sorts
#--------------------------------------------------------------------------
  def get_new_skills
    if @new_skills.size > 0
    return @new_skills
  else
    return []
    end
  end
 #--------------------------------------------------------------------------
# * Determine si le heros a pris un ou plusieurs niveaux
#--------------------------------------------------------------------------
  def level_up
    return @level_up
  end
#--------------------------------------------------------------------------
# * Couleur 1 de la barre
#--------------------------------------------------------------------------
  def exp_gauge_color1
    return text_color(30)
  end
     
#--------------------------------------------------------------------------
# * Couleur 1 de la barre
#--------------------------------------------------------------------------
  def exp_gauge_color2
    return text_color(31)
  end
 
#--------------------------------------------------------------------------
# * Dessine la barre d'exp
#-------------------------------------------------------------------------
  def draw_actor_exp_meter(actor, x, y, width = 100)
    if actor.next_exp != 0
      exp = actor.now_exp
    else
      exp = 1
    end
      gw = width * exp / [actor.next_exp, 1].max
      gc1 = exp_gauge_color1
      gc2 = exp_gauge_color2
      self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
      self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
      self.contents.font.color = system_color
      self.contents.draw_text(x, y, 30, WLH, "Exp")
      self.contents.font.color = normal_color
      xr = x + width
      self.contents.draw_text(xr - 60, y, 60, WLH,  actor.next_rest_exp_s, 2)
    end
  end

#==============================================================================
# ** Drop_Window
#------------------------------------------------------------------------------
#  Affiche les objets obtenus
#==============================================================================
class Drop_Window < Window_Base
  def initialize(drop)
      super(200,55,344,360)
      @drop = drop
      if @drop != []
        trier_drop
        regrouper
        afficher_drop
        donner_drop
      else
        afficher_mess
      end
    end
   
#--------------------------------------------------------------------------
# * Trie le drop en fonction du type d'objet
#-------------------------------------------------------------------------
  def trier_drop
    @armes = []
    @armures =  []
    @items = []
    for item in @drop
      if item.is_a?(RPG::Item)
        @items.push(item)
      end
      if item.is_a?(RPG::Armor)
        @armures.push(item)
      end
      if item.is_a?(RPG::Weapon)
        @armes.push(item)
      end
    end
  end
   
#--------------------------------------------------------------------------
# * Regroupe les objets par nombre 
#-------------------------------------------------------------------------
  def regrouper
#-------------------------------------------------------
#  Pour les objets 
#------------------------------------------------------
    if @items != []
      @items_unique = @items.uniq
      @regroupement_item = {}
      for item in @items_unique
        @regroupement_item[item] = 0
      end
      for item in @items
        if @regroupement_item.include?(item)
          @regroupement_item[item] += 1
        end
      end
    end
   
#-------------------------------------------------------
#  Pour les armures
#------------------------------------------------------
    if @armures != []
      @armure_unique = @armures.uniq
      @regroupement_armures = {}
      for armure in @armure_unique
        @regroupement_armures[armure] = 0
      end
      for armure in @armures
        if @regroupement_armures.include?(armure)
          @regroupement_armures[armure] += 1
        end
      end
    end
   
#-------------------------------------------------------
#  Pour les armes
#------------------------------------------------------
    if @armes != []
      @armes_unique = @armes.uniq
      @regroupement_armes = {}
      for arme in @armes_unique
        @regroupement_armes[arme] = 0
      end
      for arme in @armes
        if @regroupement_armes.include?(arme)
          @regroupement_armes[arme] += 1
        end
      end
    end
  end

#--------------------------------------------------------------------------
# * Affiche les objets
#-------------------------------------------------------------------------
  def afficher_drop
    y=0 # Initialisation de la coordonée y
#-------------------------------------------------------
#  Pour les objets 
#------------------------------------------------------
    if @items != []
      self.contents.draw_text(0,y,200,WLH,Blockade::Config_Report::Drop_objets)
      y += 25
      for item in @regroupement_item
        draw_icon(item[0].icon_index, 0, y)
        if item[1] > 1
        quantite = "  x" + item[1].to_s
        else
          quantite = ""
        end
        self.contents.draw_text(24, y, 172, WLH, item[0].name + quantite)
      y+=25
    end
  end
 
  y += 5 if @items.nil? == false # Si les objets on été affiché augmenter y de 5
 
#-------------------------------------------------------
#  Pour les armures
#------------------------------------------------------
  if @armures != []
      self.contents.draw_text(0,y,200,WLH,Blockade::Config_Report::Drop_armures)
      y += 25
    for armure in @regroupement_armures
      draw_icon(armure[0].icon_index, 0, y)
        if armure[1] > 1
        quantite = "  x" + armure[1].to_s
        else
          quantite = ""
        end
        self.contents.draw_text(24, y, 172, WLH, armure[0].name + quantite)
      y +=25
    end
  end
 
  y += 5 if @armures.nil? == false # Si les armures on été affichées augmenter y de 5
 
#-------------------------------------------------------
#  Pour les armes
#------------------------------------------------------
  if @armes != []
      self.contents.draw_text(0,y,200,WLH,Blockade::Config_Report::Drop_armes)
      y += 25
    for arme in @regroupement_armes
    draw_icon(arme[0].icon_index, 0, y)
        if arme[1] > 1
        quantite = "  x" + arme[1].to_s
        else
          quantite = ""
        end
        self.contents.draw_text(24, y, 172, WLH, arme[0].name + quantite)
      y +=25
    end
  end 
end

#-------------------------------------------------------
#  Afficher un message si pas de drop
#------------------------------------------------------
  def afficher_mess
    self.contents.draw_text(0,0,360,WLH,Blockade::Config_Report::Drop_nil)
  end
 
#-------------------------------------------------------
#  Donne le drop à l'équipe
#------------------------------------------------------
  def donner_drop
    for item in @drop
      $game_party.gain_item(item, 1)
    end
  end
end

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  Gére les données système sur les héros.
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Calcul de l'exp accumulée
  #--------------------------------------------------------------------------
    def now_exp
        return @exp - @exp_list[@level]
      end
   
  #--------------------------------------------------------------------------
  # * Calcul de l'exp a avoir pour gagner un niveau
  #-------------------------------------------------------------------------- 
    def next_exp
      return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
    end
  end

Merci !
avatar
tonyryu
Membre

Nombre de messages : 895
Age : 38
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

Re: [Résolu] Ne pas gagner d'expérience quand mort

le Dim 9 Déc 2012 - 10:32
J'ai pas la version VX, mais c'est là qu'il faut ajouter une condition :

Code:
    for actor in $game_party.members
    # if  Mettre ici la condition pour vérifier que le membre du groupe est vivant.
      @heros_window[i] = Heros_Window.new(actor,y,@exp)
      @actors_lvl_up.push([actor,@heros_window[i].get_old_carac,@heros_window[i].get_new_carac,@heros_window[i].get_new_skills]) if @heros_window[i].level_up
    # end
    y +=74; i += 1
    end
avatar
Kaimaji
Membre

Nombre de messages : 19
Distinction : aucune
Date d'inscription : 23/01/2012

Re: [Résolu] Ne pas gagner d'expérience quand mort

le Lun 10 Déc 2012 - 3:59
Tu aurais pas une idée de quelle condition je pourrais mettre ?

En fait, je n'y connais absolument rien en bidouillage de scripts (hormis quand c'est vraiment "assisté"), du coup j'ai essayé quelques trucs, mais sans succès....
avatar
tonyryu
Membre

Nombre de messages : 895
Age : 38
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

Re: [Résolu] Ne pas gagner d'expérience quand mort

le Lun 10 Déc 2012 - 9:36
essaie ceci, mais encore une fois, je n'ai pas la version VX (simple), il es possible que ça ne fonctionne pas :

Code:
    for actor in $game_party.members
      if actor.hp > 0
        @heros_window[i] = Heros_Window.new(actor,y,@exp)
        @actors_lvl_up.push([actor,@heros_window[i].get_old_carac,@heros_window[i].get_new_carac,@heros_window[i].get_new_skills]) if @heros_window[i].level_up
      end
      y +=74; i += 1
    end
avatar
Kaimaji
Membre

Nombre de messages : 19
Distinction : aucune
Date d'inscription : 23/01/2012

Re: [Résolu] Ne pas gagner d'expérience quand mort

le Lun 10 Déc 2012 - 12:29
Je viens d'essayer et au moment du rapport de combat le jeu plante avec cette erreur :



Pour rappel, à la ligne 241 se trouve :
Code:
        @heros_window[i].update


Encore merci pour ton aide !

avatar
tonyryu
Membre

Nombre de messages : 895
Age : 38
Localisation : Près de Nantes
Distinction : aucune
Date d'inscription : 27/05/2010
http://www.tonyryudev.com

Re: [Résolu] Ne pas gagner d'expérience quand mort

le Lun 10 Déc 2012 - 12:48
alors dans ce cas, essaie de remplacer ton script, par celui-ci, j'ai modifié qu'une seule ligne, mais ce sera plus simple de faire un copier coller que d'expliquer la modif a faire :

Code:
#===============================================================
# ? [VX] ? Rapport de combat V3
#--------------------------------------------------------------
# ? Par  Blockade
# ? http://rpg-maker-vx.bbactif.com/forum.htm
# ? Crée le 06/04/2009
# ? Version 3.7
# ? Remerciment à Woratana, Moghunter
#--------------------------------------------------------------
#===============================================================
#===============================================================
# Notes de version :
#---------------------------------------------------------------
# ~ Version 1.0 :
#  - Création du script
# ~ Version 2.0 :
#  - Interface revue
#  - Regroupement et classement des objets gagnés
#  - Ajouts d'options de personalisations
# ~ Version 3.0 :
#  - Le script distibue l'argent gagné correctement.
#  - Module de configuration entiérement revu
#  - Compatibilité améliorée
#  - Pop-up lors d'un level up qui affiche les caractéristiques
#  - Affiche les sorts gagnés
# ~ Version 3.5
#  - Meilleur affichage des caractéristiques quand le héros gagne un niveau
#  - Affichage du temps de combat
# ~ Version 3.6
#  - Mise à la norme de mes scripts
#  - Compatible avec 3 systèmes de combat : Combat VX, SBS, SBS avec ATB
#  - Détecte automatiquement le SBS
# ~ Version 3.7
#  - Correction d'un bug avec le SBS avec ATB, le rapport d'affichais deux fois
#===============================================================
#===============================================================
# Utilisation :
#  Plug & Play, inserez le au dessus de Main !
#  Jettez un coup d'oeil au module de configuration !
#===============================================================
module Blockade
  module Config_Report
#===============================================================
#  Blockade::Config_Report Début du Module de configuration
#===============================================================
#-------------------------------------------
# >> Configuration du texte
#--------------------------------------------
# > Texte contenu dans l'help_window
 Text_help_window = "Rapport de Combat" 

# > Alignement du texte (0:Gauche, 1:Milieu, 2: Droite)
Alignement_texte = 0

# > Texte pour le temps de combat :
Texte_temps_combat = "Temps : "

# > Alignement du Texte_temps_combat (0:Gauche, 1:Milieu, 2: Droite)
Alignement_texte_temps_combat = 2

# > Expérience (abrégée)
Exp = "Exp : "

# > Monnaie (abrégée)
Gold = "Gils : "

#  > Niveau (abrégé)
Lvl = "Niv. "

#  > Dans la fenêtre de drop
Drop_nil = "Aucun objet trouvé."            # Si pas d'objet à la fin du combat
Drop_objets = "Objets trouvés :"            #  Si des objets sont trouvées
Drop_armures = "Armures trouvées :"  #  Si des armures sont trouvées
Drop_armes = "Armes trouvées :"        # Si des armes sont trouvées 

# > Dans la fenêtre de changement de niveau
Texte_hp  = "HP "                  # Texte pour les Hp
Texte_mp  = "MP "                  # Texte pour les Mp
Texte_atk  = "Attaque  "        # Texte pour l'attaque
Texte_def  = "Défense  "      # Texte pour la défense
Texte_int    = "Intelligence "  # Texte pour l'intelligence
Texte_agi  = "Agilité "            # Texte pour l'agilité

# > Couleur des noms de caracteristiques
Couleur_nom_carac = 4

# > Dans la fenêtre des nouveaux sorts
Couleur_new_skill = 4  # Couleur de Texte_new_skill
Texte_new_skill = "Nouveaux sorts : " # Texte pour introduire les nouveaux sorts
 #-------------------------------------------

 #-------------------------------------------
# >> Configuration des icones
#--------------------------------------------
# > Dans la fenêtre de changement de niveau
Icone_hp  = 99    # Id de l'icone pour les PV
Icone_mp = 100  # Id de l'icone pour les PM
Icone_atk  = 2              # Id de l'icone pour l'attaque
Icone_def  = 52          # Id de l'icone pour la défense
Icone_int  = 21          # Id de l'icone pour l'intelligence
Icone_agi  = 48          # Id de l'icone pour l'agilité

# > Dans la fenêtre des sorts
Icone_new_skill = 130
#-------------------------------------------

#-------------------------------------------
# >> Configuration des sons
#--------------------------------------------
# > Quand un héros gagne un niveau
Lvl_up_sound = "Son level up" # Nom du SE
Lvl_up_volume = 150 # Volume entre 50-150
Lvl_up_tempo = 100 # Tempo entre 50-150
#===============================================================
#  Blockade::Config_Report Fin du Module de configuration
#===============================================================
  end
end

$imported = {} if $imported == nil
$imported["Rapport_CombatV3"] = true

#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  Scene qui gère les combats
#==============================================================================
class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # * Prend le temps au début du combat
  #--------------------------------------------------------------------------
  alias start_battle_block start
  def start
    start_battle_block
    @temps = Time.now
  end
 
  #--------------------------------------------------------------------------
  # * Enpêche le rapport de s'afficher 2 fois (ATB fix)
  #--------------------------------------------------------------------------
  alias judge_win_loss_block judge_win_loss unless $@
  def judge_win_loss
    if defined?(::N02)
    return unless @fin_combat.nil?
    end
    judge_win_loss_block
  end
  #--------------------------------------------------------------------------
  # * Processus de victoire
  #--------------------------------------------------------------------------
  def process_victory
    if defined?(::N01)
          @status_window.visible = true
          @message_window.visible = false
          # ????????????????
          for enemy in $game_troop.members
            break boss_wait = true if enemy.collapse_type == 3
          end
          wait(440) if boss_wait
          wait(N01::WIN_WAIT) unless boss_wait
          # ???????????????????
          for actor in $game_party.members
            unless actor.restriction >= 4
            @spriteset.set_action(true, actor.index,actor.win)
          end
        end
      end
    @info_viewport.visible = false
    @message_window.visible = false
    RPG::BGM.stop
    $game_system.battle_end_me.play
    unless $BTEST
      $game_temp.map_bgm.play
      $game_temp.map_bgs.play
    end
    new_temps = Time.now
    temps = new_temps- @temps
    if temps >= 60
      @temps_combat = (temps / 60).truncate
      @suffixe = @temps_combat > 1 ?  "minutes" : "minute"
    else
      @temps_combat = temps.truncate
      @suffixe = "secondes"
    end
    @exp =$game_troop.exp_total
    @gold = $game_troop.gold_total
    @drop = $game_troop.make_drop_items
    $game_party.gain_gold(@gold)
    ini_variable   
    Graphics.fadeout(30)
    afficher_rapport
    Graphics.fadein(20)
end

  #--------------------------------------------------------------------------
  # * Initialise les variables
  #--------------------------------------------------------------------------
  def ini_variable
      @fin_combat = true
      @actors_lvl_up = []
      @num_passage= 0
    end
   
  #--------------------------------------------------------------------------
  # * Afficher le rapport de combat
  #--------------------------------------------------------------------------
def afficher_rapport
    @help_window = Window_Help_Combat.new
    @heros_window = []
      y=55 ; i=0
    for actor in $game_party.members
    @heros_window[i] = Heros_Window.new(actor,y,@exp)
    @actors_lvl_up.push([actor,@heros_window[i].get_old_carac,@heros_window[i].get_new_carac,@heros_window[i].get_new_skills]) if @heros_window[i].level_up
    y +=74; i += 1
    end
    @gold_exp_window = Gold_Exp_Window.new(@gold,@exp)
    @butin_window = Drop_Window.new(@drop)
    @help_window.set_text(Blockade::Config_Report::Text_help_window,Blockade::Config_Report::Alignement_texte,Blockade::Config_Report::Texte_temps_combat + "#{@temps_combat} #{@suffixe} ",Blockade::Config_Report::Alignement_texte_temps_combat)
    if @actors_lvl_up != []
      RPG::SE.new(Blockade::Config_Report::Lvl_up_sound, Blockade::Config_Report::Lvl_up_volume, Blockade::Config_Report::Lvl_up_tempo).play
      @actor_window = Carac_Window.new(@actors_lvl_up[@num_passage])
      new_skill = @actors_lvl_up[@num_passage]
      @actor_window2 = Skills_Window.new(@actors_lvl_up[@num_passage]) if @actors_lvl_up[@num_passage][3].size > 0
    end
  end
 
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  alias update_block update unless $@
  def update
    if @fin_combat != true
      update_block
    else
#  Si c'est la fin du combat
      @help_window.update
      @message_window.update
      for i in 0...@heros_window.size
        @heros_window[i].update
      end
      if @actors_lvl_up != []
      @actor_window.update
      @actor_window2.update  if @actors_lvl_up[@num_passage][3].size > 0 # if @heros_window[@num_passage].get_new_skills.size > 0
      if Input.trigger?(Input::C)
        @num_passage += 1
        @actor_window.dispose
        @actor_window2.visible = false if @actor_window2 != nil
        if @num_passage + 1  > @actors_lvl_up.size
          Input.update
          @actors_lvl_up = []
        end # fin @num_passage
        if @actors_lvl_up != []
          RPG::SE.new(Blockade::Config_Report::Lvl_up_sound, Blockade::Config_Report::Lvl_up_volume, Blockade::Config_Report::Lvl_up_tempo).play
          @actor_window = Carac_Window.new(@actors_lvl_up[@num_passage])
          @actor_window2 = Skills_Window.new(@actors_lvl_up[@num_passage])  if @actors_lvl_up[@num_passage][3].size >0    # if @heros_window[@num_passage].get_new_skills.size > 0
      end # fin @actors_lvl_up
    end # fin input
  else # si pas de lvl up
  end
# Si on appuye sur Entrée
  if Input.trigger?(Input::C) and @actors_lvl_up == []
    @help_window.dispose
    for i in 0...@heros_window.size
      @heros_window[i].dispose
    end
    @gold_exp_window.dispose
    @butin_window.dispose
    if $BTEST
      $scene = nil
    else
    Graphics.fadeout(30)
    battle_end(0)
  suppr_variables
  end
 end
end
end
 
#--------------------------------------------------------------------------
# * Reinitialise les variables
#--------------------------------------------------------------------------
def suppr_variables
    @fin_combat = false
    @actors_lvl_up = []
  end
end
 
#==============================================================================
# ** Window_Help_Combat
#------------------------------------------------------------------------------
#  This window shows skill and item explanations along with actor status.
#==============================================================================
class Window_Help_Combat < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 544, WLH + 32)
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #  text  : character string displayed in window
  #  align : alignment (0..flush left, 1..center, 2..flush right)
  #--------------------------------------------------------------------------
  def set_text(text1, align1,text2,align2)
    if text1 != @text1 or align1 != @align1 or text2 != @text2 or align2 != @align2
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, self.width - 40, WLH, text1, align1)
      self.contents.draw_text(4, 0, self.width - 40, WLH, text2, align2)
      @text1 = text1 ; @align = align2
      @text2 = text2 ; @align2 = align2
    end 
  end
end

 #==============================================================================
# ** Skills_Window
#------------------------------------------------------------------------------
#  Affiche les sorts
#==============================================================================
class Skills_Window < Window_Base
  def initialize(actor_info)
    @new_skills = actor_info[3]
    super(300,58,244,230)
    afficher_sorts
  end
 
  #--------------------------------------------------------------------------
  # * Affiche les nouveaux sorts
  #--------------------------------------------------------------------------
  def afficher_sorts
    self.contents.font.color = text_color(Blockade::Config_Report::Couleur_new_skill)
    self.contents.draw_text(25,0, 200, WLH, Blockade::Config_Report::Texte_new_skill)
    draw_icon(Blockade::Config_Report::Icone_new_skill,0,0)
    y = 25
    for skills in @new_skills
    draw_item_name(skills,0,y)
    y += 25
    end
  end
end

 #==============================================================================
# ** Carac_Window
#------------------------------------------------------------------------------
#  Affiche les caractérisqtiques
#==============================================================================
class Carac_Window < Window_Base
  def initialize(actor)
    @actor = actor[0]
    @old_carac = actor[1]
    @new_carac = actor[2]
    @new_skills = actor[3]
    x = 100
    x = 0 if @new_skills.size > 0
    super(x,58,300,230)
  afficher_info_actor
  afficher_icone
  afficher_carac
 end
 
  #--------------------------------------------------------------------------
  # * Affiche le nom et le niveau du héros
  #--------------------------------------------------------------------------
def afficher_info_actor
  draw_character(@actor.character_name, @actor.character_index, 20, 40)
  self.contents.draw_text(40,0, 200, WLH, @actor.name)
  self.contents.draw_text(40,20,200,WLH,Blockade::Config_Report::Lvl + @old_carac[0].to_s + " > " +
  Blockade::Config_Report::Lvl + @new_carac[0].to_s)
end

  #--------------------------------------------------------------------------
  # * Affiche les icones
  #--------------------------------------------------------------------------
def afficher_icone
  draw_icon(Blockade::Config_Report::Icone_hp,0,50)
  draw_icon(Blockade::Config_Report::Icone_mp ,0,75)
  draw_icon(Blockade::Config_Report::Icone_atk ,0,100)
  draw_icon(Blockade::Config_Report::Icone_def,0,125)
  draw_icon(Blockade::Config_Report::Icone_int,0,150)
  draw_icon(Blockade::Config_Report::Icone_agi,0,175)
end

  #--------------------------------------------------------------------------
  # * Affiche les caractéristiques
  #--------------------------------------------------------------------------
  def afficher_carac
    self.contents.font.color = text_color(Blockade::Config_Report::Couleur_nom_carac)
    self.contents.draw_text(25,50, 150, WLH,  Blockade::Config_Report::Texte_hp)
    self.contents.draw_text(25,75, 150, WLH,  Blockade::Config_Report::Texte_mp)
    self.contents.draw_text(25,100, 150, WLH,  Blockade::Config_Report::Texte_atk)
    self.contents.draw_text(25,125, 150, WLH,  Blockade::Config_Report::Texte_def)
    self.contents.draw_text(25,150, 150, WLH,  Blockade::Config_Report::Texte_int)
    self.contents.draw_text(25,175, 150, WLH,  Blockade::Config_Report::Texte_agi)
    self.contents.font.color = normal_color
    y = 50
    for i in 1...@new_carac.size
      self.contents.draw_text(150,y, 105, WLH, @old_carac[i],0)
      self.contents.draw_text(150,y, 110, WLH, "> ",1)
      self.contents.font.color =  power_up_color if @old_carac[i] < @new_carac[i]
      self.contents.font.color.alpha = 128 if @old_carac[i] == @new_carac[i]
      self.contents.draw_text(150,y, 105, WLH, @new_carac[i],2)
      self.contents.font.color.alpha = 255
      self.contents.font.color = normal_color
      y +=25
    end
  end
end

 #==============================================================================
# ** Gold_Exp_Window
#------------------------------------------------------------------------------
#  Affiche l'argent et l'exp obtenus
#==============================================================================
class Gold_Exp_Window < Window_Base
  def initialize(gold,exp)
    super(0,350,200,65)
    self.contents.draw_text(0,-6,200,WLH,Blockade::Config_Report::Exp + exp.to_s)
    self.contents.draw_text(0,14,200,WLH,Blockade::Config_Report::Gold + gold.to_s)
  end
end

#==============================================================================
# ** Heros_Window
#------------------------------------------------------------------------------
#  Affiche les informations d'exp sur les héros
#==============================================================================
class Heros_Window < Window_Base
  def initialize(actor,y,exp)
    super(0,y,200,75)
    @actor = actor
    @exp = (actor.hp > 0 ? exp : 0 )
    afficher_info
  end
 
#--------------------------------------------------------------------------
# * Affiche les informations
#--------------------------------------------------------------------------
  def afficher_info
    @level_up = false
    last_lvl  = @actor.level
    last_hp =  @actor.maxhp
    last_mp = @actor.maxmp
    last_atk =  @actor.atk
    last_def = @actor.def
    last_spi = @actor.spi
    last_agi = @actor.agi
    last_skill = @actor.skills
    @actor.gain_exp(@exp,false)
    if @actor.level > last_lvl
      @level_up = true
      @old_carac = [last_lvl,last_hp,last_mp, last_atk, last_def, last_spi, last_agi]
      @new_carac =[@actor.level, @actor.maxhp,@actor.maxmp,@actor.atk,@actor.def,@actor.spi,@actor.agi]
      @new_skills = @actor.skills - last_skill
    end
    draw_character(@actor.character_name, @actor.character_index, 20, 40)
    draw_actor_exp_meter(@actor,40,20)
    self.contents.draw_text(40,0, 60, WLH, @actor.name)
    self.contents.draw_text(110,0,60,WLH,Blockade::Config_Report::Lvl + @actor.level.to_s)
  end
 
 #--------------------------------------------------------------------------
# * Renvoie les anciennes caractérisques
#--------------------------------------------------------------------------   
  def get_old_carac
    return @old_carac
  end
 
#--------------------------------------------------------------------------
# * Renvoie les nouvelles caractérisques
#--------------------------------------------------------------------------
  def get_new_carac
    return @new_carac
  end
 
#--------------------------------------------------------------------------
# * Renvoie les nouveaux sorts
#--------------------------------------------------------------------------
  def get_new_skills
    if @new_skills.size > 0
    return @new_skills
  else
    return []
    end
  end
 #--------------------------------------------------------------------------
# * Determine si le heros a pris un ou plusieurs niveaux
#--------------------------------------------------------------------------
  def level_up
    return @level_up
  end
#--------------------------------------------------------------------------
# * Couleur 1 de la barre
#--------------------------------------------------------------------------
  def exp_gauge_color1
    return text_color(30)
  end
     
#--------------------------------------------------------------------------
# * Couleur 1 de la barre
#--------------------------------------------------------------------------
  def exp_gauge_color2
    return text_color(31)
  end
 
#--------------------------------------------------------------------------
# * Dessine la barre d'exp
#-------------------------------------------------------------------------
  def draw_actor_exp_meter(actor, x, y, width = 100)
    if actor.next_exp != 0
      exp = actor.now_exp
    else
      exp = 1
    end
      gw = width * exp / [actor.next_exp, 1].max
      gc1 = exp_gauge_color1
      gc2 = exp_gauge_color2
      self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
      self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
      self.contents.font.color = system_color
      self.contents.draw_text(x, y, 30, WLH, "Exp")
      self.contents.font.color = normal_color
      xr = x + width
      self.contents.draw_text(xr - 60, y, 60, WLH,  actor.next_rest_exp_s, 2)
    end
  end

#==============================================================================
# ** Drop_Window
#------------------------------------------------------------------------------
#  Affiche les objets obtenus
#==============================================================================
class Drop_Window < Window_Base
  def initialize(drop)
      super(200,55,344,360)
      @drop = drop
      if @drop != []
        trier_drop
        regrouper
        afficher_drop
        donner_drop
      else
        afficher_mess
      end
    end
   
#--------------------------------------------------------------------------
# * Trie le drop en fonction du type d'objet
#-------------------------------------------------------------------------
  def trier_drop
    @armes = []
    @armures =  []
    @items = []
    for item in @drop
      if item.is_a?(RPG::Item)
        @items.push(item)
      end
      if item.is_a?(RPG::Armor)
        @armures.push(item)
      end
      if item.is_a?(RPG::Weapon)
        @armes.push(item)
      end
    end
  end
   
#--------------------------------------------------------------------------
# * Regroupe les objets par nombre 
#-------------------------------------------------------------------------
  def regrouper
#-------------------------------------------------------
#  Pour les objets 
#------------------------------------------------------
    if @items != []
      @items_unique = @items.uniq
      @regroupement_item = {}
      for item in @items_unique
        @regroupement_item[item] = 0
      end
      for item in @items
        if @regroupement_item.include?(item)
          @regroupement_item[item] += 1
        end
      end
    end
   
#-------------------------------------------------------
#  Pour les armures
#------------------------------------------------------
    if @armures != []
      @armure_unique = @armures.uniq
      @regroupement_armures = {}
      for armure in @armure_unique
        @regroupement_armures[armure] = 0
      end
      for armure in @armures
        if @regroupement_armures.include?(armure)
          @regroupement_armures[armure] += 1
        end
      end
    end
   
#-------------------------------------------------------
#  Pour les armes
#------------------------------------------------------
    if @armes != []
      @armes_unique = @armes.uniq
      @regroupement_armes = {}
      for arme in @armes_unique
        @regroupement_armes[arme] = 0
      end
      for arme in @armes
        if @regroupement_armes.include?(arme)
          @regroupement_armes[arme] += 1
        end
      end
    end
  end

#--------------------------------------------------------------------------
# * Affiche les objets
#-------------------------------------------------------------------------
  def afficher_drop
    y=0 # Initialisation de la coordonée y
#-------------------------------------------------------
#  Pour les objets 
#------------------------------------------------------
    if @items != []
      self.contents.draw_text(0,y,200,WLH,Blockade::Config_Report::Drop_objets)
      y += 25
      for item in @regroupement_item
        draw_icon(item[0].icon_index, 0, y)
        if item[1] > 1
        quantite = "  x" + item[1].to_s
        else
          quantite = ""
        end
        self.contents.draw_text(24, y, 172, WLH, item[0].name + quantite)
      y+=25
    end
  end
 
  y += 5 if @items.nil? == false # Si les objets on été affiché augmenter y de 5
 
#-------------------------------------------------------
#  Pour les armures
#------------------------------------------------------
  if @armures != []
      self.contents.draw_text(0,y,200,WLH,Blockade::Config_Report::Drop_armures)
      y += 25
    for armure in @regroupement_armures
      draw_icon(armure[0].icon_index, 0, y)
        if armure[1] > 1
        quantite = "  x" + armure[1].to_s
        else
          quantite = ""
        end
        self.contents.draw_text(24, y, 172, WLH, armure[0].name + quantite)
      y +=25
    end
  end
 
  y += 5 if @armures.nil? == false # Si les armures on été affichées augmenter y de 5
 
#-------------------------------------------------------
#  Pour les armes
#------------------------------------------------------
  if @armes != []
      self.contents.draw_text(0,y,200,WLH,Blockade::Config_Report::Drop_armes)
      y += 25
    for arme in @regroupement_armes
    draw_icon(arme[0].icon_index, 0, y)
        if arme[1] > 1
        quantite = "  x" + arme[1].to_s
        else
          quantite = ""
        end
        self.contents.draw_text(24, y, 172, WLH, arme[0].name + quantite)
      y +=25
    end
  end 
end

#-------------------------------------------------------
#  Afficher un message si pas de drop
#------------------------------------------------------
  def afficher_mess
    self.contents.draw_text(0,0,360,WLH,Blockade::Config_Report::Drop_nil)
  end
 
#-------------------------------------------------------
#  Donne le drop à l'équipe
#------------------------------------------------------
  def donner_drop
    for item in @drop
      $game_party.gain_item(item, 1)
    end
  end
end

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  Gére les données système sur les héros.
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Calcul de l'exp accumulée
  #--------------------------------------------------------------------------
    def now_exp
        return @exp - @exp_list[@level]
      end
   
  #--------------------------------------------------------------------------
  # * Calcul de l'exp a avoir pour gagner un niveau
  #-------------------------------------------------------------------------- 
    def next_exp
      return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
    end
  end
avatar
Kaimaji
Membre

Nombre de messages : 19
Distinction : aucune
Date d'inscription : 23/01/2012

Re: [Résolu] Ne pas gagner d'expérience quand mort

le Mar 11 Déc 2012 - 1:52
Chapeau bas, ça fonctionne parfaitement, merci beaucoup ! king
Contenu sponsorisé

Re: [Résolu] Ne pas gagner d'expérience quand mort

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