|  Ce site est inscrit au
 
  Votez pour ce site au
Weborama
 
 Copyright © Vincent Debosse
  
 
[Index
]
[Unités
]  [TA
]
[Utilitaires
]
[Cartes
]
[Création
]
[Ecrans
]
[Tips
]
[Liens
]
 |  |  |   Guide
de création Voici la partie tant attendue par les
créateurs en herbe. Dans cette partie, je vous explique tout sur les types de
fichiers. J'ai puisé quelques informations dans un site en anglais complet :   http://www.tamec.org/helpdesk/ta/ta_design_guide/tadesign.htm/
et j'ai rajouté mes connaissances. Types de fichiers3DO -  BOS  -
 COB
- FBI
-  GAF
-  PCX
 -  TDF
 -  WAV
 3DO La
création de ce type de fichier nécessite au moins deux logiciels. D'abord
un logiciel de 3D classique, comme 3DSMax ou LightWave. Avec lui, vous faites
les différentes pièces de l'unité, puis vous les enregistrez en format DXF ou
LWO (avec LightWave modeler). Vous pouvez aussi utiliser Breeze. Si vous
utilisez Lightwave, utilisez une grille au mètre, puisque 1 m dans LightWave
vaut 1 unité dans 3DOBuilder. Avec 3DSMax, il faut enregistrer les objets au
format 3DS, puis utiliser Crossroads pour convertir le 3DS en DXF. Notez qu'avec
3DSMax ou Breeze, les faces seront toutes des triangles. N'oubliez pas que les
rotations dans TA (comme les radars) sont faites autour des 3 axes, donc ne
placez pas votre pièce au hasard, sinon vous aurez des surprises en testant
votre unité. Ensuite il faut utiliser 3DOBuilder de Kinboat.
Vous avez besoin de créer des relations entre les objets, comme ça quand
l'objet père est déplacé ou tourné, le fils suit le mouvement (comme le
canon d'une tourelle suit la rotation du pilier). Dès que vous créez un objet,
il est placé fils de l'objet précédemment sélectionné. Donnez des noms
utiles aux objets, comme base ou canon, plutôt que obj1, obj2 ... Comme ça
vous vous y retrouverez lors de l'animation de l'unité (BOS). Placez vos
pièces en tapant les coordonnées ou en utilisant l'outil Déplacement (icône
croix à coté de la flèche) et en cliquant à l'endroit final (pas de
glisser-déposer). Appliquez vos textures en les choisissant dans la liste, puis
n double cliquant dessus. Attention : Si vous utilisez Apply sur plusieurs faces
avec une couleur,  cette couleur va être en fait appliquée sur toutes les
faces de l'objet. Lorsque vous avez fini votre fichier, enregistrez le dans le
répertoire objects3d sous le nom de votre unité (ex ARMCOM.3do). Si
3DOBuilder plante subitement quand vous créez un objet ou ouvrez un fichier;
désactivez la vue 3D, ça devrait résoudre le problème.  
 
 BOS Le
fichier BOS est un fichier texte qui explique au jeu les animations de l'unité.
Il doit être compilé au format COB avec un logiciel comme COBBLER. Seul le
fichier COB est nécessaire au fonctionnement de l'unité. Il est très dur de
créer totalement un fichier BOS. Le meilleur moyen (et celui que j'utilise) est
de s'inspirer d'une unité de TA qui a une fonction proche de celle que l'on
veut créer. Par exemple, pour créer une tourelle laser, on peut utiliser le
BOS de la Mutilator ou de la tourelle laser simple (selon que l'on veuille 1 ou
2 canons) Dans TA, les axes sont comme ceux de 3DOBuilder : X de
gauche à droite, Y de bas en haut et Z d'arrière en avant. Syntaxe
du fichier :  
 
  
    | piece pièce1,pièce2,...
      ;  //Pièces de l'objet 3DO utilisées dans
      ce fichier static-var
      var1,var2,... ;
      //Variables utilisées dans le fichier (pour faire alterner les canons
      d'une tour, par exemple)
 #define
      constante valeur   //Assigne
      une valeur à une constante, et cette constante sera remplacée par sa
      valeur
 //en compilant
 #include
      nom_fichier.h     //Ajoute
      un fichier contenant des procédures (comme SmokeUnit.h) qui seront
      utilisées dans le
 //fichier
 
 // Les 2 slaches introduisent un commentaire.
 Create() {}StartMoving() {}
 StopMoving() {}
 MotionControl() {}
 AimPrimary(heading, pitch) {}      // heading et pitch
      définissent les angles de rotations pour les canons (pour viser)
 AimSecondary(heading, pitch) {}    //Pour utiliser
      plusieurs canons pour une arme, utilisez une variable qui changera de
 AimTertiary(heading, pitch) {}     //valeur
      à chaque tir pour déterminer quel canon tire.
 AimFromPrimary(piecenum) {}        //Piecenum est la
      pièce qui sert à viser (pour les calculs de visée)
 AimFromSecondary(piecenum) {}
 AimFromTertiary(piecenum)
      {}       .
 QueryPrimary(piecenum) {}         
      //Piecenum est la pièce d'où part le coup
 QuerySecondary(piecenum) {}        //De
      même pour utiliser plusieurs canons servez-vous de la même variable pour
 QueryTertiary(piecenum) {}        
      //déterminer d'où part le coup.
 FirePrimary() {}                   // Définir ici les mouvements tels que le recul d'un canon, après le
      tir.
 FireSecondary() {}
 FireTertiary() {}
 Activate() {}                      //Définir ici les actions à effectuer lors de l'activation de l'unité.
 Deactivate() {}                    //Définir ici les actions à effectuer lors de la désactivation
      de l'unité.
 SetMaxReloadTime(time) {}         
      //Définir ici la durée avant la mise en repos de l'unité
      (Restore_delay=x*time;).
 RestoreAfterDelay() {}            
      //Définir ici les actions à effectuer lors du repos de l'unité (ex pour
      l'Exterminator)
 HitByWeapon(anglex, anglez) {}     //Ce que fais l'unité lorsqu'elle
      est touchée.
 StartBuilding() {}                 //Actions à effectuer quand l'unité commence à construire
 StopBuilding() {}                  //Actions à effectuer quand la construction est terminée
 TargetHeading( heading ) {}        //??
 QueryNanoPiece(piecenum) {}        //Piecenum est la pièce d'où part le jet
      d'énergie
 QueryLandingPad(piece1, piece2) {}  //Piece1 et piece2 sont les pièces où
      les avions se posent pour être réparés.
 QueryBuildInfo(piecenum) {}        //Piecenum est la pièce sur laquelle l'unité est construite (usines
      seulement)
 QueryTransport(piecenum) {}        //Piecenum est la pièce à laquelle s'attache l'unité pour être
      transportée
 Demo() {}                          //Actions spécifiques qui seront vues avec UnitViewer.
 BeginTransport(height) {}          //Actions à effectuer lors du chargement d'une unité
 EndTransport() {}                  //Actions à effectuer lors du déchargement d'une unité
 SweetSpot(piecenum) {}             //Piecenum est la pièce qui dessine le cadre vert et permet la sélection
      de l'unité
 Killed() {}                        //Définir ici les actions survenant quand l'unité est tuée.
 TargetCleared(which) {}           
      //Actions à effectuer quand l'unité ciblée est morte (arrêter
      la rotation d'un canon)
 RockUnit(anglex, anglez) {}        //Avec
      rockunit.h, définit le balancement d'une unité (quand elle tire par
      exemple)
 
 // Procédures prédéfinies
 Help() {}                         
      // Fichier help.h
 HelpScale( scale )
      {}             
      // Fichier
      help.h
 SmokeUnit() {}                    
      // Fichier
      SmokeUnit.h
 InitState() {}                    
      // Fichier
      statechg.h
 RequestState(état)
      {}             
      // Fichier statechg.h, état=  ACTIVE ou  INACTIVE
 OpenYard() {}                     
      // Fichier yard.h
 CloseYard() {}                    
      // Fichier yard.h
 |  Le format du fichier est similaire au C, du point de vue
