|
| [Résolu] Comment supprimer un script à la fermeture du jeu | |
| Auteur | Message |
---|
Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 4:53 | |
| Bonjours à vous, Alors, j'aimerais savoir s'il est posible que quand on ferme le jeux via le code: - Code:
-
$scene = nil D'empêcher un script de fonctionner. Car j'ai un script, (Fait par moi) qui affiche certaine image durant le combat et je les empêche d'afficher via interrupteur. Mais bon, quand le jeux ferme, les interrupteur tombe désactivé et don les image apparaisse. J'aimerais donc savoir comment éviter se problème. Merci.
Dernière édition par TI-MAX le Lun 19 Aoû 2013 - 0:40, édité 1 fois |
| | | Joke Mage (niveau 5)
Messages postés : 367 Date d'inscription : 10/06/2012 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 6:05 | |
| je dis peut-être une grosse connerie car ton problème et ma solution sont étranges et que je m'y connait peu en RGSS, mais t'as essayer en rajoutant une condition "if $scene != nil" dans ton script ? |
| | | Seri Mage (niveau 3)
Messages postés : 303 Date d'inscription : 04/12/2012 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 12:58 | |
| Tu peux pas faire l'inverse et afficher les images seulement si les interrupteurs sont enclenchés ? Comme ça lorsque tu quittes le jeu, les interrupteurs sont désactivés et tes images n'apparaîtront plus.
~Seri |
| | | Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 15:13 | |
| - Joke a écrit:
- je dis peut-être une grosse connerie car ton problème et ma solution sont étranges et que je m'y connait peu en RGSS, mais t'as essayer en rajoutant une condition "if $scene != nil" dans ton script ?
Non, je me demandais comment le faire en condition, je vais regarder. - Seri a écrit:
- Tu peux pas faire l'inverse et afficher les images seulement si les interrupteurs sont enclenchés ? Comme ça lorsque tu quittes le jeu, les interrupteurs sont désactivés et tes images n'apparaîtront plus.
~Seri C'est déjà le cas Seri, mais je crois que, à la pendant la fermeture du jeux, tout les interrupteurs se désactivent. Sinon il ne pourrait pas afficher. |
| | | Seri Mage (niveau 3)
Messages postés : 303 Date d'inscription : 04/12/2012 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 16:35 | |
| Bah d'après ce que je comprend si ton interrupteur est activé, tes images ne s'affichent pas. Fais l'inverse : si ton interrupteur est désactivé, tes images ne s'affichent pas (i.e si ton interrupteur est activé tes images s'affichent). Ainsi lorsque tu quittes et qu'il y a effectivement désactivage de tous les interrupteurs, tes images ne s'afficheront pas. Je croyais que c'était clair avant ><
~Seri |
| | | Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 17:36 | |
| Ouin, Ça serait une solution de secours. Je vais essayer celle de Joke, puis si je ne suis pas capable d'y arriver j'essayerai la tienne.
Merci. |
| | | Perlune Paysan (niveau 2)
Messages postés : 14 Date d'inscription : 13/07/2013 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 20:44 | |
| Si je comprends bien, tu as un script qui affiche des images durant le combat. Tu utilises des interrupteurs pour empêcher leur affichage, pourquoi faire? Pourquoi ne pas simplement supprimer les sprites en question via la méthode - Code:
-
Sprite#dispose ? De plus ample explications sur le fonctionnement de ton script, et aussi une copie dudit script, nous aideront sûrement à y voir plus clair. |
| | | Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 21:27 | |
| J'ai essayer, mais non. Je ne comprends pas pourquoi il affiche juste avant de fermer. J'ai pourtant mis dans une condition si l'interrupteur n'est pas activer, tout s'efface, mais il s'affiche quand même. Le script: - Spoiler:
- Code:
-
#=============================================================================== # Jauge_Rune #------------------------------------------------------------------------------- # Systeme de jauge des runes #===============================================================================
class Jauge_Rune #=============================================================================== # Initialisation des images #=============================================================================== def initialize(actor_index = 0) @actor_index = actor_index # Appelle de Game_Party pour le nombre de membre de l'équipe @actor = $game_party.actors[@actor_index] # Affichage du fond------------------------------------------------------------- # Affichage Fond_Rune_Evhir @fond_rune_evhir = Sprite.new @fond_rune_evhir.bitmap = RPG::Cache.picture("Fond_Rune_CBS_1") @fond_rune_evhir.visible = false # Affichage Fond_Rune_Lidam @fond_rune_lidam = Sprite.new @fond_rune_lidam.bitmap = RPG::Cache.picture("Fond_Rune_CBS_2") @fond_rune_lidam.visible = false # Affichage Fond_Rune_Civres @fond_rune_civres = Sprite.new @fond_rune_civres.bitmap = RPG::Cache.picture("Fond_Rune_CBS_3") @fond_rune_civres.visible = false # Affichage Fond_Rune_Unevis @fond_rune_unevis = Sprite.new @fond_rune_unevis.bitmap = RPG::Cache.picture("Fond_Rune_CBS_3") @fond_rune_unevis.visible = false # Affichage des runes----------------------------------------------------------- # Affichage Rune_Evhir @image_rune_evhir = Sprite.new @image_rune_evhir.bitmap = RPG::Cache.picture("Rune_Evhir_CBS") @image_rune_evhir.visible = false # Affichage Rune_Lidam @image_rune_lidam = Sprite.new @image_rune_lidam.bitmap = RPG::Cache.picture("Rune_Lidam_CBS") @image_rune_lidam.visible = false # Affichage Rune_Civres @image_rune_civres = Sprite.new @image_rune_civres.bitmap = RPG::Cache.picture("Rune_Civres_CBS") @image_rune_civres.visible = false # Affichage Rune_Unevis @image_rune_unevis = Sprite.new @image_rune_unevis.bitmap = RPG::Cache.picture("Rune_Unevis_CBS") @image_rune_unevis.visible = false #------------------------------------------------------------------------------- # Affichage des faces----------------------------------------------------------- # Affichage Face_Max @face_max = Sprite.new @face_max.bitmap = RPG::Cache.picture("Face_Max") @face_max.visible = false # Affichage Face_Dark @face_dark = Sprite.new @face_dark.bitmap = RPG::Cache.picture("Face_Dark") @face_dark.visible = false # Affichage Face_Redom @face_redom = Sprite.new @face_redom.bitmap = RPG::Cache.picture("Face_Redom") @face_redom.visible = false # Affichage Face_Liane @face_liane = Sprite.new @face_liane.bitmap = RPG::Cache.picture("Face_Liane") @face_liane.visible = false #------------------------------------------------------------------------------- # Affichage Jauges-------------------------------------------------------------- # Jauge Evhir @jauge_evhir = Sprite.new @jauge_evhir.bitmap = RPG::Cache.picture("Barre_Rune") @jauge_evhir.visible = false # Affichage Face_Dark @jauge_lidam = Sprite.new @jauge_lidam.bitmap = RPG::Cache.picture("Barre_Rune") @jauge_lidam.visible = false # Affichage Face_Redom @jauge_civres = Sprite.new @jauge_civres.bitmap = RPG::Cache.picture("Barre_Rune") @jauge_civres.visible = false # Affichage Face_Liane @jauge_unevis = Sprite.new @jauge_unevis.bitmap = RPG::Cache.picture("Barre_Rune") @jauge_unevis.visible = false
# Fin de Initialize end def update_affichage #Affichage du/des fond(s)--------------------------------------------------- # Condition Int. (Activation Combat) if $game_switches[557] == true # Condition Int. (Activation Menu) if $game_switches[626] == false #Condition 'Nbre (H) if $game_party.actors.size == 1 # Fond #1 @fond_rune_evhir.x = 224 @fond_rune_evhir.visible = true # Sinon (Variable) else #Condition 'Nbre (H) if $game_party.actors.size == 2 # Fond #2 @fond_rune_lidam.x = 192 @fond_rune_lidam.visible = true # Sinon (Variable) else #Condition 'Nbre (H) if $game_party.actors.size == 3 # Fond #2 @fond_rune_lidam.x = 192 @fond_rune_lidam.visible = true # Sinon (Variable) else #Condition 'Nbre (H) if $game_party.actors.size == 4 # Fond #3 @fond_rune_civres.x = 128 @fond_rune_civres.visible = true # Sinon (Variable) else # Effacement des images @fond_rune_evhir.dispose @fond_rune_lidam.dispose @fond_rune_civres.dispose @fond_rune_unevis.dispose end end end end #------------------------------------------------------------------------------- # Prends les membres qui sont dans l'équipe for actor in $game_party.actors # Affichage des runes et faces----------------------------------------------------------- # Condition Nbre (H) if $game_party.actors.size == 1 # Max if actor.id == 1 # Rune @image_rune_evhir.x = 224 @image_rune_evhir.visible = true # Face @face_max.x = 288 @face_max.y = 16 @face_max.visible = true # Jauge @jauge_evhir.x = 280 @jauge_evhir.y = 16 @jauge_evhir.visible = true else # Dark if actor.id == 2 # Rune @image_rune_lidam.x = 224 @image_rune_lidam.visible = true # Face @face_dark.x = 288 @face_dark.y = 16 @face_dark.visible = true # Jauge @jauge_lidam.x = 280 @jauge_lidam.y = 16 @jauge_lidam.visible = true end end
else # Condition Nbre (H) if $game_party.actors.size == 2 # Rune @image_rune_evhir.x = 192 @image_rune_evhir.visible = true @image_rune_lidam.x = 288 @image_rune_lidam.visible = true # Face @face_max.x = 256 @face_max.y = 16 @face_max.visible = true @face_dark.x = 352 @face_dark.y = 16 @face_dark.visible = true # Jauge @jauge_evhir.x = 248 @jauge_evhir.y = 16 @jauge_lidam.x = 344 @jauge_lidam.y = 16 else # Condition Nbre (H) if $game_party.actors.size == 3 # Rune @image_rune_evhir.x = 192 @image_rune_evhir.visible = true @image_rune_lidam.x = 288 @image_rune_lidam.visible = true # Face @face_max.x = 250 @face_max.y = 16 @face_max.visible = true @face_dark.x = 352 @face_dark.y = 16 @face_dark.visible = true @face_redom.x = 270 @face_redom.y = 16 @face_redom.visible = true # Jauge @jauge_evhir.x = 248 @jauge_evhir.y = 16 @jauge_evhir.visible = true @jauge_lidam.x = 344 @jauge_lidam.y = 16 @jauge_lidam.visible = true # Sinon (Variable) else # Condition Nbre (H) if $game_party.actors.size == 4 # Rune @image_rune_evhir.x = 128 @image_rune_evhir.visible = true @image_rune_lidam.x = 224 @image_rune_lidam.visible = true @image_rune_civres.x = 320 @image_rune_civres.visible = true # Face @face_max.x = 184 @face_max.y = 16 @face_max.visible = true @face_dark.x = 288 @face_dark.y = 16 @face_dark.visible = true @face_redom.x = 208 @face_redom.y = 16 @face_redom.visible = true @face_liane.x = 392 @face_liane.y = 16 @face_liane.visible = true # Jauge @jauge_evhir.x = 184 @jauge_evhir.y = 16 @jauge_lidam.x = 280 @jauge_lidam.y = 16 @jauge_civres.x = 376 @jauge_civres.y = 16 end end end end end
else # Effacement des images @fond_rune_evhir.dispose @fond_rune_lidam.dispose @fond_rune_civres.dispose @fond_rune_unevis.dispose @image_rune_evhir.dispose @image_rune_lidam.dispose @image_rune_civres.dispose @image_rune_unevis.dispose @face_max.dispose @face_dark.dispose @face_redom.dispose @face_liane.dispose @jauge_evhir.dispose @jauge_lidam.dispose @jauge_civres.dispose @jauge_unevis.dispose end else # Effacement des images @fond_rune_evhir.dispose @fond_rune_lidam.dispose @fond_rune_civres.dispose @fond_rune_unevis.dispose @image_rune_evhir.dispose @image_rune_lidam.dispose @image_rune_civres.dispose @image_rune_unevis.dispose @face_max.dispose @face_dark.dispose @face_redom.dispose @face_liane.dispose @jauge_evhir.dispose @jauge_lidam.dispose @jauge_civres.dispose @jauge_unevis.dispose end # Fin de la méthode update_affichage end #------------------------------------------------------------------------------- def update_jauge # Condition Int. (Activation Combat) if $game_switches[557] == true # Prends les membres qui sont dans l'équipe for actor in $game_party.actors # Condition Nbre (H) if $game_party.actors.size == 1 # Max if actor.id == 1 # Jauge Evhir if $game_variables[959] <= 100 @jauge_evhir.visible = true w= @jauge_evhir.bitmap.width * $game_variables[959]/100 @jauge_evhir.src_rect.set(@jauge_evhir.bitmap.width-w,0,w,3) end else # Dark if actor.id == 2 # Jauge Lidam if $game_variables[960] <= 100 @jauge_lidam.visible = true w= @jauge_lidam.bitmap.width * $game_variables[960]/100 @jauge_lidam.src_rect.set(@jauge_lidam.bitmap.width-w,0,w,3) end end end # Sinon (Condition Nbre (H)) else # Condition Nbre (H) if $game_party.actors.size == 2 # Jauge Evhir if $game_variables[959] <= 100 @jauge_evhir.visible = true w= @jauge_evhir.bitmap.width * $game_variables[959]/100 @jauge_evhir.src_rect.set(@jauge_evhir.bitmap.width-w,0,w,3) end # Jauge Lidam if $game_variables[960] <= 100 @jauge_lidam.visible = true w= @jauge_lidam.bitmap.width * $game_variables[960]/100 @jauge_lidam.src_rect.set(@jauge_lidam.bitmap.width-w,0,w,3) end else # Condition Nbre (H) if $game_party.actors.size == 3 # Jauge Evhir if $game_variables[959] <= 100 @jauge_evhir.visible = true w= @jauge_evhir.bitmap.width * $game_variables[959]/100 @jauge_evhir.src_rect.set(@jauge_evhir.bitmap.width-w,0,w,3) end # Jauge Lidam if $game_variables[960] <= 100 @jauge_lidam.visible = true w= @jauge_lidam.bitmap.width * $game_variables[960]/100 @jauge_lidam.src_rect.set(@jauge_lidam.bitmap.width-w,0,w,3) end # Jauge Evhir if $game_variables[959] <= 100 @jauge_evhir.visible = true w= @jauge_evhir.bitmap.width * $game_variables[959]/100 @jauge_evhir.src_rect.set(@jauge_evhir.bitmap.width-w,0,w,3) end # Sinon (Variable) else # Condition Nbre (H) if $game_party.actors.size == 4 # Jauge Evhir if $game_variables[959] <= 100 @jauge_evhir.visible = true w= @jauge_evhir.bitmap.width * $game_variables[959]/100 @jauge_evhir.src_rect.set(@jauge_evhir.bitmap.width-w,0,w,3) end # Jauge Lidam if $game_variables[960] <= 100 @jauge_lidam.visible = true w= @jauge_lidam.bitmap.width * $game_variables[960]/100 @jauge_lidam.src_rect.set(@jauge_lidam.bitmap.width-w,0,w,3) end # Jauge Evhir if $game_variables[959] <= 100 @jauge_evhir.visible = true w= @jauge_evhir.bitmap.width * $game_variables[959]/100 @jauge_evhir.src_rect.set(@jauge_evhir.bitmap.width-w,0,w,3) end # Jauge Civres if $game_variables[961] <= 100 @jauge_civres.visible = true w= @jauge_civres.bitmap.width * $game_variables[961]/100 @jauge_civres.src_rect.set(@jauge_civres.bitmap.width-w,0,w,3) end end end end end end else # Effacement des images @fond_rune_evhir.dispose @fond_rune_lidam.dispose @fond_rune_civres.dispose @fond_rune_unevis.dispose @image_rune_evhir.dispose @image_rune_lidam.dispose @image_rune_civres.dispose @image_rune_unevis.dispose @face_max.dispose @face_dark.dispose @face_redom.dispose @face_liane.dispose @jauge_evhir.dispose @jauge_lidam.dispose @jauge_civres.dispose @jauge_unevis.dispose end # Fin de update_jauge end # Fin de la classe Jauge_Rune end
Ne soyez pas surpris de la manière qu'il est fait, c'est mon 1er script que j'ai fait moi-même, alors il se peut que se ne soit pas la meilleur manière de faire. ^^' |
| | | Perlune Paysan (niveau 2)
Messages postés : 14 Date d'inscription : 13/07/2013 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 22:07 | |
| - Citation :
- Ne soyez pas surpris de la manière qu'il est fait, c'est mon 1er script que j'ai fait moi-même, alors il se peut que se ne soit pas la meilleur manière de faire. ^^'
Ce n'est pas la meilleure manière de faire. Pour tout dire je suis même surpris que ça marche tellement c'est hérétique comme façon de procéder. Pour commencer, respecte l'indentation de ton code, s'il-te-plaît. Ce n'est pas (uniquement) pour faire joli, c'est aussi une question de lisibilité pour savoir quel end va avec quel bloc. Toi tu as écrit le code donc tu sais comment il est structuré, mais si tu veux de l'aide d'autres personnes c'est vraiment important de faire cet effort car là c'est vraiment illisible. Ensuite, oublie ton histoire d'interrupteurs, purement et simplement. Comme tu as pu le constater par toi-même ça t'apportera tôt ou tard des ennuis. Je ne sais pas comment tu gères ton objet Jauge_Rune mais j'imagine que tu le crées une bonne fois pour toutes et que tu lui demandes de disparaître quand tu n'en as plus besoin, puis de réapparaître. Une meilleure façon de procéder (qu'utilisent tous les objets graphiques du code de base d'ailleurs) est de créer un objet Jauge_Rune dès que tu as besoin de l'afficher, et de le détruire quand tu n'en as plus besoin. Ainsi tu n'auras pas à gérer ce qui lui arrive quand il est censé être effacé puisqu'il n'existera plus de toute façon. Pour ce faire il faut aller jeter un oeil du côté de la méthode Scene_Battle#main (puisque tu souhaites afficher ta jauge pendant les combats et la faire disparaître hors combat si j'ai bien suivi). Dans toutes les déclarations qui fabriquent les graphismes (avec les Spriteset_Battle et tout) , tu rajoutes la création de ton objet Jauge_Rune. Puis dans les déclarations dispose qui servent à détruire toutes ces images, tu rajoutes sa destruction. - Code:
-
class Scene_Battle def main ... # Création de la jauge @jauge_rune = Jauge_Rune.new ... # Boucle principale loop do ... Input.update Graphics.update end ... # Destruction de la jauge @jauge_rune.dispose end end Ce n'est pas tout, il faut aussi définir chez la jauge la méthode dispose qui lui permet de se détruire. C'est là où tu vas copier tous les dispose qui existent actuellement dans ton code. - Code:
-
class Jauge_Rune def dispose @fond_rune_evhir.dispose @fond_rune_lidam.dispose @fond_rune_civres.dispose ... end end Ainsi c'est la scène de combat qui se charge de créer ta jauge quand elle s'initialise, et de la détruire quand le combat est fini. Il ne faut pas oublier d'ajouter un appel vers la méthode update de ta jauge dans la méthode Scene_Battle#update pour qu'elle puisse se mettre à jour. Par contre, là, je ne comprends pas pourquoi tu en as deux différentes, et je ne suis pas persuadé que ce soit utile par ailleurs, mais il faudrait que tu nous expliques pourquoi tu as fait ça. Avec tout ça tu partiras déjà du bon pied. Reviens vers nous quand tu auras fait toutes ces modifications, si ça ne marche toujours pas. |
| | | Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 22:13 | |
| Une chose que tu ne sais pas, mon système de combat est fait en Event, il n'a rien à voir avec celui de base.
Et oui, je sais que c'es illisible, moi-même je me perds, j'hésitais justement à le montrer pour cette raison. J'ai pas encore compris la méthode avec le loop do, Input.update et Graphics.update... quand j'ai essayer ainsi, ça buguait sans arrêt... |
| | | Perlune Paysan (niveau 2)
Messages postés : 14 Date d'inscription : 13/07/2013 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 22:21 | |
| Ce que tu ne sais pas, c'est qu'un système de combat en événements, ça n'existe pas. :p Plus sérieusement, il faut choisir. Soit tu fais tout en événements soit tu fais tout en script. Il est techniquement possible de mélanger les deux mais ça donne lieu à un sacré bordel et surtout, pour t'aider, on en chie parce que ça veut dire qu'on est obligé d'avoir ton projet sous les yeux, à moins que tu n'aies envie de t'amuser à faire des captures d'écran de toutes tes pages d'événements...
Dans tous les cas le principe reste le même. Quand ton combat se lance, quelle que soit la façon à laquelle tu t'y prends, tu crées un nouvel objet Jauge_Rune (que tu vas placer dans une variable globale [avec un $] plutôt qu'une variable d'instance [avec un @]), tu le mets à jour pendant la boucle principale, et dès que le combat est fini, tu appelles la méthode dispose de la jauge. Mais je t'assure que ta technique d'interrupteurs est vraiment à oublier.
Bon courage. |
| | | Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 22:33 | |
| - Perlune a écrit:
- Ce que tu ne sais pas, c'est qu'un système de combat en événements, ça n'existe pas.
Tu serais surpris, je n'ai pas d'appel de script dans mon combat sauf celui-ci à cause du manque d'image limiter à 50. Et refaire tout mon CBS en script serait impensable en tenant compte du temps que j'ai mis dessus. - Perlune a écrit:
- Dans tous les cas le principe reste le même. Quand ton combat se lance, quelle que soit la façon à laquelle tu t'y prends, tu crées un nouvel objet Jauge_Rune (que tu vas placer dans une variable globale [avec un $] plutôt qu'une variable d'instance [avec un @]), tu le mets à jour pendant la boucle principale, et dès que le combat est fini, tu appelles la méthode dispose de la jauge. Mais je t'assure que ta technique d'interrupteurs est vraiment à oublier.
C'est ce que je fais aussi avant le lancement du combat, j'appelle l'objet, et je le mets en boucle durant le combat, mais le dispose non, j'ai jamais su comment appeler sans buguer. le code serait - Code:
-
$jauge_rune.dispose donc ? |
| | | Perlune Paysan (niveau 2)
Messages postés : 14 Date d'inscription : 13/07/2013 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Dim 18 Aoû 2013 - 22:49 | |
| - Citation :
- Tu serais surpris, je n'ai pas d'appel de script dans mon combat sauf celui-ci
Justement, c'est ce que je dis, il faut choisir. Les événements c'est bien joli mais tôt ou tard on est limité et quand on essaie de remplacer une pièce manquante par un script, il se passe exactement le genre de problèmes que tu rencontres actuellement. Mais je sais très bien ce qu'il est possible de faire événements, j'ai moi-même poussé pas mal le système, même si je le trouve nettement moins pratique que de scripter directement. - Citation :
- C'est ce que je fais aussi avant le lancement du combat, j'appelle l'objet, et je le mets en boucle durant le combat, mais le dispose non, j'ai jamais su comment appeler sans buguer.
Avec un - Code:
-
Jauge_Rune.new ? Donc tu recrées un même objet à chaque combat sans avoir détruit le précédent? Je comprends mieux pourquoi tu te retrouves avec des images qui se baladent... - Citation :
- le code serait
- Code:
-
$jauge_rune.dispose donc ? Oui mais il faut aussi définir la méthode dispose comme je te l'ai expliqué dans mon premier post sinon tu vas tomber sur une magnifique erreur comme quoi l'interpréteur ne sait pas ce que ça veut dire "dispose" pour un objet Jauge_Rune. Comment te dire, la méthode Object#new est intégrée au langage, toutes les classes ont leur propre méthode new sans qu'on ait besoin d'en dire plus. Par contre si tu appelles la méthode update ou dispose d'un objet sans l'avoir définie à l'avance, ça fait tout pareil que si tu tentais d'appeler une méthode pouet. Après, on essaie d'être malin et de donner des noms standardisés aux méthodes, de sorte que dispose ça correspond à la destruction des objets pour toutes les classes, mais une classe ne naît pas avec une méthode dispose intégrée, c'est ce que je veux dire. |
| | | Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Lun 19 Aoû 2013 - 0:40 | |
| - Perlune a écrit:
- Justement, c'est ce que je dis, il faut choisir. Les événements c'est bien joli mais tôt ou tard on est limité et quand on essaie de remplacer une pièce manquante par un script, il se passe exactement le genre de problèmes que tu rencontres actuellement. Mais je sais très bien ce qu'il est possible de faire événements, j'ai moi-même poussé pas mal le système, même si je le trouve nettement moins pratique que de scripter directement.
Quand tu ne connais pas le scriptage et le ruby, mais tu gère très bien les Event, tu te tournes plus vers les Event. Je ne vois pas pourquoi ça gênerait, c'est comme faire une mini-carte ou un autre truc du genre sur une map. Rien à voir à mêlé les Event et les script. Je connais beaucoup de script qui sont activés/désactivés par le biais d'un interrupteur. C'est pas ça qui va le rendre, désolé du mot, merdique. - Perlune a écrit:
- Donc tu recrées un même objet à chaque combat sans avoir détruit le précédent? Je comprends mieux pourquoi tu te retrouves avec des images qui se baladent...
Ouais, comme j'ai dit, je débute en script, et mais essaie précédent faisait planté le script, j'ai donc esseyé une alternative. - Perlune a écrit:
- Oui mais il faut aussi définir la méthode dispose comme je te l'ai expliqué dans mon premier post sinon tu vas tomber sur une magnifique erreur comme quoi l'interpréteur ne sait pas ce que ça veut dire "dispose" pour un objet Jauge_Rune. Comment te dire, la méthode Object#new est intégrée au langage, toutes les classes ont leur propre méthode new sans qu'on ait besoin d'en dire plus. Par contre si tu appelles la méthode update ou dispose d'un objet sans l'avoir définie à l'avance, ça fait tout pareil que si tu tentais d'appeler une méthode pouet. Après, on essaie d'être malin et de donner des noms standardisés aux méthodes, de sorte que dispose ça correspond à la destruction des objets pour toutes les classes, mais une classe ne naît pas avec une méthode dispose intégrée, c'est ce que je veux dire.
J'ai rajouter comme je l'avais fait, mais je me rend contre que c'est mon appel qui était mal écrit. Maintenant ça fonctionne très bien et attention sans interrupteur en condition. Ça devrait te réjouir ça. ^^ Un grand merci pour ton aide. |
| | | City Hunter Administrateur
Messages postés : 6524 Date d'inscription : 25/05/2011 Jauge LPC :
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu Lun 19 Aoû 2013 - 10:14 | |
| Problème résolu ? Je classe le sujet et distribue les points. |
| | | Contenu sponsorisé
| Sujet: Re: [Résolu] Comment supprimer un script à la fermeture du jeu | |
| |
| | | |
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |