39-45 Stratégie > Jeux vidéo > Sudden Strike > Sudden Strike 2 > Aide de jeu > Tutoriel de l'éditeur > Partie C-2 
Créé le : 11/6/2005
Auteur : Arzok

Tutorial : éditeur de missions
(partie C6-les usines)

Table des matières

 

 

C06 : Les usines

 

C06-I

 

Introduction

 

C06-II

 

Les usines type HS1&2

 

C06-III

 

Les usines type RW

 

C06-IV

 

Les usines avec l'option force

 


 


 


 



retour vers le tutorial




La production d’unité.

C06-I -Introduction

Il y a de nombreuses manières de mettre en œuvre la production d’unité dans SSII et ses mods (HS1&2, RW).

Chaque manière de faire répond à une spécificité et permet de mettre l’accent sur un point particulier du jeu. Voici quelques exemples :

  • Les usines permettent au joueur de s’équiper en matériel comme bon lui semble. Ces usines le transforment en ‘manager’ de son armée. Il peut au choix produire des chars lourds (mais long à produire) ou des unités légères, ou de l’infanterie. Cela met l’accent sur le coté gestion. Ces usines peuvent fonctionner avec un nombre limité d’ouvrier, chaque usine produisant un type de renfort. Ces usines sont loin du front, car elles ne sont pas reconstructibles. Il s’agit d’usines très adaptées à HS1&2, car on a des ouvriers.

  • Les usines représentent des points stratégiques à prendre. Elles sont donc plutôt localisées au milieu de la carte. Elles vont faire l’objet de combat pour leur contrôle. Il faut donc prévoir un script qui prennent en compte qui occupe l’usine, si elle est détruite. On aura pas le choix de la production (car c’est une zone de combat qui nécessite de l’attention pour la défendre) , elle produire donc typiquement 3 renforts différent, en boucle. Il s’agit par excellence de l’usine sous RW. Elle peut être faite sous HS1&2, mais l’on ne peut pas alors la réparer en cas de destruction.

  • Les usines ‘secondaires’. Elles n’ont pas de valeur très stratégique, mais donne un plus au scénario. Par exemple, la fameuse cartoucherie de SergentPat, ou bien un poste de télécommunication qui permet de demander des renforts.

  •  Les usines représentent un lieu de production. Cette production donne des points au joueur. Lorsque le joueur a assez de points, il peut « acheter » le produit qu’il souhaite (grosse voiture, 4x4, char d’assault…). Le même principe peut être utilisé pour produire de la nourriture… Cette partie sera développée ultérieurement !

Toutes ces usines fonctionnent sur le principe du chrono cellule (se reporter au chapitre C5). On rappelle que les scripts sont évalues toutes les 2.5 secondes.

C06-II - Usine d’équipement en matériel

La simulation de production d’unité peut se faire assez simplement.

Elle consiste à désigner un bâtiment comme usine (repéré grâce à une zone particulière), à y placer des ouvriers (groupe particulier) et à faire arriver des renforts régulièrement tant que les ouvriers sont dans l’usine.

La première étape est de délimiter une zone repérant un bâtiment :


On a choisi la zone 1 pour la première usine.

Ensuite, on positionne un point d’entrée devant la porte de l’usine. Les unités produites arriveront par ce point d’entrée, et sembleront sortir de la porte de l’usine !




Pour plus de clarté, on peut ajouter devant l’usine un char sans équipage, (dont aura mis les munitions à 0%), pour se rappeler quel type de production concerne cette usine. Si on veut interdire l’accès à ce char, on peut l’entourer de zone interdite.

Continuons, il faut créer un renfort ayant le type de production désiré :

On va dans le menu « option de mission », puis « renfort » et on crée un renfort composé d’une unité, ici un char B1 bis. Le groupe d’appartenance du renfort n’a pas d’importance par rapport à ces scripts de production d’unité.

Passons à la partie script proprement dite.

Elle fonctionne avec le principe des compteurs « fabriqués » à partir des cellules.

  • Premier script (chrono 1):Tant que suffisamment d’ouvriers sont dans l’usine, le compteur s’incrémente (les points de productions sont accumulés).

  • Deuxième  script (Z1 char lourd) : Quant les points de productions sont suffisant, on remet le compteur à zéro, et on délivre une unité.