syntaxique. Il y a donc des règles à respecter : Il y a toujours un ; à la
fin de chaque ligne, sauf celles commençant par un #.
 Une procédure commence par {
et fini par }.
 Pour les structures conditionnelles on utilise :
 if (condition)
 {
 Actions; // L'action est réalisée si la condition est vraie
 }
 ou  while
(condition){
 Actions;  // L'action est répétée tant que la condition est vraie
 }
 Pour la condition on utilise les opérateurs == (égal à),  !=
(différent de) ou une variable VRAI (TRUE=1) or FAUX (FALSE=0)
 Les opérations sont :  x + y (addition), x - y (soustraction),
 x * y
(multiplication),  x / y (division),  !x (opposé de x, sachant que
 TRUE=!FALSE  et 1=!0).
 Fonctions
 NB: Les distances sont en mètres (1 mètre =1 pixel) et les angles sont en
degrés. 
  
    
      | Fonction et syntaxe | Description | Exemple |  
      | Attach-Unit Unité
        To Objet; | Attache une unité à l'objet
        (pour les unités de transport comme le bateau) | Attach-Unit  unitid
        To link; |  
      | Cache Objet; | Désactive l'animation d'une
        texture | Cache arm; |  
      | Call-Script Procédure(Paramètres); | Appelle une procédure | call-script BoomCalc(
         get UNIT_XZ(unitid),get UNIT_Y(unitid) + get UNIT_HEIGHT(unitid) ); |  
      | Dont-Cache Objet; | Active une animation de texture (Désactivée
        par défaut ) | Dont-Cache turret; |  
      | Dont-Shade Objet; | Désactive les ombres sur
        l'unité. Activé pour les bâtiments. | Dont-Shade wing1; |  
      | Drop-Unit Unité; | Largue l'unité attachée | Drop-unit unitid; |  
      | Emit-Sfx Type_d'effet
        from Objet; | Emet un effet (comme le feu ou
        les bulles pour les bateaux) à partir de l'objet. Les types d'effets
        sont décrits dans le fichier  SFXTYPE.H | Emit-Sfx  SFXTYPE_WAKE1 from
        wake1; |  
      | Explode Objet
        type Type_d'explosion; | Explose un objet selon le type
        choisi. Voir le fichier  EXPTYPE.H pour les types d'explosions. | Explode  link type
        	FALL | SMOKE | FIRE | EXPLODE_ON_HIT | BITMAP1; |  
      | Get Variable_système; | Donne la valeur d'une variable
        système (comme BUILD_PERCENT_LEFT) | Get BUILD_PERCENT_LEFT |  
      | Hide Objet; | Cache un objet (Tous les objets
        sont visibles par défaut) | Hide flare; |  
      | Jump Destination; | Effectue un saut à la
        destination. | Aucun exemple trouvé dans TA |  
      | Jump if (Valeur
        == False) Destination; | Effectue un saut
        conditionnel à la destination. | Aucun exemple trouvé dans TA |  
      | Move Objet
        to Axe-axis <Position>
        Speed <Vitesse>; | Déplace un objet à une position
        selon un axe (x, y ou z) à une certaine vitesse. | move  rgun to
        z-axis  [-1.5] speed
        [25]; On peut mettre < > ou [
        ]
 |  
      | Move Objet
        to Axe-axis <Position>
        Now; | Déplace un objet immédiatement. | move  barrel1 to
        z-axis  [-1.5] now; |  
      | Rand(Valeur_Min,
        Valeur_Max); | Renvoie une valeur aléatoire
        comprise entre le minimum et le maximum. | i = rand(1,3); |  
      | Return (Value); | Renvoie une valeur au jeu. | Return (0); |  
      | Set Variable_système
        To Valeur; | Assigne une valeur à une
        variable système. | Set ARMORED To TRUE |  
      | Set-Signal-Mask Signal; | Assigne un ID (0, 2, 4, 6, ...) a
        un signal, déterminant comment une procédure peut être stoppée. | set-signal-mask SIG_MOVEMENT; |  
      | Shade Objet; | Active les ombres sur les objets. | Shade gun; |  
      | Show Objet; | Rend un objet visible. | Show flare; |  
      | Signal Signal; | Envoie un signal (0, 2, 4, 6,
        ...) pour arrêter la procédure dont le masque de signal est le même. | signal SIG_MOVEMENT; |  
      | Sleep Durée; | Fait une pause entre deux
        actions. | sleep 150; |  
      | Spin Objet
        Around Axe-Axis Speed Vitesse
        Accelerate Accélération; | Fait tourner un objet
        indéfiniment, avec une certaine accélération, à une certaine
        vitesse. | spin  rotor around
        y-axis speed  <2000> accelerate
         <100>; |  
      | Spin Objet
        Around Axe-Axis Speed Vitesse; | Fait tourner un objet
        indéfiniment directement à la vitesse max. | spin  pad around
        y-axis speed  <30>; |  
      | Start-Script Procédure(Paramètres); | Lance une procédure | START-SCRIPT RequestState(
         ACTIVE ); |  
      | Stop-Spin Objet
        Around Axe-Axis Decelerate Décélération; | Stoppe la rotation de l'objet
        avec une décélération. | stop-spin  rotor around
        y-axis  decelerate
         <30>; |  
      | Stop-Spin Objet
        Around Axe-Axis; | Stoppe la rotation de l'objet
        immédiatement. | stop-spin  pad around
        y-axis; |  
      | Turn Objet
        to Axe-Axis Angle
        Speed Vitesse; | Fait tourner un objet à tel
        angle autour d'un axe à une certaine vitesse. | TURN  top to
        z-axis  <-90> SPEED
         <36>; |  
      | Turn Objet
        to Axe-Axis Angle
        Now; | Fait tourner un objet
        immédiatement. | TURN  top to z-axis
         <0> NOW; |  
      | Wait-For-Move Objet
        Along Axe-Axis; | Crée une pause jusqu'à ce que
        l'objet ait fini de bouger le long de l'axe voulu. | wait-for-move  tige2 along
        z-axis; |  
      | Wait-For-Turn Objet
        Around Axe-Axis; | Crée une pause jusqu'à ce que
        l'objet ait fini de tourner autour de l'axe voulu. | wait-for-turn  tige1 around
        x-axis; |  Variables systèmes 
  
    | Variable | Actions et valeurs | Description |  
    | ACTIVATION | Lecture/Ecriture 0 ou 1
 | Indique si l'unité est active ou non. |  
    | ARMORED | Lecture/Ecriture TRUE ou FALSE
 | Indique si l'unité est protégée ou non
      (comme pour la centrale solaire) |  
    | ATAN | Lecture |  |  
    | BUGGER_OFF | Lecture/Ecriture |  |  
    | BUILD_PERCENT_LEFT | Lecture 0 à 100
 | Renvoie le pourcentage de l'état de
      construction de l'unité. Si cette valeur est 0 (FALSE), l'unité est
      finie. |  
    | BUSY | Lecture/Ecriture | Indique si l'unité est occupée (comme pour
      les avions de transport) |  
    | GROUND_HEIGHT | Lecture | Renvoie la hauteur du sol |  
    | HEALTH | Lecture | Renvoie l'état de santé de l'unité |  
    | HYPOT | Lecture |  |  
    | INBULIDSTANCE | Lecture/Ecriture | Indique si l'unité de construction est en
      train de construire |  
    | PIECE_XZ | Lecture/Ecriture |  |  
    | PIECE_Y | Lecture |  |  
    | STANDINGFIREORDERS | Lecture/Ecriture 0 à 2
 | Indique l'ordre donné à l'unité (Halte au
      feu/Riposter/Feu à volonté) |  
    | STANDINGMOVEORDERS | Lecture/Ecriture 0 à 2
 | Indique l'ordre donné à l'unité
      (Position....) |  
    | UNIT_HEIGHT | Lecture | Renvoie la hauteur de l'unité |  
    | UNIT_XZ | Lecture |  |  
    | UNIT_Y | Lecture |  |  
    | XZ_ATAN | Lecture |  |  
    | XZ_HYPOT | Lecture |  |  
    | YARD_OPEN | Lecture/Ecriture | Indique quels endroits sont occupés/libérés
      par une usine. |  Types d'effets (SFXTYPE.H) SFXTYPE_VTOL
