Menu

Connexion



Retenir ?

Mot de passe oublié ?
Eclipso logo
Merry Christmas !
07/08/2020 06:43:34

Everydayyyyy, Girl's Day ! - Bibi/Ssozi

Rpg maker vx ace : Barre pour ennemis Help !

Nana

Expert
Nana
  • Messages : 1066

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 12h26

Bonjour à tous !
Tout d'abord je suis désolé si je ne poste pas dans la bonne partie du forum.

Voila mon "problème": j'aimerais inséré des barres de vie sous mes ennemis, j'ai déjà trouvé pas mal de script permettant de le faire mais elle sont soit trop grosses à mon gout, soit pas dans le style que je recherche. ( Je précise que je suis sur RM vx ace, et que j'utilise un combat vue de coté " symphony ". )
Je pense que l'on peut customisé ses barres de vie sous certains scripts mais je ne sais pas comment modifié celle par défaut.

Je vous poste ci dessous une image de ce que je voudrais à peut près :

Spoiler


Voila si quelqu'un peut m'aider à réaliser ceci je lui en serais très reconnaissante !
Je vous remercie d'avance !

KuroFidy

Grand Maître
KuroFidy
  • Messages : 3782

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 12h39

Ne t'inquiètes pas, tu es dans la bonne section

Tu les trouves grosses? O.o Moi je ne trouve pas ça dérangeant personnellement x)
Je ne suis pas spécialiste sur VX Ace, mais je pense que poster le script en question, et dire où se trouve la config des barres nous serait plus utile

Sinon attend LightNox qui se débrouille dedans

PS: tu as écrit "axe" dans ton titre xD
Plus t'en met, plus t'en as!

Nana

Expert
Nana
  • Messages : 1066

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 12h45

Merci pour ta réponse si rapide !

