BaseMission - ArmA 3

Les scripts et les missions des [V]Vétérans

Vous pouvez poser vos questions et poster vos scripts, le forum est ouvert à tous.
Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Re: BaseMission - ArmA 3

Message par Tyrghen » 14 avr. 2014, 11:46

J'ai fait une mise à jour des tutoriels concernant la Base Mission (les liens sont disponibles dans le premier message du fil).

J'ajouterai des images pour le tuto du BTC et celui pour les caisses/objets.
Mais hier je n'avais aucun screenshot correspondants.

Je bosse sur une petite mise à jour de la Base Mission, suite à la création de la "Bataille pour Kavala", j'ai ajouté quelques possibilités de paramètres à des fonctions existantes pour simplifier certaines choses.

Ce sera la dernière mise à jour pendant un long moment, je ne vois plus vraiment ce que je pourrai ajouter qui soit absolument nécessaire, puisque j'ai déjà fait une douzaine de missions et la plupart des besoins étaient couverts.

La prochaine étape est un long travail d'optimisation des scripts pour éviter les boucles et les spawns inutiles.
Je voudrais aussi rendre les fonctions compatibles avec un client HC, pour qu'on puisse se permettre plus d'IAs dans les missions sans que ça lagge trop.

Je compte aussi modifier le code du container IoC et l'étendre pour des handlers synchronisés entre les clients.
De cette manière on pourra éviter de réécrire 200 fois le même code pour envoyer des évènements d'un côté à l'autre...
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Re: BaseMission - ArmA 3

Message par Tyrghen » 16 avr. 2014, 22:37

Demain soir je posterai les images ainsi que la version 2.06a qui contient une longue série de correctifs.
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Re: BaseMission - ArmA 3

Message par Tyrghen » 17 avr. 2014, 15:00

Version 2.06a mise en ligne!

Version 2.06a:
  • Ajout des scripts de renforts à pied et par véhicules
  • Quelques retouches dans l'initialisation du Framework pour que ce soit plus cohérent
  • Quelques changements dans la structure des fichiers de la Base Mission
  • Nettoyage du fichier setup.sqf et déplacement de celui-ci dans le répertoire "mission" puisqu'il est spécifique à la mission
  • Ajout d'un fichier description.hpp dans le répertoire mission pour ajouter des éléments au description .ext. Pour faire les mises à jour on ne doit donc plus que garder le fichier mission.sqm et le répertoire mission, tous les autres peuvent être écrasés.
  • Support pour les objectifs numériques dans toutes les fonctions. Inutile désormais de nommer ses objectifs "tmf_edt_1", etc. un simple 1 numérique suffit, mais attention, pas une chaîne de caractère, la valeur numérique. Comme dans la fonction edt_fnc_status

ATTENTION! Quelques changements à faire dans vos missions!
  • Le fichier "description.ext" a été modifié pour le rendre plus générique.
    Les parties liées à la mission sont déplacées dans un fichier "description.hpp" sous le répertoire "mission".
  • Le fichier "mission.csv" est remplacé par un fichier "stringtable.csv" sous le répertoire "mission".
  • Un fichier "init.sqf" est obligatoire dans le répertoire "mission" c'est là qu'on placera désormais les initialisations spécifiques à la mission.
  • Le fichier "setup.sqf" est déplacé sous le répertoire "mission" pour éviter les erreurs quand on met à jour la base mission.
  • Si vous utilisiez les marqueurs de type "buildingX" pour ajouter des objets statiques sur la carte, il faut désormais renommer ces marqueurs en "building_X", donc avec un underscore dans le nom. Ca permet entre autre le copier/coller rapide depuis un marqueur "building" pour créer la numérotation.
L'avantage de ces changements est que mis à part le fichier "mission.sqm" et le répertoire "mission", on peut intégralement copier le contenu de la Base Mission dans les missions existantes pour les mettre à jour. Mise à jour bien plus simple!

J'ai aussi fait une autre vague de mise à jour des tutoriels avec les images et les textes que j'ai préparés hier soir.
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Re: BaseMission - ArmA 3

Message par Tyrghen » 15 sept. 2014, 11:02

Grosse mise à jour de la Base Mission.

