Partagez
Aller en bas
Blockade
Blockade
Membre

Nombre de messages : 194
Age : 27
Distinction : aucune
Date d'inscription : 06/09/2008

Rapport de combat v3 ! Empty Rapport de combat v3 !

le Lun 6 Avr 2009 - 21:41
Rapport de combat v3


Auteur : Blockade
Date : 11/05/09
Version : 3.7
Remerciements spéciaux : Woratana, Moghunter

Description du script :
- Affiche l'XP avec une barre pour chaque héros
- Affiche le drop par catégorie d'objet (Objet simple, Armure, Arme)
- Regroupe les objets (Affiche x 3 si il y'a 3 potion par exemple)
- 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
- Meilleur affichage des caractéristiques quand le héros gagne un niveau
- Affichage du temps de combat
- Mise à la norme de mes scripts
- Compatible avec 3 systèmes de combat : combat VX, SBS, SBS avec ATB
- Détecte automatiquement le SBS

Screenshots :
Rapport de combat v3 ! Screen1-be40fd5959

Rapport de combat v3 ! Screen2-06f521d51

Rapport de combat v3 ! Screen3-074056c972

Démo :
http://www.megaupload.com/?d=3XF5C555

Installation :
A mettre au dessus de main, comme d'ab'

Enjoy =)


Dernière édition par Blockade le Lun 9 Aoû 2010 - 16:04, édité 4 fois
Alexdream
Alexdream
Membre

Nombre de messages : 1400
Age : 30
Localisation : Rodez
Date d'inscription : 02/03/2008
http://alexdream.canalblog.com/

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Lun 6 Avr 2009 - 21:49
Testé et approuvé cependant j'aime pas la couleurs de la jauge se serait possible de connaitre la ligne à modifier pou changer la couleur.
freezia
freezia
Staffeux retraité

Nombre de messages : 1734
Distinction : Elu membre de l'année 2009 haut la main.
Inventeur du Mapping Show.

caricaturatationeur de la comu'
[ Dudu']
Date d'inscription : 18/02/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Lun 6 Avr 2009 - 22:18
Je trouve que ça donne un bon rendu .
Jolie travail !
Blockade
Blockade
Membre

Nombre de messages : 194
Age : 27
Distinction : aucune
Date d'inscription : 06/09/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Lun 6 Avr 2009 - 22:29
Merci =)

Pour changer la couleur ligne 125

Code:

#--------------------------------------------------------------------------
# * 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

Voila =)
avatar
Naasmar
Membre

Nombre de messages : 185
Age : 23
Distinction : aucune
Date d'inscription : 15/03/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mer 8 Avr 2009 - 13:19
Merci beaucoup, mais c'est quoi le code des couleurs ?
Sinon très bon script, je vais l'utiliser et tu seras dans mes crédits ! Very Happy
RPG-man
RPG-man
Membre

Nombre de messages : 55
Age : 25
Distinction : aucune
Date d'inscription : 16/03/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mer 8 Avr 2009 - 14:10
Pour te répondre, tu peux utiliser des couleurs que tu veux comme ça :
Code:
return Color.new(rouge, vert, bleu, alpha)
Avec rouge, vert, blue et alpha (opacité) à remplacer par des valeurs comprises entre 0 et 255.
Exemple :
Code:
return Color.new(255, 255, 255, 255)
Donne du blanc.
Alexdream
Alexdream
Membre

Nombre de messages : 1400
Age : 30
Localisation : Rodez
Date d'inscription : 02/03/2008
http://alexdream.canalblog.com/

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mer 8 Avr 2009 - 15:23
Ok merci de la'astuce à vous deux.
avatar
Naasmar
Membre

Nombre de messages : 185
Age : 23
Distinction : aucune
Date d'inscription : 15/03/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mer 8 Avr 2009 - 16:54
Merci RPG-Man !
Drakild
Drakild
Membre

Nombre de messages : 103
Age : 40
Localisation : Mozelle
Distinction : aucune
Date d'inscription : 15/03/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Sam 11 Avr 2009 - 17:12
Salut