: ?SFXTYPE_THRUST : ?
 SFXTYPE_WAKE1 : Émet des bulles à partir d'un point (pour le sillage des
bateaux)
 SFXTYPE_WAKE2 : Même effet mais pour l'autre coté (car le sillage est composé
des 2 effets)
 SFXTYPE_REVERSEWAKE1 : Probablement pour les hovercrafts (bulles)
 SFXTYPE_REVERSEWAKE2 : Idem
 SFXTYPE_WHITESMOKE : Je pense que ça émet de la fumée blanche à partir d'un
point.
 SFXTYPE_BLACKSMOKE : Même chose en noir
 SFXTYPE_SUBBUBBLES : Je pense que ça émet des bulles pour un sous-marin ou une
unité sous-marine
   Types
d'explosions (EXPTYPE.H) Utilisez le
trait vertical | pour séparer les types (ex  SHATTER | FALL | EXPLODE_ON_HIT |
BITMAP1) SHATTER
: La pièce explose en faces au lieu de rester entièreEXPLODE_ON_HIT : La
pièce explosera en touchant le sol
 FALL : La pièce
retombera au lieu de s'envoler
 SMOKE : La pièce sera
suivie par un nuage de fumée
 FIRE : La pièce sera
suivie par une traînée de feu
 BITMAPONLY : La pièce
ne sera pas éjectée, on ne verra qu'une simple explosion
 
 Les paramètres suivants sont les explosions à afficher lorsque la pièce
(ou les face s'il y a SHATTER) explose avec BITMAPONLY ou tombe avec
EXPLODE_ON_HIT et FALL
 
 BITMAP1 : Explosion
type 1
 BITMAP2 : Explosion
type 2
 BITMAP3 : Explosion
type 3
 BITMAP4 : Explosion
type 4
 BITMAP5 : Explosion
type 5
 BITMAPNUKE : Explosion
nucléaire
 
 
 COB Ce
type de fichier est du BOS compilé. Il n'est pas éditable directement (sauf
pour les gars calés en programmation). On peut le décompiler avec Uncobble
pour l'enregistrer en BOS. Pour compiler le BOS, on
peut utiliser Cobbler.
Le fichier COB doit porter le nom de l'unité et être placé dans le
répertoire scripts.  
 
 FBI Voici
le fichier le plus important. Il indique au jeu toutes les informations sur
l'unité, et sa présence est obligatoire.Son contenu est une succession d'affectation de valeurs à des variables. Sa
syntaxe est :
 
  
    | [UNITINFO]{
 Variable = Valeur;
 Variable_2 = Valeur_2;
 ...
 Variable_n = Valeur_n;
 // Ceci est un commentaire (introduit par // )
 }
 |  N'oubliez pas que c'est du C, donc il faut le point-virgule à
