VDTAUnits


Vous êtes le ième visiteur.
Vous avez aimé ou non ce site ? Donnez votre avis au TA Top 100 en cliquant ici












Ce site est inscrit au
Hit-Parade
Votez pour ce site au Weborama

 
Copyright © Vincent Debosse

Cliquez ici pour gagner du fric en surfant

[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 fichiers
 
3DO - 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ère
EXPLODE_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'eau
  • y : Absence de footprint
  • G : 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.

Ex : ARPCOM (Tryde)

Normal Cliqué Inactif

 


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