J'ai découvert un petit bug dans le rapport de combat. (Je pense que ça vient de la, du moins....)

Quand je fuis, l'écran deviens noir, je ne peux pu rien faire, même pas aller dans les options avec 'echap'
J'ai retirer ton rapport de combat, et la fuite fonctionnait.

Si tu as des questions sur mes scripts, n'hésites pas a m'envoyer un MP.

J'espère que ça t'aide un peu.
A bientôt.
MayDios
MayDios
Membre

Nombre de messages : 92
Localisation : Là, sous tes yeux.
Distinction : aucune
Date d'inscription : 21/12/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Dim 12 Avr 2009 - 16:01
Hum... J'suis pas sûr de ma réponse, mais voici :

Essayez de mettre à la ligne 383 le passage suivant :

Spoiler:
Code:
def update_party_command_selection
    if Input.trigger?(Input::C)
      case @party_command_window.index
      when 0  # Fight
        Sound.play_decision
        @status_window.index = @actor_index = -1
        next_actor
      when 1  # Escape
        if $game_troop.can_escape == false
          Sound.play_buzzer
          return
        end
        Sound.play_decision
        process_escape
      end
    end
  end
Drakild
Drakild
Membre

Nombre de messages : 103
Age : 40
Localisation : Mozelle
Distinction : aucune
Date d'inscription : 15/03/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Dim 12 Avr 2009 - 17:05
Salut

Merci de m'aider ^^

Mais, je dois dire que ça a empirer la chose ^^

Maintenant, si je réussi a m'enfuir ça bloque comme avant, MAIS si je loupe l'évasion, alors tout bloque ^^ L'ATB de tout les persos (même monstres) reste figée.
MayDios
MayDios
Membre

Nombre de messages : 92
Localisation : Là, sous tes yeux.
Distinction : aucune
Date d'inscription : 21/12/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Dim 12 Avr 2009 - 17:12
Argh... Bon ben j'vais continuer les r'cherches hein, et j'vais bien finir par trouver...

Edit : Bah ouais, j'ai trouvé.

Voici le script remanié :

Spoiler:
Code:
#===============================================================
# ● [VX] ◦ Rapport de combat
#--------------------------------------------------------------
# ◦ Par  Blockade
# ◦ http://rpg-maker-vx.bbactif.com/forum.htm
# ◦ Crée le 06/04/2009
# ◦ Version 1.0
# ◦ Remerciment à Woratana, Moghunter
#--------------------------------------------------------------

module Config_Report
  # Si vous voulez la map actuelle en fond, lors de l'affichage du rapport de combat mettez true
  # Sinon pour un ecran noir mettez false
  Utiliser_background = true

end


#==============================================================================
# ** Scene_Report
#------------------------------------------------------------------------------
#  Scene qui gère le rapport de combat
#==============================================================================
class Scene_Report < Scene_Base
  def initialize(exp,gold,drop)
    @exp = exp
    @gold = gold
    @drop = drop
  end
  #--------------------------------------------------------------------------
  # * Commencement de la scene
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background if Config_Report::Utiliser_background == true
    create_command_window
    afficher_information
  end
 
  #--------------------------------------------------------------------------
  # * Crèe les fenêtres
  #--------------------------------------------------------------------------
  def create_command_window
    @help_window = Window_Help.new
    @heros_window = []
      y=55 ; i=0
      for actor in $game_party.members
        @heros_window[i] = Heros_Window.new(actor,y,@exp)
        y +=74; i += 1
      end
    @gold_exp_window = Gold_Exp_Window.new(@gold,@exp)
    @butin_window = Drop_Window.new(@drop)
  end
 
  #--------------------------------------------------------------------------
  # * Affiche les informations
  #--------------------------------------------------------------------------
  def afficher_information
    @help_window.set_text("Rapport de Combat",1)
  end
 

  #--------------------------------------------------------------------------
  # * Si on appuye sur entrée, revenir à la map
  #--------------------------------------------------------------------------
  def update
    super
    @help_window.update
    for i in 0...@heros_window.size
      @heros_window[i].update
    end
    if Input.trigger?(Input::C)
      @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
      $scene = Scene_Map.new
    end
    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,"Exp : " + exp.to_s)
    self.contents.draw_text(0,14,200,WLH,"Gils : " + 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
      @actor.gain_exp(@exp,false)
      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,"Niv. " + @actor.level.to_s)
  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,"Objets trouvés :")
      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,"Armures trouvées :")
      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,"Armes trouvées :")
      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,"Aucun objet trouvé.")
  end
 