la fin de chaque ligne. Exemple
commenté de Rapido (ARMFAV.FBI)
 
  
    | [UNITINFO]{
 UnitName=ARMFAV;             
           //Nom court de
      l'unité (utilisé pour nommer les fichiers)
 Version=1;                         //Version du jeu minimale nécessaire pour utiliser l'unité
 Side=ARM;             
                  //Camp de l'unité
 Objectname=ARMFAV;             
         //Nom de l'objet 3DO (nom du
      fichier sans l'extension .3do)
 Designation=ARM-FAV1;          
         //"Nom de code" de l'unité
 Name=Jeffy;                       
      //Nom affiché dans le jeu (version anglaise)
 Description=Fast Attack Vehicle;   //Description anglaise
 FootprintX=2;                
           //Taille en X du carré de placement vert (surtout pour les bâtiments)
 FootprintZ=2;                   
        //Idem en Z
 BuildCostEnergy=564;            
        //Prix en énergie de
      l'unité
 BuildCostMetal=37;                
      //Prix
      en métal
 MaxDamage=79;                     
      //Résistance de l'unité
 MaxWaterDepth=12;               
        //Profondeur
      maximale d'eau dans laquelle l'unité peut se déplacer
 MaxSlope=18;                  
          //Pente maximale que l'unité peut grimper
 EnergyUse=0.2;                  
        //Énergie utilisée par l'unité en fonctionnement
 BuildTime=1465;                 
        //Temps de construction (plus ou moins long à construire)
 WorkerTime=0;                  
         //Puissance du jet de construction (0 car cette unité ne construit pas)
 BMcode=1;                         
      //Paramètre du menu de construction (je pense que c'est 0 pour les
      bâtiments et 1 pour le reste)
 Builder=0;                       
       //1 si cette unité peut construire, ce qui n'est pas le cas ici
 ThreeD=1;               
                //Cette unité est en 3D (de toute manière toutes les unités ont ThreeD
      (3D) égal à 1)
 ZBuffer=1;                 
             //Même chose
 NoAutoFire=0;               
            //Indique si l'unité tire automatiquement (0) ou manuellement (1)
 SightDistance=310;          
            //Champ de vision de l'unité (400 max.)
 RadarDistance=0;              
          //Portée du radar de l'unité
 SoundCategory=ARM_VEHICLE;        
      //Catégorie de sons
      associée à l'unité (quand on la sélectionne, etc.)
 EnergyStorage=0;                  
      //Énergie stockée par l'unitée
 MetalStorage=0;                   
      //Métal stocké par l'unité
 ExplodeAs=SMALL_UNITEX;         
        //Puissance de
      l'explosion de l'unité
 SelfDestructAs=SMALL_UNIT;        
      //Puissance
      de l'explosion de l'unité quand elle s'autodétruit par Ctrl+D
 Category=ARM TANK LEVEL1 WEAPON NOTAIR NOTSUB ;//Catégorie de
      l'unité (pour l'IA) : C'est un véhicule (TANK) de base (LEVEL1) 
      armé (WEAPON) qui ne vole pas (NOTAIR) et n'est pas sous-marin (NOTSUB)
 TEDClass=TANK;                  
        //Catégorie de l'unité
 Copyright=Copyright 1997 Humongous Entertainment. All rights reserved.;
      //Copyright à ne pas changer
 Corpse=armfav_dead;               
      //Nom de la carcasse laissée après la mort de
      l'unité
 GermanName=Jeffy;            
           //Nom en allemand
 GermanDescription=Schnelles Angriffs-Fahrzeug;   //Description en
      allemand
 UnitNumber=29;                 
         //Numéro de l'unité
 FrenchName=Rapido;            
          //Nom en français
 Frenchdescription=Véhicule d'attaque rapide;     //Description en
      français
 firestandorders=1;              
        //Barre de choix d'ordres Halte Au
      Feu/Riposter/Feu à Volonté
 StandingFireOrder=2;              
      //Ordre initial (0=Halte au feu, etc.)
 mobilestandorders=1;            
        //Barre de choix d'ordres Position/...
 StandingMoveOrder=1;              
      //Ordre initial (0=Position, etc.)
 canmove=1;                
              //Cette unité
      peut se déplacer
 canpatrol=1;                    
        //Cette unité peut
      patrouiller
 canstop=1;                     
         //Cette unité
      peut être arrêtée
 canguard=1;                     
        //Cette unité peut garder
 MaxVelocity=3;                  
        //Vitesse maximale de l'unité
 BrakeRate=0.06;                 
        //Taux de décélération
 Acceleration=0.04;              
        //Taux d'accélération
 TurnRate=499;                   
        //Taux de tournage (vitesse de rotation)
 SteeringMode=1;                   
      //Mode de virage (1 pour tourner comme une voiture, 2
      pour tourner sur place comme un K-BOT)
 ShootMe=1;                      
        //Les unités ennemies tirent automatiquement sur cette unité
 EnergyMake=0.2;                 
        //L'énergie produite par
      cette unité
 DefaultMissionType=Standby;        //La mission par défaut de l'unité
 maneuverleashlength=640;          
      //Le rayon d'action de
      l'unité (distance maxi à partir de laquelle l'unité réagit)
 MovementClass=TANKSH2;            
      //Classe du mouvement
 Weapon1=ARM_LASER;              
        //Première arme de l'unité (3 max.)
 wpri_badTargetCategory=VTOL;       //Cible déconseillée pour l'arme
 BadTargetCategory=VTOL;           
      //Cible déconseillée pour l'unité
 canattack=1;                      
      //Cette unité peut attaquer
 NoChaseCategory=VTOL;          
         //Catégorie
      à ne pas poursuivre
 PigLatinName=Effyjay;           
        //Nom dans une autre langue
 SpanishName=Jefficito;         
         //Idem
 ItalianName=Jeffy witha da Pepperoni;//Idem
 JapaneseName=Jeffysan;            
      //Idem
 PigLatinDescription=Astfay  attackay Outingscay
      Ehiclevay;  //Description dans
      une autre langue
 }
 
 |  Liste des variables A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- K