Pour l’usine situé en zone 1, nous utiliserons comme compteur la cellule n°1 (et ainsi de suite pour les autres usines).

On utilise un premier script qui test la présence d’ouvrier (groupe J0) et incrémente le compteur C1 de 1 lorsqu’il y en à 5 (strictement plus de 4 en fait) :


On laisse de coté pour l’instant le test de la cellule 51.

Ce deuxième script teste si suffisamment de point de production ont été acquis :




La zone 20 est l’endroit où se rendent les unités produites.

On peut ajouter dans ce script une ligne supplémentaire pour prévenir le joueur qu'une unité à été construite, ou plus simplement un son particulier (morse...).

On peut ajouter un script supplémentaire pour doubler la capacité de production, lorsque l’on met 10 ouvriers dans l’usine :




Le script chrono 1 ajoute un point de production lorsqu’il y a au moins 5 ouvriers.

Le script chrono 1b ajoute un point supplémentaire lorsqu’il y a au moins 10 ouvriers.

Rôle de la cellule 51 :

Lorsque la production concerne un grand nombre d’unité, il est possible de dépasser la limite de 1000 unités par joueur. Dans ce cas, des choses « bizarres » peuvent se produire (des unités peuvent passer au joueur « allié » par exemple…).

La cellule 51 prend la valeur 0 lorsque l’on est en dessous de 990, et 1 au dessus.

Ainsi le compteur de production n’est incrémenté que s’il y a moins de 990 unités du joueur sur la carte.

On ajoute un script testant la limite inférieure à 990 (=> c51=0)

Un script testant la limite supérieure à 990 (=> c51=1)

Un script (facultatif) prévient le joueur qu’il a produit trop d’unité.











Qu’elle est le rôle de la cellule 61 ?

La cellule c61 est un chrono « fabriqué » à partir de cette cellule. Ce chrono mesure environ 5 minutes. Il permet de n’afficher le message que toutes les 5 minutes. On peut aussi afficher des messages sour les productions en cours, les usines occupées... toutes les 5 minutes.

Il n’est donc pas indispensable. Mais il est toujours intéressant d’avoir un chrono qui tourne en permanence pour diverses actions.







Organisation d’un grand nombre de production :

De l’ordre est nécessaire pour organiser un grand nombre de production.

La première limite vient du fait que l’on ne dispose que de 16 point d’entrée (A à P).

Il faut en conserver pour les unités ennemies bien sur !

Je note dans un tableau les points d’entrée utilisés :

 

Point d’entrée :

 

A : B1 bis

 

B : infanterie

 

C : S35

 

D : AMD35

 

E : H35

 

F : Bato

 

G : croiseur

Etc jusqu'au point d'entrée P sous SSII et HS.



Un deuxième tableau pour les zones utilisées (deux premières lignes uniquement) :

Zone :

 


 

1 : B1 bis

 

2 : infanterie

 

3 : S35

 

4 : AMD35

 

5 : H35

 

6 : R35

 

7 : laffly

 

8 : camion

 

9 : 75mm

 

Etc...

 


 


 


 


 




Un troisième pour les groupes :

 

 

 

 

 

1

 

2

 

3

 

4

 

5

 

6

 

7

 

8

 

9

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 Etc...

Et une liste des cellules utilisées:

C1-C10 compteur des usines de fabrication

C50 = 1 1939-40 période en cours

C50 = 2 1941-42

C50 = 3 1943-44

C50 = 4 1945

limite du nbre d’unité

C51= 0 unités <950

C51=1 unités >950

C60 nombre aléatoire 1-4

C61 chrono 5 minutes =>120



Enfin, pour économiser des points d’entrée, on peut en utiliser 2 pour des bâtiments proches :




Ici, canon AT (zone 10) et canon AA (zone 11) sortiront par J

Canon de 75 (zone 9) et camion (zone 8) sortiront par H.

A retenir :

Seul 2 scripts sont strictement nécessaires pour mettre en place une ligne de production.

