- DamonYa a écrit:
- Petite question toute bête.
Existe t'il une fonction pour dire : "mon joueur a fini cette quête"
Mon probleme concerne une porte qui s'ouvre sous certaines conditions pendant une quête.
Ex :
1- avant le stage 40 de la quête et avant la quête --> fermé
2- pendant le stage 40 à 60 --> script spécial
3- après le stage 60 et après la résolution de la quête --> ouvert
C'est sur le 3 que je suis pas sûr
Car si je met GetStage >=60 comme condition, une fois la quête terminée, cette condition est-elle toujours valable ? Marche t'elle encore ? Voilà ma question. Je ne pense pas que ce soit une grosse question, mais elle me turlupine pas mal en ce moment. ^^
Merci. Je n'ai trouvé de réponse à cette question nul part.
EDIT :
Bon si la réponse est :
1- Oui, pas de probleme le Getstage continue d'être pris en compte même après la fin de la quête : pas de soucis donc
2- Non, la quête étant fini, ton GetStage ne vaut rien, il va falloir donc trouver une autre solution
Si Non, j'avais pensé donc à utiliser une variable globale pour simuler le fait que la quête est fini qui se mettrait en application au moment de la derniere étape de quête. Est-ce une bonne méthode ? Mais si la réponse est "1- Oui", inutile que je me prenne la tête, d'où l'utilité d'une réponse. Merci...
La réponse que l'on peut trouver soit même, est souvent plus rapide que d'en attendre une...
Je crois avoir déja répondu à cette question quelque part, peut-être sur Wiwiland... Mais comme le site est actuellement indisponible, je te réponds ici :
Pour ne pas perdre son pantalon, il est parfois sage de mettre une ceinture et des bretelles...
(dans l'éditeur, ET=&& et OR=||)
IF GetStage Qmachin > 60 OR GetQuestRunning Qmachin == 0
Mais inutile, je te rassure, entre autres, le StopQuest arrête le script de quête, mais ne change rien à ses variables qui restent disponibles en test et en modif, et aussi le getstage... Mais si ton test est dans le script arrêté, il ne marchera pas bien sûr ! (je suppose que ta quête a un script de quête, mais ce n'est pas obligatoire, les scripts de résultats suffisent parfois.
Le test sur la quête stoppée doit être fait dans un autre script ou condition. Mais même là, il faudra tester si cette quête a déja tourné... cela dépendra soit des niveaux mini de stage avant arrêt, soit d'une variable de quête faite pour cela. C'est pour cela qu'au démarrage d'une quête, on conseille d'augmenter la valeur du stage... donc GetStage > 0 indique que la quête a déja tourné. (Sauf si le script où tu testes a été lancé par ladite quête stoppée...auquel cas elle a déja tourné).
Le test complet serait :
IF GetStage Qmachin > 60 OR (GetStage Qmachin > 0 AND GetQuestRunning Qmachin == 0)
Enfin, tu as compris, ce test peut être divisé en deux et mis à plusieurs endroits différents. (Stage à 60) c'est simple, mais (quête terminée), çà l'est moins car terminée ou pas encore commencée ? C'est le pb du getQuestRunning... Et puis, peut-elle terminer avant stage 60 ?
Cependant, crois-en un
VIEUX (comme diraient les
du forum) programmeur, ne suppose pas de des objets qui peuvent (car le vent change...) être ou devenir indépendants sont forcément exécutés en séquence... Si la structure change, le mod se prend les pieds dans la carpette, et il faut tout resynchroniser... Donc ceinture et bretelles, c'est mieux !
J'ai testé, pour la forme, sur la quête MQ01 (sortie de prison, que tout le monde a déja achevé... je suppose) :
Après sortie de prison : GetStage MQ01 donne 100, et bien sûr GetQuestRunning donne 0.
Voilà... j'espère que tu avais déja trouvé...
Donc, j'insiste : des tâches toujours considérées comme asynchrones... et en début de script, tu testes les conditions de synchronisation avec les tâches dépendantes... si ceci est en cours... je fais-ci, si cela est terminé je fais çà, et si truc n'est pas commencé, je fais schmoll !
Bien sûr, tenir-compte des dépendances certaines dans le temps simplifie les synchronisations... mais il faut qu'elles soient certaines...
Voilà, même si cela ne te sert plus, cela servira à d'autres, enfin, ceux qui savent lire ou qui connaissent la fonction recherche. Bon, maintenant, j'ai faim... je vais faire un tour sur ma planète et je reviens !
Si tu est le donneur d'ordre et le programmeur c'est plus simple de t'entendre avec toi-même.
Si tu as un donneur d'ordre, fait lui écrire la règle. S'il complique la sychro... tu fais une facture pour travaux supplémentaires. Loi des affaires, et aussi loi anti-esclavagiste (
) !