- L - M
- N
- O
- P
- Q - R
- S
- T
- U
- V
- W
- X - Y
- Z  
 
    
      | Variable | Description | Exemple |  
      | Acceleration | Coefficient d'accélération de
        l'unité | Acceleration=0.04; |  
      | ActivateWhenBuilt | Indique si l'unité est activée
        après la construction | ActivateWhenBuilt=1; |  
      | AI_limit | Indique le nombre d'unités de ce
        type que l'IA peut construire. La syntaxe est ai_limit=limit NOM_UNITÉ
        NOMBRE | ai_limit=limit ARMDIEU 0; |  
      | AI_weight | Je pense que ça indique à l'IA
        l'importance de l'unité (en rapport avec ai_limit). Syntaxe : ai_weight=weight
        NOM_UNITÉ NOMBRE | ai_weight=weight ARMDIEU 0; |  
      | AltFromSeaLevel | Indique si l'altitude de l'avion
        est basée sur le niveau de la mer ou sur le fond. | altfromsealevel=1; |  
      | Amphibious | Indique si l'unité est amphibie.
        Il faut régler MaxWaterDepth à 255 pour une unité amphibie. | amphibious=1; |  
      | Antiweapons | Indique si l'unité s'attaque aux
        missiles (comme l'antinuke) | antiweapons=1; |  
      | AttackRunLength | Pour un avion, indique la distance
        à parcourir avant de tirer ses armes. | attackrunlength=220; |  
      | BMcode | Indique la manière dont l'unité
        est construite. 0 si c'est un bâtiment (il faut placer l'unité), 1
        pour les autres (on peut en construire plusieurs avec l'usine) | BMcode=0; |  
      | BadTargetCategory | Indique le type de cible que
        l'unité ne doit pas attaquer | BadTargetCategory=VTOL; |  
      | BankScale | Indique le déplacement que peut
        faire un avion en tournant (les avions de construction peuvent se
        déplacer latéralement car ils ont BankScale=1.5) | BankScale=1; |  
      | BrakeRate | Coefficient de ralentissement de
        l'unité | BrakeRate=0.06; |  
      | BuildAngle | Indique l'angle qu'un bâtiment
        peut avoir lorsqu'il est construit. Une valeur de 0 indique que le bâtiment
        est toujours construit dans la même position (comme est
        fortifications). La centrale solaire, par contre, peut être tournée de
        180°. | BuildAngle=16384; |  
      | BuildCostEnergy | Coût de l'unité en énergie | BuildCostEnergy=800; |  
      | BuildCostMetal | Coût de l'unité en métal | BuildCostMetal=50; |  
      | BuildTime | Temps mis par une unité de
        construction qui aurait WorkerTime=1 pour construire cette unité. Ce
        temps détermine la consommation par secondes pour la construction (un
        temps court implique une plus grande consommation) | BuildTime=1137; |  
      | BuildDistance | Distance maximale à laquelle une
        unité peut construire | BuildDistance=150; |  
      | Builder | Indique si l'unité peut
        construire | Builder=1; |  
      | CanAttack | Indique si l'unité peut attaquer
        (présence du bouton Attaque) | CanAttack=1; |  
      | CanCapture | Indique si l'unité peut capturer
        (présence du bouton Capture) | CanCapture=1; |  
      | CanDgun | Indique si l'unité peut tirer
        son arme spéciale (bouton Ravage). L'arme spéciale est la 3ème
        (Weapon3) | CanDgun=1; |  
      | CanFly | Indique si l'unité peut voler | CanFly=1; |  
      | CanGuard | Indique si l'unité peut garder
        (bouton Garde) | CanGuard=1; |  
      | CanHover | Indique si l'unité est un
        hovercraft (ne vole pas mais va sur terre et eau) | CanHover=1; |  
      | CanLoad | Indique si l'unité peut
        transporter d'autres unités (boutons Charger et Décharger) | CanLoad=1; |  
      | CanMove | Indique si l'unité peut bouger
        (bouton Mouvement) | CanMove=1; |  
      | CanPatrol | Indique si l'unité peut
        patrouiller (bouton Patrouille) | CanPatrol=1; |  
      | CanReclamate | Indique si l'unité peut
        reprendre des ressources (bouton Reprendre) | CanReclamate=1; |  
      | CanStop | Indique si l'unité peut être
        stoppée dans une action (bouton Stop) | CanStop=1; |  
      | CantBeTransported | Indique si l'unité ne peut pas
        être transportée (comme les gros tanks et le Krogoth) | CantBeTransported=1; |  
      | Category | Indique la catégorie dans
        laquelle se range l'unité (utile pour l'IA) | Category=ARM SHIP LEVEL2 WEAPON NOTAIR NOTSUB ; |  
      | CloakCost | Énergie consommée par l'unité
        quand elle est camouflée. | CloakCost=200; |  
      | CloakCostMoving | Énergie consommée par une
        unité camouflée quand elle bouge | CloakCostMoving=1000; |  
      | Commander | Indique si l'unité est un
        commandeur (active l'avertissement spécial quand le commandeur est
        attaqué) |  |  
      | Copyright | Indique le copyright de l'unité.
        Il paraît que ça plante quand ce n'est pas "Copyright=Copyright 1997 Humongous Entertainment. All rights
        reserved.;" mais je n'ai pas vérifié. | Copyright=Copyright 1997 Humongous Entertainment. All rights reserved.; |  
      | Corpse | Indique le nom du résidu à
        utiliser lorsque l'unité est tuée | Corpse=armasy_dead; |  
      | CruiseAlt | Indique l'altitude de vol de
        l'avion | cruisealt=60; |  
      | DamageModifier | Indique le facteur de
        modification des dommages lorsque l'unité est protégée (comme l'Exterminator) | DamageModifier=0.5; |  
      | DefautMissionType | Indique la mission par défaut de
        l'unité : GUARD_NOMOVE pour les bâtiments (tours)
 VTOL_standby pour les avions
 Standby pour les autres unités.
 | DefaultMissionType=GUARD_NOMOVE; |  
      | Description | Description de l'unité (en
        anglais) | Description=Produces Energy; |  
      | Designation | Nom de code de l'unité. Sans
        importance mais doit être présent. | Designation=ARM-KA; |  
      | Digger | Indique si l'unité a des parties
        enterrées (comme la Vipère) | Digger=1; |  
      | Downloadable | Sans importance, indique si
        l'unité est téléchargée mais le jeu ne s'en sert pas. | Downloadable=1; |  
      | EnergyMake | Indique la quantité d'énergie
        que produit l'unité | EnergyMake=1000; |  
      | EnergyStorage | Indique la quantité d'énergie
        stockée par l'unité quand elle est vivante. | EnergyStorage=3000; |  
      | EnergyUse | Indique la quantité d'énergie
        que l'unité consomme quand elle est active. Un nombre négatif indique
        qu'elle produit quand elle est active (comme la centrale solaire) | EnergyUse=20; |  
      | ExplodeAs | Indique le type d'explosion à
        utiliser lorsque l'unité est tuée. Les types sont : SMALL_BUILDING
 MEDIUM_BUILDING
 LARGE_BUILDING
 SMALL_UNIT
 BIG_UNIT
 SMALL_BUILDINGEX
 MEDIUM_BUILDINGEX
 LARGE_BUILDINGEX
 SMALL_UNITEX
 BIG_UNITEX
 COMMANDER_BLAST
 ATOMIC_BLAST
 ATOMIC_BLASTSML
 | ExplodeAs=BIG_UNITEX; |  
      | ExtractsMetal | Quantité de métal extraite d'un
        gisement par l'unité. L'extracteur normal a 0,001 et la Moho a 0,003 | ExtractsMetal=0.003; |  
      | FireStandOrders | Indique si l'unité a le menu
        d'ordres d'attaque (Halte au feu, Riposter, Feu à volonté) | FireStandOrders=1; |  
      | Floater | Indique si l'unité flotte (comme
        un bateau) | Floater=1; |  
      | FootPrintX | Taille en X (horizontal) du
        carré de placement vert de l'unité (pour les bâtiments). 1 footprint
        vaut 16 pixels. | FootPrintX=2; |  
      | FootPrintZ | Même chose en Z (vertical). | FootPrintZ=4; |  
      | FrenchDescription | Description de l'unité en
        français | Frenchdescription=Véhicule d'attaque rapide; |  
      | FrenchName | Nom de l'unité en français | FrenchName=Rapido; |  
      | GermanDescription | Description en allemand |  |  
      | GermanName | Nom en allemand |  |  
      | HealTime | Temps nécessaire à l'unité
        pour se réparer totalement | HealTime=27; |  
      | HideDamage | Indique si les adversaires ne
        doivent pas voir la barre d'énergie de l'unité (comme pour le
        commandeur) | HideDamage=1; |  
      | HoverAttack | Indique si l'unité volante
        attaque sur place, en tournant autour de la cible au sol (comme le
        Frelon) | HoverAttack=1; |  
      | ImmuneToParalyser | Indique si l'unité peut ou non
        être paralysée. | ImmuneToParalyser=1; |  
      | Init_Cloaked | Indique si l'unité est créé
        invisible (comme les mines) | Init_Cloaked=1; |  
      | IsAirBase | Indique si l'unité a une piste
        de réparation d'avions | IsAirBase=1; |  
      | IsFeature | Indique si l'unité devient le
        résidu nommé dans Corpse après la construction (comme les dents de
        dragon). | IsFeature=1; |  
      | IsTargetingUpgrade | Indique si l'unité permet aux
        unités de cibler au radar comme si elles ciblaient à vue. | IsTargetingUpgrade=1; |  
      | ItalianDescription | Description en italien |  |  
      | ItalianName | Nom en italien |  |  
      | JapanesDescription | Description en japonais |  |  
      | JapanesName | Nom en japonais |  |  
      | Kamikaze | Indique si l'unité attaque en
        explosant (comme une bombe) | Kamikaze=1; |  
      | MakesMetal | Quantité de métal produite par
        une unité quand elle est active. | MakesMetal=1; |  
      | ManeuverLeashLength | L'unité attaque où répare
        (lors d'une patrouille) automatiquement les unités au plus à cette
        distance. C'est le rayon d'action. | ManeuverLeashLenght=1280; |  
      | MaxDamage | Résistance de l'unité (dommages
        qu'elle peut subir avant de mourir) | MaxDamage=3000; |  
      | MaxSlope | Pente maximale que l'unité est
        capable de grimper | MaxSlope=10; |  
      | MaxVelocity | Vitesse maximale que peut
        atteindre l'unité | MaxVelocity=3; |  
      | MaxWaterDepth | Profondeur d'eau maximale dans
        laquelle l'unité peut se déplacer. Mettre 255 pour les unités
        amphibies. | MaxWaterDepth=10; |  
      | MaxWaterSlope | Pente maximale dans l'eau que
        peut grimper une unité | MaxWaterSlope=30; |  
      | MinWaterDepth | Profondeur d'eau minimale dans
        laquelle l'unité peut se déplacer. Pour les unités marines | MinWaterDepth=20; |  
      | MobileStandOrders | Indique si l'unité a le menu
        d'ordres de mouvement (Position,...) | MobileStandOrders=1; |  
      | Moverate1 | ?? Utilisé par les avions. Tous
        ont MoveRate1=8 sauf les avions de transport. | MoveRate1=8; |  
      | MovementClass | Spécifie le type de mouvement de
        l'unité (pour l'IA) : KBOTSS2, KBOTSF2,
        TANKDS2, TANKDH3,
        TANKSH3, TANKSH2,
        BOATD3, BOATS5,
        BOATD6, BOATS4,
        BOATS6, SPID3,
        TANKBH3
 | MovementClass=TANKSH2; |  
      | Name | Nom de l'unité en anglais | Name=Fido; |  
      | NoAutoFire | Indique si l'unité tire
        automatiquement ou non. | NoAutoFire=1; |  
      | NoChaseCategory | Indique la catégorie d'unité à
        ne par poursuivre | NoChaseCategory=VTOL; |  
      | NoRestrict | Indique si l'unité figure ou non
        dans le tableau des restrictions en multijoueurs. | NoRestrict=1; |  
      | NoShadow | Indique si l'unité a une ombre
        portée. Les unités flottantes n'ont pas d'ombres. | NoShadow=1; |  
      | ObjectName | Indique le nom de l'objet 3D
        utilisé pour l'unité. Il est possible d'utiliser un objet 3D pour
        plusieurs unités. | ObjectName=ARMHLT; |  
      | OnOffAble | Indique si l'unité peut être
        activée/désactivée (comme le radar) | onoffable=1; |  
      | OvrAdjust | Utilisé par les avions | ovrajust=1; |  
      | PigLatinDescription | Description en ?? |  |  
      | PigLatinName | Nom en ?? |  |  
      | PitchScale | Utilisé dans l'avion de
        transport CORE. | PitchScale=1; |  
      | RadarDistance | Distance couverte par le radar de
        l'unité | RadarDistance=1200; |  
      | RadarDistanceJam | Portée du brouilleur de radar | RadarDistanceJam=1; |  
      | Scale | Probablement l'échelle de
        l'objet 3D dans le jeu | Scale=0.8; |  
      | SelfDestructAs | Explosion engendrée par
        l'autodestruction de l'unité. Voir ExplodeAs pour les types d'explosion | SelfDestructAs=BIG_UNIT; |  
      | SelfDestructCountdown | Définit le temps du compte à
        rebours avant l'autodestruction de l'unité. Par défaut, c'est 5 s | SelfDestructCountdown=2; |  
      | ShootMe | Indique si les unités adverses
        tirent automatiquement sur l'unité. La plupart des bâtiments n'ont pas
        ceci. L'effet est contré avec le code +SHOOTALL | ShootMe=1; |  
      | ShowPlayerName | Indique si, en multi, le nom de
        l'unité est remplacé par le nom du joueur (comme pour le Commandeur) | ShowPlayerName=1; |  
      | Side | Indique le camp de l'unité.
        Sans importance, mais doit être présent. | Side=ARM; |  
      | SightDistance | Champ de vision de l'unité. Il
        semble être limité à 400 | SightDistance=320; |  
      | SonarDistance | Portée du sonar de l'unité
        (pour découvrir les unités sous-marines) | SonarDistance=1180; |  
      | SonarDistanceJam | Portée du brouilleur de sonar
        (rend invisible les unités sous-marines) | SonarDistanceJam=1000; |  
      | Sortbias | 1 par défaut. Les usines de
        véhicule avancées ARM et CORE, ainsi que l'usine de véhicule ARM et
        les pistes de réparation ont SortBias=0 | SortBias=0; |  
      | SoundCategory | Catégorie de sons associée à
        l'unité. Détermine les sons à utiliser quand elle effectue une
        action. Voir le fichier SOUNDS.TDF dans le répertoire Gamedata de
        Totala1.hpi | SoundCategory=TANKPLANT; |  
      | SpanishDescription | Description en espagnol |  |  
      | SpanishName | Nom en espagnol |  |  
      | StandingFireOrder | Ordre d'attaque initiale de
        l'unité (de 0 pour "Halte au feu" à 2 pour "Feu à
        volonté") | StandingFireOrder=0; |  
      | StandingMoveOrder | Ordre de mouvement initial (de 0
        pour "Position" à 2 pour "Explorer") | StandingMoveOrder=1; |  
      | Stealth | Indique si l'unité n'est pas
        visible sur la minicarte (sauf si le CDV est désactivé). | Stealth=1; |  
      | SteeringMode | Indique la manière de tourner de
        l'unité : Sur place comme les robots (2) ou large comme une voiture (1) | SteeringMode=1; |  
      | TEDClass | Catégorie de l'unité : Plant, Vtol, KBOT,
        Ship, Tank, Special,
        Metal, Energy,
        Underwater
 Utilisé pour BadTargetCategory par exemple
 | TEDClass=VTOL; |  
      | Teleporter | Indique que cette unité est une téléporteur
        (inutile) | Teleporter=1; |  
      | ThreeD | Indique que l'unité est en 3D.
        Il est à 1 pour toutes le unités. | ThreeD=1; |  
      | TidalGenerator | Indique que l'unité est une
        centrale marémotrice | TidalGenerator=1; |  
      | TransMaxUnits | Capacité de l'unité de
        transport (pour l'avion) | TransMaxUnits=1; |  
      | TransportMaxUnits | Capacité de l'unité de
        transport (pour le bateau) | TransportMaxUnits=5; |  
      | TransportCapacity | Idem je pense | TransportCapacity=5 |  
      | TransportSize | Taille de l'unité de transport
        je pense (carré) | TransportSize=3; |  
      | TurnRate | Vitesse de rotation de l'unité | TurnRate=128; |  
      | UnitName | Nom court de l'unité, utilisé
        dans le nom des fichiers de l'unité. | UnitName=ARMCOM; |  
      | UnitNumber | Numéro de l'unité. N'importe
        quel nombre convient, surtout un grand nombre. Je n'ai jamais eu de
        problèmes de conflits, même avec des unités qui avaient le même
        nombre, mais il est préférable de donner un nombre unique à chaque
        unité. | UnitNumber=12; |  
      | Upright | Indique si l'unité suit
        l'inclinaison du sol (comme les véhicules) ou reste droite (comme les
        KBOTS). De même c'est nécessaire à un avion pour qu'il se pose à
        plat. | Upright=1; |  
      | Version | Version du jeu minimale
        nécessaire pour faire fonctionner l'unité. | Version=3.0; |  
      | WaterLine | Indique la position de la ligne
        d'eau (enfoncement de l'unité dans l'eau quand elle flotte). Importante
        pour un sous-marin (pour qu'il reste sous l'eau) | Waterline=10; |  
      | Weapon1 | Nom de la première arme | Weapon1=ARM_LASERH1 |  
      | Weapon2 | Nom de la seconde arme | Weapon2=ARM_BATS; |  
      | Weapon3 | Nom de la troisième arme
        (utilisé comme Dgun) | Weapon3=CORE_LASERH1; |  
      | WindGenerator | Indique la quantité d'énergie
        produite par l'unité en fonction du vent | WindGenerator=30; |  
      | WorkerTime | Indique la puissance de
        construction de l'unité. | WorkerTime=300; |  
      | wpri_BadTargetCategory | Indique le mauvais type de cible
        de l'arme 1 | wpri_BadTargetCategory=VTOL; |  
      | wsec_BadTargetCategory | Indique le mauvais type de cible
        de l'arme 2 | wsec_BadTargetCategory=NOTAIR; |  
      | wter_BadTargetCategory | Indique le mauvais type de cible
        de l'arme 3 | wter_BadTargetCategory=VTOL; |  
      | YardMap | Indique les zones occupées et
        libres de l'unité (précise le footprint) Le codage s'effectue par lettres, une lettre par case. On écrit par
        lignes séparées par un espace. Donc pour une taille de 4x4, il y a 4
        groupes de 4 lettres. Si on ne veut pas préciser le footprint, il
        suffit de ne mettre qu'une lettre. Les lettres sont :
 
          o : Espace occupé. C'est le paramètre le plus courant.c : Espace inoccupé. Principalement utilisé pour les usines.w : Espace occupé dans l'eauy : Absence de footprintG : Espace utilisé pour placer une centrale géothermique. C'est
            le seul moyen de différencier ce type de centrale d'un autre.f : Espace occupé par un résidu (comme les dents de dragon) | Pour l'usine de KBots avancée
        CORE: FootprintX=7;
 FootprintZ=6;
 YardMap=ooooooo ooooooo occccco ccccccc ccccccc oocccoo; On voit que le centre est inoccupé, ainsi que le devant et les
        cotés.   |  
      | ZBuffer | Indique si l'unité utilise le
        ZBuffer (toutes le font) | ZBuffer=1; |   
 
 GAF Un
