Forum Solarus-Games francophone

Jeux amateurs => Aide & support => Discussion démarrée par: Galyss le 08 Janvier 2021 à 18:22

Titre: Téléportation si plus d'ennemis
Posté par: Galyss le 08 Janvier 2021 à 18:22
Bien le bonjour !
J'écris ici aujourd'hui car je fais face à un gros soucis sur mon jeu.
Je ne sais pas comment permettre la téléportation sous la condition qu'il n'y ai plus d'ennemis dans la pièce.

En gros actuellement j'ai un donjon où le joueur peut se déplacer de salles en salles librement. Le problème c'est que je veux que le joueur tue tous les monstres avant de pouvoir passer à la suite, une idée ? :)

(Mes connaissances en LUA étant très limitées, désolé si j'ai du mal à comprendre D:)

Merci d'avance et bonne journée !
Titre: Re : Téléportation si plus d'ennemis
Posté par: PhoenixII le 09 Janvier 2021 à 18:10
Bonjour.
Plusieurs façons sont possibles pour cela
1. (simple à faire mais nécessite de faire du nommage en masse ainsi que copier-coller un même:script encore et encore) Donner un nom aux ennemis, avec un préfixe commun, puis dans la fonction update de la map (map;on_update), tu peux vérifier la présence de ces ennemis avec map;has_entities("ton prefixe"), et téléporter si plus aucun ennemi n'est détecté ("hero:teleport"),
2. (plus complexe mais à ne faire qu'une seule et unique fois) : Utiliser la métatable des ennemis avec "sol.main.get_metatable" et redéfinir "enemy:on_created" pour l'enregistrer dans un tableau puis "enemy:on_dead" pour lire ledit tableau et lancer le TP si il était le dernier debout.

Note, je ne donne volontairement pas le code exact, à toi de voir comment tu veux continuer (la documentation se trouve facilement, même si il n'y a (toujours) pas de version française)

Bonne chance à toi, et que la Force-Tri soit avec toi, jeune Codawan !
Titre: Re : Téléportation si plus d'ennemis
Posté par: Galyss le 11 Janvier 2021 à 09:27
Bonjour !

Merci beaucoup pour ta réponse, j'essaie ça de suite !

Bonne journée :)