Version 2.07:
  • Ajout de l'affichage des noms par le script de Xeno
  • Ajout du script de la Dom pour accrocher une chemlight sur son épaule
  • Ajout du script de la Dom pour construire des tranchées
  • Quelques changements supplémentaires dans la structure des fichiers de la Base Mission pour pouvoir facilement mettre à jour les missions
  • Ajout de nouveaux scripts comme edt_fnc_stuckGroup, edt_fnc_landChopper, edt_fnc_sniper, edt_fnc_homed, etc.
  • De nombreux correctifs suite aux tests dans les missions
  • Ajout de l'insigne de Team sur les uniformes
  • Ajout de scripts au répertoire de base (pour l'éditeur):
    • sniper.sqf
    • homed.sqf
    • safeVehicle.sqf
  • Ajout d'un système centralisé d'exécution de fonctions, pour éviter des spawns et des whiles à tout va
  • Ajout d'un container IOC qui permet d'enregistrer des événements locaux et des handlers ainsi que des événements distants, pour éviter de définir à la main partout des variables PVEH et le code associé. Le meilleur exemple est le nouveau menu unifié. Lorsqu'on l'ouvre, on exécute en fait tous les handlers enregistrés par les différents modules. Le menu ne sait donc pas lui même ce qu'il va contenir, il sait uniquement comment gérer les réponses des handlers.
  • Pas mal de choses dont je ne me souviens plus :) dont de nombreux petits correctifs ici et là pour des usages spécifiques
A noter que j'ai ajouté un tutoriel expliquant l'utilisation des scripts pour les groupes d'IA, notamment les nouveaux scripts "homed.sqf" et "sniper.sqf": le tutoriel.
A noter que ces fonctions ne trouveront leur plein emploi que sur Altis et Stratis pour le moment.

J'ai mis à jour les tutoriels qui avaient besoin d'un rafraîchissement et j'ai mis à jour les différentes missions d'exemple.
La mission de démonstration "mission.altis" est aussi mise à jour.

ATTENTION! Quelques changements à faire dans vos missions!
J'ai aussi ajouté un tutoriel sur la migration des anciennes versions.

Un tout grand merci à Julien pour l'aide dans le recensement des bâtiments d'ArmA 3 et la création des positions de combat et de sniper.
Image

Avatar de l’utilisateur
Julien
Membre des [V]Vétérans
Messages : 1397
Inscription : 25 mai 2013, 22:53

Re: BaseMission - ArmA 3

Message par Julien » 24 sept. 2014, 19:16

Je pense que la version de la base mission dispo au téléchargement en page 1 n'est pas a jour.
En tout cas, j'ai des erreurs avec la fonction "homed" :
Un truc du genre : "variable edc_fnc_homed not found".

J'ai récupéré la derniere version via la mission Restore Peace, et tout est rentré dans l'ordre.

Deuxieme petit soucis, les ennemis s'empillent. Voici une exemple :
stack1.jpg
stack3.jpg
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Re: BaseMission - ArmA 3

Message par Tyrghen » 24 sept. 2014, 19:44

ça peut arriver s'ils viennent de deux groupes différents et que les rayons de placement se téléscopent.
je peux ajouter un test pour éviter ça, bonne remarque.

je m'en occupe pour la 2.08 qui sortira ce weekend.
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Re: BaseMission - ArmA 3

Message par Tyrghen » 25 nov. 2014, 12:24

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.
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Re: BaseMission - ArmA 3

Message par Tyrghen » 21 févr. 2015, 11:50

J'ai ajouté la version en cours de développement sur la page principale du fil, version 2.09.

Cette version est amenée à évoluer encore dans les prochaines semaines, mais elle corrige certains des problèmes comme celui de l'affichage dans la VAS.
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Re: BaseMission - ArmA 3

Message par Tyrghen » 04 mars 2015, 09:12

Version 2.09:
  • Correction du script de renforts par véhicules, le conducteur ne voulait plus démarrer
  • Correction de quelques scripts dans les modules externes suite aux changements dans ArmA (entre autre, la VAS)
  • Corrections liées à la v1.40 d'ArmA
  • Ajout d'une fonction pour "protéger les véhicules IA" des dégâts non voulus. Dans l'initialisation: [this] call edt_fnc_protectVehicle
  • Correction dans le script patrouille pour gérer les véhicules placés sur des montagnes

METTRE A JOUR VOS MISSIONS

Depuis un moment déjà, mettre à jour sa mission se résume à écraser le répertoire "TMF" avec celui issu de la dernière version de la BaseMission, rien de plus simple...
Par contre, si vous avez changé les modules actifs (dans les fichiers modules.hpp) il faudra refaire ces changements.
Image

Avatar de l’utilisateur
Julien
Membre des [V]Vétérans
Messages : 1397
Inscription : 25 mai 2013, 22:53

Re: BaseMission - ArmA 3

Message par Julien » 05 mars 2015, 20:24

Apparemment il y a un soucis avec le Load On Respawn de la VAS.
Même lorsque je met la valeur de l'attribut a true via le lobby de la mission, la fonction est désactivée en jeu.
Image

Répondre