#-------------------------------------------------------
#  Donne le drop à l'équipe
#------------------------------------------------------
  def donner_drop
    for item in @drop
      $game_party.gain_item(item, 1)
    end
  end

end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  Scene qui gère les combats
#==============================================================================
class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # * Processus de victoire
  #--------------------------------------------------------------------------
  def process_victory
    @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
  @exp =$game_troop.exp_total
  @gold = $game_troop.gold_total
  @drop = $game_troop.make_drop_items
  $scene = Scene_Report.new(@exp,@gold,@drop)
    battle_end(0)
  end
  #--------------------------------------------------------------------------
  # * Processus de fuite
  #--------------------------------------------------------------------------
  def process_escape
    @info_viewport.visible = false
    @message_window.visible = true
    text = sprintf(Vocab::EscapeStart, $game_party.name)
    $game_message.texts.push(text)
    if $game_troop.preemptive
      success = true
    else
      success = (rand(100) < @escape_ratio)
    end
    Sound.play_escape
    if success
      wait_for_message
  @exp =$game_troop.exp_total
  @gold = $game_troop.gold_total
  @drop = $game_troop.make_drop_items
  $scene = Scene_Report.new(@exp,@gold,@drop)
      battle_end(1)
    else
      @escape_ratio += 10
      $game_message.texts.push('\.' + Vocab::EscapeFailure)
      wait_for_message
      $game_party.clear_actions
      start_main
    end
  end

  #--------------------------------------------------------------------------
  # * Fin du combat
  #--------------------------------------------------------------------------
  def battle_end(result)
    if result == 2 and not $game_troop.can_lose
      call_gameover
    else
      $game_party.clear_actions
      $game_party.remove_states_battle
      $game_troop.clear
      if $game_temp.battle_proc != nil
        $game_temp.battle_proc.call(result)
        $game_temp.battle_proc = nil
      end
      unless $BTEST
        $game_temp.map_bgm.play
        $game_temp.map_bgs.play
      end
      @message_window.clear
    Graphics.fadeout(30)
    end
    $game_temp.in_battle = false
  end
 
    #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_info_viewport
    @message_window.dispose
    @spriteset.dispose
    unless $scene.is_a?(Scene_Gameover)
    $scene = Scene_Report.new(@exp,@gold,@drop) if $BTEST
    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

Quand vous fuirez, ça passera par le rapport de combat, mais aucun XP, Argent ou objet sera obtenu !
MayDios
MayDios
Membre

