Menu
Eclipso logo
Merry Christmas !
28/03/2024 14:10:56

[XP]Script de scan de monstres

Delta

Star
Delta
  • Messages : 2420

[XP]Script de scan de monstres


sam. 01 juin 2013 - 22h18

Voilà le problème j'ai trouvé ce script sur Internet permettant de scanner les monstres mais lorsqu'on veut scanner un montre si on a un adversaire là ça fonctionne bien mais si il y a plusieurs adversaires, il ne scanne que le dernier même en sélectionnant un ennemi. Exemple on a un fantome et un basilique, il scanne le fantome mais comme le basilique est le dernier monstre ce sont les caractéristiques du basilique qui apparaissent. Et j'ai cherché pendant des heures et rien n'a marché. De plus l'interface est moche, j'avais déjà rajouté les stat de dextérité, force.. Ca c'était la partie facile. Si quequ'un après l'avoir réparé pouvait me réduire la fenêtre en haut pour pas prendre trop de place voir rajouter des icones à piocher dans l'iconset à côté des stats. Merci. Voici à quoi ça ressemble. Là j'ai scanné le fantome : [img]http://img99.xooimage.com/files/2/6/3/scan-3ea00de.png[/img] Voilà le script : [code]#=============================== #===================================== class Scan < Window_Base def initialize # Set Window Attributes x = 0 y = 0 width = 640 height = 320 opacity = 0 # Setup Window super(x, y, width, height) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize self.back_opacity = opacity # Refresh refresh end def refresh # Clear Contents self.contents.clear # Get Enemy Info (Thanks, Dragonslayer) @item_max = $game_troop.enemies.size for i in 0...$game_troop.enemies.size enemy = $game_troop.enemies[i] end # Define Variables name = "Nom: " + enemy.name hp = "HP: " + enemy.hp.to_s + "/" + enemy.base_maxhp.to_s sp = "MP: " + enemy.sp.to_s + "/" + enemy.base_maxsp.to_s atk = "Attaque: " + enemy.base_atk.to_s pdef = "Defense physique: " + enemy.base_pdef.to_s mdef = "Defense magique: " + enemy.base_mdef.to_s str = "Force: " + enemy.base_str.to_s agi = "Agilité: " + enemy.base_agi.to_s dex = "Dextérité: " + enemy.base_dex.to_s int = "Intelligence: " + enemy.base_int.to_s # Draw Enemy Stats draw_stat(name,0) draw_stat(hp,1) draw_stat(sp,2) draw_stat(atk,3) draw_stat(pdef,4) draw_stat(mdef,5) draw_stat(str,6) draw_stat(agi,7) draw_stat(dex,8) draw_stat(int,9) # Update while 1 Input.update Graphics.update break if Input.trigger?(Input::C) end # Play Sound Effect $game_system.se_play($data_system.decision_se) # Dispose self.dispose end def draw_stat(text,line) # Draw Individual Stat width = self.contents.text_size(text).width height = self.contents.text_size(text).height self.contents.draw_text(0, height * line, width, height, text) end end[/code] Créer une compétence ou un objet allant chercher un événement commun scan avec inserer le script suivant en appel [code]@scan = Scan.new[/code] Merci de votre aide.


[size=15] Mon site perso et la démo http://deltaproduction.free-h.net/index.html Téléchargez Yggdrasil la quête du dragon de sang: (05/08/2016) 28 Heures de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=878][img]http://delta.comics.pagesperso-orange.fr/barre.gif[/img][/url][/center] [size=15]Nouvelle démo Sentinelles du (20/07/2016) Environ 6H de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=876][img]http://delta.comics.pagesperso-orange.fr/sentinelles.png[/img][/url][/center] [size=15]Nouvelle démo La Chute d'Atalanta du (18/06/2016) Environ 1H30 de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=874][img]http://delta.comics.pagesperso-orange.fr/Atalanta.png[/img][/url][/center]

Cantarelle

Adepte
Cantarelle
  • Messages : 298

