- legeragMembre
- Nombre de messages : 32
Age : 47
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013
[Résolu]Remettre point de vie/mana aux max quand lvl up.
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.
D'avance merci.
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+
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.
- akais315Membre
- Nombre de messages : 79
Age : 29
Localisation : Belgique
Distinction : aucune
Date d'inscription : 27/07/2013
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
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
En espérant t'avoir aidé
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
En espérant t'avoir aidé
- legeragMembre
- Nombre de messages : 32
Age : 47
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
Jeu 1 Aoû 2013 - 10:11
ok merci pour ta réponse je vais étudier tous ça
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 ?
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 ?
- BalbereithStaffeux retraité
- Nombre de messages : 4129
Age : 31
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' ]
Date d'inscription : 13/05/2009
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
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
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.
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
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.
- legeragMembre
- Nombre de messages : 32
Age : 47
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
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.
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.
- brasegajamesMembre
- Nombre de messages : 100
Age : 29
Localisation : Devant mon ordi!!!
Distinction : aucune
Date d'inscription : 19/12/2008
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
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.
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.
- legeragMembre
- Nombre de messages : 32
Age : 47
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
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.
bon ce script rentre en conflit avec un autre script il faut que je regarde si je peu résoudre ce probleme.
- brasegajamesMembre
- Nombre de messages : 100
Age : 29
Localisation : Devant mon ordi!!!
Distinction : aucune
Date d'inscription : 19/12/2008
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
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
- legeragMembre
- Nombre de messages : 32
Age : 47
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
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
- brasegajamesMembre
- Nombre de messages : 100
Age : 29
Localisation : Devant mon ordi!!!
Distinction : aucune
Date d'inscription : 19/12/2008
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
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/
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/
- legeragMembre
- Nombre de messages : 32
Age : 47
Localisation : Puy de Dome
Distinction : aucune
Date d'inscription : 08/03/2013
Re: [Résolu]Remettre point de vie/mana aux max quand lvl up.
Lun 5 Aoû 2013 - 13:16
Merci, je vais faire avec
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|