Oui je les trouve grosses Oo! ( celle que j'ai moi )
Ou alors de taille normal mais pas trop comme je les voudrais.
( Sur l'image que j'ai posté c'est ce à quoi je m'attends, ce que je voudrais, les script que j'ai font des barres trop "banale". )
J'ai du mal m'exprimer, désolé ^^

Je vous posterais les scripts en question après manger ^^

ps: Sérieusement j'ai mit axe... qu'elle idiote Je modifie ça ^^

RitoJS

6307
RitoJS
  • Messages : 6307

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 12h48

xD
Non kuro, elle cherche le script justement.
Ça tombe bien, je suis justement en train de personnalisé mes hud. (passer toute la soirée pour retrouver le script.)
Je fais des test et je t'envoi le lien.





Merci à Maki et KuroFidy pour ces cadeaux:

Spoiler



KuroFidy

Grand Maître
KuroFidy
  • Messages : 3782

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 12h49

Ah mince c'est moi qui ai mal lu en effet ^^"
Bon bah Rito est ton messie

Nana

Expert
Nana
  • Messages : 1066

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 12h52

Super Rito, merci beaucoup !

RitoJS

6307
RitoJS
  • Messages : 6307

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 14h08

Bon, ça risque de prendre un peu plus de temps que prévu.
Le script de Yami rentre en conflit avec celui des hud. Je vais voir ce que je peux faire.





Merci à Maki et KuroFidy pour ces cadeaux:

Spoiler



RitoJS

6307
RitoJS
  • Messages : 6307

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 14h47

AAaargh ! J'abandonne !
Le battle symphony utilise une autre méthode que les scripts habituelle, impossible de bien le configurer sans un minimum de connaissance...
Il y a toujours un moyen d'avoir ce que tu veux ceci dit, mais ce sera moins bon que l'autre.
Là aussi, je fais des test et je te passe la méthode et le script.





Merci à Maki et KuroFidy pour ces cadeaux:

Spoiler



Nana

Expert
Nana
  • Messages : 1066

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 14h53

T'embetes pas autant Rito ^^

C'est gentil de vouloir m'aidé

Anonyme

8015
Anonyme
  • Messages : 8015

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 15h29

Citation de "RitoJS" :
AAaargh ! J'abandonne !
Le battle symphony utilise une autre méthode que les scripts habituelle, impossible de bien le configurer sans un minimum de connaissance...
Il y a toujours un moyen d'avoir ce que tu veux ceci dit, mais ce sera moins bon que l'autre.
Là aussi, je fais des test et je te passe la méthode et le script.


C'est quoi le message d'erreur, bon je n'ai pas VX Ace, mais Lightnox peu surement y faire quelque chose.

RitoJS

6307
RitoJS
  • Messages : 6307

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 16h27

Garruk, il n'y a aucun message d'erreur. C'est clairement un bug avec les images.

Sinon voilà:


Ce qu'il faut faire:
Prendre ce script:

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆ Draw Generic Gauge - KMS_GenericGauge ◆ VX Ace ◆
#_/ ◇ Last update : 2012/01/15 (TOMY@Kamesoft) ◇
#_/ ◇ Website: http://ytomy.sakura.ne.jp/ ◇
#_/ ◇ Translated by Mr. Bubble ◇
#_/----------------------------------------------------------------------------
#_/ Provides groundwork code for simple image-based gauges.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
# This script provides groundwork code for simple gauge graphics based
# off images placed in the Graphics/System folder. By default, this script
# provides gauges for HP, MP, TP, and EXP.
#
# Scripters can utilize their own Generic Gauge for their
# own use. See the "Notes to Scripters" section below the customization
# section.
#----------------------------------------------------------------------------
# !! WARNING !!
# If an error pops up saying "wrong number of arguments",
# please post in the topic you got this script in and ask for a
# compatibility patch with the other custom script you're trying to
# use.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ BEGIN Setting ★
#==============================================================================

module KMS_GenericGauge
# * Gauge File Names
# Images must be placed in the "Graphics/System" folder of your project
HP_IMAGE = "GaugeHP" # HP
MP_IMAGE = "GaugeMP" # MP
TP_IMAGE = "GaugeTP" # TP
EXP_IMAGE = "GaugeEXP" # EXP

# * Gauge Position Offset [x, y]
HP_OFFSET = [-23, -2] # HP
MP_OFFSET = [-23, -2] # MP
TP_OFFSET = [-23, -2] # TP
EXP_OFFSET = [-23, -2] # EXP

# * Gauge Length Adjustment
HP_LENGTH = -4 # HP
MP_LENGTH = -4 # MP
TP_LENGTH = -4 # TP
EXP_LENGTH = -4 # EXP

# * Gauge Slope
# Must be between -89 ~ 89 degrees
HP_SLOPE = 30 # HP
MP_SLOPE = 30 # MP
TP_SLOPE = 30 # TP
EXP_SLOPE = 30 # EXP
end

#==============================================================================
# ☆ END Setting ☆
#==============================================================================

$kms_imported = {} if $kms_imported == nil
$kms_imported["GenericGauge"] = true

# *****************************************************************************

#--------------------------------------------------------------------------
# Notes to Scripters
#--------------------------------------------------------------------------
# Drawing your own custom gauge within a window can be done by using a single
# method:
#
# draw_gauge(file, x, y, width, rate, offset, len_offset,
# slope, gauge_type = :normal)
#
# ++ Draw Generic Gauge Arguments
# file : Gauge image filename
# x, y : x, y draw coordinates
# width : Gauge width
# rate : Gauge fill ratio (0.0 ~ 1.0)
# offset : Gauge coordinate adjustment [x, y]
# len_offset : Length Adjustment
# slope : Gauge slope degree (-89~89)
# gauge_type : Gauge type ( :normal , :decrease , :increase )
#--------------------------------------------------------------------------
# gauge_type determines how the gauge fills depending on the current
# value of the gauge.
#--------------------------------------------------------------------------
# This script overwrites Window_Base#draw_gauge and adds 2 extra args
# which will cause compatibility issues with other scripts that uses
# the default draw_gauge method and args.
#--------------------------------------------------------------------------

#==============================================================================
# ■ Bitmap
#==============================================================================

unless $kms_imported["BitmapExtension"]
class Bitmap
#--------------------------------------------------------------------------
# ○ 平行四辺形転送
#--------------------------------------------------------------------------
def skew_blt(x, y, src_bitmap, src_rect, slope, opacity = 255)
slope = [[slope, -90].max, 90].min
sh = src_rect.height
off = sh / Math.tan(Math::PI * (90 - slope.abs) / 180.0)
if slope >= 0
dx = x + off.round
diff = -off / sh
else
dx = x
diff = off / sh
end
rect = Rect.new(src_rect.x, src_rect.y, src_rect.width, 1)

sh.times { |i|
blt(dx + (diff * i).round, y + i, src_bitmap, rect, opacity)
rect.y += 1
}
end
end
end

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ○ 現在のレベルから次のレベルまでの全必要経験値取得
#--------------------------------------------------------------------------
def next_level_exp_full
return next_level_exp - current_level_exp
end
#--------------------------------------------------------------------------
# ○ 次のレベルまでの残り経験値取得
#--------------------------------------------------------------------------
def next_level_exp_rest
return next_level_exp - exp
end
#--------------------------------------------------------------------------
# ○ 次のレベルまでの経験値取得率取得
#--------------------------------------------------------------------------
def exp_rate
diff = [next_level_exp_full, 1].max
rest = [next_level_exp_rest, 1].max
return (diff - rest) * 1.0 / diff
end
end

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window
#--------------------------------------------------------------------------
# ○ 定数
#--------------------------------------------------------------------------
# ゲージ転送元座標 [x, y]
GAUGE_SRC_POS = {
:normal => [ 0, 24],
:decrease => [ 0, 48],
:increase => [72, 48],
}
#--------------------------------------------------------------------------
# ○ クラス変数
#--------------------------------------------------------------------------
@@__gauge_buf = Bitmap.new(320, 24)
#--------------------------------------------------------------------------
# ○ ゲージ描画
# file : ゲージ画像ファイル名
# x, y : 描画先 X, Y 座標
# width : 幅
# ratio : 割合
# offset : 座標調整 [x, y]
# len_offset : 長さ調整
# slope : 傾き
# gauge_type : ゲージタイプ
#--------------------------------------------------------------------------
def draw_gauge(file, x, y, width, ratio, offset, len_offset, slope,
gauge_type = :normal)
img = Cache.system(file)
x += offset[0]
y += offset[1]
width += len_offset
draw_gauge_base(img, x, y, width, slope)
gw = (width * ratio).to_i
draw_gauge_bar(img, x, y, width, gw, slope, GAUGE_SRC_POS[gauge_type]
end
#--------------------------------------------------------------------------
# ○ ゲージベース描画
# img : ゲージ画像
# x, y : 描画先 X, Y 座標
# width : 幅
# slope : 傾き
#--------------------------------------------------------------------------
def draw_gauge_base(img, x, y, width, slope)
rect = Rect.new(0, 0, 24, 24)
if slope != 0
contents.skew_blt(x, y, img, rect, slope)
rect.x = 96
contents.skew_blt(x + width + 24, y, img, rect, slope)

rect.x = 24
rect.width = 72
dest_rect = Rect.new(0, 0, width, 24)
@@__gauge_buf.clear
@@__gauge_buf.stretch_blt(dest_rect, img, rect)
contents.skew_blt(x + 24, y, @@__gauge_buf, dest_rect, slope)
else
contents.blt(x, y, img, rect)
rect.x = 96
contents.blt(x + width + 24, y, img, rect)
rect.x = 24
rect.width = 72
dest_rect = Rect.new(x + 24, y, width, 24)
contents.stretch_blt(dest_rect, img, rect)
end
end
#--------------------------------------------------------------------------
# ○ ゲージ内部描画
# img : ゲージ画像
# x, y : 描画先 X, Y 座標
# width : 全体幅
# gw : 内部幅
# slope : 傾き
# src_pos : 転送元座標 [x, y]
# start : 開始位置
#--------------------------------------------------------------------------
def draw_gauge_bar(img, x, y, width, gw, slope, src_pos, start = 0)
rect = Rect.new(src_pos[0], src_pos[1], 72, 24)
dest_rect = Rect.new(0, 0, width, 24)
@@__gauge_buf.clear
@@__gauge_buf.stretch_blt(dest_rect, img, rect)
dest_rect.x = start
dest_rect.width = gw
x += start
if slope != 0
contents.skew_blt(x + 24, y, @@__gauge_buf, dest_rect, slope)
else
contents.blt(x + 24, y, @@__gauge_buf, dest_rect)
end
end
#--------------------------------------------------------------------------
# ● HP の描画
#--------------------------------------------------------------------------
def draw_actor_hp(actor, x, y, width = 124)
draw_actor_hp_gauge(actor, x, y, width)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::hp_a)
draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,
hp_color(actor), normal_color)
end
#--------------------------------------------------------------------------
# ● MP の描画
#--------------------------------------------------------------------------
def draw_actor_mp(actor, x, y, width = 124)
draw_actor_mp_gauge(actor, x, y, width)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::mp_a)
draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
mp_color(actor), normal_color)
end
#--------------------------------------------------------------------------
# ● TP の描画
#--------------------------------------------------------------------------
def draw_actor_tp(actor, x, y, width = 124)
draw_actor_tp_gauge(actor, x, y, width)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::tp_a)
change_color(tp_color(actor))
draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i, 2)
end
#--------------------------------------------------------------------------
# ○ HP ゲージの描画
# actor : アクター
# x, y : 描画先 X, Y 座標
# width : 幅
#--------------------------------------------------------------------------
def draw_actor_hp_gauge(actor, x, y, width = 120)
draw_gauge(KMS_GenericGauge::HP_IMAGE,
x, y, width, actor.hp_rate,
KMS_GenericGauge::HP_OFFSET,
KMS_GenericGauge::HP_LENGTH,
KMS_GenericGauge::HP_SLOPE
)
end
#--------------------------------------------------------------------------
# ○ MP ゲージの描画
# actor : アクター
# x, y : 描画先 X, Y 座標
# width : 幅
#--------------------------------------------------------------------------
def draw_actor_mp_gauge(actor, x, y, width = 120)
draw_gauge(KMS_GenericGauge::MP_IMAGE,
x, y, width, actor.mp_rate,
KMS_GenericGauge::MP_OFFSET,
KMS_GenericGauge::MP_LENGTH,
KMS_GenericGauge::MP_SLOPE
)
end
#--------------------------------------------------------------------------
# ○ TP ゲージの描画
# actor : アクター
# x, y : 描画先 X, Y 座標
# width : 幅
#--------------------------------------------------------------------------
def draw_actor_tp_gauge(actor, x, y, width = 120)
draw_gauge(KMS_GenericGauge::TP_IMAGE,
x, y, width, actor.tp_rate,
KMS_GenericGauge::TP_OFFSET,
KMS_GenericGauge::TP_LENGTH,
KMS_GenericGauge::TP_SLOPE
)
end
#--------------------------------------------------------------------------
# ○ Exp の描画
# actor : アクター
# x, y : 描画先 X, Y 座標
# width : 幅
#--------------------------------------------------------------------------
def draw_actor_exp(actor, x, y, width = 180)
str = actor.max_level? ? "-------" : actor.exp
change_color(normal_color)
draw_text(x, y, width, line_height, str, 2)
end
#--------------------------------------------------------------------------
# ○ NextExp の描画
# actor : アクター
# x, y : 描画先 X, Y 座標
# width : 幅
#--------------------------------------------------------------------------
def draw_actor_next_exp(actor, x, y, width = 180)
draw_actor_exp_gauge(actor, x, y, width)

