Cantarelle Ancien staffeux
Messages postés : 353 Date d'inscription : 26/10/2012 Jauge LPC :
| Sujet: [XP] Compétence Scan Lun 3 Juin 2013 - 12:13 | |
| Suite à une demande, j'ai fais une compétence Scan qui fonctionne correctement. Le scan, qu'est-ce que c'est ? C'est le fait d'analyser les données de l'adversaire pour avoir ses statistiques (et ses forces / faiblesses dans les jeux récents. Dans ce Scan, il n'est pas proposé, mais rien n'empêche à vous de l'améliorer). |
|
Cantarelle Ancien staffeux
Messages postés : 353 Date d'inscription : 26/10/2012 Jauge LPC :
| Sujet: Re: [XP] Compétence Scan Lun 3 Juin 2013 - 12:13 | |
| Ce script de Scan se fait en trois étapes :1 - Créer la compétence avec en attribut obligatoire un évent commun qui sera appelé à chaque fois. Paramétrer la aussi (ou à la fin, c'est au choix. Mais il faut absolument que la compétence fasse appel à l'event commun détaillé dessous). 2 - Créer un event commun. Le déclenchement du code se fait selon un appel. Dedans, il faut utiliser la fonction : insérer un script. Et insérer ce code : - Code:
-
index = $scene.active_battler.current_action.target_index target = $game_troop.smooth_target_enemy(index) scan = Scene_Scan.new(target)
3 - Insérer ces scripts (en respectant l'ordre, de préférence), entre Scene_Debug et Main. Premier script (à mettre avant les deux autres, de préférence) : - Code:
-
# ============================================================================== # ** Scene_Battle # ------------------------------------------------------------------------------ # Par Mikltov / Rutsuku Fushin / Cantarelle # ------------------------------------------------------------------------------ # Cette extention permet de mettre en lecture l'attribut active_battler, # nessessaire pour le scan. # ATTENTION : A mettre avant Scene_Scan et Window_Scan! # ============================================================================== class Scene_Battle attr_reader :active_battler end
Deuxième script : - Code:
-
# ============================================================================== # ** Scene_Scan # ------------------------------------------------------------------------------ # Par Mikltov / Rutsuku Fushin / Cantarelle # ------------------------------------------------------------------------------ # Un script pour montrer le resultat des scans en combat. Ceci n'est que la # partie modele / controleur. # ============================================================================== class Scene_Scan < Window_Base # ---------------------------------------------------------------------------- # def initialize # ---------------------------------------------------------------------------- def initialize(enemy) @scan_window = Window_Scan.new(enemy) @affichage = true Graphics.transition loop do Graphics.update Input.update update if @affichage == false break end end @scan_window.dispose end # ---------------------------------------------------------------------------- # def update # ---------------------------------------------------------------------------- def update if Input.trigger?(Input::B) update_command return end end # ---------------------------------------------------------------------------- # def update_command # ---------------------------------------------------------------------------- def update_command $game_system.se_play($data_system.cancel_se) @affichage = false end # ============================================================================== # end class # ============================================================================== end
Troisième script (qui est la vue, donc, tout ce qui est lié aux graphismes) du scan : - Code:
-
# ============================================================================== # ** Window_Scan # ------------------------------------------------------------------------------ # Par Mikltov / Rutsuku Fushin / Cantarelle # ------------------------------------------------------------------------------ # Un script pour montrer le resultat des scans en combat. Ceci n'est que la # partie visuelle. # ============================================================================== class Window_Scan < Window_Base # ---------------------------------------------------------------------------- # def update # ---------------------------------------------------------------------------- def initialize(enemy) # -------------------------------------------------------------------------- # 4 valeurs obligatoires dans le super # - position du x de depart # - position du y de depart # - position de x a l'arrivee # - position de y a l'arrivee # -------------------------------------------------------------------------- super(20, 10, 300, 350) self.contents = Bitmap.new(width - 32, height - 32) # -------------------------------------------------------------------------- # definition de la police et de sa taille # -------------------------------------------------------------------------- self.contents.font.name = $fontface self.contents.font.size = $fontsize # -------------------------------------------------------------------------- # definit l'opacite de la boite de dialogue # -------------------------------------------------------------------------- self.back_opacity = 255 refresh(enemy) end # ---------------------------------------------------------------------------- # def refresh # ---------------------------------------------------------------------------- def refresh(enemy) self.contents.clear self.contents.draw_text(0, 0, 450, 28, "name : " + enemy.name.to_s) self.contents.draw_text(0, 32, 450, 28, "hp : " + enemy.hp.to_s + " / " + enemy.base_maxhp.to_s) self.contents.draw_text(0, 64, 450, 28, "sp : " + enemy.sp.to_s + " / " + enemy.base_maxsp.to_s) self.contents.draw_text(0, 96, 450, 28, "atk : " + enemy.base_atk.to_s) self.contents.draw_text(0, 128, 450, 28, "pdf : " + enemy.base_pdef.to_s) self.contents.draw_text(0, 160, 450, 28, "mdf : " + enemy.base_mdef.to_s) self.contents.draw_text(0, 192, 450, 28, "str : " + enemy.base_str.to_s) self.contents.draw_text(0, 224, 450, 28, "agi : " + enemy.base_agi.to_s) self.contents.draw_text(0, 256, 450, 28, "dex : " + enemy.base_dex.to_s) self.contents.draw_text(0, 288, 450, 28, "int : " + enemy.base_int.to_s) end
# ============================================================================== # end class # ============================================================================== end
|
|
Cantarelle Ancien staffeux
Messages postés : 353 Date d'inscription : 26/10/2012 Jauge LPC :
| Sujet: Re: [XP] Compétence Scan Lun 3 Juin 2013 - 12:13 | |
| Explication :
Ce script est séparé en plusieurs morceaux pour faciliter la maintenance. En exceptant la surcharge de Scene_Battle (pour mettre un paramètre en lu, afin que l'event commun puisse fonctionner), Scene_Scan est le model / controler (c'est-à-dire tout le code des données et que tout ce qui se passe derrière est géré dedans). Window_Scan est la vue (c'est-à-dire que tout ce qui est visuel est géré dans ce script). Si vous voulez modifier l'apparence et l'affichage, vous modifiez Window_Scan. Si vous voulez modifier la structure du code, vous modifiez Scene_Scan.
Autre chose à ajouter :
Virez tous les événements que vous avez pour scanner et utilisez ça! C'est générique, propre, facile à comprendre / utiliser / maintenir / modifier (rayez les mentions inutiles) et garanti sans aucune incompatibilité (normalement... On est jamais à l'abri qu'il rentre en conflit avec un autre script codé vraiment... à vous arracher les cheveux). |
|
RitoJS Ancien staffeux
Messages postés : 1925 Date d'inscription : 22/02/2012 Jauge LPC :
| Sujet: Re: [XP] Compétence Scan Lun 3 Juin 2013 - 19:14 | |
| Quoi ?! La demoiselle n'a toujours pas eut ses points ?! Scandale !!!§§§!! Heureusement, je suis là. |
|
City Hunter Administrateur
Messages postés : 6523 Date d'inscription : 25/05/2011 Jauge LPC :
| Sujet: Re: [XP] Compétence Scan Lun 3 Juin 2013 - 20:30 | |
| Merci pour ce partage |
|
Invité Invité
| Sujet: Re: [XP] Compétence Scan Lun 3 Juin 2013 - 20:49 | |
| Faudrait augmenter la coordonnée z de la fenêtre. |
|
Cantarelle Ancien staffeux
Messages postés : 353 Date d'inscription : 26/10/2012 Jauge LPC :
| Sujet: Re: [XP] Compétence Scan Lun 3 Juin 2013 - 23:06 | |
| Rito et CH : je ne fais pas la course aux points (j'en ai rien à faire d'ailleurs). Simplement que là, vous avez un script de scan qui marche.
Zeus : Ouais, mais rien n'a fou*** :p
Je n'ai fais qu'une base, en séparant le modèle et la vue. Tout ce qui est graphisme, j'ai donné des détails pour que ceux qui utiliseront ce script modifie à leur sauce.
Surtout que je l'ai détaillé dans la partie explication. Tout ce qui est graphisme, c'est souvent du cas par cas. Sans compter que les graphismes (et surtout retoucher une fenêtre) n'est franchement pas le plus compliquer dans les scripts. La personnalisation, ce n'est pas ma tasse de thé et je n'ai pas le temps aussi pour faire de la personnalisation.
Donc, en gros, je fournis une base. Les utilisateurs la personnalisent à leur façon en mettant la main à la patte.
Si encore je n'avais pas commenté, ouais... Mais ce n'est pas le cas. |
|
Zexion Administrateur
Messages postés : 6228 Date d'inscription : 04/01/2012 Jauge LPC :
| Sujet: Re: [XP] Compétence Scan Mar 4 Juin 2013 - 1:25 | |
| |
|
Contenu sponsorisé
| Sujet: Re: [XP] Compétence Scan | |
| |
|