Une production complexe (plusieurs lignes, évolutions suivant les années, différents modèles suivant le nombre d’ouvrier présent dans l’usine…) nécessite un peu plus d’organisation, mais cela se fait rapidement en copiant collant les scripts, et en modifiant juste quelques paramètres.

C06-III-RessourceWar et les "fabriques" (usines, hôpital, etc..)

pouvant être prises par l’ennemi (par LePapé)

Il est possible que les concepteurs du jeu aient développé des scripts particuliers pour ces bâtiments, mais ils ne nous ont pas fait la grâce de mettre dans l'éditeur les scripts qui permettent de faire fonctionner les usines et les raffineries. Ils n'ont pas jugé bon, non plus de corriger les fautes de l'éditeur tout au moins dans sa version française (les avions, les chronomètres). Ils ne nous restent donc plus qu'à remettre les bons vieux scripts de production qui fonctionnaient sous Forever et SSII.

Dans la notice, l'éditeur ou le concepteur du jeu parle de drapeaux prés des bâtiments de production. Ce drapeau permet seulement au joueur de repérer facilement le bâtiment producteur et de l'occuper. D'ailleurs, seules les campagnes originales présentent ce drapeau. Dans les missions simples, les bâtiments producteurs ne sont pas identifiés de manière formelle et ils ne fonctionnent pas tous comme des fabriques perpétuelles mais plutôt par attribution de bonus lorsqu'ils sont conquis. Les concepteurs du jeu ont également trouvé un moyen de prendre en compte les points de vie du bâtiment (la production est ralentie quand le bâtiment est endommagé) qu'ils ne nous ont pas légués.

Pour nous, simples clients payant de ce jeu il nous faudra donc nous pencher davantage sur le maniement des cellules. Mais, n'importe quel bâtiment ou objet pourra figurer un atelier de production. Chaque "mappeur" devra faire preuve d'imagination et de logique.

Exemple de positionnement de drapeau donnant l'illusion que des troupes sortent d'un batiment :

 

 

 

Usine de fabrication de véhicules

 

Débarquement sur la plage

 

 

 

Les loups sortent du bois

 

Eviter le char sortant de la chaumière



Voici donc un petit script qui va nous permettre d'envoyer à celui qui occupe la zone, joueur ou ennemi, différents types de renforts de manière séquentielle (je n'ai pas encore trouvé une manière fiable de tirer un nombre aléatoire). Quand l'usine est endommagée, on peut la réparer mais son état, bon ou mauvais, n'a pas d'influence sur la production. Si elle est détruite, elle s'arrête de produire.

La production d'avions, de munitions, pièces détachées ou carburant nécessite quelques règles à respecter qui seront évoquées plus tard.

Nota : Les valeurs du chronomètre et les types de renfort définis dans cet exemple n'ont qu'une valeur démonstrative. Ces différents éléments doivent être adaptés à votre mission pour qu'elle reste cohérente et surtout jouable.

Imaginons une usine qui produise des véhicules. Les ouvriers sont veules et lâches, ils travailleront pour l'occupant quel qu'il soit. Si l'usine est occupée par le joueur, ils produiront des unités pour le joueur, si elle est occupée par l'ennemi, ils produiront pour l'ennemi, si elle n'est pas occupée, ils s'arrêteront de travailler. Quand ils vont produirent, les ouvriers vont d'abord produire des renforts de type 0 puis des renforts de type 1 suivit de renforts de type 2 avant de recommencer par des renforts de type 0.

Définissons les renforts:

  • Usine_ami_renf0 = un char US

  • Usine_ami_renf1 = deux véhicules US

  • Usine_ami_renf2 = un camion de soutien US

  • Usine_eni_renf0 = un char GE

  • Usine_eni_renf1 = deux véhicules GE

  • Usine_eni_renf2 = un camion de soutien GE

Préparation de la carte:

On pose un bâtiment qui figure l'usine, on définit tout autour la zone de stationnement des unités, dans ce script zone #40. On place dans le bâtiment une case sélection 40 (vous pouvez mettre n'importe quel numéro mais pour m'y retrouver plus facilement j'appelle le quatrième bâtiment sélection 40, je lui attribue la zone #40 et la zone de regroupement des unités produites sera la zone #41

On place un point d'entrée pour les renforts (D) et une zone de regroupement zone #41.