fichier Gaf est une collection d'images. Un GAF contient en fait plusieurs
groupes d'images. Un groupe d'images est formé d'une à plusieurs images qui
constituent une animation, à la manière d'un GIF, et on lui attribue un nom.
Ce type de fichier peut être créé avec un logiciel comme Gaffer
à partir d'images.On distingue trois catégories : Animations, textures, "gadgets"
(images affichées dans le menu de construction).
 Animations Dans
un fichier Gaf d'animations, chaque groupe d'images a un nom utilisé par le
jeu, pour le désigner. Donc ne pas mettre n'importe quoi. Ces animation servent
pour les explosions, les tirs plasma (pour le projectile), le feu, la fumée,
mais aussi les arbres, les rochers et tout objet qui n'est pas en 3D (feature)
et toute image utile au jeu. C'est le type de GAF lu par TAE (éditeur de cartes
pour TA) pour les "features". Ce type de fichier se place dans le
répertoire anims. Textures Ce
type de GAF regroupe les images qui sont placées sur les faces des unités. Ce
sont les fichiers que lit 3DOBuilder pour afficher la liste de textures. Il y en
a de toutes les tailles et des animées (comme le "glow" qui passe du
jaune au rouge). On peut en créer  plus facilement avec Texture
Packer ou 3DOBuilder.
Il faut placer ce fichier dans le répertoire textures. Image
de menu de construction Voici le type le plus utilisé
dans la création d'unité. Dans ce fichier se trouve l'image affichée dans le
menu de construction. Il n'est pas nécessaire, car on peut se contenter d'un
bouton gris affiché à la place de l'image en l'absence de ce fichier. En fait
il y a un groupe de 3 images par unité, une pour le bouton normal, une pour le
bouton cliqué et une pour le bouton désactivé. Chaque groupe a le nom de
l'unité qu'il représente. Un gaf peut en contenir plusieurs, car seul le nom
des groupe compte. On peut créer facilement les 3 images et le gaf avec 3DOBuilder,
en utilisant la commande "Create Unit Picture" et en donnat le nom de
l'unité de cliquer sur "Save GAF". Le format d'image 64x64 en 256
couleurs doit être respecté. Il suffit ensuite de placer ce fichier dans le
répertoire anims.
 
  
 
 PCX Ce
