Finalement j'ai repoussé la sortie de la 2.08 pour m'assurer que tous les nouveaux scripts fonctionne comme prévu.
Après des tests intensifs dans nos différentes missions du weekend... on peut y aller.
Version 2.08:
- Correction d'un bug dans le placement des snipers
- Ajout du script "civils.sqf", pour créer une vie civile de base. Il suffit de placer un groupe de civils et d'appliquer le script au leader comme pour tout autre groupe. Le script fonctionne sur les véhicules aussi. Il est particulièrement léger parce qu'il ne fait appel qu'à des waypoints scriptés et à des événements de base (firedNear/hit).
- Ajout par défaut du fichier mso_uids.sqf et activation de celui-ci par défaut. Ca ne change rien aux droits d'accès dans l'éditeur, mais une fois la mission lancée, seuls les admins ont accès aux fonctions avancées. Mais toutes les fonctions de base comme l'artillerie sont ouvertes à tous.
- Compatibilité avec un headless pour les fonctions de type "spawn". Donc toutes unités créées dynamiquement à l'aide de la Base Mission, seront créées sur le Headless, c'est aussi valable pour les fonctions de renfort.
- Ajout d'une fonction "execHC" qui exécutera le script donné avec ses paramètres, soit sur le serveur, soit sur un HC s'il y en a un de disponible.
- Plusieurs HC sont supportés, s'il en existe plusieurs, à chaque appel de création d'unité ou d'exécution de script HC, l'un d'eux sera choisi au hasard, ce qui en moyenne devrait répartir la charge. Je ne pense pas ajouter plus de contrôle que ça... simplement parce que c'est vraiment un edge case. Si quelqu'un souhaite plus de contrôle, il n'aura qu'à utiliser les fonctions de plus bas niveau du framework.
- ATTENTION: la fonction edt_fnc_spawn a changé de signature. Elle ne renvoie plus la liste des unités mais le groupe. De plus, ce groupe ne contiendra des unités que plusieurs secondes après l'exécution si un client Headless est actif.
- Correction d'un bug dans le script homed.sqf et ajout d'un test dans le placement des unités pour voir si le spot est libre.
- Correction d'un bug dans la fonction edt_fnc_defend lorsqu'elle utilise les positions définies dans ArmA.
- Correction du bug dans le menu de modération empêchant de détacher un joueur
- Ajout de la possibilité de téléporter un joueur vers soi depuis le menu de modération
- Correction d'un bug dans le VAS qui empêchait de limiter correctement les armes, munitions et objets
- On peut maintenant utiliser les objectifs numériques à la place des variables JIP dans la plupart des fonctions et scripts
- Affichage des noms des alliés lorsqu'on est à proximité, comme dans la Domination
Il y a de nombreux changements mais il y en a 3 qui sortent du lot et qui sont la cause du retard dans la sortie de cette version.
En plus de ces changements, j'ai ajouté dans le premier message un fichier zip contenant des missions de base avec les éléments nécessaire à la création d'une mission clé en main.
Une carte avec 16 unités placées, une caisse VAS, un MHQ du BTC Revive, un drapeau de Téléportation du BTC Revive et quelques véhicules.
Le pack comprend des cartes pour la plupart des îles disponibles actuellement (ArmA 3 + ArmA 2). J'en ajouterai au fur et à mesure que de nouvelles îles sont disponibles et sont stables.
1) Système de droits
J'ai complètement revu le système de droits pour corriger les incohérences.
Maintenant, par défaut, le fichier mso_uids est inclus dans la mission. Ce qui rend plus simple la prise en main de la Base Mission. Inutile d'ajouter le répertoire "mso" dans la racine de votre installation d'ArmA 3. Vous pouvez vous contenter d'éditer le fichier mso_uids.sqf de la mission.
ATTENTION: le nom du fichier est passé de "mso_uids.txt" à "mso_uids.sqf", par souci de cohérence avec son contenu.
Important:Si vous voulez utiliser le fichier présent sur votre serveur ou en local sur votre PC, il faudra simplement effacer le répertoire "MSO" de la mission (et renommer le fichier en mso_uids.sqf comme indiqué ci-dessus).
Par défaut, seul l'admin a accès à l'ensemble des fonctionnalités de la base mission (comme le RMM Debug, Ghost Mode, Teleport Mode, etc.).
Les autres joueurs auront accès aux fonctionnalités normales (artillerie, drône, etc.).
2) Changement de la fonction edt_fnc_spawn
La base mission permet de très facilement créer des groupes d'ennemis à la volée en utilisant la fonction "edt_fnc_spawn".
Elle permet aussi d'associer un comportement aux groupes si on le souhaite (patrouille, défendre, homé, sniper, civils, etc.).
J'ai ajouté dans cette version une série de comportements supplémentaires, elle tient aussi maintenant compte de l'existence de clients HC.
Exemples d'utilisation:
Code : Tout sélectionner
// Le code suivant va créer un groupe de 3 soldats sur le marqueur et va créer une patrouille autour de ce point.
[["B_Soldier_F","B_Soldier_02_f","B_Soldier_03_f"], "marqueur_spawn", west,"patrouille"] call edt_fnc_spawn;
// Le code suivant va créer un groupe de 3 soldats sur le marqueur et va les placer en défense autour de ce point.
[["B_Soldier_F","B_Soldier_02_f","B_Soldier_03_f"], "marqueur_spawn", west,"défendre"] call edt_fnc_spawn;
// Le code suivant va créer 2 hélicoptères sur la position indiquée par _position_spawn et va les envoyer attaquer une zone de 300m autour du marqueur cible
[["B_Heli_Attack_01_F","B_Heli_Attack_01_F"], _position_spawn, west,"attack",["marqueur_target",300]] call edt_fnc_spawn;
CHANGEMENT: Auparavant, cette fonction renvoyait la liste des unités créées... ce n'est plus le cas. Elle renvoie maintenant le groupe créé s'il s'agit d'unités ou la liste des objets créés si on a simplement demandé des objets statiques (maison, etc.)
La raison de ce changement se trouve ci-dessous...
3) Compatibilité avec un client Headless
Cette version de la Base Mission est maintenant compatible avec un client Headless.
Ce qui veut dire que si vous créez vos unités au travers des fonctions; edt_fnc_spawn, edt_fnc_reinfMen, edt_fnc_reinfAir, edt_fnc_reinfVec, elles seront automatiquement créé sur le ou les headless connectés au serveur.
Un headless ne sert à rien si vous placez toutes vos unités sur la carte, simplement parce que ces unités sont créés par défaut sur le serveur.
Il devient donc possible de vraiment charger sa mission en IA (alliées et ennemies) pour créer des mouvements de troupe de plus grande ampleur.