On va se servir de la cellule 10 pour savoir si l'usine est occupée par des amis, des ennemis ou inoccupée.

  • Cellule 10 = 0 personne n'occupe l'usine

  • Cellule 10 = 1 le joueur occupe l'usine

  • Cellule 10 = 2 l'ennemi occupe l'usine

Avant chaque évaluation du script, on mettra la valeur c10 à 0. Ainsi, la valeur c10 gardera la valeur 0 si ni le joueur, ni l’ennemi n’occupe l’usine de manière incontestée.

On se rappelle que par défaut, les cellules ont la valeur 0 et on écrit les premiers déclencheurs.

Nota: Ces scripts sont déclenchés par la valeur des cellules. On ne place donc jamais l'instruction "retirer ce déclencheur". Dans les déclencheurs ci-dessous, le moteur du jeu analyse les conditions toutes les 2,5 secondes environ et change aussitôt le "flag" (0, 1 ou 2) dès que l'usine est abandonnée, occupée par le joueur ou par l'ennemi.

________________

 

Description :

 

Personne_n’occupe_l’usine

 


 

Conditions :

 

Temps plus que 0

 

A chaque fois, on met d’abord C10 à 0

 

Action :

 

Let cell C_10 valeur : Nombre 0

 

Donne à la cellule 10 la valeur 0

________________

 

Description :

 

Ami_occupe_usine

 


 

Conditions :

 

Quand plus que 0 unités du joueur Joueur dans zone #40

And quand moins que 1 unites ennemi dans zone #40

And not #40 objet détruit

And unité du joueur moins que 900

 

Quand joueur occupe l'usine

Et qu'il n'y a pas d'ennemi

Et que l'usine n'est pas détruite

Et que l’on ne dépasse pas la limite de 1000 unité (moins  une marge)

 

Action :

 

Let cell C_10 valeur : Nombre 1

 

Donne à la cellule 10 la valeur 1

________________

 

Drescription :

 

Eni_occupe_usine

 


 

Conditions :

 

Quand moins que 1 unités du Joueur dans zone #40

And quand plus que 0 unites ennemi dans zone #40

And not #40 objet détruit

And unité du ennemy moins que 900

 

Quand d'ennemi occupe l'usine

Et qu'il n'y a pas le joueur

Et que l'usine n'est pas détruite

Et que l’on ne dépasse pas la limite de 1000 unité (moins une marge)

 

Action :

 

Let cell C_10 valeur : Nombre 2

 

Donne à la cellule 10 la valeur 2



Commentaires : L’ordre des scripts est très important. Quand il y a des unités du joueur et des unités ennemies sur la zone, aucun des deux derniers déclencheurs n'est activé, la valeur de la cellule reste a 0 et aucune production n’est faite.


Bien sur, il nous faudra espacer l'arrivée des renforts dans le temps. Il faut donc lancer un chrono quand l'usine est occupée par l'ami ou l'ennemi (cellule 10 = 1 ou cellule 10 = 2). Pour le chrono, nous choisissons la cellule 11.

Commentaires : La cellule C_11 est augmentée, que le joueur ou l’ennemi occupe l’usine. Ainsi, quant vous capturez l’usine, vous capturez aussi ces points de production!



 

Drescription :

 

Chrono_usine_c11

 


 

Conditions :

 

Valeur de la cellule C_10 plus que Nombre 0

 

L'usine est occupée

 

Action :

 

C_11 Augmentez de Nombre 1

 

Incrémentation de la cellule chrono



Pour compliquer les choses nous avons décidé de faire varier les types de renforts. On va donc se servir d'une autre cellule C12 que l'on va incrémenter pour définir le type de renfort.

  • Cellule 12 = 0 Ami ou Eni renf0

  • Cellule 12 = 1 Ami ou Eni renf1

  • Cellule 12 = 2 Ami ou Eni renf2

Il nous faudra donc trois déclencheurs pour les trois types de renfort et autant pour l'ennemi. On écrit donc les six déclencheurs suivants :

 

Description :

 

Usine_ami_renf_0

 


 


 

And Valeur de la cellule C_10 exactement Nombre 1

