Forum Solarus-Games francophone

Jeux amateurs => Aide & support => Discussion démarrée par: MrPiGG le 31 Août 2022 à 15:59

Titre: Délai brandissement d'item suite à un dialogue.
Posté par: MrPiGG le 31 Août 2022 à 15:59
Bonjour à tous !

Bravo Christopho pour ce merveilleux travail, je découvre Solarus et suis en train de monter un projet éducatif pour des élèves de niveau secondaire - collège 4ème-3ème.

Je prépare une démo et suit les tutos. Lorsque le héros récupère un item dans un coffre, il le brandi et une boite de dialogue apparaît. Je constate un délai de quelques secondes entre la disparition de la boite de dialogue et la fin du brandissement alors que le jeu reprend.

J'ai ajouté game:start_dialog("_treasure.sword.1") dans sword.lua dans les items d'équipement.
sword.lua devient :

local item = ...
local game = item:get_game()

function item:on_created()
  item:set_savegame_variable("possession_sword")
end

function item:on_variant_changed(variant)
  game:start_dialog("_treasure.sword.1")
  game:set_ability("sword", variant)
end

Je travaille avec le pack master ALTTP mais les tileset du pack 1.5 que je trouve plus facile d'utilisation.

Quelqu'un a t'il le même délai ? Mon héros se fait attaquer de toutes part tandis qu'il brandi son épée durant de longues secondes !

Une image vaut mille mots, je poste une vidéo !

https://youtu.be/muBnsrgGROA

Merci !
Titre: Re : Délai brandissement d'item suite à un dialogue.
Posté par: Christopho le 02 Septembre 2022 à 09:05
Normalement tu n'as pas besoin du game:start_dialog("_treasure.sword.1") car le moteur affiche déjà automatiquement ce dialogue lorsque l'épée est obtenue dans un coffre. Pas sûr que ça explique ton délai bizarre cependant. Y a-t-il des messages d'erreur dans la console ?
Titre: Re : Délai brandissement d'item suite à un dialogue.
Posté par: MrPiGG le 02 Septembre 2022 à 15:27
Bonjour,

Merci pour ta réponse !
Aucun message d'erreur dans la console, et si je n'ajoute pas cette ligne, il n'y a aucun dialogue. Idem avec un bouclier dans le coffre.
Je suis sur Solarus 1.6.4 sur macOS.
Merci !!
Titre: Re : Délai brandissement d'item suite à un dialogue.
Posté par: le babouin volant le 08 Septembre 2022 à 18:48
Bonjour,
Je pense que le problème vient du fait que dans le pack ALTTP, le nom complet de l'épée est "equipment/sword". Je pense donc que cela marchera mieux sil le dialogue s'appelle " _treasure.equipment/sword.1"
J'espère que cette réponse sera utile.
Titre: Re : Délai brandissement d'item suite à un dialogue.
Posté par: MrPiGG le 12 Septembre 2022 à 21:13
Bonjour !
C'est exactement ce que je me suis dit, sans succès.
Tenté de renommer l'Id du dialogue _treasure.equipment.sword.1 (les points sont les sous dossiers, pas de /), pas de dialogue.
Tenté de mettre l'item sword.lua à la racine du dossier item, en conservant l'id du dialogue _treasure.sword.1, sans succès.
J'ai regardé la construction de Solarus DX, les items sont directement dans le dossier ad hoc, les dialogues ont l'Id _treasure également.
Je ne sais pas comment le moteur fait le lien entre l'item et le dialogue, quel type d'arborescence est attendue. sword.lua ne donne pas d'info, a part les caractéristiques de l'objet (son, brandissement etc)

Merci !
Titre: Re : Délai brandissement d'item suite à un dialogue.
Posté par: MrPiGG le 12 Septembre 2022 à 21:19
Et oui, ça fonctionne avec le vieux pack 1.5.1....
Titre: Re : Délai brandissement d'item suite à un dialogue.
Posté par: le babouin volant le 13 Septembre 2022 à 09:44
Bonjour,
Je pense que pour que le script marche avec le dernier pack de ressource,
il faut renommer le dialogue _treasure.equipment/sword.1 . Le equipment/sword n'est pas une erreur car c'est l'id de l'item. J'ai eu le même problème à mes débuts avec solarus :)
Titre: Re : Délai brandissement d'item suite à un dialogue.
Posté par: MrPiGG le 13 Septembre 2022 à 14:40
Oui ! Ça fonctionne merci !!!
Suis je bête, quand on choisi la bonne langue dans le menu de départ, ça aide !! :mrgreen:
Maintenant il faut que je trouve comment traduire le menu de départ, en français ils est vide !