Partagez
Aller en bas
avatar
legerag
Membre

Nombre de messages : 32
Age : 41
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013

Résolu [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Jeu 1 Aoû 2013 - 1:11
Bonsoir,

je voudrais remettre point de vie/mana aux max quand les perso lvl up. Je pense qu'il doit y avoir une option toute bête mais je la trouve pas. Une idée?

J'en profite aussi pour savoir si on peut afficher la barre de vie des monstre au dessus d'eux avec le système de combat. je me sert déjà de ce script pour modifier la fenêtre de combat.

Spoiler:

#==============================================================================
# ■ VXAce-RGSS3-10 フロントビュー改 [Ver.1.0.0]            by Claimh
#------------------------------------------------------------------------------
# ・戦闘画面を顔グラフィック表示に変更します。
# ・エネミー選択ウィンドウで残HPを表示します。
#==============================================================================


#==============================================================================
# ■ Window_BattleStatus
#==============================================================================
class Window_BattleStatus < Window_Selectable
 #--------------------------------------------------------------------------
 # ● HP/MP/TPの行の高さ取得
 #--------------------------------------------------------------------------
 def gauge_line_height
   return 16
 end
 #--------------------------------------------------------------------------
 # ● 桁数の取得
 #--------------------------------------------------------------------------
 def col_max
   return [item_max, 4].max
 end
 #--------------------------------------------------------------------------
 # ● 横に項目が並ぶときの空白の幅を取得
 #--------------------------------------------------------------------------
 def spacing
   return 0
 end
 #--------------------------------------------------------------------------
 # ● 項目を描画する矩形の取得
 #--------------------------------------------------------------------------
 def item_rect(index)
   rect = Rect.new
   rect.width = item_width
   rect.height = contents_height
   rect.x = index % col_max * (item_width + spacing)
   rect.y = index / col_max * contents_height
   rect
 end
 #--------------------------------------------------------------------------
 # ● 基本エリアの矩形を取得
 #--------------------------------------------------------------------------
 def basic_area_rect(index)
   rect = item_rect_for_text(index)
   rect.height -= gauge_area_height
   rect
 end
 #--------------------------------------------------------------------------
 # ● ゲージエリアの矩形を取得
 #--------------------------------------------------------------------------
 def gauge_area_rect(index)
   rect = item_rect_for_text(index)
   rect.y += contents_height - gauge_area_height - 8
   rect.height = gauge_area_height
   rect
 end
 #--------------------------------------------------------------------------
 # ● ゲージエリアの高さを取得
 #--------------------------------------------------------------------------
 def gauge_area_height
   return (gauge_line_height * ($data_system.opt_display_tp ? 3 : 2))
 end
 #--------------------------------------------------------------------------
 # ● 基本エリアの描画
 #--------------------------------------------------------------------------
 def draw_basic_area(rect, actor)
#    draw_actor_name(actor, rect.x, rect.y, 100)
   draw_actor_face(actor, rect.x, rect.y, !actor.dead?)
   draw_actor_icons(actor, rect.x, rect.y, rect.width+Cool
 end
 #--------------------------------------------------------------------------
 # ● ゲージエリアの描画(TP あり)
 #--------------------------------------------------------------------------
 def draw_gauge_area_with_tp(rect, actor)
   draw_actor_hp(actor, rect.x, rect.y + gauge_line_height * 0, rect.width)
   draw_actor_mp(actor, rect.x, rect.y + gauge_line_height * 1, rect.width)
   draw_actor_tp(actor, rect.x, rect.y + gauge_line_height * 2, rect.width)
 end
 #--------------------------------------------------------------------------
 # ● ゲージエリアの描画(TP なし)
 #--------------------------------------------------------------------------
 def draw_gauge_area_without_tp(rect, actor)
   draw_actor_hp(actor, rect.x, rect.y + gauge_line_height * 1, rect.width)
   draw_actor_mp(actor, rect.x, rect.y + gauge_line_height * 2, rect.width)
 end
end


#==============================================================================
# ■ Window_BattleEnemy
#==============================================================================
class Window_BattleEnemy < Window_Selectable
 #--------------------------------------------------------------------------
 # ● 項目の描画
 #--------------------------------------------------------------------------
 alias draw_item_fv draw_item
 def draw_item(index)
   draw_hp(index)
   draw_item_fv(index)
 end
 #--------------------------------------------------------------------------
 # ● HPの描画
 #--------------------------------------------------------------------------
 def draw_hp(index)
   rect = item_rect_for_text(index)
   w = rect.width - 60
   x = rect.x + 30
   hp = $game_troop.alive_members[index].hp_rate
   draw_gauge(x, rect.y, w, hp, hp_gauge_color1, hp_gauge_color2)
 end
end

D'avance merci.


Dernière édition par legerag le Lun 5 Aoû 2013 - 13:17, édité 1 fois
avatar
akais315
Membre

Nombre de messages : 79
Age : 23
Localisation : Belgique
Distinction : aucune
Date d'inscription : 27/07/2013

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Jeu 1 Aoû 2013 - 2:03
Bonsoir, pour les points de vie, je ne sais pas si une fonction in-game le permet, mais sinon, il y a ce script, qui est assez modulable(pourcentage/totalité, après bataille/level up).
ou celui-ci, tout simple, juste choix entre rendre tous les hp et restaurer les statuts ou laisser statuts tels quels.

Et pour la barre de vie, pas possible sans script il me semble, mais il y a de nombreux scripts qui le font et de plusieurs manières différentes:
celui-ci montre hp/mp/tp/statut des ennemis
ou encore celui-ci qui permet l'affichage des hp directement au dessus des ennemis, avec possibilités de grandes barres pour boss...
ou encore ici qui est un peu plus customisable.
Bref il y en a beaucoup Very Happy

En espérant t'avoir aidé Smile
avatar
legerag
Membre

Nombre de messages : 32
Age : 41
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Jeu 1 Aoû 2013 - 10:11
ok merci pour ta réponse je vais étudier tous ça Smile

edit : ce script m'irais bien mais c'est un format .rd. Je sais que c'est un fichier ruby mais je sais pas comment l'ouvrir ?
avatar
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 25
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' Smile]
Date d'inscription : 13/05/2009

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Jeu 1 Aoû 2013 - 11:40
C'est possible en event ;-) et en processus parallèle ^^

tu as besoin de deux variables par personnages : niveau actuel, niveau avant.

Lors de l'intro de ton jeu, tu initialise tout les variables "niveau avant" au niveau par défaut de ton personnage, sinon tu peux laisser à la valeur 0, mais c'est plus propre ^^

Ensuite tu fais un processus parrallèle :

Si niveau actuel différent de niveau avant :
remettre les pv du perso au max
remettre les pm du perso au max
niveau avant = niveau avant +1
sinon
rien
fin de condition
attendre 20 frames #l'attente est pas très utile mais elle permet d'alléger un peu ta machine car sinon elle fait le processus parallèle 60 fois par seconde, alors que là elle le fera que 3 fois par seconde, à la limite tu peux allonger l'attente encore si ta machine est pas très puissante, mais il ne faut pas que cela provoque des bugs comme si tu as pris plusieurs niveaux et que tu enclenche un nouveau combat avant qu'il est finis de boucler le système marchera mais en gros tu risque de ne pas avoir une barre de vie et de MP pleine Wink

Après pour remmetre les PV et les MP, soit tu as une option en évent toute prête pour cela soit tu passe par une variable ;-)

variable REZ = PV max du perso
ajouter REZ PV au perso
REZ = PM Max du perso
ajouter REZ PM au perso

Voilà, voilà, le système est robuste mais un peu gourmant, par contre en cas de série de combat dans une scène en évent, il faut l'appelé une fois après chaque combat car tu peux avoir couper les processus parallèle.
avatar
legerag
Membre

Nombre de messages : 32
Age : 41
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Jeu 1 Aoû 2013 - 19:34
Merci Balbereith pour ces infos.

Me reste juste le pb du script qui affiche les barre des ennemis au dessus de leur image qui est un .rd que je n'arrive pas a ouvrir.
avatar
brasegajames
Membre

Nombre de messages : 100
Age : 23
Localisation : Devant mon ordi!!!
Distinction : aucune
Date d'inscription : 19/12/2008

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Jeu 1 Aoû 2013 - 19:40
tu peux l'ouvrir comme un fichier .txt, avec un notepad, non?

Edit : ce lien dropbox : http://dl.dropboxusercontent.com/u/49701990/YEA/Enemy_HP_Bars.rb que tu veux utiliser, normalement, tu arrives dessus, t'as le code sous les yeux. Suffit de copier coller, non?
Sinon, je comprends pas ton problème.
avatar
legerag
Membre

Nombre de messages : 32
Age : 41
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Jeu 1 Aoû 2013 - 23:46
merci brasegajames c'était tous con en fait^^

bon ce script rentre en conflit avec un autre script il faut que je regarde si je peu résoudre ce probleme.
avatar
brasegajames
Membre

Nombre de messages : 100
Age : 23
Localisation : Devant mon ordi!!!
Distinction : aucune
Date d'inscription : 19/12/2008

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Jeu 1 Aoû 2013 - 23:48
Si tu peux nous dire avec quel script il entre en conflit, ou quel est le problème, on pourra t'aider Wink
avatar
legerag
Membre

Nombre de messages : 32
Age : 41
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Sam 3 Aoû 2013 - 23:59
Il rentre en conflit avec  le
script:
#=============================================================
# Battle Pop-Ups
# By Jet10985 (Jet)
#=================================================================
# This script will create and show pop-ups for multiple battle events such as
# hp/mp/tp loss and being inflicted with states.
# This script has: 25 customization options.
#=================================================================
# Overwritten Methods:
# None
#-------------------------------------------------------------------------------
# Aliased methods:
# Game_Actor: level_up, gain_exp
# Game_Battler: add_state
# Sprite_Battler: initialize, update, dispose, start_new_effect
#=================================================================

module Jet
 module BattlePopUps
   
   # This is the name of the font you want to use for pop-ups.
   POPUP_FONT = "Verdana"
   
   # The text and color shown when a character is knocked out (dies).
   KNOCKOUT_TEXT = "Knockout"
   KNOCKOUT_COLOR = Color.new(255, 167, 0)

   # The text and color shown when a character takes damage.
   # The actual damage is appended to the end.
   HURT_TEXT = "Damage +"
   HURT_COLOR = Color.new(255, 0, 0)
   HURT_TEXT_MP = "Mana -"
   HURT_COLOR_MP = Color.new(225, 30, 255)
   HURT_TEXT_TP = "Rage -"
   HURT_COLOR_TP = Color.new(225, 30, 35)
   
   # The text and color shown when a character heals health.
   # The actual health is appended to the end.
   HEAL_TEXT = "Heal +"
   HEAL_COLOR = Color.new(0, 255, 0)
   HEAL_TEXT_MP = "Mana +"
   HEAL_COLOR_MP = Color.new(35, 200, 255)
   HEAL_TEXT_TP = "Rage +"
   HEAL_COLOR_TP = Color.new(35, 35, 255)
   
   # The text and color shown when a character gains exp.
   # The actual exp is appended to the end.
   EXP_PLUS_TEXT = "EXP +"
   EXP_PLUS_COLOR = Color.new(167, 167, 0)
   
   # The text and color shown when an attack is critical.
   CRITICAL_TEXT = "Critical"
   CRITICAL_COLOR = Color.new(255, 106, 43)
   
   # The text and color shown when an attack misses.
   MISSED_TEXT = "Miss"
   MISS_COLOR = Color.new(45, 78, 99)
   
   # The text and color shown when an attack is evaded.
   EVADED_TEXT = "Evaded"
   EVADE_COLOR = Color.new(156, 187, 255)
     
   # The text, color, and animation shown when a character levels up.
   # For no animation, use 0.
   LEVEL_TEXT = "Level Up"
   LEVEL_COLOR = Color.new(167, 255, 52)
     
   # These are the colors used for displaying when a state is added.
   # It follows this format: state_id => Color.new(r, g, b)
   STATE_ADDED_COLORS = {
   
     2 => Color.new(128, 0, 255),
     3 => Color.new(128, 0, 255),
     4 => Color.new(128, 0, 255)
     
   }
   
   # This is the default state added color.
   STATE_ADDED_COLORS.default = Color.new(128, 0, 255)
   
 end
end

#=================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#=================================================================

($imported ||= {})[:jet] ||= {}
$imported[:jet][:BattlePopUps] = true

class Game_Actor
 
 alias jet4921_level_up level_up
 def level_up(*args, &block)
   jet4921_level_up(*args, &block)
   unless self.exp >= next_level_exp and next_level_exp > 0
     make_popup(Jet::BattlePopUps::LEVEL_TEXT, Jet::BattlePopUps::LEVEL_COLOR)
   end
 end
 
 alias jet1029_gain_exp gain_exp
 def gain_exp(exp)
   make_popup(Jet::BattlePopUps::EXP_PLUS_TEXT + exp.to_s, Jet::BattlePopUps::EXP_PLUS_COLOR)
   jet1029_gain_exp(exp)
 end
end

class Game_Battler
 
 alias jet8573_add_state add_state
 def add_state(sid)
   before = state?(sid)
   jet8573_add_state(sid)
   return if before == state?(sid)
   if sid == death_state_id
     make_popup(Jet::BattlePopUps::KNOCKOUT_TEXT, Jet::BattlePopUps::KNOCKOUT_COLOR)
   else
     make_popup("+#{$data_states[sid].name}", Jet::BattlePopUps::STATE_ADDED_COLORS[sid])
   end
 end
 
 def make_popup(text, color)
   return unless SceneManager.scene_is?(Scene_Battle)
   f = self.battle_sprite; return if f.nil?
   f.popups.unshift(Sprite_JetPopup.new(text.to_s, color, f)) if !f.nil?
 end
 
 def battle_sprite
   return nil unless SceneManager.scene_is?(Scene_Battle)
   SceneManager.scene.spriteset.battler_sprites.each {|a|
     return a if a.battler == self
   }
   return nil
 end
end

class Scene_Battle
 
 attr_reader :spriteset
 
end

class Sprite_JetPopup < Sprite_Base
 
 def initialize(text, color, obj)
   super(nil)
   @text = text
   @color = color
   @character = obj
   self.visible = false
   @y_prog = 0
   form_self
 end
 
 def form_self
   samp = Bitmap.new(1, 1)
   self.bitmap = Bitmap.new(samp.text_size(@text).width, 24)
   self.bitmap.font.color = @color
   self.bitmap.font.name = Jet::BattlePopUps::POPUP_FONT
   self.bitmap.draw_text(0, 0, self.bitmap.width, 24, @text)
   self.x = @character.x - (self.bitmap.width / 2)
   self.x += (@character.src_rect.width / 2) if @character.battler.actor?
   self.y = @character.battler.enemy? ? @character.y : (@character.y + @character.src_rect.height)
   self.y += @character.src_rect.height if @character.battler.actor?
   samp.dispose
 end
 
 def update
   super
   self.x = @character.x - (self.bitmap.width / 2)
   if $imported[:jet][:AnimatedBattlers]
     self.x += (@character.src_rect.width / 2) if @character.battler.actor?
   end
   self.y = @character.y - 16 - @y_prog
   if $imported[:jet][:AnimatedBattlers]
     self.y += @character.src_rect.height if @character.battler.actor?
   end
   @y_prog += 1
   self.opacity -= 2.125
   if self.opacity <= 0
     self.dispose
   end
 end
end

class Sprite_Battler
 
 attr_accessor :popups
     
 alias jet4758_initialize initialize
 def initialize(*args, &block)
   @popups = []
   @updating_sprites = []
   @popup_wait = 0
   jet4758_initialize(*args, &block)
 end
     
 alias jet7467_update update
 def update(*args, &block)
   jet7467_update(*args, &block)
   if @popup_wait == 0
     if !@popups.empty?
       @updating_sprites.push(@popups.pop)
       @popup_wait = 30
     end
   else
     @popup_wait -= 1
   end
   @updating_sprites.each {|a|
     a.visible = true if !a.visible
     a.update
     @updating_sprites.delete(a) if a.disposed?
   }
 end
 
 alias jet5483_dispose dispose
 def dispose(*args, &block)
   (@updating_sprites + @popups).each {|a| a.dispose }
   jet5483_dispose(*args, &block)
 end
 
 alias jet3745_setup_new_effect setup_new_effect
 def setup_new_effect(*args, &block)
   jet3745_setup_new_effect(*args, &block)
   do_sprite_popups
 end
 
 def make_popup(text, color)
   @popups.unshift(Sprite_JetPopup.new(text.to_s, color, self))
 end
 
 def do_sprite_popups
   return if @battler.nil?
   if @battler_struct.nil?
     @battler_struct = Struct.new(:hp, :mp, :tp).new(0, 0, 0)
     @battler_struct.hp = @battler.hp
     @battler_struct.mp = @battler.mp
     @battler_struct.tp = @battler.tp
   end
   check_success_popup
   check_hp_popup
   check_mp_popup
   check_tp_popup
 end
 
 def check_success_popup
   if @battler.result.success
     if @battler.result.critical
       make_popup(Jet::BattlePopUps::CRITICAL_TEXT, Jet::BattlePopUps::CRITICAL_COLOR)
     elsif @battler.result.missed
       make_popup(Jet::BattlePopUps::MISSED_TEXT, Jet::BattlePopUps::MISS_COLOR)
     elsif @battler.result.evaded
       make_popup(Jet::BattlePopUps::EVADED_TEXT, Jet::BattlePopUps::EVADE_COLOR)
     end
     @battler.result.clear_hit_flags
   end
 end
 
 def check_hp_popup
   if @battler_struct.hp != @battler.hp
     f = @battler_struct.hp - @battler.hp
     if f > 0
       make_popup(Jet::BattlePopUps::HURT_TEXT + f.to_s, Jet::BattlePopUps::HURT_COLOR)
     elsif f < 0
       make_popup(Jet::BattlePopUps::HEAL_TEXT + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR)
     end
     @battler_struct.hp = @battler.hp
   end
 end
 
 def check_mp_popup
   if @battler_struct.mp != @battler.mp
     f = @battler_struct.mp - @battler.mp
     if f > 0
       make_popup(Jet::BattlePopUps::HURT_TEXT_MP + f.to_s, Jet::BattlePopUps::HURT_COLOR_MP)
     elsif f < 0
       make_popup(Jet::BattlePopUps::HEAL_TEXT_MP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_MP)
     end
     @battler_struct.mp = @battler.mp
   end
 end
 
 def check_tp_popup
   if @battler_struct.tp != @battler.tp
     f = (@battler_struct.tp - @battler.tp).round
     if f > 0
       make_popup(Jet::BattlePopUps::HURT_TEXT_TP + f.to_s, Jet::BattlePopUps::HURT_COLOR_TP)
     elsif f < 0
       make_popup(Jet::BattlePopUps::HEAL_TEXT_TP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_TP)
     end
     @battler_struct.tp = @battler.tp
   end
 end
end
Battle Pop-Ups de Jet10985 (Jet) car je me sert de la rage pour mes attaques et le script Enemy hp  a besoin du module Ace_Battle_Engine qui modifie aussi les info combats. Moi j'ai juste besoin des barres HP/MP au dessus des ennemis.
avatar
brasegajames
Membre

Nombre de messages : 100
Age : 23
Localisation : Devant mon ordi!!!
Distinction : aucune
Date d'inscription : 19/12/2008

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Dim 4 Aoû 2013 - 0:37
De mémoire le jet battle popups ne fait que ce que fait le ace battle engine non? Vire le script de jet, et contente toi de ceux de Yanfly. Que j'utilise également d'ailleurs je dois l'avouer.

Sinon, si tu veux un ptit détail en plus ya un système sbs qui s'apparente bien au yea battle engine. C'est le symphoria battle system (je fais un peu de pub psk il est pas trop connu). Mais je trouve qu'il est vraiment facile à utiliser et vraiment personnalisable facilement.

http://symphonyan.org/battle-symphony-introduction/
avatar
legerag
Membre

Nombre de messages : 32
Age : 41
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

le Lun 5 Aoû 2013 - 13:16
Merci, je vais faire avec Smile
Contenu sponsorisé

Résolu Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.

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