- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Systeme de sélection en combat
Ven 8 Juil 2016 - 21:39
Salut, je cherches des script pour rendre mon projet plus joli et plus ressemblant a des jeux sur console auxquels j'ai joué, mais j'ai pas encore eu le temp de m'interesser au ruby, donc je demande votre aide :
1) Est ce qu'il existe un script (ou un moyen quelconque) qui permet de choisir sa cible directement sur l'ecran de combat sans passer par le menu en bas une fois quon a choisi l'action a faire ? par exemple en deplacant un curseur, qui apparaitrait au dessus de la cible apres le choix, avec les fleches du clavier ? Et (je sais je cherche la petite bete) qui permettrait d'avoir un curseur pour les ennemis different de celui pour les alliés ? (pour les competences de soin ou d'attaque, genre si on vise l'ennemi c'est rouge, un allié piloté par l'ordi c'est jaune et un allié qu'on controle c'est vert)
2) Est ce que vous en connaissez un pour afficher les barres de vie sur le coté de l'ecran a une positon fixe ? (pendant le combat celles de l'équipe d'un coté et celles de l'ennemi de l'autre et hors combat toutes a coté les unes des autres en haut) avec si possible le moyen d'ajouter un mini portrait a coté ? j'aurais au grand maximum 6 personnages en combat et 4 hors combat dans l'équipe (ya une différence parce que je voudrais faire des alliés automatiques mais je verrais ca plus tard)
mon but final je pense se serait une interface de ce style (je m'occuperais du menu en bas plus tard, quand je saurais ce que sont PS, PT et comment modifier ce menu):
(désolé pour le montage paint barbare)
..... Non ce n'est pas DU TOUT inspiré de pokémon
Ici ca se voit pas mais je pense inverser le SBS pour que c corresponde a ce sens ou utiliser un BBS ou on voit les persos
les barres de vies sur les cotés permettrait d'avoir un truc moins haut en bas (... comment jai pu dire ca ?)
je demande les 2 trucs dans le meme sujet pour savoir si les scripts quon peut trouver pour ca ont pas de problemes de compatibilité
1) Est ce qu'il existe un script (ou un moyen quelconque) qui permet de choisir sa cible directement sur l'ecran de combat sans passer par le menu en bas une fois quon a choisi l'action a faire ? par exemple en deplacant un curseur, qui apparaitrait au dessus de la cible apres le choix, avec les fleches du clavier ? Et (je sais je cherche la petite bete) qui permettrait d'avoir un curseur pour les ennemis different de celui pour les alliés ? (pour les competences de soin ou d'attaque, genre si on vise l'ennemi c'est rouge, un allié piloté par l'ordi c'est jaune et un allié qu'on controle c'est vert)
2) Est ce que vous en connaissez un pour afficher les barres de vie sur le coté de l'ecran a une positon fixe ? (pendant le combat celles de l'équipe d'un coté et celles de l'ennemi de l'autre et hors combat toutes a coté les unes des autres en haut) avec si possible le moyen d'ajouter un mini portrait a coté ? j'aurais au grand maximum 6 personnages en combat et 4 hors combat dans l'équipe (ya une différence parce que je voudrais faire des alliés automatiques mais je verrais ca plus tard)
mon but final je pense se serait une interface de ce style (je m'occuperais du menu en bas plus tard, quand je saurais ce que sont PS, PT et comment modifier ce menu):
(désolé pour le montage paint barbare)
..... Non ce n'est pas DU TOUT inspiré de pokémon
Ici ca se voit pas mais je pense inverser le SBS pour que c corresponde a ce sens ou utiliser un BBS ou on voit les persos
les barres de vies sur les cotés permettrait d'avoir un truc moins haut en bas (... comment jai pu dire ca ?)
je demande les 2 trucs dans le meme sujet pour savoir si les scripts quon peut trouver pour ca ont pas de problemes de compatibilité
- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Re: Systeme de sélection en combat
Sam 9 Juil 2016 - 14:28
pour les barres de vies jen ai trouvés quelques uns, ils me manque plus que le systme de curseur, vous savez ou on peut en trouver ?
- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Re: Systeme de sélection en combat
Mer 13 Juil 2016 - 16:39
Désolé pour le double post
...Jai pas pensé a chercher en anglais... pas encore le reflexe, mais merci ^^ le script est super, ya aucun probleme on fait ce qu'on en veut
Pour les barres de vie des ennemis, j'ai trouvé ca :
Au final, pour ce que je veux faire c'est pas plus mal voir même mieux (et puis ca marche)
Par contre pour le script pour mettre la barre de vie des 4 héros (je vais les laisser fixe au final, toutes collées en haut comme sur la 2eme image meme en combat), j'ai trouvé que ça :
mais ca m'a pas l'air du tout personalisable (on peut changer que la position, pas l'apparence). et quand je tape vx ace hp bar ou vx ace barre de vie (jai meme essayé en portugais, espagnol et allemand) ben je tombe que sur des truc pour les ennemis et pas pour les héros
Apres j'ai trouvé un tuto qui l'appelle avec un event mais le principe c'est que ca la fait coulisser hors du cadre, du coup si je les met les unes a coté des autres... je risque d'avoir un perso qui va avoir un bout de la barre du copain par dessus la sienne ce qui peut cacher le fait quil a perdu ses point de vie.
ce que jaimerais pour les barre de vie des heros ce serait un barre dans laquelle on met un fond coloré (image) et par dessus laquelle une barre noire (ou autreimage) vient s'etirer depuis la droite pour la recouvrir quand on perd de la vie. Le tout sous un cadre ou on verrai marquer les PV en chiffre.
Un truc de ce genre :
Ca existe ? ou alors si ca existe pas, c'est facilement faisable ?
...Jai pas pensé a chercher en anglais... pas encore le reflexe, mais merci ^^ le script est super, ya aucun probleme on fait ce qu'on en veut
Pour les barres de vie des ennemis, j'ai trouvé ca :
- script:
- Code:
#--# Basic Enemy HP Bars v 2.8.2
#
# Adds customizable hp bars to enemies in battle. See configuration
# below for more detail. Also allows for the option of using a nice
# graphical hp bar from a image file.
#
# Usage: Plug and play, customize as needed.
#
#------#
#-- Script by: V.M of D.T
#
#- Questions or comments can be:
# given by email: sumptuaryspade@live.ca
# provided on facebook: http://www.facebook.com/DaimoniousTailsGames
# All my other scripts and projects can be found here: http://daimonioustails.weebly.com/
#
#--- Free to use in any project, commercial or non-commercial, with credit given
# - - Though a donation's always a nice way to say thank you~ (I also accept actual thank you's)
#Customization starts here:
module DTP_HP
#Whether to place the hp bar above or below the enemy
ABOVE_MONSTER = true
#Whether to use a custome image or not:
#Image would be placed in Graphics/System and named Custom_HP.png
CUSTOM_BAR = false
#Whether to include the hp bar or not
USE_HP_BAR = true
#Whether to include an mp bar or not
USE_MP_BAR = false
#The width of the hp bar
BAR_WIDTH = 66
#The height of the hp bar
BAR_HEIGHT = 5
#The width of the border around the hp bar
BORDER_WIDTH = 1
#The height of the border around the hp bar
BORDER_HEIGHT = 1
#Offset the hp bar along the x-axis(left,right)
BAR_OFFSET_X = 0
#Offset the hp bar along the y-axis(up,down)
BAR_OFFSET_Y = 0
#Color for the back of the hp bar
COLOR_BAR_BACK = Color.new(0,0,0,200)
#First color for the hp bar gradient
COLOR_BAR_1 = Color.new(255,0,0)
#Second color for the hp bar gradient
COLOR_BAR_2 = Color.new(200,100,100)
#Outside border color
COLOR_BORDER_1 = Color.new(0,0,0,185)
#Inside border color
COLOR_BORDER_2 = Color.new(255,255,255,185)
#First color for the mp bar gradient
MP_COLOR_BAR_1 = Color.new(0,175,255)
#Second color fot he mp bar gradient
MP_COLOR_BAR_2 = Color.new(0,0,255)
#Whether to display text or not
USE_TEXT = false
#Text to be displayed, chp = current hp, mhp = max hp, php = percentage hp
#Examples: "php%" or "chp/mhp" or "chp - php%"
TEXT_DISPLAY = "chp"
#Offset for the text along the x-axis(left,right)
TEXT_OFFSET_X = 5
#Offset for the text along the y-axis(up,down)
TEXT_OFFSET_Y = -24
#Size of the displayed text
TEXT_SIZE = Font.default_size
#Font of the displayed text
TEXT_FONT = Font.default_name
#Show bars only when specific actor in party. Array format. Example: [8,7]
#Set to [] to not use actor only
SPECIFIC_ACTOR = []
#Show enemy hp bar only if certain state is applied (like a scan state)
#Set to 0 to not use state only
SCAN_STATE = 0
#Enemies will show hp bar as long as they have been affected but scan state
#at least once before
SCAN_ONCE = false
#Hp bars will only show when you are targetting a monster
ONLY_ON_TARGET = false
#Text to display if it's a boss monster, accepts same arguments
BOSS_TEXT = "???"
#The width of the boss hp bar
BOSS_BAR_WIDTH = 66
#The height of the boss hp bar
BOSS_BAR_HEIGHT = 5
#The width of the border around the boss hp bar
BOSS_BORDER_WIDTH = 1
#The height of the border around the boss hp bar
BOSS_BORDER_HEIGHT = 1
#ID's of boss monsters in array format.
BOSS_MONSTERS = []
end
#Customization ends here
class Sprite_Battler
alias hpbar_update update
alias hpbar_dispose dispose
def update
hpbar_update
return unless @battler.is_a?(Game_Enemy)
if @battler
update_hp_bar
end
end
def update_hp_bar
boss = DTP_HP::BOSS_MONSTERS.include?(@battler.enemy_id)
setup_bar if @hp_bar.nil?
if @text_display.nil?
@text_display = Sprite_Base.new(self.viewport)
@text_display.bitmap = Bitmap.new(100,DTP_HP::TEXT_SIZE)
@text_display.bitmap.font.size = DTP_HP::TEXT_SIZE
@text_display.bitmap.font.name = DTP_HP::TEXT_FONT
@text_display.x = @hp_bar.x + DTP_HP::TEXT_OFFSET_X
@text_display.y = @hp_bar.y + DTP_HP::TEXT_OFFSET_Y
@text_display.z = 105
end
determine_visible
return unless @hp_bar.visible
if @hp_bar.opacity != self.opacity
@hp_bar.opacity = self.opacity
@mp_bar.opacity = @hp_bar.opacity if DTP_HP::USE_MP_BAR
end
@hp_bar.bitmap.clear
if !boss
width = DTP_HP::BAR_WIDTH
height = DTP_HP::BAR_HEIGHT
bwidth = DTP_HP::BORDER_WIDTH
bheight = DTP_HP::BORDER_HEIGHT
else
width = DTP_HP::BOSS_BAR_WIDTH
height = DTP_HP::BOSS_BAR_HEIGHT
bwidth = DTP_HP::BOSS_BORDER_WIDTH
bheight = DTP_HP::BOSS_BORDER_HEIGHT
end
btotal = (bwidth + bheight) * 2
rwidth = @hp_bar.bitmap.width
rheight = @hp_bar.bitmap.height
if !DTP_HP::CUSTOM_BAR && DTP_HP::USE_HP_BAR
@hp_bar.bitmap.fill_rect(0,0,rwidth,rheight,DTP_HP::COLOR_BAR_BACK)
@hp_bar.bitmap.fill_rect(bwidth,bheight,rwidth-bwidth*2,rheight-bheight*2,DTP_HP::COLOR_BORDER_2)
@hp_bar.bitmap.fill_rect(bwidth*2,bheight*2,width,height,DTP_HP::COLOR_BORDER_1)
end
hp_width = @battler.hp_rate * width
if DTP_HP::USE_HP_BAR
@hp_bar.bitmap.gradient_fill_rect(bwidth*2,bheight*2,hp_width,height,DTP_HP::COLOR_BAR_1,DTP_HP::COLOR_BAR_2)
end
if DTP_HP::CUSTOM_BAR && DTP_HP::USE_HP_BAR
border_bitmap = Bitmap.new("Graphics/System/Custom_HP.png")
rect = Rect.new(0,0,border_bitmap.width,border_bitmap.height)
@hp_bar.bitmap.blt(0,0,border_bitmap,rect)
end
if DTP_HP::USE_MP_BAR
@mp_bar.bitmap.clear
if !DTP_HP::CUSTOM_BAR
@mp_bar.bitmap.fill_rect(0,0,rwidth,rheight,DTP_HP::COLOR_BAR_BACK)
@mp_bar.bitmap.fill_rect(bwidth,bheight,rwidth-bwidth*2,rheight-bheight*2,DTP_HP::COLOR_BORDER_2)
@mp_bar.bitmap.fill_rect(bwidth*2,bheight*2,width,height,DTP_HP::COLOR_BORDER_1)
end
mp_width = @battler.mp_rate * width
@mp_bar.bitmap.gradient_fill_rect(bwidth*2,bheight*2,mp_width,height,DTP_HP::MP_COLOR_BAR_1,DTP_HP::MP_COLOR_BAR_2)
if DTP_HP::CUSTOM_BAR
border_bitmap = Bitmap.new("Graphics/System/Custom_HP.png")
rect = Rect.new(0,0,border_bitmap.width,border_bitmap.height)
@mp_bar.bitmap.blt(0,0,border_bitmap,rect)
end
end
return unless DTP_HP::USE_TEXT
@text_display.opacity = @hp_bar.opacity if @text_display.opacity != @hp_bar.opacity
@text_display.bitmap.clear
text = DTP_HP::TEXT_DISPLAY.clone
text = DTP_HP::BOSS_TEXT.clone if DTP_HP::BOSS_MONSTERS.include?(@battler.enemy_id)
text.gsub!(/chp/) {@battler.hp}
text.gsub!(/mhp/) {@battler.mhp}
text.gsub!(/php/) {(@battler.hp_rate * 100).to_i}
@text_display.bitmap.draw_text(0,0,100,@text_display.height,text)
end
def setup_bar
boss = DTP_HP::BOSS_MONSTERS.include?(@battler.enemy_id)
@hp_bar = Sprite_Base.new(self.viewport)
if !boss
width = DTP_HP::BAR_WIDTH + DTP_HP::BORDER_WIDTH * 4
height = DTP_HP::BAR_HEIGHT + DTP_HP::BORDER_HEIGHT * 4
else
width = DTP_HP::BOSS_BAR_WIDTH + DTP_HP::BOSS_BORDER_WIDTH * 4
height = DTP_HP::BOSS_BAR_HEIGHT + DTP_HP::BOSS_BORDER_HEIGHT * 4
end
@hp_bar.bitmap = Bitmap.new(width,height)
@hp_bar.x = self.x - @hp_bar.width / 2 + DTP_HP::BAR_OFFSET_X
@hp_bar.y = self.y + DTP_HP::BAR_OFFSET_Y - self.bitmap.height - @hp_bar.height
@hp_bar.y = self.y + DTP_HP::BAR_OFFSET_Y unless DTP_HP::ABOVE_MONSTER
@hp_bar.x = 0 if @hp_bar.x < 0
@hp_bar.y = 0 if @hp_bar.y < 0
@hp_bar.z = 104
if DTP_HP::USE_MP_BAR
@mp_bar = Sprite_Base.new(self.viewport)
@mp_bar.bitmap = Bitmap.new(@hp_bar.width,@hp_bar.height)
@mp_bar.x = @hp_bar.x + 6
@mp_bar.y = @hp_bar.y + @mp_bar.height - 3
@mp_bar.z = 103
end
end
def determine_visible
if !@battler.alive?
@hp_bar.visible = false
@mp_bar.visible = false if @mp_bar
@text_display.visible = false
if DTP_HP::SCAN_ONCE and DTP_HP::SCAN_STATE == 1
$game_party.monster_scans[@battler.enemy_id] = true
end
return if !@battler.alive?
end
@hp_bar.visible = true
if DTP_HP::SCAN_STATE != 0
@hp_bar.visible = false
@hp_bar.visible = true if @battler.state?(DTP_HP::SCAN_STATE)
if DTP_HP::SCAN_ONCE
@hp_bar.visible = true if $game_party.monster_scans[@battler.enemy_id] == true
$game_party.monster_scans[@battler.enemy_id] = true if @hp_bar.visible
end
end
if !DTP_HP::SPECIFIC_ACTOR.empty?
@hp_bar.visible = false unless DTP_HP::SCAN_STATE != 0
DTP_HP::SPECIFIC_ACTOR.each do |i|
next unless $game_party.battle_members.include?($game_actors[i])
@hp_bar.visible = true
end
end
if DTP_HP::ONLY_ON_TARGET
return unless SceneManager.scene.is_a?(Scene_Battle)
return unless SceneManager.scene.enemy_window
@hp_bar.visible = SceneManager.scene.target_window_index == @battler.index
@hp_bar.visible = false if !SceneManager.scene.enemy_window.active
end
@text_display.visible = false if !@hp_bar.visible
@text_display.visible = true if @hp_bar.visible
@mp_bar.visible = @hp_bar.visible if DTP_HP::USE_MP_BAR
end
def dispose
@hp_bar.dispose if @hp_bar
@mp_bar.dispose if @mp_bar
@text_display.dispose if @text_display
hpbar_dispose
end
end
class Scene_Battle
attr_reader :enemy_window
def target_window_index
begin
@enemy_window.enemy.index
rescue
return -1
end
end
end
class Game_Party
alias hp_bar_init initialize
attr_accessor :monster_scans
def initialize
hp_bar_init
@monster_scans = []
end
end
Au final, pour ce que je veux faire c'est pas plus mal voir même mieux (et puis ca marche)
Par contre pour le script pour mettre la barre de vie des 4 héros (je vais les laisser fixe au final, toutes collées en haut comme sur la 2eme image meme en combat), j'ai trouvé que ça :
- script:
- Code:
#=============================================================================
# Auteur Brandobscure001.
# Barre de vie et de magie sur la map.
# À mettre au-dessus de main.
#
#A la Ligne 9 :
#super(0,0,128,96)
#Coordonnée X-Y de la Barre de Hp et Mp.
#
#actor = $game_actors[1])
#Id du Héros dont on voit la barre.
#
#=============================================================================
class Window_Hud < Window_Base
def initialize
super(0,0,128,96) # Coordonnée X-Y de la Barre de Hp et Mp.
self.opacity = 0
refresh
end
def refresh
self.contents.clear
actor = $game_actors[1] # Id du Hero que l'on voit la barre.
draw_actor_hp(actor, 0, 0, 96)
draw_actor_mp(actor, 0, 32, 96)
end
def update
refresh
end
end
class Scene_Map
alias hud_main main
alias hud_update update
alias hud_terminate terminate
def main
@hud = Window_Hud.new
hud_main
end
def update
@hud.update
hud_update
end
def terminate
@hud.dispose
end
end
mais ca m'a pas l'air du tout personalisable (on peut changer que la position, pas l'apparence). et quand je tape vx ace hp bar ou vx ace barre de vie (jai meme essayé en portugais, espagnol et allemand) ben je tombe que sur des truc pour les ennemis et pas pour les héros
Apres j'ai trouvé un tuto qui l'appelle avec un event mais le principe c'est que ca la fait coulisser hors du cadre, du coup si je les met les unes a coté des autres... je risque d'avoir un perso qui va avoir un bout de la barre du copain par dessus la sienne ce qui peut cacher le fait quil a perdu ses point de vie.
ce que jaimerais pour les barre de vie des heros ce serait un barre dans laquelle on met un fond coloré (image) et par dessus laquelle une barre noire (ou autreimage) vient s'etirer depuis la droite pour la recouvrir quand on perd de la vie. Le tout sous un cadre ou on verrai marquer les PV en chiffre.
Un truc de ce genre :
Ca existe ? ou alors si ca existe pas, c'est facilement faisable ?
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: Systeme de sélection en combat
Mer 13 Juil 2016 - 18:02
Pour le coter personnalisable, je peut te proposer RME.
Personnellement j'ai fait un tuto pour un système de récolte via RME Tuto mais j'ai utiliser le tuto de RME qui sert à créer des jauge de PV initialement "Création de jauge" et tu peut y rajouter le nombre si tu veux.
Apres l'utilisation d'RME n'est pas facile au début, mais si tu galère, je pourrais toujours t'aider.
voici une jauge.
Apres tu peut choisir la taille de l'image, sa couleur, son positionnement et plein d'autre chose.
Personnellement j'ai fait un tuto pour un système de récolte via RME Tuto mais j'ai utiliser le tuto de RME qui sert à créer des jauge de PV initialement "Création de jauge" et tu peut y rajouter le nombre si tu veux.
Apres l'utilisation d'RME n'est pas facile au début, mais si tu galère, je pourrais toujours t'aider.
voici une jauge.
Apres tu peut choisir la taille de l'image, sa couleur, son positionnement et plein d'autre chose.
- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Re: Systeme de sélection en combat
Mer 13 Juil 2016 - 18:50
Je suis passé a windows 10 ya pas longtemps, du coup je crois que j'y ai plus acces... mais on m'en a deja parlé et cest vrai que ca a l'air cool RME donc si tu connais un moyen de le faire tourner sur windows 10 jsuis partant a fond ^^
- Yamashi FenikkusuStaffeux retraité
- Nombre de messages : 2967
Age : 28
Localisation : Alentours de Nancy
Distinction : Éternel Floodeur [Gel']
666 (SPY)
+2500pts pour sa folie des 1000 messages [Gel']
Génie intergalactique... ou pas [Gel']
Voix suave number one [Amal']
Collectionneur de distinctions (mais moins que Gel) [Yama]
Ouiche lorraine [Zeal']
L'homme aux casquettes [Mist']
Date d'inscription : 20/09/2014
Re: Systeme de sélection en combat
Mer 13 Juil 2016 - 19:31
C'est le RMEbuilder qui ne passe pas sous Windows 10, le script en lui même marche toujours ^^ .
- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Re: Systeme de sélection en combat
Mer 13 Juil 2016 - 19:46
Nickel alors ben du coup faudra que j'aille voir les tutos une fois que j'aurai trouvé comment l'installer a la main parce que jai un probleme avec la consigne :
"Concrètement, vous pourriez vous rendre dans le répertoire RME/src, et copier-coller dans l'ordre ci-dessous le contenu de chacun des fichiers .rb du répertoire... dans les scripts de vos projets... au-dessus de Main..."
Ca veut dire qu'il faut copier ce que les fichiers contiennent dans chacun des script quon utilise (d'ailleur a quel endroit du script ?) ou alors c'est des scripts touts fait qu'il y a juste a inserer tels quels dans la zone des script au dessus de main (et pareil, en haut ou en bas de la liste?) ?
"Concrètement, vous pourriez vous rendre dans le répertoire RME/src, et copier-coller dans l'ordre ci-dessous le contenu de chacun des fichiers .rb du répertoire... dans les scripts de vos projets... au-dessus de Main..."
Ca veut dire qu'il faut copier ce que les fichiers contiennent dans chacun des script quon utilise (d'ailleur a quel endroit du script ?) ou alors c'est des scripts touts fait qu'il y a juste a inserer tels quels dans la zone des script au dessus de main (et pareil, en haut ou en bas de la liste?) ?
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: Systeme de sélection en combat
Mer 13 Juil 2016 - 20:12
yahallo,
je te donne tous ça dans l'ordre, j'ai fait une mise à jour donc tu as la dernière version.
Les codes sont trop long et dépasse la limite de longueur des messages donc je te mes des liens.
-SDK.rb
-Database.rb
-Internal.rb
-SDK.Gui.rb
-EvEx.rb
-Commands.rb
-Incubator.rb
-Tools.rb
-DocGenerator.rb
-Doc.rb
Voilà, je poste pour terminer un screen pour bien positionner les scripts.
je te donne tous ça dans l'ordre, j'ai fait une mise à jour donc tu as la dernière version.
Les codes sont trop long et dépasse la limite de longueur des messages donc je te mes des liens.
-SDK.rb
-Database.rb
-Internal.rb
-SDK.Gui.rb
-EvEx.rb
-Commands.rb
-Incubator.rb
-Tools.rb
-DocGenerator.rb
-Doc.rb
Voilà, je poste pour terminer un screen pour bien positionner les scripts.
- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Re: Systeme de sélection en combat
Mer 13 Juil 2016 - 21:11
Faut que je les mette au dessus de MAterials, dans Scene ? je sais pas faire les trucs avec les triangles
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: Systeme de sélection en combat
Mer 13 Juil 2016 - 21:39
les triangles c'est rien, c'est de la mise en page
personnelement je copie/colle ceux déjà présent comme "Material"
personnelement je copie/colle ceux déjà présent comme "Material"
- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Re: Systeme de sélection en combat
Mer 13 Juil 2016 - 23:56
Ok, merci franchement pour tout
me reste plus qu'a aller regarder comment ca marche et puis go s'amuser avec ^^
EDIT : j'ai eu un probleme avec le fichier SDK.rb que tu m'as mis avec le spoiler code avant le coding:utf8 au début, ca me dit qu'il a eu une fin prematurée (c'est triste ) et une erreur de syntaxe ligne 2355 du coup jai du aller en chercher un autre sur le site de RME
me reste plus qu'a aller regarder comment ca marche et puis go s'amuser avec ^^
EDIT : j'ai eu un probleme avec le fichier SDK.rb que tu m'as mis avec le spoiler code avant le coding:utf8 au début, ca me dit qu'il a eu une fin prematurée (c'est triste ) et une erreur de syntaxe ligne 2355 du coup jai du aller en chercher un autre sur le site de RME
- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Re: Systeme de sélection en combat
Jeu 14 Juil 2016 - 18:43
Désolé, j'ai une dernière question (des que jai la reponse a celle la je met le sujet en résolu, promis ) :
Voila les scripts de la barre de vie des ennemis et celui du curseur :
J'aimerais savoir si c'est possible de faire en sorte que le curseur se mette automatiquement a la bonne place quelque soit l'ennemi
comme ca :
le probleme c'est qu'ne rentrant la valeur a la main des quon change d'ennemi ca foire :
Du coup j'aimerai savoir si quelquun arriverait a repérer la partie positionnement dans le script de barre de vie et a la greffer dans le script du curseur ?
Voila les scripts de la barre de vie des ennemis et celui du curseur :
- curseur:
- Code:
#=======================================================
# Akea Animated Battle Cursor
# Author: Raizen
# Community: http://www.centrorpg.com/
# Compatibility: RMVXAce
#
#=======================================================
# =========================Don't Modify==============================
$included ||= Hash.new
$included[:akea_battlecursor] = true
module Akea_BattleCursor
# =========================Don't Modify==============================
# Configuration starts Here
#=======================================================
# INSTRUCTIONS
# Simple, put the script above main and below any other battle scripts
# (for better compatibility)
# And then configure below, the scripts shows an animated battle cursor.
#=======================================================
# If animated, this is the framerate update of the animation, the higher the slower.
Cursor_Update = 10
# Show the default windows that identify the enemies and actors?
Show_Windows = false
# Show battler names?
Show_Name = true
# Name of fot, put '' to be used default font
Font_Name = 'Georgia'
# Size of font, put 0 to use default font size
Font_Size = 18
#==============================================================================
# ** Enemy Configuration
#==============================================================================
# Font Color for Enemies, following the default R, G, B and on the end put the
# opacity of the font, being 0 invisible until 255 full visible
Enemy_Font_Color = [255, 100, 100, 255]
# Name of cursor image, must be in the folder Graphics/Akea
Enemy_Cursor = 'Enemy_Cursor'
# Number of frames the enemy cursor has, if not animated put
# Enemy_Frames = 1
Enemy_Frames = 5
# Cursor position over the enemies
# E_Cursor_Position = [x position, y position] defaut : [0,-70]
E_Cursor_Position = [-20, -100]
# Position of enemy name
# E_Name_Position = [x position, y position] defaut : [0,-30]
E_Name_Position = [0, -30]
# Name of cursor image, must be in the folder Graphics/Akea
# In case you do not use visible actors, put
# Actor_Cursor = ''
Actor_Cursor = 'Actor_Cursor'
#==============================================================================
# ** Actor configuration
# Not necessary IF you do not use visible actors
#==============================================================================
# Font color for the actors, following the default R, G, B and on the end put the
# opacity of the font, being 0 invisible until 255 full visible
Actor_Font_Color = [100, 255, 150, 255]
# Numver of frames from the actor cursor, if not animated put
# Actor_Frames = 1
Actor_Frames = 5
# Cursor Position over the actors
# A_Cursor_Position = [x position, y position] defaut :[-55,-70]
A_Cursor_Position = [-25, -70]
#
# Name position of the actors
# A_Name_Position = [x position, y position]
A_Name_Position = [-10, -10]
#==============================================================================
# ** HERE starts the script
#==============================================================================
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# Esta classe executa o processamento da tela de batalha.
#==============================================================================
class Scene_Battle < Scene_Base
alias :akea_bc_start :start
alias :akea_bc_update :update
alias :akea_bc_select_enemy_selection :select_enemy_selection
alias :akea_bc_on_skill_ok :on_skill_ok
alias :akea_bc_on_enemy_cancel :on_enemy_cancel
alias :akea_bc_on_item_ok :on_item_ok
alias :akea_bc_on_actor_cancel :on_actor_cancel
alias :akea_bc_select_actor_selection :select_actor_selection
alias :akea_bc_terminate :terminate
alias :akea_bc_turn_start :turn_start
alias :akea_bc_next_command :next_command
#--------------------------------------------------------------------------
# * Inicialização do processo
#--------------------------------------------------------------------------
def start
@bc_cursor = Array.new
@bc_enemy_cursor = Array.new
@bc_actor_cursor = Array.new
@akea_target_all = false
akea_bc_start
akea_bc_create_pictures
end
def akea_bc_create_pictures
@bc_actor_size = $game_party.battle_members.size
@bc_frame_position = 0
for n in 0...all_battle_members.size
next unless all_battle_members[n].use_sprite?
@bc_cursor[n] = Sprite.new
@bc_cursor[n].bitmap = Bitmap.new(Graphics.width, Graphics.height)
#@bc[n].bitmap.font.size = 48
rect = Rect.new(0, 0, 200, 50)
if all_battle_members[n].actor?
@bc_cursor[n].bitmap.font.color = Color.new(Akea_BattleCursor::Actor_Font_Color[0], Akea_BattleCursor::Actor_Font_Color[1], Akea_BattleCursor::Actor_Font_Color[2], Akea_BattleCursor::Actor_Font_Color[3])
@bc_actor_cursor[n] = Sprite.new
@bc_actor_cursor[n].bitmap = Cache.akea(Akea_BattleCursor::Actor_Cursor)
@bc_actor_cursor[n].src_rect.set(0, 0, @bc_actor_cursor[n].bitmap.width/Akea_BattleCursor::Actor_Frames, @bc_actor_cursor[n].bitmap.height)
@bc_actor_cursor[n].opacity = 0
else
@bc_enemy_cursor << Sprite.new
@bc_enemy_cursor.last.bitmap = Cache.akea(Akea_BattleCursor::Enemy_Cursor)
@bc_enemy_cursor.last.src_rect.set(0, 0, @bc_enemy_cursor.last.bitmap.width/Akea_BattleCursor::Enemy_Frames, @bc_enemy_cursor.last.bitmap.height)
@bc_enemy_cursor.last.opacity = 0
@bc_cursor[n].bitmap.font.color = Color.new(Akea_BattleCursor::Enemy_Font_Color[0], Akea_BattleCursor::Enemy_Font_Color[1], Akea_BattleCursor::Enemy_Font_Color[2], Akea_BattleCursor::Enemy_Font_Color[3])
end
@bc_cursor[n].bitmap.font.size = Akea_BattleCursor::Font_Size unless Akea_BattleCursor::Font_Size == 0
@bc_cursor[n].bitmap.font.name = Akea_BattleCursor::Font_Name unless Akea_BattleCursor::Font_Name == ''
@bc_cursor[n].bitmap.draw_text(rect, all_battle_members[n].name, 0) if Akea_BattleCursor::Show_Name
@bc_cursor[n].z = 105
if all_battle_members[n].enemy?
@bc_cursor[n].x = all_battle_members[n].screen_x + Akea_BattleCursor::E_Name_Position[0]
@bc_cursor[n].y = all_battle_members[n].screen_y + Akea_BattleCursor::E_Name_Position[1]
else
@bc_cursor[n].x = all_battle_members[n].screen_x + Akea_BattleCursor::A_Name_Position[0]
@bc_cursor[n].y = all_battle_members[n].screen_y + Akea_BattleCursor::A_Name_Position[1]
end
@bc_cursor[n].opacity = 0
end
end
def update(*args, &block)
akea_bc_update
show_bc_info
end
def show_bc_info
if @enemy_window.active
@bc_enemy_cursor.each{|cursor| cursor.opacity -= 30}
@bc_actor_cursor.each{|cursor| cursor.opacity -= 30}
@bc_cursor.each{|cursor| cursor.opacity -= 30}
if @akea_target_all
for n in 0...@bc_enemy_cursor.size
if $game_troop.members[n].alive?
@bc_cursor[n + $game_party.members.size].opacity += 60
@bc_enemy_cursor[n].x = $game_troop.members[n].screen_x + Akea_BattleCursor::E_Cursor_Position[0]
@bc_enemy_cursor[n].y = $game_troop.members[n].screen_y + Akea_BattleCursor::E_Cursor_Position[1]
@bc_enemy_cursor[n].opacity += 60
end
end
else
@bc_enemy_cursor[@enemy_window.enemy.index].x = $game_troop.members[@enemy_window.enemy.index].screen_x + Akea_BattleCursor::E_Cursor_Position[0]
@bc_enemy_cursor[@enemy_window.enemy.index].y = $game_troop.members[@enemy_window.enemy.index].screen_y + Akea_BattleCursor::E_Cursor_Position[1]
@bc_enemy_cursor[@enemy_window.enemy.index].opacity += 60
@bc_cursor[@enemy_window.enemy.index + $game_party.members.size].opacity += 60
end
update_bc_enemy_cursor
elsif @actor_window.active
if all_battle_members[0].use_sprite?
@bc_enemy_cursor.each{|cursor| cursor.opacity -= 30}
@bc_actor_cursor.each{|cursor| cursor.opacity -= 30}
@bc_cursor.each{|cursor| cursor.opacity -= 30}
if @akea_target_all
for n in 0...@bc_actor_cursor.size
@bc_actor_cursor[n].x = all_battle_members[n].screen_x + Akea_BattleCursor::A_Cursor_Position[0]
@bc_actor_cursor[n].y = all_battle_members[n].screen_y + Akea_BattleCursor::A_Cursor_Position[1]
@bc_actor_cursor[n].opacity += 60
@bc_cursor[n].opacity += 60
end
else
@bc_actor_cursor[@actor_window.index].x = all_battle_members[@actor_window.index].screen_x + Akea_BattleCursor::A_Cursor_Position[0]
@bc_actor_cursor[@actor_window.index].y = all_battle_members[@actor_window.index].screen_y + Akea_BattleCursor::A_Cursor_Position[1]
@bc_actor_cursor[@actor_window.index].opacity += 60
@bc_cursor[@actor_window.index].opacity += 60
end
end
update_bc_actor_cursor
else
for n in 0...all_battle_members.size
next unless all_battle_members[n].use_sprite?
@bc_cursor[n].opacity -= 30
end
@bc_enemy_cursor.each{|cursor| cursor.opacity -= 30}
@bc_actor_cursor.each{|cursor| cursor.opacity -= 30}
end
end
def update_bc_enemy_cursor
return unless Graphics.frame_count % Akea_BattleCursor::Cursor_Update == 0
if @bc_frame_position >= Akea_BattleCursor::Enemy_Frames - 1
@bc_frame_position = 0
else
@bc_frame_position += 1
end
@bc_enemy_cursor.each{|cursor| cursor.src_rect.set(@bc_frame_position*@bc_enemy_cursor[0].bitmap.width/Akea_BattleCursor::Enemy_Frames, 0, @bc_enemy_cursor[0].bitmap.width/Akea_BattleCursor::Enemy_Frames, @bc_enemy_cursor[0].bitmap.height)}
end
def update_bc_actor_cursor
return unless Graphics.frame_count % Akea_BattleCursor::Cursor_Update == 0
if @bc_frame_position >= Akea_BattleCursor::Actor_Frames - 1
@bc_frame_position = 0
else
@bc_frame_position += 1
end
@bc_actor_cursor.each {|cursor| cursor.src_rect.set(@bc_frame_position*@bc_actor_cursor[0].bitmap.width/Akea_BattleCursor::Actor_Frames, 0, @bc_actor_cursor[0].bitmap.width/Akea_BattleCursor::Actor_Frames, @bc_actor_cursor[0].bitmap.height)}
end
#--------------------------------------------------------------------------
# * Início do turno
#--------------------------------------------------------------------------
def turn_start
for n in 0...all_battle_members.size
next unless all_battle_members[n].use_sprite?
@bc_cursor[n].opacity = 0
end
@bc_enemy_cursor.each{|cursor| cursor.opacity = 0}
@bc_actor_cursor.each{|cursor| cursor.opacity = 0}
akea_bc_turn_start
end
#--------------------------------------------------------------------------
# * Seleção da escolha de inimigos
#--------------------------------------------------------------------------
def select_enemy_selection
akea_bc_select_enemy_selection
@enemy_window.hide unless Akea_BattleCursor::Show_Windows
end
#--------------------------------------------------------------------------
# * Seleção da escolha de heróis
#--------------------------------------------------------------------------
def select_actor_selection
akea_bc_select_actor_selection
@actor_window.hide if all_battle_members[0].use_sprite? && !Akea_BattleCursor::Show_Windows
end
#--------------------------------------------------------------------------
# * Habilidade [Confirmação]
#--------------------------------------------------------------------------
def on_skill_ok
@force_window = true
akea_bc_on_skill_ok
@force_window = false
if @skill.for_opponent?
@skill_window.hide
else
@skill_window.hide if all_battle_members[0].use_sprite?
end
end
#--------------------------------------------------------------------------
# * Entrada de comandos para o próximo herói
#--------------------------------------------------------------------------
def next_command
if @force_window && @skill.for_opponent?
@akea_target_all = true
select_enemy_selection
elsif @force_window
@akea_target_all = true
select_actor_selection
else
@akea_target_all = false
akea_bc_next_command
end
end
#--------------------------------------------------------------------------
# * Inimigo [Cancelamento]
#--------------------------------------------------------------------------
def on_enemy_cancel
akea_bc_on_enemy_cancel
@akea_target_all = false
case @actor_command_window.current_symbol
when :skill
@skill_window.show.activate
when :item
@item_window.show.activate
end
end
#--------------------------------------------------------------------------
# * Herói [Cancelamento]
#--------------------------------------------------------------------------
def on_actor_cancel
akea_bc_on_actor_cancel
@akea_target_all = false
case @actor_command_window.current_symbol
when :skill
@skill_window.show.activate
when :item
@item_window.show.activate
end
end
#--------------------------------------------------------------------------
# * Item [Confirmação]
#--------------------------------------------------------------------------
def on_item_ok
akea_bc_on_item_ok
if @item.for_opponent?
@item_window.hide
else
@item_window.hide if all_battle_members[0].use_sprite?
end
end
#--------------------------------------------------------------------------
# * Finalização do processo
#--------------------------------------------------------------------------
def terminate
for n in 0...all_battle_members.size
next unless all_battle_members[n].use_sprite?
@bc_cursor[n].bitmap.dispose
@bc_cursor[n].dispose
end
@bc_actor_cursor.each{|cursor| cursor.bitmap.dispose}
@bc_actor_cursor.each{|cursor| cursor.dispose}
@bc_enemy_cursor.each{|cursor| cursor.bitmap.dispose}
@bc_enemy_cursor.each{|cursor| cursor.dispose}
akea_bc_terminate
end
end
#==============================================================================
# ** Cache
#------------------------------------------------------------------------------
# Este modulo carrega cada gráfico, cria um objeto de Bitmap e retém ele.
# Para acelerar o carregamento e preservar memória, este módulo matém o
# objeto de Bitmap em uma Hash interna, permitindo que retorne objetos
# pré-existentes quando mesmo Bitmap é requerido novamente.
#==============================================================================
module Cache
#--------------------------------------------------------------------------
# * Carregamento dos gráficos de animação
# filename : nome do arquivo
# hue : informações da alteração de tonalidade
#--------------------------------------------------------------------------
def self.akea(filename)
load_bitmap("Graphics/Akea/", filename)
end
end
#==============================================================================
# ** Window_BattleActor
#------------------------------------------------------------------------------
# Esta janela para seleção de heróis na tela de batalha.
#==============================================================================
class Window_BattleActor < Window_BattleStatus
#--------------------------------------------------------------------------
# * Movimento do cursor para baixo
# wrap : cursor retornar a primeira ou ultima posição
#--------------------------------------------------------------------------
def cursor_down(wrap = false)
super(true)
end
#--------------------------------------------------------------------------
# * Movimento do cursor para cima
# wrap : cursor retornar a primeira ou ultima posição
#--------------------------------------------------------------------------
def cursor_up(wrap = false)
super(true)
end
#--------------------------------------------------------------------------
# * Movimento do cursor para direita
# wrap : cursor retornar a primeira ou ultima posição
#--------------------------------------------------------------------------
def cursor_right(wrap = false)
cursor_down
end
#--------------------------------------------------------------------------
# * Movimento do cursor para esquerda
# wrap : cursor retornar a primeira ou ultima posição
#--------------------------------------------------------------------------
def cursor_left(wrap = false)
cursor_up
end
end
#==============================================================================
# ** Window_BattleEnemy
#------------------------------------------------------------------------------
# Esta janela para seleção de inimigos na tela de batalha.
#==============================================================================
class Window_BattleEnemy < Window_Selectable
#--------------------------------------------------------------------------
# * Aquisição do número de colunas
#--------------------------------------------------------------------------
def col_max
if Akea_BattleCursor::Show_Windows
return 2
else
return 1
end
end
#--------------------------------------------------------------------------
# * Movimento do cursor para baixo
# wrap : cursor retornar a primeira ou ultima posição
#--------------------------------------------------------------------------
def cursor_down(wrap = false)
super(true)
end
#--------------------------------------------------------------------------
# * Movimento do cursor para cima
# wrap : cursor retornar a primeira ou ultima posição
#--------------------------------------------------------------------------
def cursor_up(wrap = false)
super(true)
end
#--------------------------------------------------------------------------
# * Movimento do cursor para direita
# wrap : cursor retornar a primeira ou ultima posição
#--------------------------------------------------------------------------
def cursor_right(wrap = false)
cursor_down
end
#--------------------------------------------------------------------------
# * Movimento do cursor para esquerda
# wrap : cursor retornar a primeira ou ultima posição
#--------------------------------------------------------------------------
def cursor_left(wrap = false)
cursor_up
end
end
- barre de vie des ennemis:
- Code:
#--# Basic Enemy HP Bars v 2.8.2
# Adds customizable hp bars to enemies in battle. See configuration
# below for more detail. Also allows for the option of using a nice
# graphical hp bar from a image file.
#
# Usage: Plug and play, customize as needed.
#
#------#
#-- Script by: V.M of D.T
#
#- Questions or comments can be:
# given by email: sumptuaryspade@live.ca
# provided on facebook: http://www.facebook.com/DaimoniousTailsGames
# All my other scripts and projects can be found here: http://daimonioustails.weebly.com/
#
#--- Free to use in any project, commercial or non-commercial, with credit given
# - - Though a donation's always a nice way to say thank you~ (I also accept actual thank you's)
#Customization starts here:
module DTP_HP
#Whether to place the hp bar above or below the enemy
ABOVE_MONSTER = true
#Whether to use a custome image or not:
#Image would be placed in Graphics/System and named Custom_HP.png
CUSTOM_BAR = false
#Whether to include the hp bar or not
USE_HP_BAR = true
#Whether to include an mp bar or not
USE_MP_BAR = false
#The width of the hp bar
BAR_WIDTH = 66
#The height of the hp bar
BAR_HEIGHT = 5
#The width of the border around the hp bar
BORDER_WIDTH = 1
#The height of the border around the hp bar
BORDER_HEIGHT = 1
#Offset the hp bar along the x-axis(left,right)
BAR_OFFSET_X = 0
#Offset the hp bar along the y-axis(up,down)
BAR_OFFSET_Y = 0
#Color for the back of the hp bar
COLOR_BAR_BACK = Color.new(0,0,0,200)
#First color for the hp bar gradient
COLOR_BAR_1 = Color.new(255,0,0)
#Second color for the hp bar gradient
COLOR_BAR_2 = Color.new(200,100,100)
#Outside border color
COLOR_BORDER_1 = Color.new(0,0,0,185)
#Inside border color
COLOR_BORDER_2 = Color.new(255,255,255,185)
#First color for the mp bar gradient
MP_COLOR_BAR_1 = Color.new(0,175,255)
#Second color fot he mp bar gradient
MP_COLOR_BAR_2 = Color.new(0,0,255)
#Whether to display text or not
USE_TEXT = false
#Text to be displayed, chp = current hp, mhp = max hp, php = percentage hp
#Examples: "php%" or "chp/mhp" or "chp - php%"
TEXT_DISPLAY = "chp"
#Offset for the text along the x-axis(left,right)
TEXT_OFFSET_X = 5
#Offset for the text along the y-axis(up,down)
TEXT_OFFSET_Y = -24
#Size of the displayed text
TEXT_SIZE = Font.default_size
#Font of the displayed text
TEXT_FONT = Font.default_name
#Show bars only when specific actor in party. Array format. Example: [8,7]
#Set to [] to not use actor only
SPECIFIC_ACTOR = []
#Show enemy hp bar only if certain state is applied (like a scan state)
#Set to 0 to not use state only
SCAN_STATE = 0
#Enemies will show hp bar as long as they have been affected but scan state
#at least once before
SCAN_ONCE = false
#Hp bars will only show when you are targetting a monster
ONLY_ON_TARGET = false
#Text to display if it's a boss monster, accepts same arguments
BOSS_TEXT = "???"
#The width of the boss hp bar
BOSS_BAR_WIDTH = 66
#The height of the boss hp bar
BOSS_BAR_HEIGHT = 5
#The width of the border around the boss hp bar
BOSS_BORDER_WIDTH = 1
#The height of the border around the boss hp bar
BOSS_BORDER_HEIGHT = 1
#ID's of boss monsters in array format.
BOSS_MONSTERS = []
end
#Customization ends here
class Sprite_Battler
alias hpbar_update update
alias hpbar_dispose dispose
def update
hpbar_update
return unless @battler.is_a?(Game_Enemy)
if @battler
update_hp_bar
end
end
def update_hp_bar
boss = DTP_HP::BOSS_MONSTERS.include?(@battler.enemy_id)
setup_bar if @hp_bar.nil?
if @text_display.nil?
@text_display = Sprite_Base.new(self.viewport)
@text_display.bitmap = Bitmap.new(100,DTP_HP::TEXT_SIZE)
@text_display.bitmap.font.size = DTP_HP::TEXT_SIZE
@text_display.bitmap.font.name = DTP_HP::TEXT_FONT
@text_display.x = @hp_bar.x + DTP_HP::TEXT_OFFSET_X
@text_display.y = @hp_bar.y + DTP_HP::TEXT_OFFSET_Y
@text_display.z = 105
end
determine_visible
return unless @hp_bar.visible
if @hp_bar.opacity != self.opacity
@hp_bar.opacity = self.opacity
@mp_bar.opacity = @hp_bar.opacity if DTP_HP::USE_MP_BAR
end
@hp_bar.bitmap.clear
if !boss
width = DTP_HP::BAR_WIDTH
height = DTP_HP::BAR_HEIGHT
bwidth = DTP_HP::BORDER_WIDTH
bheight = DTP_HP::BORDER_HEIGHT
else
width = DTP_HP::BOSS_BAR_WIDTH
height = DTP_HP::BOSS_BAR_HEIGHT
bwidth = DTP_HP::BOSS_BORDER_WIDTH
bheight = DTP_HP::BOSS_BORDER_HEIGHT
end
btotal = (bwidth + bheight) * 2
rwidth = @hp_bar.bitmap.width
rheight = @hp_bar.bitmap.height
if !DTP_HP::CUSTOM_BAR && DTP_HP::USE_HP_BAR
@hp_bar.bitmap.fill_rect(0,0,rwidth,rheight,DTP_HP::COLOR_BAR_BACK)
@hp_bar.bitmap.fill_rect(bwidth,bheight,rwidth-bwidth*2,rheight-bheight*2,DTP_HP::COLOR_BORDER_2)
@hp_bar.bitmap.fill_rect(bwidth*2,bheight*2,width,height,DTP_HP::COLOR_BORDER_1)
end
hp_width = @battler.hp_rate * width
if DTP_HP::USE_HP_BAR
@hp_bar.bitmap.gradient_fill_rect(bwidth*2,bheight*2,hp_width,height,DTP_HP::COLOR_BAR_1,DTP_HP::COLOR_BAR_2)
end
if DTP_HP::CUSTOM_BAR && DTP_HP::USE_HP_BAR
border_bitmap = Bitmap.new("Graphics/System/Custom_HP.png")
rect = Rect.new(0,0,border_bitmap.width,border_bitmap.height)
@hp_bar.bitmap.blt(0,0,border_bitmap,rect)
end
if DTP_HP::USE_MP_BAR
@mp_bar.bitmap.clear
if !DTP_HP::CUSTOM_BAR
@mp_bar.bitmap.fill_rect(0,0,rwidth,rheight,DTP_HP::COLOR_BAR_BACK)
@mp_bar.bitmap.fill_rect(bwidth,bheight,rwidth-bwidth*2,rheight-bheight*2,DTP_HP::COLOR_BORDER_2)
@mp_bar.bitmap.fill_rect(bwidth*2,bheight*2,width,height,DTP_HP::COLOR_BORDER_1)
end
mp_width = @battler.mp_rate * width
@mp_bar.bitmap.gradient_fill_rect(bwidth*2,bheight*2,mp_width,height,DTP_HP::MP_COLOR_BAR_1,DTP_HP::MP_COLOR_BAR_2)
if DTP_HP::CUSTOM_BAR
border_bitmap = Bitmap.new("Graphics/System/Custom_HP.png")
rect = Rect.new(0,0,border_bitmap.width,border_bitmap.height)
@mp_bar.bitmap.blt(0,0,border_bitmap,rect)
end
end
return unless DTP_HP::USE_TEXT
@text_display.opacity = @hp_bar.opacity if @text_display.opacity != @hp_bar.opacity
@text_display.bitmap.clear
text = DTP_HP::TEXT_DISPLAY.clone
text = DTP_HP::BOSS_TEXT.clone if DTP_HP::BOSS_MONSTERS.include?(@battler.enemy_id)
text.gsub!(/chp/) {@battler.hp}
text.gsub!(/mhp/) {@battler.mhp}
text.gsub!(/php/) {(@battler.hp_rate * 100).to_i}
@text_display.bitmap.draw_text(0,0,100,@text_display.height,text)
end
def setup_bar
boss = DTP_HP::BOSS_MONSTERS.include?(@battler.enemy_id)
@hp_bar = Sprite_Base.new(self.viewport)
if !boss
width = DTP_HP::BAR_WIDTH + DTP_HP::BORDER_WIDTH * 4
height = DTP_HP::BAR_HEIGHT + DTP_HP::BORDER_HEIGHT * 4
else
width = DTP_HP::BOSS_BAR_WIDTH + DTP_HP::BOSS_BORDER_WIDTH * 4
height = DTP_HP::BOSS_BAR_HEIGHT + DTP_HP::BOSS_BORDER_HEIGHT * 4
end
@hp_bar.bitmap = Bitmap.new(width,height)
@hp_bar.x = self.x - @hp_bar.width / 2 + DTP_HP::BAR_OFFSET_X
@hp_bar.y = self.y + DTP_HP::BAR_OFFSET_Y - self.bitmap.height - @hp_bar.height
@hp_bar.y = self.y + DTP_HP::BAR_OFFSET_Y unless DTP_HP::ABOVE_MONSTER
@hp_bar.x = 0 if @hp_bar.x < 0
@hp_bar.y = 0 if @hp_bar.y < 0
@hp_bar.z = 104
if DTP_HP::USE_MP_BAR
@mp_bar = Sprite_Base.new(self.viewport)
@mp_bar.bitmap = Bitmap.new(@hp_bar.width,@hp_bar.height)
@mp_bar.x = @hp_bar.x + 6
@mp_bar.y = @hp_bar.y + @mp_bar.height - 3
@mp_bar.z = 103
end
end
def determine_visible
if !@battler.alive?
@hp_bar.visible = false
@mp_bar.visible = false if @mp_bar
@text_display.visible = false
if DTP_HP::SCAN_ONCE and DTP_HP::SCAN_STATE == 1
$game_party.monster_scans[@battler.enemy_id] = true
end
return if !@battler.alive?
end
@hp_bar.visible = true
if DTP_HP::SCAN_STATE != 0
@hp_bar.visible = false
@hp_bar.visible = true if @battler.state?(DTP_HP::SCAN_STATE)
if DTP_HP::SCAN_ONCE
@hp_bar.visible = true if $game_party.monster_scans[@battler.enemy_id] == true
$game_party.monster_scans[@battler.enemy_id] = true if @hp_bar.visible
end
end
if !DTP_HP::SPECIFIC_ACTOR.empty?
@hp_bar.visible = false unless DTP_HP::SCAN_STATE != 0
DTP_HP::SPECIFIC_ACTOR.each do |i|
next unless $game_party.battle_members.include?($game_actors[i])
@hp_bar.visible = true
end
end
if DTP_HP::ONLY_ON_TARGET
return unless SceneManager.scene.is_a?(Scene_Battle)
return unless SceneManager.scene.enemy_window
@hp_bar.visible = SceneManager.scene.target_window_index == @battler.index
@hp_bar.visible = false if !SceneManager.scene.enemy_window.active
end
@text_display.visible = false if !@hp_bar.visible
@text_display.visible = true if @hp_bar.visible
@mp_bar.visible = @hp_bar.visible if DTP_HP::USE_MP_BAR
end
def dispose
@hp_bar.dispose if @hp_bar
@mp_bar.dispose if @mp_bar
@text_display.dispose if @text_display
hpbar_dispose
end
end
class Scene_Battle
attr_reader :enemy_window
def target_window_index
begin
@enemy_window.enemy.index
rescue
return -1
end
end
end
class Game_Party
alias hp_bar_init initialize
attr_accessor :monster_scans
def initialize
hp_bar_init
@monster_scans = []
end
end
J'aimerais savoir si c'est possible de faire en sorte que le curseur se mette automatiquement a la bonne place quelque soit l'ennemi
comme ca :
le probleme c'est qu'ne rentrant la valeur a la main des quon change d'ennemi ca foire :
Du coup j'aimerai savoir si quelquun arriverait a repérer la partie positionnement dans le script de barre de vie et a la greffer dans le script du curseur ?
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: Systeme de sélection en combat
Jeu 14 Juil 2016 - 19:43
Sorry pour le SDK, j'ai du faire une fausse manip, je ferais plus attention.
Pour ton problème de curseur, je ne peut pas t'aider.
Pour ton problème de curseur, je ne peut pas t'aider.
- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Re: Systeme de sélection en combat
Jeu 14 Juil 2016 - 19:58
T'inquiete, le truc que tu m'as filé est deja genial, ca va resoudre pas mal de mes problemes ^^
EDIT : tu sais si c'est possible de faire en sorte que la barre de vie reste pendant un combat ?
EDIT : tu sais si c'est possible de faire en sorte que la barre de vie reste pendant un combat ?
- RaishiMembre
- Nombre de messages : 125
Age : 26
Localisation : Ailleurs :p
Distinction : aucune
Date d'inscription : 22/05/2016
Re: Systeme de sélection en combat
Lun 18 Juil 2016 - 23:56
Du coup personne peut m'aider a trouver comment placer le curseur correctement de facon automatique ?
ou manuelle si il faut, si vous me mettez un modele de ce genre ca me va aussi (je sais juste pas l'ecrire en ruby)
if monstre_qui_combat == ID_du_sanglier :
E_Cursor_Position = [-25, -130]
(mais jai un doute sur le fait que ca marche si ya plusieurs types d'ennemis en meme temp par contre, c'est pour ca que je prefererait un truc automatique universel comme pour la barre de vie)
ou manuelle si il faut, si vous me mettez un modele de ce genre ca me va aussi (je sais juste pas l'ecrire en ruby)
if monstre_qui_combat == ID_du_sanglier :
E_Cursor_Position = [-25, -130]
(mais jai un doute sur le fait que ca marche si ya plusieurs types d'ennemis en meme temp par contre, c'est pour ca que je prefererait un truc automatique universel comme pour la barre de vie)
- XamMembre
- Nombre de messages : 64
Age : 20
Localisation : france
Distinction : aucune
Date d'inscription : 04/01/2017
Re: Systeme de sélection en combat
Sam 7 Jan 2017 - 18:43
bonjour raishi tu refait SAO ?
- Yamashi FenikkusuStaffeux retraité
- Nombre de messages : 2967
Age : 28
Localisation : Alentours de Nancy
Distinction : Éternel Floodeur [Gel']
666 (SPY)
+2500pts pour sa folie des 1000 messages [Gel']
Génie intergalactique... ou pas [Gel']
Voix suave number one [Amal']
Collectionneur de distinctions (mais moins que Gel) [Yama]
Ouiche lorraine [Zeal']
L'homme aux casquettes [Mist']
Date d'inscription : 20/09/2014
Re: Systeme de sélection en combat
Sam 7 Jan 2017 - 19:02
Merci d'éviter les nécroposts.
- XamMembre
- Nombre de messages : 64
Age : 20
Localisation : france
Distinction : aucune
Date d'inscription : 04/01/2017
Re: Systeme de sélection en combat
Lun 9 Jan 2017 - 20:50
oui mais sais coi les nécroposts ?
- Yamashi FenikkusuStaffeux retraité
- Nombre de messages : 2967
Age : 28
Localisation : Alentours de Nancy
Distinction : Éternel Floodeur [Gel']
666 (SPY)
+2500pts pour sa folie des 1000 messages [Gel']
Génie intergalactique... ou pas [Gel']
Voix suave number one [Amal']
Collectionneur de distinctions (mais moins que Gel) [Yama]
Ouiche lorraine [Zeal']
L'homme aux casquettes [Mist']
Date d'inscription : 20/09/2014
Re: Systeme de sélection en combat
Lun 9 Jan 2017 - 20:57
Un post sur un sujet qui ne t'appartient pas et dont la dernière réponse date d'il y a plus de 3 mois.
Ton premier message sur ce post qui n'est pas le tient, a presque 6 mois de décalage avec le dernier post. Sur l'autre sujet, Tektek Dream Avatar, il y a presque 7 ans de décalage.
Si tu veux poster sur un vieux sujet (comme ici), parle nous en ici.
Ton premier message sur ce post qui n'est pas le tient, a presque 6 mois de décalage avec le dernier post. Sur l'autre sujet, Tektek Dream Avatar, il y a presque 7 ans de décalage.
Si tu veux poster sur un vieux sujet (comme ici), parle nous en ici.
- XamMembre
- Nombre de messages : 64
Age : 20
Localisation : france
Distinction : aucune
Date d'inscription : 04/01/2017
Re: Systeme de sélection en combat
Lun 9 Jan 2017 - 21:07
ok merci
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|