Nombre de messages : 92
Localisation : Là, sous tes yeux.
Distinction : aucune
Date d'inscription : 21/12/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Lun 13 Avr 2009 - 13:18
( Désolé pour le double post, mais sinon ça dépassait la limite autorisée.

Il est possible qu'avec l'ATB ( Nan au fait c'est même certain ) il y ait un bug lors de l'échec de la fuite, alors voici la version du script remanié uniquement pour l'ATB (1.1c )
(Oui oui c'est une manie de ramanié les script. )


Spoiler:
Code:
#===============================================================
# ● [VX] ◦ Rapport de combat
#--------------------------------------------------------------
# ◦ Par  Blockade
# ◦ http://rpg-maker-vx.bbactif.com/forum.htm
# ◦ Crée le 06/04/2009
# ◦ Version 1.0
# ◦ Remerciment à Woratana, Moghunter
# ◦ Compatiblisé pour l'ATB par Maydios
#--------------------------------------------------------------

module Config_Report
  # Si vous voulez la map actuelle en fond, lors de l'affichage du rapport de combat mettez true
  # Sinon pour un ecran noir mettez false
  Utiliser_background = true

end


#==============================================================================
# ** Scene_Report
#------------------------------------------------------------------------------
#  Scene qui gère le rapport de combat
#==============================================================================
class Scene_Report < Scene_Base
  def initialize(exp,gold,drop)
    @exp = exp
    @gold = gold
    @drop = drop
  end
  #--------------------------------------------------------------------------
  # * Commencement de la scene
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background if Config_Report::Utiliser_background == true
    create_command_window
    afficher_information
  end
 
  #--------------------------------------------------------------------------
  # * Crèe les fenêtres
  #--------------------------------------------------------------------------
  def create_command_window
    @help_window = Window_Help.new
    @heros_window = []
      y=55 ; i=0
      for actor in $game_party.members
        @heros_window[i] = Heros_Window.new(actor,y,@exp)
        y +=74; i += 1
      end
    @gold_exp_window = Gold_Exp_Window.new(@gold,@exp)
    @butin_window = Drop_Window.new(@drop)
  end
 
  #--------------------------------------------------------------------------
  # * Affiche les informations
  #--------------------------------------------------------------------------
  def afficher_information
    @help_window.set_text("Rapport de Combat",1)
  end
 

  #--------------------------------------------------------------------------
  # * Si on appuye sur entrée, revenir à la map
  #--------------------------------------------------------------------------
  def update
    super
    @help_window.update
    for i in 0...@heros_window.size
      @heros_window[i].update
    end
    if Input.trigger?(Input::C)
      @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
      $scene = Scene_Map.new
    end
    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,"Exp : " + exp.to_s)
    self.contents.draw_text(0,14,200,WLH,"Gils : " + 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
      @actor.gain_exp(@exp,false)
      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,"Niv. " + @actor.level.to_s)
  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,"Objets trouvés :")
      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,"Armures trouvées :")
      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,"Armes trouvées :")
      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,"Aucun objet trouvé.")
  end
 
#-------------------------------------------------------
#  Donne le drop à l'équipe
#------------------------------------------------------
  def donner_drop
    for item in @drop
      $game_party.gain_item(item, 1)
    end
  end

end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  Scene qui gère les combats
#==============================================================================
class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # * Processus de victoire
  #--------------------------------------------------------------------------
  def process_victory
    @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
  @exp =$game_troop.exp_total
  @gold = $game_troop.gold_total
  @drop = $game_troop.make_drop_items
  $scene = Scene_Report.new(@exp,@gold,@drop)
    battle_end(0)
  end
  #--------------------------------------------------------------------------
  # * Processus de fuite
  #--------------------------------------------------------------------------
  def process_escape
@escape = true
closed_window
@info_viewport.visible = false
@message_window.visible = true
text = sprintf(Vocab::EscapeStart, $game_party.name)
$game_message.texts.push(text)
if $game_troop.preemptive
success = true
else
success = (rand(100) < @escape_ratio)
end
Sound.play_escape
# 動けないアクターを除いて逃走成功アクション
if success
for actor in $game_party.members
unless actor.restriction >= 4
@spriteset.set_action(true, actor.index,actor.run_success)
end
end
wait_for_message
@judge = true
$game_troop.clear_actions
$game_party.clear_actions
  @exp =$game_troop.exp_total
  @gold = $game_troop.gold_total
  @drop = $game_troop.make_drop_items
  $scene = Scene_Report.new(@exp,@gold,@drop)
battle_end(1)
# 動けないアクターを除いて逃走失敗アクション
else
for actor in $game_party.members
unless actor.restriction >= 4
@spriteset.set_action(true, actor.index,actor.run_ng)
end
end
@escape_ratio += 10
$game_message.texts.push('\.' + Vocab::EscapeFailure)
wait_for_message
$game_party.clear_actions
end
reset_atb_actor
@info_viewport.visible = true
@escape = false
end

  #--------------------------------------------------------------------------
  # * Fin du combat
  #--------------------------------------------------------------------------
  def battle_end(result)
    if result == 2 and not $game_troop.can_lose
      call_gameover
    else
      $game_party.clear_actions
      $game_party.remove_states_battle
      $game_troop.clear
      if $game_temp.battle_proc != nil
        $game_temp.battle_proc.call(result)
        $game_temp.battle_proc = nil
      end
      unless $BTEST
        $game_temp.map_bgm.play
        $game_temp.map_bgs.play
      end
      @message_window.clear
    Graphics.fadeout(30)
    end
    $game_temp.in_battle = false
  end
 
    #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_info_viewport
    @message_window.dispose
    @spriteset.dispose
    unless $scene.is_a?(Scene_Gameover)
    $scene = Scene_Report.new(@exp,@gold,@drop) if $BTEST
    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
