Aller au menu - Aller au contenu

Icône Environnement dangereux

Mise à jour : 22/07/2009
1 414 visites depuis 7 jours, dont 16 sur ce chapitre classé 94/786
Pour rajouter un peu de difficulté dans vos niveaux, sachez qu'il existe certaines entités bien sympas qui vont nous aider.
Au programme, nous allons voir comment créer une zone glissante, une zone ventilée, et enfin nous défierons les lois de la gravité !

Rien que ça ! :)
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Zone glissante

Entité concernée : func_friction
Type d'entité : entité-bloc
Difficulté : facile

Comment simuler qu'une zone est glissante, comme c'est le cas sur de la glace ou sur un sol bien ciré ?
Il faut modifier l'adhérence du joueur avec le sol !

Pour cela, vous allez devoir créer une entité-bloc func_friction.
Avant tout, vous devez noter 2 choses importantes concernant cette entité :
  1. Le bloc est visible lorsqu'on joue, appliquez donc une texture correcte et non pas AAATRIGGER.
  2. Lorsque le joueur est entré en contact avec le func_friction, l'adhérence est modifiée pour toujours ! Concrètement, cela veut dire que si le joueur sort de la zone glissante, il glissera toujours ! Pour remédier à cela, il vous faudra donc "entourer" la zone glissante d'autres func_friction qui rétabliront les valeurs initiales de la friction.
Une fois que votre bloc est correctement créé, que vous l'avez transformé en entité func_friction, il vous restera à modifier ses propriétés. Sur ce point-là je vous rassure, cette entité est très simple :
  • Render FX, Render Mode, FX Amount et FX Color : voir le chapitre sur la transparence pour plus d'informations.
  • Percentage of standard (0 - 100) : cette valeur définit l'adhérence du terrain. Mettez une valeur entre 0 et 100, 15 étant la valeur par défaut. Plus cette valeur est élevée, plus le joueur "glissera".
On ne fait pas plus simple :)

Cette entité possède un flag vraiment dépourvu d'intérêt et que vous connaissez bien : "Not in deathmatch". Je rappelle à ceux qui l'auraient oublié que ce flag supprime l'entité dans une partie multijoueurs.

Voilà, vous allez voir maintenant le joueur glisser, ce qui est un facteur important pour une partie solo, et puis en multijoueurs c'est tellement fun :)
Oui, mais après que le joueur ait traversé le func_friction, il garde la même adhérence ?!
Relisez ce que je vous ai dit plus haut ;)
Il vous faudra "entourer" le func_friction d'autres blocs func_friction avec les valeurs par défaut, c'est à dire "Percentage of standard = 15".

Il vous faut un schéma ? Le voici :

Image utilisateur

J'espère que ce schéma vous aura éclairci les idées ;)

Zone ventilée

Entité concernée : trigger_push
Type d'entité : entité-bloc
Difficulté : assez facile

Vous connaissez certainement les zones ventilées : dans Half-Life, Gordon se retrouve plusieurs fois pris au piège dans des ventilateurs géants qui le poussent avec une force phénoménale.

Eh bien, les trigger_push vont nous permettre de faire cela ! Concrètement, ils "poussent" le joueur dans une direction précise.

Cette entité est invisible, donc vous pouvez lui appliquer la texture AAATRIGGER. L'entité doit couvrir toute la zone où le vent doit pousser le joueur.

Après, ouvrez la fenêtre d'édition des propriétés comme vous en avez l'habitude. Voici les différents attributs disponibles :
  • Target : cible à déclencher lorsque l'entité est activée.
  • Name : nom de l'entité (pour pouvoir l'activer par un trigger).
  • Kill target : nom d'une entité à retirer du jeu.
  • Target Path : chemin vers la cible.
  • Master : utilisé pour un multisource ou un game_team_master.
  • Sound style : son à produire lors de l'activation (vous avez le choix entre "No sound" et "No sound" lol ;).
  • Delay before trigger : temps en secondes avant de déclencher la cible.
  • Message (set sound too!) : message à afficher à l'écran du joueur (basé sur le fichier sentences.txt et titles.txt). Rarement utilisé dans ce cas.
  • Speed of push : voilà enfin l'entité la plus intéressante. C'est la vitesse à laquelle le joueur est poussé, en unité de Worldcraft par seconde.