And Valeur de la cellule C_10 exactement Nombre 1

And Valeur de la cellule C_12 exactement Nombre 0

 

Le chrono à atteint les 20 (50s)

L'usine est occupée par ami

La cellule 12 désigne des renforts type 0

 

Action :

 

Envoyer au Joueur renfort type ami_renf_0 par point…

C_12 Augmentez de Nombre 1

Let cell C_11 valeur : Nombre 0

 

Renf 0 pour la cellule 12 = 0 et ami pour la cellule 10 = 1

Les prochains renforts seront donc renf1

On remet le chrono à 0



 

Description :

 

Usine_ami_renf_1

 


 

Conditions :

 

Valeur de la cellule C_11 plus que 30

And Valeur de la cellule C_10 exactement Nombre 1

And Valeur de la cellule C_12 exactement Nombre 1

 

Le chrono à atteint les 30 (deux véhicules, c'est plus long)

L'usine est occupée par ami

La cellule 12 désigne des renforts type 1

 

Action :

 

Envoyer Joueur renfort type ami_renf_1 par point…

Cellule 12 augmentez de Nombre 1

Let cell C_11 valeur : Nombre 0

 

Renf 1 pour la cellule 12 = 1 et ami pour la cellule 10 = 1

Les prochains renforts seront donc renf2

On remet le chrono à 0



 

Description :

 

Usine_ami_renf_2

 


 

Conditions :

 

Valeur de la cellule C_11 plus que 20

And Valeur de la cellule C_10 exactement Nombre 1

And Valeur de la cellule C_12 exactement Nombre 2

 

Le chrono à atteint les 20

L'usine est occupée par ami

La cellule 12 désigne des renforts type 2

 

Action :

 

Envoyer Joueur renfort type ami_renf_2 par point…

Let cell C_12 valeur : Nombre 0

Let cell C_11 valeur : Nombre 0

 

Renf 1 pour la cellule 12 = 1 et ami pour la cellule 10 = 1

Les prochains renforts seront donc renf0

On remet le chrono à 0



 

Description :

 

Usine_eni_renf_0

 


 

Conditions :

 

Valeur de la cellule C_11 plus que 20

And Valeur de la cellule C_10 exactement Nombre 2

And Valeur de la cellule C_12 exactement Nombre 0

 

Le chrono à atteint les 20

L'usine est occupée par eni

La cellule 12 désigne des renforts type 0

 

Action :

 

Envoyer Ennemi renfort type eni_renf_0 par point…

C_12 Augmentez de Nombre 1

Let cell C_11 valeur : Nombre 0

 

Renf 0 pour la cellule 12 = 0 et eni pour la cellule 10 = 2

Les prochains renforts seront donc renf1

On remet le chrono à 0



 

Description :

 

Usine_eni_renf_1

 


 

Conditions :

 

Valeur de la cellule C_11 plus que 20

And Valeur de la cellule C_10 exactement Nombre 2

And Valeur de la cellule C_12 exactement Nombre 1

 

Le chrono à atteint les 20

L'usine est occupée par eni

La cellule 12 désigne des renforts type 1

 

Action :

 

Envoyer Ennemi renfort type eni_renf_1 par point…

C_12 Augmentez de Nombre 1

Let cell C_11 valeur : Nombre 0

 

Renf 1 pour la cellule 12 = 1 et eni pour la cellule 10 = 2

Les prochains renforts seront donc renf2

On remet le chrono à 0



 

Description :

 

Usine_eni_renf_2

 


 

Conditions :

 

Valeur de la cellule C_11 plus que 20

And Valeur de la cellule C_10 exactement Nombre 2

And Valeur de la cellule C_12 exactement Nombre 2

 

Le chrono à atteint les 20

L'usine est occupée par eni

La cellule 12 désigne des renforts type 2

 

Action :

 

Envoyer Ennemi renfort type eni_renf_2 par point…

Let cell C_12 valeur : Nombre 0

Let cell C_11 valeur : Nombre 0

 

Renf 1 pour la cellule 12 = 1 et eni pour la cellule 10 = 2

Les prochains renforts seront donc renf0

On remet le chrono à 0



Note : A chaque fois que l'on obtient des renforts, on peut envoyer un message pour prévenir le joueur.

Annexe :

Voici la traduction du script délivré par Fireglow pour la production d’usine solo sous RW. Elle a été adaptée pour tenir compte du fait que les chronos ne fonctionnent pas.



Il faut, par usine :

  • Une zone (1 pour la première)

  • Une porte d'entré (A pour la première)

  • Deux cellules :

C1 pour l'appartenance de l'usine

C2 pour remplacer le chrono

Pour une deuxième usine, il vous faut donc :

  • Une zone 3

  • Une porte d'entré B

  • Deux cellules :

C3 pour l'appartenance de l'usine

C4 pour remplacer le chrono



Description du rôle de la cellule 1 :

cell #1=0 - usine libre (par défaut)

cell #1=1 - usine au joueur

cell #1=2 - usine à l'ennemi

scripts:

Premier script : l'émulateur de chrono - cellule

 

CONDITIONS:

 

valeur cellule C2 plus que 0

 

ACTION :

 

opération C2 réduire de 1


La suite au plus proche de la version anglaise, mais sans chrono

 

CONDITIONS:

 

valeur de la cellule C1=0

ET plus que 0 unités du joueur "joueur" dans la zone 1

 

ACTION :

 

valeur de la cellule C1=1

C2 = 240 (correspond à 10 minutes)

afficher texte "Le joueur a capturer l'usine ...blah blah blah..."



 

CONDITIONS:

 

valeur de la cellule C1=1

ET exactement 0 unité du joueur dans la zone 1

 

ACTION :

 

valeur de la cellule C1=0

C2=0

afficher texte "Le joueur a perdu l'usine ...blah blah blah..."



 

CONDITIONS:

 

valeur cellule C2=1

ET valeur cellule C1 = 1

 

ACTION :

 

envoyer renfort au joueur par la porte A vers la zone 1

valeur cellule C2=240

afficher texte "renfort!"



Pour l'IA :

 

CONDITIONS:

 

valeur de la cellule C1=0

ET plus que 0 unités du joueur "ennemi" dans la zone 1

 

ACTION :

 

valeur de la cellule C1=2

C2 = 240 (correspond à 10 minutes)

afficher texte "L'ennemi a capturé l'usine ...blah blah blah..."



 

CONDITIONS:

 

valeur de la cellule C1=2

ET exactement 0 unité de l'ennemi dans la zone 1

 


 


 

ACTION :

 

valeur de la cellule C1=0

C2=0

afficher texte "L'ennemi a perdu l'usine ...blah blah blah..."



 

CONDITIONS:

 

valeur cellule C2=1

ET valeur cellule C1 = 2

 

ACTION :

 

envoyer renfort à l'ennemi par la porte A vers la zone 1

valeur cellule C2 = 240

afficher texte "renfort ennemi !"

Par rapport à l’exemple précédent, la différence essentielle est que des messages renseignent sur l’appartenance de l’usine. Mais ceci peut être fait par d’autres moyens.

Avertissement sur l’emploi des usines RW :

Ce script tient compte du fait que l’usine peut changer de main. Cependant, l’intelligence artificielle est très rudimentaire. Elle sera tout à fait incapable de reprendre le contrôle de l’usine si le joueur l’a prise. Sauf à la condition suivante : C’est que le programme donne des troupes supplémentaires à l’IA pour pouvoir reprendre l’usine. Donc en résumé, soit l’IA tient l’usine, donc elle a des renforts réguliers. Soit elle perd l’usine et elle a des renforts aussi ! Cherchez l’erreur. En fait, je pense personnellement que complexifier le script pour que l’usine puisse être reprise par l’ennemi n’est pas intéressant, car il est très difficile de programmer une IA capable d’organiser une contre attaque. Donc l’usine ne sera jamais repris, et le script aura été fait inutilement. Sauf si des renforts exceptionnels sont attribués à l’ennemi. Mais le but des usines était justement d’obtenir des renforts lorsque l’on a l’usine, par lorsqu’on la perd !


C06-IV Les usines avec l'option force

Introduction

Nous avons vu dans les chapitres précédents comment faire des usines, en utilisant les portes d'entrées pour délivrer le matériel (chars, soldats, munitions, fuels...).

Une limitation de ce principe est que la porte d'entrée ne peut avoir qu'un largeur d'une case lorsqu'on la positionne en dehors du bord des cartes.

Si l'on veut faire sortir une section d'une trentaine d'homme d'une académie par exemple, ils sortiront à raison de 2 par 2 toutes les 2.5 secondes de temps jeu.

Cela donne environ une douzaine de seconde dans cet exemple. Cela peut devenir lassant pour plus d'unité.

Autre problème, lorsque l'on produit des caisses de munitions (ou fuel, ou pièce de rechange), seules deux caisses apparaissent devant le drapeau. Les autres caisses restent cachées jusqu'à ce que l'on enlève les deux premières caisses. On ne voit ainsi pas instantanémment combien de caisse on a pu produire.

On peut contourner ce problème en utilsant les « forces », qui sont un ensemble d'instruction utilisé pour les campagnes à l'origine, et que nous allons détourner pour les maps solos simples.

  Exemple d'une raffinerie produisant des fuels d'essence


 

On positionne la zone 17 pour couvrir toutes les cases du batiment proprement dit. Le script détectera combien d'ouvrier sont dans le batiment pour lancer la production.

On rajoute devant l'usine une zone 4x3 cases, aussi en zone 17. Les bidons d'essence seront délivrés dans cette zone.

On positionne un bidon d'essence devant l'usine, afin que le joueur identifie facilement qu'il y a une usine ici (un ouvrier est aussi positionné à coté). Ce bidon est affecté au groupe J9 par exemple. Il est important qu'il n'y ait qu'une seule unité dans ce groupe, en l'occurence le bidon.

Les « forces » sont en quelque sorte des contenaires dans lesquels on peut mettre des unités. Normallement, cela sert à transférer les unités d'une partie à une autre en mode campagne. Mais une fois que l'on a mis des unités dans un contenaire « force », on peut l'utiliser dans la partie en cours pour refaire apparaître cette unité !!!

La première étape est de mettre le bidon dans le contenaire « force 01 ».

On utilise l'instruction :

SCRIPT:

fuel init

    CONDITION:

    mission start

 

    ACTION:

    turn off this trigger

    add group J9 to Force 1


Ensuite, on peut mettre de 1 à 5 ouvriers dans la raffinerie. Chaque ouvrier présent, jusqu'à concurrence de 5, rapport un point de production. Les points de production sont stockés dans la cellule c81. Les ouvriers sont tous dans le groupe A9

 

SCRIPT:

production fuel 1 ouvrier

    CONDITION:

    there are more than 0 units of group A9 in location #17

    ACTION:

    C_81 increased by number 1


répéter ce script 5 fois, en changeant uniquement la condition


SCRIPT:

production fuel 4 ouvrier

    CONDITION:

    there are more than 4 units of group A9 in location #17

    ACTION:

    C_81 increased by number 1


Lorsque l'on décide que la production est suffisante, on délivre le bidon de fuel.


SCRIPT:

fuel livre

    CONDITION:

    value of cell C_81 is more than Number 200

    ACTION:

    let cell C_81 contain Number 0

    put units from Force 1 to location #17



On peut aussi changer le groupe de l'unité arrivante par l'instruction :

put units from Force 1 to location #17 and assign group J9


Au bout de plusieurs période de production, voici le résultat :

 


Quelques remarques sur l'instruction force :

+L'unité (ou le groupe d'unité) qui arrive est forcément au joueur. On peut ensuite la transférer au joueur neutre, allié ou ennemi.

