Gaming Zone Communautes Battlefield PiTrust Communautes Mods

Ajouter un camion de transport de troupes.

retour au sommaire

Tutorial inital : Adding a Vehicule With AI to your SP Map by BODGER2
Traduit par Tropheus

Grâce à ce tutorial vous aller apprendre à introduire dans votre map SP un camion de transport de troupes en mouvement, avec à son bord 9 soldats, du son, des explosions lorsqu'il est touché par un PanzerFaust et en plus les gars sortent du camion lorqu'il arrive au terme de son trajet.

NDT :
Cependant il existe un bug. Si vous détruisez le camion avant qu'il arrive au terme de son trajet, c'est le modèle détruit qui va jusqu'au bout, ce qui est peut réaliste. Alors arrangez vous pour que le joueur ne puisse détruire le camion qu'une fois arrivé à son terme.

A/ MAPPING

1. Créer un SCRIPT_VEHICLE.

Tout d'abord, il faut ouvrir codradiant et dans la vue 2D clic-droit/script/vehicle.

Donnez lui ensuite les KEYS et VALUES suivantes :

classmane / script_vehicle
model / xmodel/vehicle_german_truck
vehicletype / GermanFordTruck
script_vehiclegroup / 1
targetname / truck1

2. Créer des INFO VEHICLE NODES

Vous allez maintent créer le chemin que devra parcourir votre camion. Pour cela toujours dans la vue 2D vous allez faire clic-droit/info/vehicle_node.

Vous allez paramètrer le premier PATHNODE de façon à le définir comme premier. Pour cela entrez les KEYS et VALUES suivantes :
spawnflag / 1
Vous pouvez aussi ajouter d'autres paramètres tels que la vitesse
speed / 10 (10 semble être une vitesse acceptable)

Ajouter maintenant et de la même façon d'autres "info vehicle node" pour créer le chemin (Attention il ne faut pas les paramétrer comme le premier (sauf la vitesse)). Au passage je vous rappelle que pour créer un chemin il faut au moins 2 paths.

Pour faire tourner votre véhicule votre camion il vous faudra utiliser des "info vehicle node rotate".
(exemple : key : angle / value : 0 225 0)

3. Connecter le camion au chemin.

Rien de plus simple. Sélectionner tout d'abord le CAMION puis le premier NODE. Une fois que les 2 sont sélectionnés appuyez sur les touches "CTRL" + "K". Cette manipulation connectera le camion au premier noeud en donnant un targetname au Node et en "targetant" directement le camion sur ce targetname.
Pour continuer le chemin selectionnez maintenant le premier noeud puis le second et appuyez à nouveau sur les touches "CTL" + "K". Vous allez procéder ainsi jusqu'au bout de votre chemin.

4/ Créer les soldats de l'Axe.

Dans la vue 2D clic-droit/ACTOR/le soldat désiré.

Donner lui ensuite les KEY et VALUES suivantes :

script_vehiclegroup / 1
spawnflag / 3 (ceci se fait en cochant les cases SPAWNER et FORCESPAWNER dans la fenêtre entité)
targetname / truckguys

Vous pouvez ainsi mettre jusqu'à 9 soldats dans votre camion en incluant le chauffeur. Pour le faire vous pouvez cloner le premier soldat. il auront tous ainsi le même targetname.
Pour désigner le chauffeur prenez un des gars et changez le targetname en driver.
Placez ensuite vos gars près du camion. Vous n'avez pas à les connecter au camion car le script s'en chargera.

ATTENTION !!! POUR QUE LES SOLDATS SPAWNENT IL FAUT ABSOLUMENT QUE LE JOUEUR SOIT INCAPABLE DE LES VOIR SPAWNER. SI JAMMAIS C'ETAIT LE CAS LES SOLDATS NE SPAWNERAIENT PAS.

5/ Créer unTRIGGER. (pas nécessaire dans toutes les maps)

Le trigger servira à activer le camion et le spawn des axes.
Créer un brush puis lui donner la texture "trigger" puis selectionner le bruh et dans la vue 2D clic-droit/trigger/multiple.