[XP]Script de scan de monstres


sam. 01 juin 2013 - 23h53

Je ne sais pas qui a fait ça, mais... Sérieux, je crise devant tant... d'imbécilités (qui a mélangé tout ce qui était lié à la vue avec le controleur/modele ?????) Bref, je fais ça demain, en nettement plus propre et en plus optimisé.

Delta

Star
Delta
  • Messages : 2420

[XP]Script de scan de monstres


dim. 02 juin 2013 - 01h06

Merci bien Cantarelle, j'ai trouvé ça sur le forum anglophone Neoseeker posté par un certain Mat710 mais je ne sais pas s'il en est l'auteur. Je savais le faire en event mais ça faisait beaucoup d'event à copier. C'est plus simple si c'est en script.


[size=15] Mon site perso et la démo http://deltaproduction.free-h.net/index.html Téléchargez Yggdrasil la quête du dragon de sang: (05/08/2016) 28 Heures de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=878][img]http://delta.comics.pagesperso-orange.fr/barre.gif[/img][/url][/center] [size=15]Nouvelle démo Sentinelles du (20/07/2016) Environ 6H de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=876][img]http://delta.comics.pagesperso-orange.fr/sentinelles.png[/img][/url][/center] [size=15]Nouvelle démo La Chute d'Atalanta du (18/06/2016) Environ 1H30 de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=874][img]http://delta.comics.pagesperso-orange.fr/Atalanta.png[/img][/url][/center]

Cantarelle

Adepte
Cantarelle
  • Messages : 298

[XP]Script de scan de monstres


dim. 02 juin 2013 - 11h51

