Page 1 sur 1

Planificateur de mission

Publié : sam. déc. 05, 2020 12:14 pm
par Yohann
Pour faire suite a ce post : http://www.checksix-forums.com/viewtopi ... 2&t=210731

Je présente ici un script qui permet de lancer telle ou telle mission selon un calendrier:
Script

Voici un exemple de missions:
Mission


Avant tout et pour rappel, je m'adresse a ceux qui ont quelques notions de lua, de moose et fait quelques modification de script par exemple. C'est a peu près mon niveau. Je n'expliquerai pas le fonctionnement d'un lua et de moose en détail. Ceci-dit, commençons:

Je vais essayer d'expliquer comment fonctionne le mission planner:

Le script a besoin de lire lire la date et l'heure du système, alors il faut faire ceci:
Dans le fichier :Eagle Dynamics\DCS World OpenBeta\Scripts\MissionScripting.lua
il faut passer en commentaire la ligne 16 :
sanitizeModule('os')
qui devient donc
--sanitizeModule('os')
A faire a chaque MAJ

Maintenant le script :
Il commence par les divers paramètres, ce qui est important est de mettre les horaires de coupure prévues, par exemple:

Code : Tout sélectionner

--Définition des horaires de coupure H1=3 H2=12 H3=20
Ensuite le nombre de plage horaire, ici par déduction on en a trois:

Code : Tout sélectionner

TimeSlotsCount = 3
Et ensuite on rempli le calendrier:

Code : Tout sélectionner

{ {1,2,3}, --Dimanche : 3h-12h ; 12h-20h ; 20h-3h {1,1,1}, --Lundi : 3h-12h ; 12h-20h ; 20h-3h {2,2,2}, --Mardi : 3h-12h ; 12h-20h ; 20h-3h {3,3,3}, --Mercredi : 3h-12h ; 12h-20h ; 20h-3h {2,2,2}, --Jeudi : 3h-12h ; 12h-20h ; 20h-3h {1,1,1}, --Vendredi : 3h-12h ; 12h-20h ; 20h-3h {1,2,3} --Samedi : 3h-12h ; 12h-20h ; 20h-3h }
Le principe est que quand arrive l'heure le script va lire le tableau ci dessus et passer le trigger a la position de la valeur lue.

Code : Tout sélectionner

trigger.action.setUserFlag(999,Nombre)
Dans l'éditeur, on fait en sorte que quand le trigger passe a 1 on lance la mission 1, quand il passe a 2 la mission 2 etc.
Image

J'ai ajouté pas mal de petites choses comme le fait que si un joueur est "spawné" ça laisse une heure de rab avant le lancement de la mission suivante prévue avec des messages de rappel et pas mal de fonctionnalité contrôlable avec une version modifié de zeus (optionnel). On peut notamment ajouté une heure ou enlevé une heure au temps de jeu prévu, changer la prochaine mission prévue, la lancer immédiatement etc.
Voici la liste des commandes, c'est souvent explicite :

-showremainingtime
-showendhour
-changeendhour ( a compléter avec l'heure désirée précédé d'un = exemple: -changeendhour=23)
-removeonehour
-restart
-startnextmission
-changenextmission ( a compléter avec le numéro de la mission désirée = exemple: -changenextmission =2)
-startmission ( a compléter avec le numéro de la mission désirée)
-shownextmission
-showhour (affiche l'heure, a des fins de débug)
-showplanifstatus ( sert de débug)

Si le script ne réagi pas, c'est qu'il faut re-modifier MissionScripting.lua. C'est a faire a chaque mise à jour.

Pour tester le script, vous pouvez modifier l'horaire de votre système et il doit réagir en fonction.
Chaque minute de jeu, le script compare l'heure de fin prévue et l'heure du système, quand elles sont égales il démarre la mission prévue.

NOTA : Accessoirement il y a RST en fonctionnement dans ces trois missions, ça peut permettre a certain de voir la chose a l'œuvre