=[TTK]= Memphis007 Grand Manitou
Nombre de messages : 738 Age : 43 Localisation : /dev/null Humeur : Frak ! Date d'inscription : 13/04/2009
| Sujet: Template de briefing pour le respawn "Group" / 3 Lun 14 Déc - 20:56 | |
| Dans l'init : - Code:
-
nul=[] execVM "briefing.sqf";
if (isserver) then { ob1 = nil; ob2 = nil; nul=[] execvm "states.sqf"; };
Dans states.sqf - Code:
-
if (isserver) then { while {true} do { publicvariable "ob1"; publicvariable "ob2"; sleep 5; }; }; Dans briefing.sqf - Code:
-
//on attend que les joueurs prennent possession de leurs corps waitUntil { !isNil {player} }; waitUntil { player == player };
// ----- Notes ----- player createDiaryRecord ["Diary", ["Renseignements", "Il se pourrait qu'il y ai des patrouilles dans les forêts qui bordent la côte nord est. Vous devrez, dans un second temps, vérifier cette information et, le cas échéant, éliminer ces buveurs de vodka."]]; player createDiaryRecord ["Diary", ["Situation", "Le Sergeant Valjeant trouve que nous nous glandons depuis bien trop longtemps, la base avançée au nord de l'île est toujours sous contrôle Russe, afin de mener à bien nos opérations dans la région Tchernarusse nous devons l'investir au plus vite. Alors, arrêtez la binouse, le pastis et Go Go Go Go !!"]];
//on définit ici autant de variables locales que d'objectifs _tskObj1_old = nil; _tskObj2_old = nil; _tskObj3_old = nil;
// ----- Objectifs -----
//les 3 lignes supplémentaires ici servent à cocher les objectifs de façon approprié if (!isNil "Obj2") then {_tskObj2_old = taskstate Obj2;}; obj2 = player createSimpleTask["Prendre la base avançée"]; obj2 setSimpleTaskDescription["Prendre la base avançée <br/><br/>La <marker name='m_obj2'>base avançée</marker> est sous le contrôle Russe. Vous devez la nettoyer afin d'en prendre le contrôle", "Prendre la base avançée", "Base avançée"]; obj2 setSimpleTaskDestination (getMarkerPos "m_obj2"); Switch (_tskObj2_old) Do { Case "None" : { Obj2 setTaskState "None"; }; Case "Created" : { Obj2 setTaskState "Created"; }; Case "Assigned" : { player SetCurrentTask obj2; }; Case "Succeeded" : { Obj2 setTaskState "Succeeded"; }; Case "Failed" : { Obj2 setTaskState "Failed"; }; Case "Canceled" : { Obj2 setTaskState "Canceled"; }; };
if (!isNil "Obj1") then {_tskObj1_old = taskstate Obj1;}; obj1 = player createSimpleTask["Rejoindre le dépôt d'armes"]; obj1 setSimpleTaskDescription["Rejoindre le dépôt d'armes <br/><br/>Afin de vous équipper correctement vous devrez rejoindre <marker name='m_obj1'>le dépôt d'armes</marker>.", "Rejoindre le dépôt d'armes", "Rejoindre le dépôt d'armes"]; obj1 setSimpleTaskDestination (getMarkerPos "m_obj1"); Switch (_tskObj1_old) Do { Case "None" : { Obj1 setTaskState "None"; }; Case "Created" : { Obj1 setTaskState "Created"; }; Case "Assigned" : { player SetCurrentTask obj1; }; Case "Succeeded" : { Obj1 setTaskState "Succeeded"; }; Case "Failed" : { Obj1 setTaskState "Failed"; }; Case "Canceled" : { Obj1 setTaskState "Canceled"; }; };
// si des objectifs sont déclarés pendant la mission, il faut les rappeler ici (ob2=true; publicVariable "ob2"; lorsque obj2 est réussi) if (!isnil "ob2") then { if (!isNil "Obj3") then {_tskObj3_old = taskstate Obj3;}; obj3 = player createSimpleTask["Nettoyez les Forêts"]; obj3 setSimpleTaskDescription["Nettoyez les Forêts <br/><br/>Faites vous plaisir maintenant, allez nettoyez les forêts qui longent la route au nord est de l'île", "Nettoyez les forêts", "Nettoyez les forêts"]; Switch (_tskObj3_old) Do { Case "None" : { Obj3 setTaskState "None"; }; Case "Created" : { Obj3 setTaskState "Created"; }; Case "Assigned" : { player SetCurrentTask obj3; }; Case "Succeeded" : { Obj3 setTaskState "Succeeded"; }; Case "Failed" : { Obj3 setTaskState "Failed"; }; Case "Canceled" : { Obj3 setTaskState "Canceled"; }; };
};
//vérifie l'état de l'objectif 1, si il n'est pas réalisé, alors on le définit comme tâche actuelle (ob1=true; publicVariable "ob1"; lorsque obj1 est réussi) if (isNil "ob1") then {player setcurrenttask obj1;};
//envoyer le briefing au respawn et au Join In Progress if ( isNil{player getVariable "mk_killedEHadded"} ) then { player addEventHandler ["killed", { [] spawn { waitUntil { alive player }; execVM "briefing.sqf"; }; }]; player setVariable ["mk_killedEHadded", true]; };
if (true) ExitWith {}; A récupérer ici : | |
|
=[TTK]= Camille Caz TranKilou
Nombre de messages : 937 Age : 83 Localisation : La Rochelle Humeur : libertaire Date d'inscription : 27/11/2008
| Sujet: Re: Template de briefing pour le respawn "Group" / 3 Lun 14 Déc - 21:51 | |
| Magistral. | |
|