Comment ajouter un objet sur une map déjà construite.

Retour sommaire.

Texte original : SpawnNewThingsIntoStockMapsWithScripting By Bjarne GRÖNEVICK
from : The Rjukan Project
Traduction et interprétation : Tropheus

Comme son nom l'indique nous allons rajouter des objets (un flak88) sur une map initiale sans que nous ayons le fichier.map. Tout se fera donc par le script. L'étape se déroulera en plusieurs parties.
Le spawn du flak (juste la tourelle) (tout le script pour son fonctionnement reste inchangé. Par ici pour vous éclaircir la mémoire)
Le spawn du trigger
La recherche des coordonnées.

Pour les 2 premières parties voici le script à placer dans votre fichier.scr . Pour l'appeler, voici la ligne à mettre dans la partie après le "level waittill prespawn" de la method "main".

thread spawn_a_flak

// ARCHITECTURE: Bjarne Grönnevik
// SCRIPTING: Bjarne Grönnevik

spawn_a_flak88:
// Spawn un scipt model et lui donner un targetname
local.flak = spawn script_model "targetname" "flak88"
// paramètre pour que le model soit modéliser sur la map.
local.flak model "statweapons/flak88turret.tik"
// Définisser l'endroit où il doit apparaître (coordonnées pour placer l'objet voir plus loin)
local.flak.origin = ( -100.0 .0 0.0 )
// Définissez ses caractéristiques
local.flak.angles = ( 0.0 0.0 0.0 )
// Définissez son échelle
local.flak.scale = 1.0

// Créer le trigger et lui donner une key/value
local.trigger = spawn trigger_use "setthread" "fire_flak88"
// Définisser son endroit d'apparition
local.trigger.origin = ( 0.0 100.0 0.0 )
// Définissez sa taille
local.trigger setsize ( -50 -50 -50 ) ( 50 50 50 )
end

Bon mais maintenant comment trouver les bonnes coordonnées pour placer son objet ?

Première technique
Et bien tout simplement en se promenant sur la map vous déterminez le meilleur endroit et lorsque vous l'avez trouvé vous appelez la console et vous y tapez la commande suivante : coord
Vous verrez apparaître sur la ligne en dessous les coordonnées de votre joueur (3 coordonnées car vous êtes en 3 dimensions) c'est à dire (X Y Z).
Et encore en dessous les angles de votre joueur.

Voila vous avez tout ce qu'il faut maintenant pour placer tous les models que vous voulez sur vos map.

Une autre technique.
Vous décompilez la map et y palcez les objets de votre choix. Une fois placés, prenez leur coordonnées et les angles et reportez-les dans le script.

Encore une autre technique.
Cette fois-ci vous connaissez le nom d'une entité sur la map (exemple : tireur) et vous voulez spawner un objet au-dessus de lui.
L'objet à spawner lui portera aussi un nom (par exemple : bouteille) et sera utilisé comme variable local (local.bouteille)
Pour définir, les coordonnées voici comment faire.
local.bouteille.origin = $tireur.origin + (0 0 100)

De ce fait, l'objet nommé "bouteille" apparaîtra à 100 unités au-desus de l'entité nommée "tireur".

Pour peaufiner le tout, n'hésitez pas à utiliser les commandes editscript et restart qui vous aideront à placer et orienter correctement vos models. Pour de plus amples détails allez voir ici.

Alors à vos map.

Tropheus