format d'image est utilisé par le jeu quand on appuie sur F1 en étant sur une
unité. C'est l'image affichée avec les informations sur l'unité (je les
utilise pour la page Unités). Elle est parfaitement optionnelle. Par contre il
faut qu'elle respecte le format 96x96 en 256 couleurs. Elle peut être créée
par 3DOBuilder en même temps que le GAF avec "Save BMP" mais elle
doit être convertie en PCX avec un logiciel de dessin (comme Paint Shop Pro).
Le répertoire d'enregistrement est unitpics et le fichier doit porter le nom de
l'unité.  
 
 TDF On
distingue 3 types de fichier portant cette extension : Menus, feature
et arme. Ce sont des fichiers
textes en langage C (comme le FBI). Menus Le
premier est le fichier qui indique au jeu dans quel(s) menu(s) de construction
est placée une unité. Sa syntaxe est très simple :
 
  
    | [MENUENTRYx]{
 UNITMENU =
      CORAAP;            
      //Unité qui construit
 MENU = 3;                     
      //Menu de construction
 BUTTON =
      0;                   
      //Bouton du menu
 UNITNAME = CORVDHEL;          
      //Unité à construire
 }
 |  Le nombre x dans MENUENTRYx n'est pas important pour le jeu. Par
contre le nombre de MENUENTRY semble être limité PAR FICHIER. Donc si vous
dépassez 6 (faut pas faire trop gros) dans un fichier, il suffit d'en créer un
autre et de continuer. Le nom du fichier n'est pas important pour le jeu. Les
variables sont :
 
  
    | UNITMENU | Nom court de l'unité qui peut construire cette unité.
      Obligatoire |  
    | MENU | Numéro de la page de menu dans laquelle sera le bouton de
      construction. S'il est omis, seule l'IA pourra construire cette unité. Le
      1er menu de construction est le n°2 (MENU=2). |  
    | BUTTON | Position du bouton dans le menu parmi les 6 cases. Elles
      sont numérotées de gauche à droite de 0 à 5. Si omis, seule l'IA
      pourra construire cette unité. |  
    | UNITNAME | Nom de l'unité à construire. |  Il faut éviter les conflits de menus, car un seul bouton