+Le fait de positionner des unités sur la carte avec le contenaire ne vide pas ce contenaire. Il reste toujours avec l'unité initiale. On peut cependant le vider avec l'instruction : « clear force »

+Si on veut mettre une unité type char ou infanterie, il faut qu'elle soit présente sur la carte au début du jeu. Le plus simple est de prendre un coin désert à l'autre bout de la carte, de mettre le groupe d'unité que l'on veut mettre dans le contenaire « force », mais en l'attibuant au joueur neutre par exemple, puis de le transférer danns le contenaire force, et enfin, de détruire ce groupe via la porte d'entrée la plus proche. Cette manip est faite une seule fois en début de partie, alors que le joueur ne voit pas encore le coin de carte que l'on utilise pour ce tour de passe passe.

Autre Exemple  : formation de troupe dans une académie

Nous allons prendre comme exemple la carte Anhilation Totale de Bloup :-) , et modifier le script de création de troupe, afin que les soldats arrivent simultanément et non deux par deux via un drapeau (rappel, 20 soldats mettront 25 secondes pour apparaitre via un drapeau, alors qu'ils apparaitront instantanément avec l'option force).

Tout d'abord, nous devons trouver un coin désert de la carte, pour mettre le groupe de soldats qui va emplir le conteneur "force 1". Ces soldats sont affectés au joueur neutre, de manière à ce que le joueur ne les voit pas. Ils sont positionnés sur la zone 56 par exemple. Ils sont d'un groupe quelconque (A0 ici).
Ces soldats vont juste servir à entrer dans le "conteneur". Ensuite, il faudra les éliminer. On  place donc une porte tout pret, ici la porte N.



