Création d'une mission multi-objectifs
- 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
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
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

Re: Déclenchement d'un événement à la lecture d'un document
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.
J'ai mis ta question dans le titre.

Re: Déclenchement d'un événement à la lecture d'un document
Tu as placé le document avec quoi?
Et quel document?
Je ne vois pas directement de quel objet tu parles.
Et quel document?
Je ne vois pas directement de quel objet tu parles.

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

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


Re: Déclenchement d'un événement à la lecture d'un document
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:
à
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:
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:
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:
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

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
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;
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";
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";
Code : Tout sélectionner
["jip_documents",false] call edt_fnc_getVar

- 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
merci pour ta réponse détaillée, je testerais cela cet ap midi 


- 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
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?
Sinon aurais tu une astuce à me donner pour tester une mission sans devoir la faire?

Re: Déclenchement d'un événement à la lecture d'un document
Non, quand tu appeles la commande "getVar" tu demandes la valeur actuelle qui se cache derrière "jip_documents".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?
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".
Tu veux dire tester du code?Mystik a écrit :Sinon aurais tu une astuce à me donner pour tester une mission sans devoir la faire?
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.

- 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
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;
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;

Re: Déclenchement d'un événement à la lecture d'un document
Faut pas de guillements quand tu utilises des chiffres 
Et après ça devrait être bon.
Si t'as encore une erreur, essayes d'utiliser l'autre fonction raccourci pour les status:
qui est un équivalent plus simple de :

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;
Code : Tout sélectionner
2 call edt_fnc_completed;
Code : Tout sélectionner
[2,true] call edt_fnc_setVar;
