Partagez
Aller en bas
jbdfjojo
jbdfjojo
Membre

Nombre de messages : 383
Age : 31
Localisation : Toulon ( 83 var )
Distinction : aucune
Date d'inscription : 19/04/2015
http://jbdfjojo.esy.es/index.php

vie sur les monstre vx ace  Empty vie sur les monstre vx ace

le Mer 22 Avr 2015 - 13:57
salut a tous j ai crée un system de vie pour les monstre si ca vous dit Smile Smile

pour l installer insérer les script dans materials au dessus de main.
dite moi ce que vous en dite

vie sur les monstre vx ace  Captur10


Spoiler:

Code:
#
#create by jbdfjojo
#rpg maker vx ace
#
module EHUD
#choisir ou de ne pas faire l'arrière-plan apparaît
WINDOW_BACK = false
#Nombre, De choisir la durée d'attente entre les attaques
#Recommandé 4-6
WINDOW_WAIT = 5
#La valeur Y de la fenêtre. Recommandé 20
WINDOW_Y = 20

#Decides Que ce soit ou de ne pas afficher les numéros HP / etc / etc.
# 0 Normal signifie (nom HP, actuelle et max hp)
# 1 signifie caché max hp
# 2 signifie simplement la barre
DRAW_HP_NUMBERS = 0

#taille barre de l'ennemie  def:475
NEO_ULTIMATE_ACE = false
BOSS_GAUGE = 475
BOSS_ENEMY = [] #ne pas toucher
BOSS_ENEMY[1] = true

end

class Game_Enemy < Game_Battler
alias shaz_enemyhud_initialize initialize

# ------------------------------------------------- -------------------------
# * Variables d'instance publique
# ------------------------------------------------- -------------------------
attr_accessor :old_hp # hp on last hud refresh
attr_accessor :old_mp # mp on last hud refresh

# ------------------------------------------------- -------------------------
# * Objet initialisation
# ------------------------------------------------- -------------------------

def initialize(index, enemy_id)
shaz_enemyhud_initialize(index, enemy_id)
@old_hp = mhp
@old_mp = mmp
end
end

class Window_Enemy_Hud < Window_Base
################################################## #################
#Sets Jusqu'à ce qui apparaît dans le HUD
#questions noms et HUD, puis affiche Them
################################################## ###############
#set Jusqu'à démarrage de la fenêtre
def initialize
#Fenêtre
super(0,EHUD::WINDOW_Y,545,120)
if EHUD::WINDOW_BACK == false
self.opacity = 0
end
self.z = 0
@x, @y = 0, 50
troop_fix
if EHUD::BOSS_ENEMY[@enemy1.enemy_id] != nil and EHUD::BOSS_ENEMY[@enemy1.enemy_id] == true
@boss_troop = true
@boss_enemy = @enemy1
else
@boss_troop = false
@boss_enemy = nil
end
enemy_hud
refresh
end



if EHUD::DRAW_HP_NUMBERS == 1
if EHUD::NEO_ULTIMATE_ACE == false
def draw_actor_hp(actor, x, y, width = 124)
draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::hp_a)
change_color(hp_color(actor))
draw_text(x, y, width, line_height, actor.hp)
change_color(system_color)
end
else
def draw_actor_hp(actor, x, y, width = 124)
gwidth = width * actor.hp / actor.mhp
cg = neo_gauge_back_color
c1, c2, c3 = cg[0], cg[1], cg[2]
draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 +
HPMP_GAUGE_Y_PLUS, width, HPMP_GAUGE_HEIGHT, c1, c2, c3)
(1..3).each {|i| eval("c#{i} = HP_GCOLOR_#{i}")}
draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 +
HPMP_GAUGE_Y_PLUS, gwidth, HPMP_GAUGE_HEIGHT, c1, c2, c3, false, false,
width, 30)
draw_text(x, y, 30, line_height, Vocab::hp_a)
change_color(hp_color(actor))
draw_text(x, y, width, line_height, actor.hp)
change_color(system_color)

end
end
end

if EHUD::DRAW_HP_NUMBERS == 2
if EHUD::NEO_ULTIMATE_ACE == false
def draw_actor_hp(actor, x, y, width = 124)
draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
end
else
def draw_actor_hp(actor, x, y, width = 124)
gwidth = width * actor.hp / actor.mhp
cg = neo_gauge_back_color
c1, c2, c3 = cg[0], cg[1], cg[2]
draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 +
HPMP_GAUGE_Y_PLUS, width, HPMP_GAUGE_HEIGHT, c1, c2, c3)
(1..3).each {|i| eval("c#{i} = HP_GCOLOR_#{i}")}
draw_neo_gauge(x + HPMP_GAUGE_X_PLUS, y + line_height - 8 +
HPMP_GAUGE_Y_PLUS, gwidth, HPMP_GAUGE_HEIGHT, c1, c2, c3, false, false,
width, 30)
end
end
end