str = actor.max_level? ? "-------" : actor.next_level_exp_rest
change_color(normal_color)
draw_text(x, y, width, line_height, str, 2)
end
#--------------------------------------------------------------------------
# ○ Exp ゲージの描画
# actor : アクター
# x, y : 描画先 X, Y 座標
# width : 幅
#--------------------------------------------------------------------------
def draw_actor_exp_gauge(actor, x, y, width = 180)
draw_gauge(KMS_GenericGauge::EXP_IMAGE,
x, y, width, actor.exp_rate,
KMS_GenericGauge::EXP_OFFSET,
KMS_GenericGauge::EXP_LENGTH,
KMS_GenericGauge::EXP_SLOPE
)
end
end

#==============================================================================
# ■ Window_Status
#==============================================================================

class Window_Status < Window_Selectable
#--------------------------------------------------------------------------
# ● 経験値情報の描画
#--------------------------------------------------------------------------
def draw_exp_info(x, y)
s_next = sprintf(Vocab::ExpNext, Vocab::level)
change_color(system_color)
draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
draw_text(x, y + line_height * 2, 180, line_height, s_next)
change_color(normal_color)
draw_actor_exp( @actor, x, y + line_height * 1)
draw_actor_next_exp(@actor, x, y + line_height * 3)
end
end

