Sujet n°12234
Posté par Dark_Ray le 30 Nov - 18:38 (2012)
Titre : Problème avec la constante MSG [RESOLU]
Bonjour ou Bonsoir,


J'ai besoin d'aide pour un petit problème, j'ai essayer de faire un menu option pour changer le style des fenêtres de message.
Jusque là tout va bien, j'ai régler selon une variable que les fenêtre soient changées.

Mais (il y a hélas toujours un "mais" 42 ), lorsque j'ai testé la modification, j'ai vu que seul les menus, genre sauvegarde, menu principal, etc ... sont affecté par "modifier l'apparence des fenêtres" et que le texte en jeu est géré par la constante MSG qui est égale à "messagedummy.png".

Et c'est là que le problème commence !


J'ai tenté de faire des conditions dans le config panel telles que celles-ci :

Script Config Panel PSP 0.7 a écrit:
# --------------------------------------------------------
# MSG
# - Fichier image de la boîte de dialogue du jeu
# dans le dossier Graphics/picture
# --------------------------------------------------------

if $messagedummy == 0
MSG = "messagedummy_1.png"
end

if $messagedummy == 1
MSG = "messagedummy_1.png"
end

if $messagedummy == 2
MSG = "messagedummy_2.png"
end

if $messagedummy == 3
MSG = "messagedummy_3.png"
end

if $messagedummy == 4
MSG = "messagedummy_4.png"
end

if $messagedummy == 5
MSG = "messagedummy_5.png"
end



Et j'ai bien initialisé la variable $messagedummy dans le script Scene_Title lors de la création d'une nouvelle partie.

Mais j'obtiens ce log dès le que je fais nouvelle partie :

Log.txt a écrit:
---------- Erreur de script : Window_Message ----------
----- Type
NameError

----- Message
uninitialized constant POKEMON_S::MSG

----- Position dans Window_Message
Ligne 23

----- Backtrace
Script : Window_Message | Ligne : 23 | Méthode : in `initialize'
Script : Scene_Map | Ligne : 15 | Méthode : in `new'
Script : Scene_Map | Ligne : 15 | Méthode : in `main_passminimap'
Script : Minimap | Ligne : 41 | Méthode : in `main'
Script : Main | Ligne : 57




Je vous remercie à l'avance de votre aide Clin d'œil foireux
Je tente néanmoins de régler ce problème de mon côté en espérant trouver quelque chose pour remédier à cela !

Posté par Nuri Yuri le 30 Nov - 19:36 (2012)
Ton code ne fonctionnera pas car tu modifie une constante. Le mieux serait que cette fameuse constante contienne les noms de messages et que les scripts voient quel fichier récupérer en fonction de la variable $messagedummy.

Posté par Dark_Ray le 30 Nov - 19:42 (2012)
Nyuky a écrit:
Le mieux serait que cette fameuse constante contienne les noms de messages et que les scripts voient quel fichier récupérer en fonction de la variable $messagedummy.


Voilà le problème, je ne vois pas du tout comment faire cela, n'étant pas très bon dans les scripts je me contente de bidouiller par-ci par là en mettant des conditions ou autre, mais pour le reste ... C'est une autre affaire :/

Posté par Nuri Yuri le 30 Nov - 19:47 (2012)
MSGs=["message1","..."]

Là où t'as machin(MSG) tu met machin(($messagedummy < MSGs.size) ? MSGs[$messagedummy] : MSGs[0]).

Posté par Dark_Ray le 30 Nov - 21:49 (2012)
Est-ce bien ça qu'il fallait mettre :

Citation:
# --------------------------------------------------------
# MSG
# - Fichier image de la boîte de dialogue du jeu
# dans le dossier Graphics/picture
# --------------------------------------------------------

MSGs = ["messagedummy_1.png","messagedummy_2.png","messagedummy_3.png","messagedummy_4.png","messagedummy_5.png"]

MSG = (($messagedummy < MSGs.size) ? MSGs[$messagedummy] : MSGs[0])



Parce que je reçois une erreur :/

Posté par Nuri Yuri le 1 Déc - 11:59 (2012)
Non, tu fais ça dans les scripts qui utilisent MSG Window_Message par exemple et initialise ta variable $messagedummy avant d'utiliser ces classes sinon forcément ça plante.

Posté par Dark_Ray le 2 Déc - 22:07 (2012)
Là maintenant ça passe, mais je ne sais pas comment rafraîchir les images dès que l'on quitte le menu option.

Car tant que l'on passe pas par le menu via la touche Echap, l'apparence de la fenêtre reste la même.

J'ai tenté un Graphics.update mais je sais pas du tout si ça a un rapport avec (en tout cas ça marche pas 42 )

Posté par Nuri Yuri le 2 Déc - 23:20 (2012)
C'est normal après il faut recréer l'instance ou remettre à jour le bitmap du dummy.

Posté par Dark_Ray le 3 Déc - 15:40 (2012)
Ok merci Clin d'œil foireux

Je considère ça pour résolu !