A noter la présence de 3 flags :

  • Once only : le joueur ne sera poussé qu'une fois.
  • Start off : l'entité est inactive au début du niveau. Il faudra donc l'activer par un trigger pour qu'elle se mette en marche.
  • Pushables : les entités func_pushables sont elles aussi affectées par le vent.


Comme en général le vent provient d'une hélice, pensez à créer un func_rotating comme vous l'avez appris... Au moins, le joueur comprendra pourquoi il est poussé (sinon il va rien capter à votre map lol)

Modifier la gravité

Entité concernée : trigger_gravity
Type d'entité : entité-bloc
Difficulté : facile

Ca peut être marrant parfois de modifier la gravité dans une map... pour le fun, mais aussi parfois vous en avez vraiment besoin. C'est le cas notamment si vous faites une map dans l'espace ou dans les mondes de Xen.

Vous devez commencer par créer un bloc avec la texture AAATRIGGER (en effet, celui-ci sera invisible).
Cependant, il ne faut pas croire que la gravité ne sera modifiée que dans la zone couverte par le bloc...
Dès que le joueur rentre dans le trigger_gravity, sa gravité est modifiée pour toujours, même s'il sort du trigger_gravity.
Pour rétablir la gravité normale, vous devrez donc refaire passer le joueur pas un autre trigger_gravity avec la valeur Gravity = 1.
C'est assez particulier, alors je vous ai fait un petit schéma explicatif pour que ça soit plus clair :

Image utilisateur

  1. Le joueur est dans une zone normale, et il approche du trigger_gravity.
  2. Le joueur a traversé le trigger_gravity et dans toute la zone (2) il possède une gravité de 0.4.
  3. Le joueur repasse dans un trigger_gravity qui rétablit la gravité normale. La zone 3 est donc comme la zone (1).
Une fois qu'on a compris le principe, ça coule tout seul :)

Bon, je parle je parle mais je ne vous ai toujours pas présenté les attributs de cette entité.
Eh bien en fait, les attributs sont strictement les mêmes que ceux que nous avons vu plus haut pour les trigger_push. Seule une chose diffère, et c'est la plus importante :
  • Gravity (0-1) : valeur de la gravité. 1 correspond à une gravité normale. Mettez une valeur inférieure à 1 pour que la gravité soit plus faible.
Cette entité possède 3 flags :
  • Monsters : les monstres sont affectés eux aussi par la gravité.
  • No Clients : aucun joueur ne sera affecté par cette entité (alors à quoi bon l'utiliser ? lol, y'a des trucs bizarres dans Worldcraft quand même) ;)
  • Pushables : les func_pushable peuvent activer le trigger_gravity.
Faites donc très attention lorsque vous placez des trigger_gravity dans votre map : si vous les placez mal, le joueur risque d'avoir une gravité trop faible pendant toute la map alors que ce n'était pas prévu !
Avec tout cela, le joueur n'a qu'à bien se tenir !
Si vous faites une partie solo, mettez quelques monstres dans ces zones dangereuses, et vous verrez que le joueur va sacrément peiner lol :)
Chapitre précédent Sommaire Chapitre suivant

Partager

2 commentaires pour "Environnement dangereux"
Note moyenne : 3.81 / 4 (47 votes)
Pseudo Commentaire
Hors ligne Cloud # Posté le 02/08/2006 à 12:39:01
Avatar

A noter: la gravité peut être négative! Ca peut donner des effets assez intéressants, infesables avec un trigger_push!

No clients: Ce flag n'est pas inutile: il permet de modifier la gravité pour les monstres tout en n'affectant pas le joueur! ;)

Red Wind
 
Hors ligne jejedu42 # Posté le 01/02/2009 à 14:19:14
Avatar

Bon site, bien fait :)

Voir tous les commentaires