- Code: Tout sélectionner
nul=[] execVM "briefing.sqf";
if (isServer) then {
ob1 = nil;
ob2 = nil;
nul=[] execVM "states.sqf";
};
Dans states.sqf
- Code: Tout sélectionner
if (isServer) then {
while {true} do {
publicVariable "ob1";
publicVariable "ob2";
sleep 5;
};
};
Dans briefing.sqf
- Code: Tout sélectionner
//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ée
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 :


