Script via addaction




P-Milkman - 22 Avril 2017, 13: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:

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


qui renvoi à mon objectif.sqf

Code (Sélectionner)
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!


poran - 24 Avril 2017, 11: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)


The-KiLLeR - 24 Avril 2017, 17:16


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 :

Code (Sélectionner)
missionNamespace setVariable ["monAction1",false,true];


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

Code (Sélectionner)
missionNamespace setVariable ["monAction1",true,true];


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

Code (Sélectionner)
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;


P-Milkman - 25 Avril 2017, 7: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 !