Création d'une mission multi-objectifs

Les scripts et les missions des [V]Vétérans

Vous pouvez poser vos questions et poster vos scripts, le forum est ouvert à tous.
Avatar de l’utilisateur
Mystik
Membre des [V]Vétérans
Messages : 639
Inscription : 15 août 2014, 14:54
Localisation : Haute Sâone -France
Contact :

Création d'une mission multi-objectifs

Message par Mystik » 22 nov. 2014, 18:17

Toujours dans mon édition de mission...
J'ai avancé un peu avec un coup de pouce de Julien (merci à lui)

Je reviens pour demander un truc précis.
Je cherche à déclencher une tâche via un document secret. J'ai vu qu'en ouvrant ces derniers, cela nous bascule direct sur la carte dans l'onglet info avec une description du doc apparemment (vide de base).

Dans un premier temps je cherche à déclencher ma tâche via l'ouverture de ce document (et pourquoi pas utiliser l'ouverture auto du document via la carte, reste à donner une description... je sais pas faire)
J'ai lié mon trigger au document mais je vois pas trop quel script utiliser...

Merci les gars
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4125
Inscription : 14 oct. 2012, 22:47

Re: Déclenchement d'un événement à la lecture d'un document

Message par Tyrghen » 22 nov. 2014, 18:55

Salut, j'ai coupé le fil précédent pour que l'info ne se perde pas pour plus tard.
J'ai mis ta question dans le titre.
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4125
Inscription : 14 oct. 2012, 22:47

Re: Déclenchement d'un événement à la lecture d'un document

Message par Tyrghen » 22 nov. 2014, 19:07

Tu as placé le document avec quoi?
Et quel document?

Je ne vois pas directement de quel objet tu parles.
Image

Avatar de l’utilisateur
Mystik
Membre des [V]Vétérans
Messages : 639
Inscription : 15 août 2014, 14:54
Localisation : Haute Sâone -France
Contact :

Re: Déclenchement d'un événement à la lecture d'un document

Message par Mystik » 23 nov. 2014, 16:27

le document est placé via l'éditeur, et c'est le "document secret"... pourquoi j'ai pris celui là plutôt qu'un autre me demande pas :lol:

Du coup j'ai placer un trigger relié à ce document en espérant qu'il déclenche ma prochaine tâche, voici le script du trigger:

["jip_var_done",true] call edt_fnc_setVar;["Investir la Base de Kamino et détruire les réserves d'arme de la résistance","created","Le document trouvé nous indique que ce convoi d'arme prenait la destination du centre de tir de Kamino","marker1_3","jip_var_done3"] call edt_fnc_task;

Du coup j'ai bien été regardé dans tes précedent post où tu me disais de regarder dans ramasser.sqf, mais j'suis désolé ça reste du chinois pour moi... y'a bien une ligne de code mais où dois-je la placer?

De plus, est il possible d'insérer du texte dans l'onglet "infos" de la carte, qui se déclenche automatiquement quand on ouvre le document (cela reste superflu à la limite)

Merci tyrghen ;) J'espère t'avoir apporté assez de détails pour que tu comprennes
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4125
Inscription : 14 oct. 2012, 22:47

Re: Déclenchement d'un événement à la lecture d'un document

Message par Tyrghen » 24 nov. 2014, 12:48

Ok, maintenant je te suis :)

Bon, ici déjà, on est sur la Base Mission, pas sur une mission pur éditeur.
Ca change la donne :)

Ton code pour l'activation est bon, tu ne dois rien modifier de ce côté là.
Simplement ton déclencheur n'est pas activé.

Pour tester cette partie là du code, modifies la condition du déclencheur de:

Code : Tout sélectionner

this
à

Code : Tout sélectionner

true
Et tu verras si ça fait ce que tu veux.
Une fois le test fini, tu remets "this".

Une remarque, tu utilises les variables JIP, c'est bien, mais dans ton cas, si tu te contentes de les numéroter, tu peux simplement utiliser des chiffres:

Code : Tout sélectionner

[1,true] call edt_fnc_setVar;
["Investir la Base de Kamino et détruire les réserves d'arme de la résistance","created","Le document trouvé nous indique que ce convoi d'arme prenait la destination du centre de tir de Kamino","marker1_3",3] call edt_fnc_task; 
C'est une facilité que j'ai ajoutée pour la concision et que j'utilise quand je crée le fil de ma mission.

Quand j'utilise les variables JIP je leur donne un nom reflétant leur fonction.
"jip_documents_trouves"
"jip_radar_detruit"
etc.

Le "jip_" que je mets dans les exemples est facultatif, il ne sert qu'à identifier le fait qu'on parle d'une variable synchronisée.


Pour la fonction ramasser, tu la mets simplement dans la ligne d'initialisation du document. Pas de bol, j'ai pas documenté ce script là dans la Base Mission.
Tu édites l'objet et dans le champ d'initialisation:

Code : Tout sélectionner