Drakild
Drakild
Membre

Nombre de messages : 103
Age : 40
Localisation : Mozelle
Distinction : aucune
Date d'inscription : 15/03/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Jeu 7 Mai 2009 - 16:54
Salut

J'ai effacer mon message pour éviter le double, donc je disait...

La fuite fonctionne maintenant, mais j'ai un autre soucis...

Je crois que c'est encore un bug d'incompatibilité avec le SBS3.3a

J'ai crée un combat qu'on ne peut pas gagner, donc quand le héro n'a pu de pv, le combat devrai s'arrêter et, de retour dans le donjon, le méchant devrais se mettre a parler.

Sans le rapport de combat tout marche mais avec, l'écran se fige noir et je peux rien faire.
J'ai essayer de voir dans le script, mais ma connaissance est encore trop faible. (Mon prof a pu trop le temps de m'apprendre Sad)

Si quelqu'un peut regarder ça....

Merci d'avance
Drakild
Drakild
Membre

Nombre de messages : 103
Age : 40
Localisation : Mozelle
Distinction : aucune
Date d'inscription : 15/03/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mar 19 Mai 2009 - 7:23
Je me permet de faire un petit up a mon problème car je ne trouve pas ce qui le fait bugguer.

Un gentil scripteur pourrais jeter un œil ?
SpikeLockart
SpikeLockart
Membre

Nombre de messages : 132
Distinction : aucune
Date d'inscription : 11/08/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Lun 17 Aoû 2009 - 21:11
Bonjour,
désolé de ce gros UP, mais je prefere poster à la source plutot que de re créer un sujet.
J'ai un problème avec le script, il m'affiche un message d'erreur.
Il faut savoir que c'est la 1ere fois que j'utilise un script et que je ne sais pas vraiment comment cela
fonctionne.
Il me dit une erreur en ligne 17:
https://redcdn.net/ihimizer/i/screenshot093w.jpg/

Voici mon code:
https://redcdn.net/ihimizer/i/screenshot094m.jpg/
SpikeLockart
SpikeLockart
Membre