Voici le premier script pour cette étape :

SCRIPT: init force

    CONDITION:

    debut mission

    ACTION:

    Ajouter depuis la zone #56 a la force 1

    detruire les unités dans la zone 56 au point d'entrée N


Ensuite, on place la zone 1 sous le batiment où le lieutement instructeur doit prendre place. On place la zone 2 où l'on veut, c'est dans cette zone qu'apparaitront les recrues.
Ici, on a fait le choix de positionner une case zone 2 devant chaque porte des batiments entourant la cour de l'école militaire.
Cela fonctionne avec deux zones, mais on peut rajouter une troisième zone, la n°3, pour rallier ces unités à un même point. On aura ainsi l'impression qu'elles sortent des "salles de classe" pour aller se mettre au garde à vous !



Voici maintenant les scripts permettant de former ces troupes.
Nous utiliserons le groupe A9, où sont mis les officiers instructeurs.
Nous utiliserons la cellule 1 pour servir de chronomètre afin de définir le temps de formation. Tant que l'officier instructeur est dans l'école (la zone 1), la cellule 1 s'incrémente, jusqu'à atteindre le nombre désiré. Une valeur de 120 correspond à 5 minutes de temps jeux.

SCRIPT: 1 lieutenant instructeur dans zone 1

 

    CONDITION:

 

    quand more than 0 unités du groupe A9 dans la zone 1

 

    ACTION:

 

    C1 increase by number 1

 

   