s'affiche à la fois sur une case, et c'est celui de l'unité la plus récente.
Le fichier est à placer dans le répertoire download. Menus
de construction du jeu (TACC compris): X = Menu occupé, Arm en rouge et Core en
vert
 
  
    | Unité | MENU=2 | MENU=3 | MENU=4 | MENU=5 | MENU=6 |  
    | ARMCOM CORCOM
 | XX | XX | XX | XX | XX | XX | XX | XX |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | ARMCK CORCK
 | XX | XX | XX | XX | XX | XX | XX |  |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | ARMCV CORCV
 | XX | XX | XX | XX | XX | XX | XX | X |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | ARMCA CORCA
 | XX | XX | XX | XX | XX | XX | XX | X |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | ARMCS CORCS
 | XX | XX | XX | XX | XX |  |  |  |  |  |  
    | XX | XX | XX | XX |  |  |  |  |  |  |  
    | XX | XX | XX | XX |  |  |  |  |  |  |  
    | ARMCSA CORCSA
 | XX | XX | XX | XX |  | XX | XX | XX | XX | XX |  
    | XX | XX | XX | XX | XX | XX | XX | XX | XX | XX |  
    | XX | XX | XX | XX | XX | XX | XX | XX | XX | X |  
    | ARMCH CORCH
 | XX | XX | XX | XX |  | XX | XX | XX | XX | XX |  
    | XX | XX | XX | XX | XX | XX | XX | XX | XX | XX |  
    | XX | XX | XX | XX | XX | XX | XX | XX | XX | X |  
    | ARMMLV CORMLV
 | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | ARMACK CORACK
 | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XX | XX | XX | XX | X | XX |  |  |  |  |  
    | ARMACV CORACV
 | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XX | XX | XX | XX |  | XX |  |  |  |  |  
    | ARMACA CORACA
 | XX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XXX | XX | XX | XX | XX | XX |  |  |  |  |  
    | XX | XX | XX | XX |  | XX |  |  |  |  |  
    | ARMACSUB CORACSUB
 | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | ARMLAB CORLAB
 | XX | XX | X | X |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | XX |  |  |  |  |  |  |  |  |  |  
    | ARMVP CORVP
 | XX | XX | X |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | ARMAP CORAP
 | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | XX |  |  |  |  |  |  |  |  |  |  
    | ARMSY CORSY
 | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | XX |  |  |  |  |  |  |  |  |  |  
    | ARMHP CORHP
 | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | ARMPLAT CORPLAT
 | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | ARMALAB CORALAB
 | XX | XX | XX | X | XX | XX |  |  |  |  |  
    | XX | XX | XX | X | X |  |  |  |  |  |  
    | XX | XX | XX | X | X |  |  |  |  |  |  
    | ARMAVP CORAVP
 | XX | XX | XX | XX |  |  |  |  |  |  |  
    | XX | XX | X | XX |  |  |  |  |  |  |  
    | XX | XX | X |  |  |  |  |  |  |  |  
    | ARMASY CORASY
 | XX | XX | XX | XX |  |  |  |  |  |  |  
    | XX | XX | XX |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | ARMAAP CORAAP
 | XX | XX | XX |  |  |  |  |  |  |  |  
    | XX | XX |  |  |  |  |  |  |  |  |  
    | XX |  |  |  |  |  |  |  |  |  |  
    | CORGANT | X |  |  |  |  |  |  |  |  |  |  
    |  |  |  |  |  |  |  |  |  |  |  
    |  |  |  |  |  |  |  |  |  |  |    Feature Le
second type de fichier est associé aux résidus qui jonchent la carte (arbre,
rocher, carcasse, etc.) Dans notre cas, on s'intéressera aux carcasses
laissées après un combat. Lorsqu'une unité meure, en fonction de la violence
du coup, il peut soit ne rien rester, soit rester une carcasse, soit rester des
débris. Ces derniers forment deux catégories, DEAD et HEAP. Par exemple, pour
la mutilator, il y a ARMHLT_DEAD et ARMHLT_HEAP. Quand on explose le DEAD, il
reste le HEAP. On est pas forcé de faire tout cela, on peut dire que l'unité
explose sans rien laisser, ou passe directement en HEAP... La syntaxe est :
 
  
    | [NOMUNIT_DEAD]{
 Variable = Valeur;
 Variable_2 = Valeur_2;
 ...
 Variable_n = Valeur_n;
 }
 [NOMUNIT_HEAP]{
 Variable = Valeur;
 Variable_2 = Valeur_2;
 ...
 Variable_n = Valeur_n;
 }
 |  On est pas obligé de nommer le fichier avec _DEAD puisqu'on
doit utiliser le nom mis dans le fichier FBI pour la variable corpse.Comme le FBI, on déclare des variables. Les voici :
 
  
    
      | Variable | Description | Examples |  
      | animating |  | animating=0; |  
      | animtrans |  | animtrans=0; |  
      | autoreclaimable | Indique si une unité en patrouille doit le
        reprendre ou non | autoreclaimable=0; |  
      | burnmax |  | burnmax=15; |  
      | burnmin |  | burnmin=5; |  
      | burnweapon | Dommages infligés par un objet en feu aux
        unités proches | burnweapon=ShrubBurn; |  
      | category | Catégorie de l'objet | category=rocks; category=steamvents;
 |  
      | description | Description de l'objet | description=Wreckage; |  
      | blocking | Est-ce qu'une unité peut ou non marcher
        dessus l'objet | blocking=1; |  
      | damage | Indique la résistance de l'objet |  |  
      | energy | L'énergie gagnée en récupérant l'objet |  |  
      | featuredead | Indique le résidu à laisser lorsque cet
        objet est mort |  |  
      | featurereclamate | Indique l'image à laisser (trace) quand
        l'objet est récupéré |  |  
      | filename |  | filename=rocks; |  
      | flamable | L'objet peut-il prendre feu ? | flamable=1; |  
      | footprintx | Taille en X de l'objet |  |  
      | footprintz | Taille en Z de l'objet |  |  
      | geothermal | Est-ce qu'on peut mettre une géothermique
        dessus ? | geothermal=1; |  
      | height | Hauteur de l'objet (pour bloquer les tirs) |  |  
      | hitdensity |  |  |  
      | indestructible | L'objet est-il invincible ? | indestructible=1; |  
      | metal | Métal gagné après récupération de
        l'objet | metal=127; |  
      | nodisplayinfo | N'affiche pas les informations sur l'objet
        dans le jeu | nodisplayinfo=1; |  
      | object | Nom de l'objet 3DO à utiliser pour cet objet
        (pour les HEAP on peut utiliser ceux de TA) |  |  
      | permanent | L'objet est-il permanent | permanent=1; |  
      | reclaimable | L'objet peut-il être récupéré |  |  
      | reproduce |  | reproduce=0; |  
      | reproducearea |  | reproducearea=6; |  
      | seqname |  | seqname=rockmetal1; |  
      | seqnameburn | Indique le nom de l'animation GAF pour le feu | seqnameburn=shruburn; |  
      | seqnamedie | Nom de l'objet qui reste quand l'autre meurt | seqnamedie=smudge04; |  
      | seqnamereclamate | Animation à afficher quand l'objet est
        récupéré. |  |  
      | seqnameshad |  | seqnameshad=; |  
      | shadtrans |  | shadtrans=1; |  
      | sparktime |  | sparktime=5; |  
      | spreadchance | Chance de prendre feu quand il y a le feu à
        coté. | spreadchance=30; |  
      | world | Type de monde sur lequel on peut mettre
        l'objet | world=All Worlds; |  Armes Le
3ème type est le fichier d'arme. Comme les autres, c'est une déclaration de
variables. Les variables sont expliquée en anglais dans le fichier Weapons.TDF
contenu dans totala1.hpi. Je vais bientôt le traduire et le mettre sur cette
page.  
 
 WAV Toute
arme ou unité émet des sons. Ces sons sont au format WAV et doivent être
placé dans le répertoire sounds. Pour l'utiliser dans une arme, il suffit de
modifier les paramètres soundstart et soundhit de l'arm en mettant le nom du
fichier son. Pour les unités c'est plus complexe et je ne sais pas trop le
faire.
 Haut de la page Pour
toute remarque ou suggestion, vous pouvez m'écrire à  vdtaunit@hotmail.com
 |