def troop_fix
if $game_troop.alive_members.size > 0
@enemy1 = $game_troop.alive_members[0]
end
if $game_troop.alive_members.size > 1
@enemy2 = $game_troop.alive_members[1]
end
if $game_troop.alive_members.size > 2
@enemy3 = $game_troop.alive_members[2]
end
if $game_troop.alive_members.size > 3
@enemy4 = $game_troop.alive_members[3]
end
if $game_troop.alive_members.size > 4
@enemy5 = $game_troop.alive_members[4]
end
if $game_troop.alive_members.size > 5
@enemy6 = $game_troop.alive_members[5]
end
if $game_troop.alive_members.size > 6
@enemy7 = $game_troop.alive_members[6]
end
if $game_troop.alive_members.size > 7
@enemy8 = $game_troop.alive_members[7]
end
end

def enemy_hud
troop_fix
if $game_troop.alive_members.size > 0
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy1,10,0)
draw_actor_hp(@enemy1,10,20,width=EHUD::BOSS_GAUGE)
else
draw_actor_name(@enemy1,10,0)
draw_actor_hp(@enemy1,10,20,width=96)
end
end
if $game_troop.alive_members.size > 1
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy2,10,50)
draw_actor_hp(@enemy2,10,70,width=96)
else
draw_actor_name(@enemy2,10+125,0)
draw_actor_hp(@enemy2,10+125,20,width=96)
end
end
if $game_troop.alive_members.size > 2
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy3,10+125,50)
draw_actor_hp(@enemy3,10+125,70,width=96)
else
draw_actor_name(@enemy3,10+250,0)
draw_actor_hp(@enemy3,10+250,20,width=96)
end
end
if $game_troop.alive_members.size > 3
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy4,10+250,50)
draw_actor_hp(@enemy4,10+250,70,width=96)
else
draw_actor_name(@enemy4,10+375,0)
draw_actor_hp(@enemy4,10+375,20,width=96)
end
end
if $game_troop.alive_members.size > 4
if @boss_troop == true and @boss_enemy.enemy_id == @enemy1.enemy_id
draw_actor_name(@enemy5,10+375,50)
draw_actor_hp(@enemy5,10+375,70,width=96)
else
draw_actor_name(@enemy5,10,50)
draw_actor_hp(@enemy5,10,70,width=96)
end
end
if $game_troop.alive_members.size > 5
if @boss_troop == false
draw_actor_name(@enemy6,10+125,50)
draw_actor_hp(@enemy6,10+125,70,width=96)
end
end
if $game_troop.alive_members.size > 6
if @boss_troop == false
draw_actor_name(@enemy7,10+250,50)
draw_actor_hp(@enemy7,10+250,70,width=96)
end
end
if $game_troop.alive_members.size > 7
if @boss_troop == false
draw_actor_name(@enemy8,10+375,50)
draw_actor_hp(@enemy8,10+375,70,width=96)
end
end
end

def refresh
contents.clear
enemy_hud
@old_size = $game_troop.alive_members.size
if @old_size < 5 and @boss_troop == false
self.height = 80
end
end

# Suppose l'actualisation nécessaire
def update
refresh_okay = false

# Boucle à travers restants ennemis un à la fois - chaque ennemi est mis dans la variable temporaire appelé «l'ennemi»
$game_troop.alive_members.each do |enemy|

# Avez HP ou MP changé depuis la dernière fois?
if enemy.hp != enemy.old_hp || enemy.mp != enemy.old_mp

# La nécessité de mettre à jour vie enemy
refresh_okay = true

# Et remplacer les anciennes valeurs avec les valeurs actuelles
enemy.old_hp = enemy.hp
enemy.old_mp = enemy.mp
end
end

if $game_troop.alive_members.size != @old_size
refresh_okay = true
end
if @boss_enemy != nil
if @enemy1.enemy_id == @boss_enemy.enemy_id
@boss_troop = true
else
@boss_troop = false
end
end

if refresh_okay
refresh
end
end

end

class Window_BattleLog
alias enemy_hud_battle_log_wait wait_and_clear
def wait_and_clear
wait while @num_wait < EHUD::WINDOW_WAIT if line_number > 0
clear
end
end