Prendre ces images:





La dernière image est un repère si un jours tu voudras personnalisé ces jauges.
Ces images sont a placer dans le dossier graphics/System de ton projet.

Pour avoir des cadres à la place des nom, rajoute ce script:
class Window_BattleStatus
def draw_actor_name(actor, x, y, width)
contents.blt(x, y, Cache.picture(actor.name), Rect.new(0,0,width,line_height))
end
end

Ensuite tu as juste faire tes images et les placer dans le dossier graphic/pictures de ton projet.
Ces images doivent avoir le nom de tes héros(ex: sur mon screen, le premier personnage s'appelle Kilik. J'ai donc nommé l'image "Kilik".)

Pour enlever le window skin en combat, dans le Window_BattleStatus à partir de la ligne 15, rajoute ça:
self.openness = 0
self.opacity = 0


Voilà !

Après si on veut plus personnaliser les hud, on peut le faire directement sur le battleback (ou il y a moyen de faire sur un script, je verrais plus tard), je te ferais un screen quand j'aurais terminer.





Merci à Maki et KuroFidy pour ces cadeaux:

Spoiler



Nana

Expert
Nana
  • Messages : 1066

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 17h06

Merci beaucoup Rito de m'avoir consacrer du temps !
Ca va énormément m'aider pour pouvoir avancer

Anonyme

8015
Anonyme
  • Messages : 8015

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 18h05

Citation de "RitoJS" :
Garruk, il n'y a aucun message d'erreur. C'est clairement un bug avec les images.


Autant pour moi. ><
Merci pour ton aide je t'ajoute des ... non rien.

RitoJS

6307
RitoJS
  • Messages : 6307

Rpg maker vx ace : Barre pour ennemis Help !


mer. 22 mai 2013 - 18h07

C'est plus facile quand c'est un membre du staff hein.

Nana=> De rien.





Merci à Maki et KuroFidy pour ces cadeaux:

Spoiler



Brandobscure

Elite
Brandobscure
  • Messages : 652

Rpg maker vx ace : Barre pour ennemis Help !


sam. 25 mai 2013 - 14h01

Oh, Intéressant ton script Rito.
Est ce que je peu l'utiliser ?
car je n'aime pas les barre de vie du script de Yami.

Edit :

Ah non ça vas. ^^



Abonne toi et écoute mes musiques que j'ai composé moi-même par ici :
https://soundcloud.com/brandobscure
Ou même t'abonner si tu aime.
Et tu a intérêt sinon je te donne un coup de fouet.


_____________________________________________________
Je soutien :

Spoiler