Gaia - GdC-Framework/GdC_lib GitHub Wiki

Gaia est été écrit par Spirit en bonne partie pour MCC retrouver son github par ici => https://github.com/shaygman/mcc_sandbox.Altis/tree/master/gaia

Gaia permet de micro gérer les différentes unités IA en leur donnant des ordres, que ce soit patrouiller, attaquer, ... Les IAs pourront utiliser les véhicules pour se déplacer

Si vous n'avez pas besoin de configuration spécifique, il suffit d'écrire dans votre init.sqf :

[] call GDC_gaia_fnc_init;

Dans le cas contraire, n'hésitez pas à regarder le code fn_internalInit.sqf pour avoir la liste des paramètres et leur ordre, si vous n'avez besoin que du 3ème paramètre, vous pouvez écrire [nil, nil, PARAM3] call GDC_gaia_fnc_init

Une petite aide vous permet de cacher les marqueurs préfixé par "gaia_***". Copier ce code dans le initplayerlocal.sqf

[] call GDC_Gaia_fnc_hideGaiaMarker;

Donner des ordres

(group this) setVariable ["GAIA_ZONE_INTEND",["mkr_zone_1", "MOVE"]];

Cette ligne est à mettre dans l'init d'une unité. Elle vise tout le groupe, demandant à Gaia de simplement patrouiller dans la zone.

(group this) peut être remplacer par simplement this si on est dans l'init du groupe.

"GAIA_ZONE_INTEND" est le nom de la variable qui est utilisé pour demander à gaia d'exécuter un ordre.

"mkr_zone_1" est la zone dans laquelle le groupe devra se déplacer.

"MOVE" est l'ordre donné au groupe, ici se déplacer simplement.

Alternative

Une alternative existe pour simplifier l'écriture, depuis le groupe ou depuis du code ["_group", "_zone", "_intend"] call GDC_Gaia_fnc_controlGroup

  • _group: le groupe concerné (rappel group this pour récupérer le group de l'unité)
  • _zone: La zone concerné par l'ordre
  • _intent: L'ordre à donner aux unités

A noter que cette méthode ne permet de ne donner qu'un seul ordre, et supprimera tout les précédents.

Ordres disponibles

Les valeurs pouvant être dans la variable "GAIA_zone_intend" :

  • MOVE : Patrouille dans la zone, cependant si des ennemis ont été repéré, le groupe partira en chasse, où qu'ils soient sur la carte.
  • NOFOLLOW : Patrouille dans la zone, chassera des cibles détectées si ceux-ci sont à proximité ou dans la zone, mais n'en sortiront pas.
  • FORTIFY : Ordonne au groupe de fortifié la zone via la fonction de CBA (CBA_fnc_taskDefend)

Chaque comportement souhaité a des effets sensiblement différent selon le groupe concerné, s'ils ont un mortiers, un véhicule terrestre ou encore un hélicoptère.

Combo possible :

Un groupe ayant l'ordre MOVE, cherchera à arriver au plus vite sur la zone de combat, et demandera aux groupes véhiculés à proximité et disponible (terrestre ou aérienne, selon la distance). Ce véhicule se dirigera vers eux afin de les prendre et les emmener à proximité de la zone de combat afin de les laisser finir à pied.

Dans le cas où ce groupe véhiculé a comme ordre NOFOLLOW ils repartiront dans la zone qu'ils ont à protéger, et ne prendront pas de nouveau groupe tant qu'ils n'auront pas fini leur ordre de rejoindre leur propre zone.

Ordres internes

Les valeurs pouvant être dans la variable "GAIA_Order" : Ce sont plutôt des variables internes, mais selon le comportement demandé, voici les différentes actions que Gaia sélectionnera selon les cas

  • DoFortify
  • DoClear
  • DoPatrol
  • DoRecon
  • DoAttack
  • DoHide
  • DoMortar
  • DoArtillery
  • DoTransport
  • DoCAS
  • DoSupport
  • DoGuard
  • DoPark
  • DoWait