Ce script peut être répété une deuxième fois, avec une valeur changée. Ainsi, si l'on met deux officiers, le temps de formation est deux fois plus court !

SCRIPT: 2ieme lieutenant instructeur dans zone 1

   

    CONDITION:

   

    quand more than 1 unités du groupe A9 dans la zone 1

   

    ACTION:

   

    C1 increase by number 1


Voici venir la fin de l'entrainement :

SCRIPT: fin entrainement 1

    CONDITION:

    valeur de la cellule C_1 exactly  Number 120

    ACTION:

    let cell C_1 valeur Number 0

    déplacer les unités de la Force 1 vers la zone 2

    afficher texte '$signal_1 : des soldats ont été formés.'

Normallement, ce script suffit. On peut raffiner en ajoutant les scripts suivants, qui ont pour but de déplacer les soldats vers la zone n°3

SCRIPT: fin entrainement 2

 

    CONDITION:

 

    quand more than 0 unités du joueur player dans la zone 2

 

    ACTION:

 

    définir nouveau groupe A1 pour les unités du groupe A0 dans la zone 2

   

    transférer le groupe A1 au joueur allié


Il faut bien sur mettre comme comportement pour le groupe A1, défendre zone 3.

Un dernier script redonne les soldats au joueur.

SCRIPT: fin entrainement 3

   

    CONDITION:

   

    quand more than 0 unités du joueur ally dans la zone 3

   

    ACTION:

   

    définir nouveau groupe A0 pour les unités du groupe A1 dans la zone 3

     

    transférer le groupe A0 au joueur player



Et voila le résultat :



D'autres applications peuvent certainement être trouvées à cette option force !
N'hésitez pas à nous le dire sur le forum !!!

'