Bonjour, vous n'êtes actuellement pas connecté sur le forum
Contacter un administrateur :: Se connecter :: S'enregistrer


Armée de l'Ombre


Nouveau sujet Répondre Imprimer Syndication RSS 2.0

Script via addaction


Membre
Avatar de P-Milkman
  • Age : 29 ans
  • Messages : 7
  • Inscrit : 22 Avril 2017
  • Statut : Hors ligne
 
Lien vers ce message 22 Avril 2017, 14:18

Re-bonjour à tous,

Je suis face à un soucis, toujours sur la même mission, j'ai besoin de créer un addaction sur un objet (land_document_01_f, le dossier top secret) que j'ai nommé: table. Cet addaction servira pour une des tà¢ches qui consiste à récupérer des informations.

Via l'init de ma mission j'ai insérer cette ligne pour l'addaction:

[[table, ["Récupérer les documents","scripts\objectif.sqf"]],"addAction",true,true] call BIS_fnc_MP;


qui renvoi à mon objectif.sqf

task3 setTaskState "SUCCEEDED";
["TaskSucceeded",["","Récupérer les informations"]] call bis_fnc_showNotification;
deleteVehicle table;
task4 = player createSimpleTask["Contact du FIA"];
task4 setSimpleTaskDescription["Les informations que vous venez de récupérer sont essentielles.
Nous avons réussir à établir une liaison avec un petit groupe du FIA basé un peu plus au nord de votre position. Mettez-vous en route pour leur remettre les documents.
Une fois sur place, faites profil bas, essayez de ne pas vous faire repérer, sinon assurez-vous d'éliminer la menace. La zone que vous allez traverser grouille de CSAT, soyez prudent.
Terminé. ", "Contact du FIA", "Contact du FIA"]; task4 setSimpleTaskDestination (getMarkerPos "obj4"); player setcurrenttask task4; ["TaskAssigned",["","Contact du FIA"]] call bis_fnc_showNotification; seal1 setcurrenttask task4; seal2 setcurrenttask task4; seal3 setcurrenttask task4; seal4 setcurrenttask task4; seal5 setcurrenttask task4; _respawn_west2 = createMarker ["respawn_west2", respawn3]; "respawn_west2" setMarkerType "Empty";


En mode test via l'éditeur cela fonctionne, mais en coop en ligne j'ai fais déclencher l'action pour un de mes collêgues, les documents ont bien disparus de la table, mais pas de validation de tà¢che ni d'assignation/création de la suivante, une idée du pourquoi ?

D'avance merci!



Mission Maker
Avatar de poran
  • Age : 46 ans
  • Messages : 1241
  • Inscrit : 28 Mars 2013
  • Statut : Hors ligne
  • Spécialité : Génie Expert
 
Lien vers ce message 24 Avril 2017, 12:51

les taches sont créées par modules? ou bien comme ceci: http://www.clan-ado.fr/wiki/146-briefing.html (voir dans la partie objectif)

Leader
Général
Avatar de The-KiLLeR
  • Age : 32 ans
  • Messages : 2353
  • Inscrit : 29 Janvier 2007
  • Statut : Hors ligne
  • Spécialité : Démolition Vétéran
 
Lien vers ce message 24 Avril 2017, 18:16
Message édité 1 fois, dernière édition par The-KiLLeR, 24 Avril 2017, 18:17  

Salut,

C'est normal car un script appelé via un "addAction" est local au joueur qui l'exécute.
Pour rendre global ton action, je te conseil cette méthode :

Créer le fichier "initServer.sqf" que tu places dans le dossier racine de ta mission :

missionNamespace setVariable ["monAction1",false,true];


Dans ton fichier "scripts\objectif.sqf", tu mets ceci :

missionNamespace setVariable ["monAction1",true,true];


Créer un autre fichier "scripts\objectif2.sqf" et tu mets ceci :

task3 setTaskState "SUCCEEDED";
["TaskSucceeded",["","Récupérer les informations"]] call bis_fnc_showNotification;

task4 = player createSimpleTask["Contact du FIA"];
task4 setSimpleTaskDescription["Les informations que vous venez de récupérer sont essentielles.
Nous avons réussir à établir une liaison avec un petit groupe du FIA basé un peu plus au nord de votre position. Mettez-vous en route pour leur remettre les documents.
Une fois sur place, faites profil bas, essayez de ne pas vous faire repérer, sinon assurez-vous d'éliminer la menace. La zone que vous allez traverser grouille de CSAT, soyez prudent.
Terminé. ", "Contact du FIA", "Contact du FIA"]; task4 setSimpleTaskDestination (getMarkerPos "obj4"); ["TaskAssigned",["","Contact du FIA"]] call bis_fnc_showNotification; player setcurrenttask task4; _respawn_west2 = createMarker ["respawn_west2", respawn3]; "respawn_west2" setMarkerType "Empty";


Et pour finir tu places un déclencheur sur la carte avec les paramêtres suivants :

Type: Aucun
Activation: Aucune
Condition: missionNamespace getVariable "monAction1"
Quand activation: nul=[] execVm "scripts\objectif2.sqf"; deleteVehicle table;


http://www.clan-ado.fr/images/upload/membres/3_1335205596.jpg

Membre
Avatar de P-Milkman
  • Age : 29 ans
  • Messages : 7
  • Inscrit : 22 Avril 2017
  • Statut : Hors ligne
 
Lien vers ce message 25 Avril 2017, 8:23

Super, ça marche nickel, un grand merci, je n'avais plus du tout pensé au initServer ... Laborieux comme reprise !!

Merci du coup de pouce !


Répondre





.