nul = [this] execVM "ramasser.sqf";
Petite remarque:
Le "nul = " est nécessaire parce que l'éditeur n'accepte pas du code qui renvoie du code. Hors c'est ce que fait la fonction execVM.
Du coup, on met "nul =" et la ligne ne renvoie rien à l'éditeur puisqu'elle écrit sa valeur dans une variable.
C'est con... mais faut le savoir.
Tu peux essayer sans le "nul =" tu verras le message d'erreur classique.

Maintenant, si tu veux déclencher le trigger précédent, il faut que l'action ramasser poste son statut quelque part.
Le code devient:

Code : Tout sélectionner

nul = [this, getPos this, "jip_documents"] execVM "ramasser.sqf";
L'action va maintenant poster le résultat dans la variable "jip_documents", que tu peux alors utiliser dans la condition de ton déclencheur

Code : Tout sélectionner

["jip_documents",false] call edt_fnc_getVar
Image

Avatar de l’utilisateur
Mystik
Membre des [V]Vétérans
Messages : 639
Inscription : 15 août 2014, 14:54
Localisation : Haute Sâone -France
Contact :

Re: Déclenchement d'un événement à la lecture d'un document

Message par Mystik » 24 nov. 2014, 14:01

merci pour ta réponse détaillée, je testerais cela cet ap midi ;)
Image

Avatar de l’utilisateur
Mystik
Membre des [V]Vétérans
Messages : 639
Inscription : 15 août 2014, 14:54
Localisation : Haute Sâone -France
Contact :

Re: Déclenchement d'un événement à la lecture d'un document

Message par Mystik » 24 nov. 2014, 15:21

bon je vais tester ça mais je me pose des question sur la fin du post, sur la valeur "false", elle signifie bien un echec de la mission où jsuis a côté de mes pompes?

Sinon aurais tu une astuce à me donner pour tester une mission sans devoir la faire?
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4125
Inscription : 14 oct. 2012, 22:47

Re: Déclenchement d'un événement à la lecture d'un document

Message par Tyrghen » 24 nov. 2014, 15:41

Mystik a écrit :bon je vais tester ça mais je me pose des question sur la fin du post, sur la valeur "false", elle signifie bien un echec de la mission où jsuis a côté de mes pompes?
Non, quand tu appeles la commande "getVar" tu demandes la valeur actuelle qui se cache derrière "jip_documents".
Le deuxième paramètre, c'est la valeur que tu reçois si 'jip_documents" n'a pas encore de valeur.

Dans notre cas, tant que le document n'est pas ramassé, "jip_documents" n'a pas encore de valeur.

La condition d'un déclencheur attend une valeur vraie (true) ou fausse (false), donc on lui donne ce qu'elle demande: le contenu de "jip_documents" ou "false". La condition ne sera donc pas validée tant que "jip_documents" ne devient pas "true".
Mystik a écrit :Sinon aurais tu une astuce à me donner pour tester une mission sans devoir la faire?
Tu veux dire tester du code?
Oui bien sûr, tu as la console de débogage de l'éditeur.

Mais personnellement, je te recommande le RMM Debug de la Base Mission, accessible dans le menu "U", tu peux y taper du code et tu reçois la valeur renvoyée par ce code dans le bas de la fenêtre. Dans la console de débogage, tu dois envoyer la valeur vers l'écran avec un "hint" ou autre.
Personnellement, je préfère le RMM Debug quand je teste une condition ou la valeur d'une variable.

Tu places un joueur, tu fais "prévisualiser" et tu peux tester les différentes commandes.
Tu peux ajouter des objets avec l'ACV et ensuite exécuter des commandes dessus. L'ACV associe un nom de variable (OBJ1, OBJ2, etc.) avec les objets que tu places.
Image

Avatar de l’utilisateur
Mystik
Membre des [V]Vétérans
Messages : 639
Inscription : 15 août 2014, 14:54
Localisation : Haute Sâone -France
Contact :

Re: Déclenchement d'un événement à la lecture d'un document

Message par Mystik » 24 nov. 2014, 15:49

Oulla ça fait bcp de chose... je suis vraiment un noob en script lol

Bon je viens de tester mais j'ai eu une erreur je pense que c'est dû aux guillemets manquant là:

["2",true] call edt_fnc_setVar;["Investir la Base de Kamino et détruire les réserves d'arme de la résistance","created","Le document trouvé nous indique que ce convoi d'arme prenait la destination du centre de tir de Kamino","marker1_3","3"] call edt_fnc_task;
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4125
Inscription : 14 oct. 2012, 22:47

Re: Déclenchement d'un événement à la lecture d'un document

Message par Tyrghen » 24 nov. 2014, 15:57

Faut pas de guillements quand tu utilises des chiffres ;)

Et après ça devrait être bon.

Code : Tout sélectionner

[2,true] call edt_fnc_setVar;
["Investir la Base de Kamino et détruire les réserves d'arme de la résistance","created","Le document trouvé nous indique que ce convoi d'arme prenait la destination du centre de tir de Kamino","marker1_3",3] call edt_fnc_task;
Si t'as encore une erreur, essayes d'utiliser l'autre fonction raccourci pour les status:

Code : Tout sélectionner

2 call edt_fnc_completed;
qui est un équivalent plus simple de :

Code : Tout sélectionner

[2,true] call edt_fnc_setVar;
Image

Répondre