Par contre, je voudrai savoir... Comment comptes-tu utiliser la compétence ? Je veux dire, est-ce une compétence en magie ou est-ce une compétence particulière... Parce que dans les deux cas, ce n'est pas la même chose... [Edit] : j'ai presque terminé, j'ai juste un soucis de récupération d'ID (et je suis sûre que je me casse la tête pour rien alors que c'est simple)...

Delta

Star
Delta
  • Messages : 2420

[XP]Script de scan de monstres


dim. 02 juin 2013 - 16h38

C'est une compétence en magie.


[size=15] Mon site perso et la démo http://deltaproduction.free-h.net/index.html Téléchargez Yggdrasil la quête du dragon de sang: (05/08/2016) 28 Heures de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=878][img]http://delta.comics.pagesperso-orange.fr/barre.gif[/img][/url][/center] [size=15]Nouvelle démo Sentinelles du (20/07/2016) Environ 6H de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=876][img]http://delta.comics.pagesperso-orange.fr/sentinelles.png[/img][/url][/center] [size=15]Nouvelle démo La Chute d'Atalanta du (18/06/2016) Environ 1H30 de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=874][img]http://delta.comics.pagesperso-orange.fr/Atalanta.png[/img][/url][/center]

Cantarelle

Adepte
Cantarelle
  • Messages : 298

[XP]Script de scan de monstres


dim. 02 juin 2013 - 17h25

Bon, finalement, j'ai terminé. 5 choses à faire : 1 - Créer la compétence avec en attribut obligatoire un évent commun qui sera appelé à chaque fois 2 - Créer un event commun. 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) [/code] 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 [/code] 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 [/code] 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.base_maxhp.to_s) self.contents.draw_text(0, 64, 450, 28, "sp : " + 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 [/code] Normalement, c'est testé et fonctionnel (je n'ai fait que des combats test, pas des combats normaux). Il n'y a qu'un seul détail qui est embêtant, mais ce n'est pas trop gênant. Normalement, ça devrait se régler avec le paramétrage de la compétence.

Delta

Star
Delta
  • Messages : 2420

[XP]Script de scan de monstres


dim. 02 juin 2013 - 17h29

Sincèrement je te remercie. Je ne pourrai pas le tester dans l'immédiat. J'essayerai de faire ça ce soir. Je te donnerai le retour bien entendu. Je te rajoute déjà des points.


[size=15] Mon site perso et la démo http://deltaproduction.free-h.net/index.html Téléchargez Yggdrasil la quête du dragon de sang: (05/08/2016) 28 Heures de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=878][img]http://delta.comics.pagesperso-orange.fr/barre.gif[/img][/url][/center] [size=15]Nouvelle démo Sentinelles du (20/07/2016) Environ 6H de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=876][img]http://delta.comics.pagesperso-orange.fr/sentinelles.png[/img][/url][/center] [size=15]Nouvelle démo La Chute d'Atalanta du (18/06/2016) Environ 1H30 de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=874][img]http://delta.comics.pagesperso-orange.fr/Atalanta.png[/img][/url][/center]

RitoJS

6307
RitoJS
  • Messages : 6307

[XP]Script de scan de monstres


dim. 02 juin 2013 - 17h32

Et moi je déplace.


[center] [img]http://img110.xooimage.com/files/f/d/5/0e2426866e07bf44d...7488d760-4d48c77.png[/img] [/center] [center]Merci à [b]Maki[/b] et [b]KuroFidy[/b] pour ces cadeaux: [spoiler][img]http://img15.hostingpics.net/pics/165256cadeaurito.png[/img] [img]https://pbs.twimg.com/media/BuCFKirIYAATs9d.jpg[/img][/spoiler][/center] [url=https://lunarito.wordpress.com/][img]http://img110.xooimage.com/files/a/c/7/cropped-logo-2-4abdef1.png[/img][/url]

Delta

Star
Delta
  • Messages : 2420

[XP]Script de scan de monstres


dim. 02 juin 2013 - 21h07

Ca fonctionne parfaitement, j'ai juste à modifier l'aspect de la window et c'est bon. Un grand merci.


[size=15] Mon site perso et la démo http://deltaproduction.free-h.net/index.html Téléchargez Yggdrasil la quête du dragon de sang: (05/08/2016) 28 Heures de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=878][img]http://delta.comics.pagesperso-orange.fr/barre.gif[/img][/url][/center] [size=15]Nouvelle démo Sentinelles du (20/07/2016) Environ 6H de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=876][img]http://delta.comics.pagesperso-orange.fr/sentinelles.png[/img][/url][/center] [size=15]Nouvelle démo La Chute d'Atalanta du (18/06/2016) Environ 1H30 de jeu[/size] [center][url=http://www.alexdor.info/?p=jeu&id=874][img]http://delta.comics.pagesperso-orange.fr/Atalanta.png[/img][/url][/center]

ZEF

Amateur
ZEF
  • Messages : 53

[XP]Script de scan de monstres


dim. 02 juin 2013 - 21h41

C'est concept de faire hériter une Scene de Window_Base, juste pour la forme :P

Cantarelle

Adepte
Cantarelle
  • Messages : 298

[XP]Script de scan de monstres


dim. 02 juin 2013 - 21h50

ZEF : J'avais pas envie de me casser la tête avec ça (tout ce qui est Window, ça m'emme***) Et sérieux, mes scripts, j'en fais une simple base. Après, c'est aux utilisateurs de l'adapter. Et j'essaye d'en faire une base pour qu'il soit simple de vérifier le fond et la forme.

ZEF

Amateur
ZEF
  • Messages : 53

[XP]Script de scan de monstres


dim. 02 juin 2013 - 21h51

Je comprend, par contre je comprend moins bien le rôle du return dans update.

Cantarelle

Adepte
Cantarelle
  • Messages : 298

[XP]Script de scan de monstres


dim. 02 juin 2013 - 22h04

Dans le cas où il veut ajouter autre chose dans la condition... J'ai préféré pendre les devants. Et aussi parce que j'ai pris une de mes classes update et que j'ai pas modifé ce truc... Ce qui n'est pas gênant en soit. Je préfère encore mieux avoir ce return et d'être sûre que ça me renvoie bien une modification de l'attribut @affichage que de ne pas l'avoir et que l'update fait encore du n'importe quoi (j'avais eu le cas une fois).