Nombre de messages : 132
Distinction : aucune
Date d'inscription : 11/08/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mer 19 Aoû 2009 - 17:45
Personne ne répond? =(
Personne n'a le script?
Vraiment dommage je le trouvais très beau.
Sinon on m'a proposé de changé la valeur True, par False mais ca change rien.
Est-ce que ce script est compatible avec les combats normaux ou seulement avec les side battle script?
Moi je l'ai testé sur un tout nouvo projet en le copiant tel quel, je ne sais pas qi il faut changer des
paramètres au script =o

Bonne journée!
AnthO'
AnthO'
Membre

Nombre de messages : 2202
Age : 26
Localisation : Orléans
Distinction : Panda d'élite

[Wax Rolling Eyes]
Date d'inscription : 05/01/2008
http://anthonybourgouin.fr

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mer 19 Aoû 2009 - 17:55
Normalement ce script est compatible avec tous les systèmes de combats VX mais il peut arrivé qu'il y ai confrontation avec d'autres parties du script ou d'autres scripts ajoutés.
C'est tout ce que je peut te dire.
Les scripts c'est pas trop mon rayon.
SpikeLockart
SpikeLockart
Membre

Nombre de messages : 132
Distinction : aucune
Date d'inscription : 11/08/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mer 19 Aoû 2009 - 18:23
Ok merci beaucoup Antho.
dricc
dricc
Membre

Nombre de messages : 2757
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mer 19 Aoû 2009 - 18:49
On dirait que personne n'avait regardé ton probleme en effet , j'ai trouvé en 5 minutes ...
En fait , tu as mal recopié le code , il manque le début , c'est à dire ça :


#===============================================================
# ● [VX] ◦ Rapport de combat
#--------------------------------------------------------------
# ◦ Par Blockade
# ◦ http://rpg-maker-vx.bbactif.com/forum.htm
# ◦ Crée le 06/04/2009
# ◦ Version 1.0
# ◦ Remerciment à Woratana, Moghunter
#--------------------------------------------------------------

module Config_Report
# Si vous voulez la map actuelle en fond, lors de l'affichage du rapport de combat mettez true
# Sinon pour un ecran noir mettez false
Utiliser_background = true

end
SpikeLockart
SpikeLockart
Membre

Nombre de messages : 132
Distinction : aucune
Date d'inscription : 11/08/2009

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mer 19 Aoû 2009 - 19:50
Effectivement, réglé en 5min également Wink
Merci a toi.
Blockade
Blockade
Membre

Nombre de messages : 194
Age : 27
Distinction : aucune
Date d'inscription : 06/09/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Mar 1 Sep 2009 - 19:25
Mise a jour vers la version 3.5 !
Changements majeurs :
@Blockade a écrit:- Affiche l'XP avec une barre pour chaque héros
- Affiche le drop par catégorie d'objet (Objet simple, Armure, Arme)
- Regroupe les objets (Affiche x 3 si il y'a 3 potion par exemple)
- 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
]- Meilleur affichage des caractéristiques quand le héros gagne un niveau
- Affichage du temps de combat

Screenshots :
Rapport de combat v3 ! Screen1-be40fd5959

Rapport de combat v3 ! Screen2-06f521d51

Rapport de combat v3 ! Screen3-074056c972

Démo : http://www.megaupload.com/?d=0PNNH3T9

Enjoy =)
soul master
soul master
Membre

Nombre de messages : 83
Age : 29
Localisation : jeux video
Distinction : aucune
Date d'inscription : 14/01/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Jeu 5 Nov 2009 - 2:08
excuser moi pour le nécropost
mais j'aimerais avoir se script mais il est incompatible avec mon sbs j'utilise les scripts:

RPG Tankentai SBS + ATB Kaduki Eng
Save File Confirmation
Neo Save System
SephirothTDS gameover
Fade Out Victory Music After Battle
popup map
Credit
Title
Loading
Neo Message System 3.0
phs
KGC_OverDrive
Face Set dans les combats
Thomas_Edison_VX

mais le problème est que quand le combat commence il me met une erreur et ferme le tout
encore désoler pour le nécropost
Blockade
Blockade
Membre

Nombre de messages : 194
Age : 27
Distinction : aucune
Date d'inscription : 06/09/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Jeu 5 Nov 2009 - 21:50
Hum j'ai majé mon le rapport en version 3.6 !

http://www.megaupload.com/?d=SGUHF9XN

Essaye avec cette version pour voir (Met le en dessous des scripts du SBS)

P.S : A tu bien pris tout les scripts du SBS ?
soul master
soul master
Membre

Nombre de messages : 83
Age : 29
Localisation : jeux video
Distinction : aucune
Date d'inscription : 14/01/2008

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

le Jeu 5 Nov 2009 - 22:20
oui j'ai prie tout les script sbs les voici:

SBS Configurations (Kaduki)
Sideview 1 (3.3a)
Sideview 2 (3.3a)
ATB Configurations
ATB (1.1c)
Enemy Animated Battlers
Bubs' Bow Addon (K)
Guns Action Sequence (K)
NightWalker's Sample Skills
Default Scope Options Addon
Battle Background

donc je pense que j'ai tout du sbs non.
je vais l'essayer et je vais éditer si ça marche merci.

edit: non la il me met pas d'erreur mais il ne met pas le rapport de combat donc je sait meme pas si mon héro monte de niveau.
si tu veux je peux te passer mon projet ? tu verra par toi meme.
Contenu sponsorisé

Rapport de combat v3 ! Empty Re: Rapport de combat v3 !

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