class Scene_Battle < Scene_Base
alias original_create_all_windows create_all_windows
def create_all_windows
original_create_all_windows
create_enemy_hud_window
end
def create_enemy_hud_window
@enemy_hud_window = Window_Enemy_Hud.new
end
end


Dernière édition par jbdfjojo le Mer 22 Avr 2015 - 21:52, édité 3 fois
Zalera
Zalera
Membre

Nombre de messages : 34
Age : 28
Distinction : aucune
Date d'inscription : 18/04/2015

vie sur les monstre vx ace  Empty Re: vie sur les monstre vx ace

le Mer 22 Avr 2015 - 14:29
ton code est pas facile lire ><
Heaven
Heaven
Staffeux retraité

Nombre de messages : 2451
Age : 18
Localisation : Alpes-Maritimes VIRILITÉ OLALA
Distinction : Aucune
Date d'inscription : 18/10/2012

vie sur les monstre vx ace  Empty Re: vie sur les monstre vx ace

le Mer 22 Avr 2015 - 16:51
Il faudrait que tu aères ton code (ex : que tu mettes des espaces, une logique..ect). Tu as un petit screen pour illustrer ce que ça donne ? Sinon merci du partage :3


Heav'n
Zalera
Zalera
Membre

Nombre de messages : 34
Age : 28
Distinction : aucune
Date d'inscription : 18/04/2015

vie sur les monstre vx ace  Empty Re: vie sur les monstre vx ace

le Mer 22 Avr 2015 - 16:53
J'ai tester ton script, parfois il m'affiche la vie d'un boss alors que j'ai 5 ennemis identique, un à moment il m'affiche 5 barre de vie identique(sans celle de boss). Après je ne suis pas codeur, donc je n'ai pas trouver pourquoi ce changement.
reveurduciel
reveurduciel
Membre

Nombre de messages : 197
Date d'inscription : 18/12/2014

vie sur les monstre vx ace  Empty Re: vie sur les monstre vx ace

le Mer 22 Avr 2015 - 18:37
Tu pourrais me faire un script similaire pour mon jeu ? J'ai besoin d'une barre de vie pour mes monstres Very Happy
jbdfjojo
jbdfjojo
Membre

Nombre de messages : 383
Age : 31
Localisation : Toulon ( 83 var )
Distinction : aucune
Date d'inscription : 19/04/2015
http://jbdfjojo.esy.es/index.php

vie sur les monstre vx ace  Empty Re: vie sur les monstre vx ace

le Mer 22 Avr 2015 - 21:43
voila j ai commenter mon code Smile vous devriez comprendre plus facilement Smile

@Zalera a écrit:J'ai tester ton script, parfois il m'affiche la vie d'un boss alors que j'ai 5 ennemis identique, un à moment il m'affiche 5 barre de vie identique(sans celle de boss). Après je ne suis pas codeur, donc je n'ai pas trouver pourquoi ce changement.

c normal je les configurer pour qui affiche seulement la vie des enemies c tout !!
il faudrais reprend tout de code pour qui face la difference dc voila


et pour " reveurduciel " contact moi par mp on vera ce qu'on peut faire Smile
Zalera
Zalera
Membre

Nombre de messages : 34
Age : 28
Distinction : aucune
Date d'inscription : 18/04/2015

vie sur les monstre vx ace  Empty Re: vie sur les monstre vx ace

le Jeu 23 Avr 2015 - 6:23
J'ai un résultat différent de toi, pourtant je n'ai rien modifié :

vie sur les monstre vx ace  Hp_bar10
jbdfjojo
jbdfjojo
Membre

Nombre de messages : 383
Age : 31
Localisation : Toulon ( 83 var )
Distinction : aucune
Date d'inscription : 19/04/2015
http://jbdfjojo.esy.es/index.php

vie sur les monstre vx ace  Empty Re: vie sur les monstre vx ace

le Jeu 23 Avr 2015 - 7:46
C'est normal le premier est toujours considéré comme un boss sauf si un monstre de grandes taille
c normal c'un script tres basique tu sais Smile Smile Smile
Heaven
Heaven
Staffeux retraité

Nombre de messages : 2451
Age : 18
Localisation : Alpes-Maritimes VIRILITÉ OLALA
Distinction : Aucune
Date d'inscription : 18/10/2012

vie sur les monstre vx ace  Empty Re: vie sur les monstre vx ace

le Jeu 23 Avr 2015 - 8:04
Merci pour le screen, je t'ajoute quand même 5 points ;p




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