targetname / truck_trigger

Pour connecter le trigger au camion, sélectionner d'abord le trigger puis le camion et appuyez ensuite sur les touches "CTRL"+"K".

Et nous en avons fini avec la partie mapping nous allons passer maintenant à la partie scripting.

6/ Pathnodes et autre cover node ou prone node.

Si vous ne voulez pas que que Ai restent bêtement debout une fois descendues du camion dites leur ce qu'il faut faire.

Ce qui vous donne:

B/ SCRIPTING

Voici le script qui vous permettra de faire marcher votre système.

main()
{
maps\_load::main();
maps\_truck::main();

//GIVE PLAYER WEAPONS
level.player takeallweapons();
level.player giveWeapon("panzerfaust");
level.player giveWeapon("thompson");
level.player giveWeapon("colt");
level.player giveWeapon("fraggrenade");
level.player switchToWeapon("thompson");

//TRUCK
trucktrig = getent ( "truck_trigger","targetname");
trucktrig waittill ("trigger");

truck = getent ( "truck1","targetname");
path = getVehicleNode (truck.target,"targetname");
truck attachpath(path);
truck maps\_truck::init();
truck maps\_truck::attach_guys();
truck startPath();
truck waittill ("reached_end_node");
truck notify ("unload");
}

Voici quelques explications.

main()
{
maps\_load::main();//charge tous les scripts globaux qui permettront à la map de fonctionner.
maps\_truck::main();//ceci précache les models et charge les effets.

//GIVE PLAYER WEAPONS
level.player takeallweapons();
level.player giveWeapon("panzerfaust");//vous pouvez maintenant détruire le camion.
level.player giveWeapon("thompson");
level.player giveWeapon("colt");
level.player giveWeapon("fraggrenade");
level.player switchToWeapon("thompson");

//TRUCK
trucktrig = getent ( "truck_trigger","targetname");//inutile si vous n'avez pas de TRIGGER
trucktrig waittill ("trigger");//inutile si vous n'avez pas de TRIGGER

truck = getent ( "truck1","targetname");//définit le camion.
path = getVehicleNode (truck.target,"targetname");//definit les paths (le chemin)
truck attachpath(path);//attache le camion au chemin.
truck maps\_truck::init();//lance la partie init du script truck (initialise la camion)
truck maps\_truck::attach_guys();//attache les soldats au camion.
truck startPath();//début du mouvement
truck waittill ("reached_end_node");//le mouvement continue jusqu'au dernier path.
truck notify ("unload"); //Les Allemands sautent du camion.
}

C/ SOLUTIONS

a/ Solution 1
Il se peut que comme moi vous rencontriez un gros problème avec votre trajet. C'est a dire que, le chemin ne se trace pas sauf si vous mettez le second node comme START NODE.

Mais dans ce cas, le camion ne dépasse pas le premier node. Vous allez essayé de targeté le camion sur le second node et là votre chemin disparaît. Alors pour y remédier gardez votre première version second node = START NODE. On va le faire changer avec le script.

Dans le script vousavez juste à changer cette ligne.

path = getVehicleNode (truck.target,"targetname"); par

path = getVehicleNode ("targetname_du_second_node","targetname");

Car en fait c'est le script qui détermine le début du path.

b/ Solution 2

Seconde solution apportée par Bushman et complémentée par Flyfab.

Vous laissez tout comme il est indiqué dans le tuto, seulement vous allez ajouter la clé/valeur suivante :

lookahead / 1

Cette clé semble indiquer la trajectoire à avoir. Plus elle est élevée, plus le camion ira en ligne droite. Regardez les screens de radiant ci-dessous.


lookahead / 1


lookahead / 10

Merci beaucoup à Bushman et Flyfab pour leur aide sur cette partie.

Bon j'espère que vous pourrez en tirer profit.

Voici la map téléchargeable pour UO.

TROPHEUS

Pour CaskamiProd et MohaaScriptLib
avec l'autorisation de l'auteur.
Tropheus ©
Octobre 2005