Forum WTeam
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Forum WTeam

Le site des moddeurs 100% francophone.
 
AccueilPortailGalerieRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

 

 Condition GetStage encore active après une Quête finie ?

Aller en bas 
2 participants
AuteurMessage
DamonYa
Chaman
DamonYa


Masculin Nombre de messages : 53
Age : 44
Date d'inscription : 19/07/2007

Condition GetStage encore active après une Quête finie ? Empty
MessageSujet: Condition GetStage encore active après une Quête finie ?   Condition GetStage encore active après une Quête finie ? Icon_minitimeLun 23 Juil 2007, 13:27

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...
Revenir en haut Aller en bas
http://www.meteobell.com
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Condition GetStage encore active après une Quête finie ? Empty
MessageSujet: Re: Condition GetStage encore active après une Quête finie ?   Condition GetStage encore active après une Quête finie ? Icon_minitimeVen 27 Juil 2007, 19:24

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... rire (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) Suspect

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 ? Non

Cependant, crois-en un VIEUX (comme diraient les banane 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 ! Chat

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. Saute

Voilà... j'espère que tu avais déja trouvé... Réfléchis

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 ! rolf

Bien sûr, tenir-compte des dépendances certaines dans le temps simplifie les synchronisations... mais il faut qu'elles soient certaines... Basketball

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 ! Pharaon

Si tu est le donneur d'ordre et le programmeur c'est plus simple de t'entendre avec toi-même. sournois
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 ( rire2 ) !

barbecue
Revenir en haut Aller en bas
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Condition GetStage encore active après une Quête finie ? Empty
MessageSujet: Re: Condition GetStage encore active après une Quête finie ?   Condition GetStage encore active après une Quête finie ? Icon_minitimeVen 27 Juil 2007, 19:31

Hem... j'avais pas vu que c'était pour faire lock, unlock d'une porte... que je suppose dépendante que de ta quête...

Donc :
Porte lockée dans le tescs (initialisation)
Script de porte qui teste si stage entre 40 et 60... pour faire ce qu'il faut.
Même script de porte qui teste si pas running et a déja run pour delocker.
Egalement si stage = 60 (run ou pas on s'en moque), unlock. Si tu est sûr que ta quête finit à 60, cela tient lieu également de test des quête terminée.

Cependant, dès que le unlock est définitif, je te conseille de faire un test en début de script pour sortir de suite... cela abrège le script dans la plus grande partie du jeu.
Une autre solution est d'utiliser un script de quête qui lance un action de fin de quête : le unlock, puis stoppe la quête, comme çà arrêt du script et bon débarras... mais un script de quête peut mettre cinq secondes pour agir, alors qu'un script d'objet agit à chaque frame, mais est plus coûteux.


Dernière édition par le Ven 27 Juil 2007, 21:24, édité 1 fois
Revenir en haut Aller en bas
DamonYa
Chaman
DamonYa


Masculin Nombre de messages : 53
Age : 44
Date d'inscription : 19/07/2007

Condition GetStage encore active après une Quête finie ? Empty
MessageSujet: Re: Condition GetStage encore active après une Quête finie ?   Condition GetStage encore active après une Quête finie ? Icon_minitimeVen 27 Juil 2007, 21:21

Merci bien pour ta (longue) réponse. J'ai compris en gros ce que tu voulais dire, mais pas tout en détail.

Apparemment tu me dis que les variables de tests de quête (getstage) sont toujours actives même après la fin de la quête. Donc si je met un GetQuestRunning Qmachin == 0 c'est juste pour la forme si je comprend bien.

Bon je vais ingurgiter tout ça tranquillement et tester, je comprendrais mieux tout ce que tu as dit directement en testant je pense.

Merci à toi en tout cas, d'avoir pris le temps. Je te jure j'ai cherché la réponse sans trouver nul part (même les sites anglais). J'ai pas dû chercher aux bons endroits. Thanks.
Revenir en haut Aller en bas
http://www.meteobell.com
Mike89
Maître ArchipelModeur
Maître ArchipelModeur
Mike89


Masculin Nombre de messages : 3151
Age : 68
Date d'inscription : 06/03/2007

Condition GetStage encore active après une Quête finie ? Empty
MessageSujet: Re: Condition GetStage encore active après une Quête finie ?   Condition GetStage encore active après une Quête finie ? Icon_minitimeVen 27 Juil 2007, 21:37

DamonYa a écrit:
Merci bien pour ta (longue) réponse. J'ai compris en gros ce que tu voulais dire, mais pas tout en détail.

Apparemment tu me dis que les variables de tests de quête (getstage) sont toujours actives même après la fin de la quête. Donc si je met un GetQuestRunning Qmachin == 0 c'est juste pour la forme si je comprend bien.

Bon je vais ingurgiter tout ça tranquillement et tester, je comprendrais mieux tout ce que tu as dit directement en testant je pense.

Merci à toi en tout cas, d'avoir pris le temps. Je te jure j'ai cherché la réponse sans trouver nul part (même les sites anglais). J'ai pas dû chercher aux bons endroits. Thanks.

Oublies mes histoires de synchronisation... c'est pour les usines à gaz...

Une quête toute simple a un point d'entrée (stage 10), car stage 0 veut dire pas commencée. Ce qui veux dire qu'au démarrage de la quête il faut tout de suite faire setstage Qmachin 10, ou lancer avec le setstage lui même, puisque çà marche sans startQuest Qmachin.
Et une quête simple finit à un stage bien déterminé, 60 par exemple.
Donc stage 60 signifie aussi quête finie (si le stage 60 exécute un result scrit qui contient stopQuest Qmachin).

Par contre si une quête peut terminer à 30, à 60 et à 100, il faut tester les 3 valeurs. Ou alimenter à chaque stopQuest une variable de quête qui signifie quête terminée... Avec une variable c'est clair pour tout le monde. Mais cela oblige à avoir un script de quête éventuellement juste pour çà.

Pour l'histoire des valeurs qui restent alimentées, c'est clair, je l'ai écrit dans le wiwiki. Par contre il faut penser que la fonction GetStage ne fait que retourner une variable système, une par quête, qui elle aussi reste alimentée...
Revenir en haut Aller en bas
DamonYa
Chaman
DamonYa


Masculin Nombre de messages : 53
Age : 44
Date d'inscription : 19/07/2007

Condition GetStage encore active après une Quête finie ? Empty
MessageSujet: Re: Condition GetStage encore active après une Quête finie ?   Condition GetStage encore active après une Quête finie ? Icon_minitimeVen 27 Juil 2007, 21:47

Ok ta réponse est très complète et je t'en remercie, elle servira surement à beaucoup d'autres également.

Dans mon cas précis, c'est cette phrase qui est le plus important et répond à ma question :

Citation :
Pour l'histoire des valeurs qui restent alimentées, c'est clair, je l'ai écrit dans le wiwiki. Par contre il faut penser que la fonction GetStage ne fait que retourner une variable système, une par quête, qui elle aussi reste alimentée...

Je l'ai pas vu dans le wiwiki à l'époque (oui car ça fait un moment qu'on a plus accès au wiwiki malheureusement)

Donc finallement dans mon cas (qui est un cas simple) mon GetStage suffit amplement. En résumant donc. Si mon StopQuest se fait au Stage 80, la variableID de quête reste donc indéfiniment bloqué à 80 pour toujours. Elle ne se volatilise pas dans le néant. C'est logique mais j'étais pas sûr. C'est ce que je voulais savoir donc.

Merci beaucoup Mike89 Très content
Revenir en haut Aller en bas
http://www.meteobell.com
Contenu sponsorisé





Condition GetStage encore active après une Quête finie ? Empty
MessageSujet: Re: Condition GetStage encore active après une Quête finie ?   Condition GetStage encore active après une Quête finie ? Icon_minitime

Revenir en haut Aller en bas
 
Condition GetStage encore active après une Quête finie ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Dialogue de quete
» [Prb]Débuter une Quête...
» Marqueur de quête
» [TUTO] Dialogue et quête
» Quete étape probleme

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum WTeam :: Public :: Vous avez un problème avec Oblivion et ses mods ?-
Sauter vers: