Objectifs transportables

Un article de Wiki-Mapping.

(Différences entre les versions)
Jump to: navigation, search
Version du 20 septembre 2006 à 07:19 (modifier)
The-mappeur (Discuter | contribs)
(III Scripting)
← Différence précédente
Version du 20 septembre 2006 à 09:18 (modifier) (défaire)
Psylopat (Discuter | contribs)

Différence suivante →
Ligne 1: Ligne 1:
-== I Introduction ==+== Introduction ==
 + 
 +Ce tuto vous explique comment faire un objectif que devront prendre les alliés et le déposer à un autre point (genre goldrush).
-Pour faire un objectif que devront prendre les alliés et le déposer à un autre point (genre goldrush), rien de plus simple, suivez ce tuto. 
Pour information: ce tuto est fait après l'observation de la map '''radar''' donc nous utiliserons ici un "radarbox". Pour information: ce tuto est fait après l'observation de la map '''radar''' donc nous utiliserons ici un "radarbox".
-== II La partie radiant. ==+== GTKRadiant. ==
-Pour cette première partie commencez déja à créer un team_ctf_redflag( si vous voulez un objet à prendre par les alliés ou si c'est pour les axis team_ctf_blueflag) qui sera l'objet à prendre.+* Pour cette première partie commencez déja à créer un ''team_ctf_redflag'' (si vous voulez un objet à prendre par les alliés ou si c'est pour les axis : ''team_ctf_blueflag'') qui sera l'objet à prendre.
-Mettez-lui les keys suivantes:+
-[[Image:capture07.jpg]]+
-Puis juste au-dessus faites un misc_commandmap_marker, il définira l'endroit de l'objet.+:Mettez-lui les keys suivantes:
-[[Image:capture02.jpg]]+
-Pour continuer faites un brush envelloppant le tout et apposez-lui la texture common/trigger.+[[Image:capture07.jpg|center]]
-Dans une des vues 2D: clic droit et trigger_objective_info appelé couramment TOI.+
-Key/Value:+
-[[Image:capture03.jpg]]+
-Cochez également les cases: AXIS_OBJECTIVE, ALLIED_OBJECTIVE et IS_OBJECTIVE ce qui fait spawnflags 19. 
-Si tout va bien vous verrez une flèche relier le TOI au misc_commandmap_marker.+* Puis juste au-dessus faites un ''misc_commandmap_marker'', il définira l'endroit de l'objet.
-Maintenant on va faire l'endroit où seront déposés les objectifs.+[[Image:capture02.jpg|center]]
-Commencez par un clic droit dans une vue 2D puis misc>misc_gamemodel.+
-Une fenêtre s'ouvre refermez-la en faisant annuler, vous aurez alors un petit carré.+
-Sélectionnez-le et faites N pour ouvrir la fenêtre des entités, ajoutez alors les keys:+
-[[Image:capture05.jpg]]+
-Le model que nous venons de créer sera rouge et transparent, ce sera l'emplacement de l'objectif à mettre. 
-Continuons avec un autre misc_gamemodel qui sera l'objectif quand il sera positionné à la fin.+* Pour continuer faites un brush envelloppant le tout et apposez-lui la texture common/trigger.
-Faites donc votre deuxième misc_gamemodel de la même manière que le premier puis ajoutez-lui les keys suivantes:+
-[[Image:capture04.jpg]]+
-ATTENTION! Les deux gamemodels doivent être surperposés.+:Dans une des vues 2D: clic droit et sélectionnez ''trigger_objective_info'' appelé couramment ''TOI''.
-Pour terminer la partie à faire dans radiant faites un brush avec la texture trigger. Ce brush sera la zone où l'objet pourra être déposé par le joueur pour remplir ses objectifs.+:Key/Value:
-Dans une vue 2D cliquez droit et faites trigger_flagonly_multiple, là encore nous allons mettre des keys:+
-[[Image:capture06.jpg]]+
-Cochez également le spawnflag red_flag ce qui aura pour effet que seuls les alliés peuvent déposer l'objectif ( pour que ce soit le contraire cochez blue_flag )+[[Image:capture03.jpg|center]]
-== III Scripting ==+:Cochez également les cases: AXIS_OBJECTIVE, ALLIED_OBJECTIVE et IS_OBJECTIVE ce qui fait ''spawnflags 19''.
-Voilà la dernière étape; le scripting. Je vais mettre ici le script qui fera fonctionner tout ça et j'expliquerais par portions de code.+:Si tout va bien vous verrez une flèche relier le ''TOI'' au ''misc_commandmap_marker''.
-Avant tout vérifiez bien que vous avez mis un script_multiplayer avec comme key:scriptname /value:game_manager+
-game_manager+* Maintenant on va faire l'endroit où seront déposés les objectifs. Commencez par un clic droit dans une vue 2D puis ''misc''->''misc_gamemodel''. Une fenêtre s'ouvre refermez-la en faisant annuler, vous aurez alors un petit carré.
 + 
 +:Sélectionnez-le et faites N pour ouvrir la fenêtre des entités, ajoutez alors les keys:
 + 
 +[[Image:capture05.jpg|center]]
 + 
 +:Le model que nous venons de créer sera rouge et transparent, ce sera l'emplacement de l'objectif à mettre.
 + 
 + 
 +* Continuons avec un autre ''misc_gamemodel' qui sera l'objectif quand il sera positionné à la fin. Faites donc votre deuxième ''misc_gamemodel'' de la même manière que le premier puis ajoutez-lui les keys suivantes:
 + 
 +[[Image:capture04.jpg|center]]
 + 
 +:'''ATTENTION!''' Les deux gamemodels doivent être surperposés.
 + 
 + 
 +* Pour terminer la partie à faire dans radiant faites un brush avec la texture trigger. Ce brush sera la zone où l'objet pourra être déposé par le joueur pour remplir ses objectifs. Dans une vue 2D cliquez droit et faites ''trigger_flagonly_multiple'', là encore nous allons mettre des keys:
 + 
 +[[Image:capture06.jpg|center]]
 + 
 +:Cochez également le spawnflag ''red_flag'' ce qui aura pour effet que seuls les alliés peuvent déposer l'objectif (pour que ce soit le contraire cochez ''blue_flag'')
 + 
 +== Scripting ==
 + 
 +Voilà la dernière étape : le scripting. Vous trouverez ici le script qui fera fonctionner tout ça et nous l'expliquerons par portions de code.
 + 
 +Avant tout vérifiez bien que vous avez mis un script_multiplayer avec comme key:scriptname / value:game_manager.
 + 
 +<pre>game_manager
{ {
-spawn+ spawn
-{+ {
-wm_axis_respawntime 20 // le nombre de sec avant que les axis respawn+ wm_axis_respawntime 20 // le nombre de sec avant que les axis respawn
-wm_allied_respawntime 20//idem pour les alliés+ wm_allied_respawntime 20//idem pour les alliés
-wm_number_of_objectives 1 //le nombre d'objectifs listés ci dessous+ wm_number_of_objectives 1 //le nombre d'objectifs listés ci dessous
-wm_set_round_timelimit 30// le temps en min de la duré de la map+ wm_set_round_timelimit 30// le temps en min de la duré de la map
- +
//Qui défend en mode stopwatch? (0=Axis, 1=Allies) //Qui défend en mode stopwatch? (0=Axis, 1=Allies)
-wm_set_defending_team 0+ wm_set_defending_team 0
// Qui gagne si on arrive à la fin du temps imparti? // Qui gagne si on arrive à la fin du temps imparti?
// 0 == AXIS, 1 == ALLIES // 0 == AXIS, 1 == ALLIES
-wm_setwinner 0+ wm_setwinner 0
 + 
// Objectifs // Objectifs
-wm_objective_status 1 1 0+ wm_objective_status 1 1 0
-wm_objective_status 1 0 0+ wm_objective_status 1 0 0
-//syntaxe: wm_objective_statut <chiffre de l'objectif>(souvenez-vous le objflag du //TOI) <team 1= alliés 0=axis><statut 0= défaut>+//syntaxe: wm_objective_statut <chiffre de l'objectif>(souvenez-vous le objflag du TOI) <team 1= alliés 0=axis><statut 0= défaut>
-}+ }
-trigger stolen_circuit+ trigger stolen_circuit
-{+ {
-accum 1 inc 1+ accum 1 inc 1
-trigger game_manager checkgame+ trigger game_manager checkgame
-}+ }
-trigger checkgame+ trigger checkgame
-{+ {
-accum 1 abort_if_not_equal 1+ accum 1 abort_if_not_equal 1
-wm_setwinner 1+ wm_setwinner 1
-wait 1500+ wait 1500
-wm_endround+ wm_endround
-}+ }
-}+}</pre>
-Voyons déjà le game_manager:+* le ''trigger stolen_circuit'' est éxécuté quand objectif est sécurisé:
-_le trigger stolen_circuit correspond à un objectif sécurisé, le accum 1 inc 1 veut dire augmente la valeur de la variable 1 de 1 puis trigger game_manager checkgame appelle la fonction checkgame un peu plus bas.+** ''accum 1 inc 1'' veut dire augmente la valeur de l'accum 1 de 1
-_trigger checkgame vérifie si l'équipe auquel il advient de prendre l'objet gagne.+** ''trigger game_manager checkgame'' appelle la fonction checkgame un peu plus bas.
-Déja il vérifie si les objectifs sont bien remplis en faisant accum 1 abort_if_not_equal 1 ce qui veut dire regarde la valeur de la variable 1 et si ce n'est pas égal à 1 arrête.+* ''trigger checkgame'' vérifie si l'équipe auquel il advient de prendre l'objet gagne.
-wm_setwinner 1 --> Ce sont les alliés qui gagnent+** Déja il vérifie si les objectifs sont bien remplis en faisant ''accum 1 abort_if_not_equal 1'' ce qui veut dire regarde la valeur de l'accum 1 et si ce n'est pas égal à 1 arrête.
-wait 1500 --> on attend un peu+** ''wm_setwinner 1'' --> Ce sont les alliés qui gagnent
-wm_endround --> on arrête la map et on affiche le résultat.+** ''wait 1500'' --> on attend un peu (1,5 seconde)
 +** ''wm_endround'' --> on arrête la map et on affiche le résultat.
Voilà on a fini avec la partie game_manager, voyons la suite: Voilà on a fini avec la partie game_manager, voyons la suite:
-radarbox//Voilà notre objectif team_ctf_redflag+<pre>radarbox//Voilà notre objectif team_ctf_redflag
{ {
-spawn+ spawn
-{+ {
-}+ }
-trigger stolen//si on prend l'objectif+ trigger stolen//si on prend l'objectif
-{+ {
-setstate circuit invisible//alors on enlève l'image de la carte+ setstate circuit invisible//alors on enlève l'image de la carte
-}+ }
-trigger returned//si les axis reprennent l'objectif+ trigger returned//si les axis reprennent l'objectif
-{+ {
-setstate circuit default //on remet l'image en place+ setstate circuit default //on remet l'image en place
-}+ }
-trigger captured// quand les alliés sécurisent l'objectif+ trigger captured// quand les alliés sécurisent l'objectif
-{+ {
-trigger truckbox visible//on change l'apparence de l'objectif rouge transparent+ trigger truckbox visible//on change l'apparence de l'objectif rouge transparent
-trigger truckboxtrans invisible+ trigger truckboxtrans invisible
-}+ }
} }
truckbox//on initialise l'arrivée de l'objectif par défaut truckbox//on initialise l'arrivée de l'objectif par défaut
{ {
-spawn+ spawn
-{+ {
-wait 50+ wait 50
-setstate truckbox invisible+ setstate truckbox invisible
-accum 1 set 0//Dès que l'objectif est ramené cette valeur est changé à 1+ accum 1 set 0//Dès que l'objectif est ramené cette valeur est changé à 1
-}+ }
-trigger visible// dès que les alliés sécurisent l'objectif+ trigger visible// dès que les alliés sécurisent l'objectif
-{+ {
-setstate truckbox default //on donne sont apparence normale à l'arrivée+ setstate truckbox default //on donne sont apparence normale à l'arrivée
-accum 1 abort_if_not_equal 0//si ce n'est pas égal à 0 on ne continue pas+ accum 1 abort_if_not_equal 0//si ce n'est pas égal à 0 on ne continue pas
-wm_announce "Allies have secured the Radar Parts!"+ wm_announce "Allies have secured the Radar Parts!"
 + accum 1 set 1//on augmente la valeur de 1
 + }
-accum 1 set 1//on augmente la valeur de 1+ trigger invisible//ci aucune des conditions ci-dessus sont remplies
 + {
 + setstate truckbox invisible//on donne l'apparence rouge transparent
 + }
} }
-trigger invisible//ci aucune des conditions ci-dessus sont remplies+truckboxtrans //l'objectif rouge transparent
{ {
-setstate truckbox invisible//on donne l'apparence rouge transparent+ trigger visible//par défaut est visible
-}+ {
-}+ setstate truckboxtrans default
 + }
-truckboxtrans //l'objectif rouge transparent+ trigger invisible//quand on ramène l'objectif
-{+ {
-trigger visible//par défaut est visible+ setstate truckboxtrans invisible// il devient invisible
-{+ }
-setstate truckboxtrans default+
} }
-trigger invisible//quand on ramène l'objectif 
-{ 
-setstate truckboxtrans invisible// il devient invisible 
-} 
-} 
truck_exitpoint //le trigger où sera déposé l'objectif truck_exitpoint //le trigger où sera déposé l'objectif
{ {
-death//dès qu'on dépose on appele la fonction stolen_circuit+ spawn
-{+ {
-trigger game_manager stolen_circuit+ }
-}+ 
-}+ death//dès qu'on dépose on appele la fonction stolen_circuit
 + {
 + trigger game_manager stolen_circuit
 + }
 +}</pre>
 + 
 +Voilà, grâce à ce mini-tuto (pas si mini quand même ) Vous pourrez faire des maps à objectif à prendre, Enjoy !
 + 
 +== Sources et Liens ==
-Voilà, grâce à ce mini-tuto (pas si mini quand même ) Vous pourrez faire des maps à objectif à prendre, Enjoy .+* Post de [[The-mappeur]] sur Easymapping du [http://easymapping.free.fr/html/modules/newbb/viewtopic.php?topic_id=1014&forum=11 24/08/2006]
-(Extrait du tuto que j'ai fait sur le forum d'[http://easymapping.free.fr/html/modules/newbb/viewtopic.php?topic_id=1014&forum=11 easymapping])+

Version du 20 septembre 2006 à 09:18

Sommaire

Introduction

Ce tuto vous explique comment faire un objectif que devront prendre les alliés et le déposer à un autre point (genre goldrush).

Pour information: ce tuto est fait après l'observation de la map radar donc nous utiliserons ici un "radarbox".


GTKRadiant.

  • Pour cette première partie commencez déja à créer un team_ctf_redflag (si vous voulez un objet à prendre par les alliés ou si c'est pour les axis : team_ctf_blueflag) qui sera l'objet à prendre.
Mettez-lui les keys suivantes:


  • Puis juste au-dessus faites un misc_commandmap_marker, il définira l'endroit de l'objet.


  • Pour continuer faites un brush envelloppant le tout et apposez-lui la texture common/trigger.
Dans une des vues 2D: clic droit et sélectionnez trigger_objective_info appelé couramment TOI.
Key/Value:
Cochez également les cases: AXIS_OBJECTIVE, ALLIED_OBJECTIVE et IS_OBJECTIVE ce qui fait spawnflags 19.
Si tout va bien vous verrez une flèche relier le TOI au misc_commandmap_marker.


  • Maintenant on va faire l'endroit où seront déposés les objectifs. Commencez par un clic droit dans une vue 2D puis misc->misc_gamemodel. Une fenêtre s'ouvre refermez-la en faisant annuler, vous aurez alors un petit carré.
Sélectionnez-le et faites N pour ouvrir la fenêtre des entités, ajoutez alors les keys:
Le model que nous venons de créer sera rouge et transparent, ce sera l'emplacement de l'objectif à mettre.


  • Continuons avec un autre misc_gamemodel' qui sera l'objectif quand il sera positionné à la fin. Faites donc votre deuxième misc_gamemodel de la même manière que le premier puis ajoutez-lui les keys suivantes:
ATTENTION! Les deux gamemodels doivent être surperposés.


  • Pour terminer la partie à faire dans radiant faites un brush avec la texture trigger. Ce brush sera la zone où l'objet pourra être déposé par le joueur pour remplir ses objectifs. Dans une vue 2D cliquez droit et faites trigger_flagonly_multiple, là encore nous allons mettre des keys:
Cochez également le spawnflag red_flag ce qui aura pour effet que seuls les alliés peuvent déposer l'objectif (pour que ce soit le contraire cochez blue_flag)

Scripting

Voilà la dernière étape : le scripting. Vous trouverez ici le script qui fera fonctionner tout ça et nous l'expliquerons par portions de code.

Avant tout vérifiez bien que vous avez mis un script_multiplayer avec comme key:scriptname / value:game_manager.

game_manager
{
  spawn
  {
    wm_axis_respawntime 20 // le nombre de sec avant que les axis respawn
    wm_allied_respawntime 20//idem pour les alliés
    wm_number_of_objectives 1 //le nombre d'objectifs listés ci dessous
    wm_set_round_timelimit 30// le temps en min de la duré de la map

//Qui défend en mode stopwatch? (0=Axis, 1=Allies)
    wm_set_defending_team 0

// Qui gagne si on arrive à la fin du temps imparti?
// 0 == AXIS, 1 == ALLIES
    wm_setwinner 0

// Objectifs
    wm_objective_status 1 1 0
    wm_objective_status 1 0 0
//syntaxe: wm_objective_statut <chiffre de l'objectif>(souvenez-vous le objflag du TOI) <team 1= alliés 0=axis><statut 0= défaut>
  }

  trigger stolen_circuit
  {
    accum 1 inc 1
    trigger game_manager checkgame
  }

  trigger checkgame
  {
    accum 1 abort_if_not_equal 1
    wm_setwinner 1
    wait 1500
    wm_endround
  }
}
  • le trigger stolen_circuit est éxécuté quand objectif est sécurisé:
    • accum 1 inc 1 veut dire augmente la valeur de l'accum 1 de 1
    • trigger game_manager checkgame appelle la fonction checkgame un peu plus bas.
  • trigger checkgame vérifie si l'équipe auquel il advient de prendre l'objet gagne.
    • Déja il vérifie si les objectifs sont bien remplis en faisant accum 1 abort_if_not_equal 1 ce qui veut dire regarde la valeur de l'accum 1 et si ce n'est pas égal à 1 arrête.
    • wm_setwinner 1 --> Ce sont les alliés qui gagnent
    • wait 1500 --> on attend un peu (1,5 seconde)
    • wm_endround --> on arrête la map et on affiche le résultat.

Voilà on a fini avec la partie game_manager, voyons la suite:

radarbox//Voilà notre objectif team_ctf_redflag
{
  spawn
  {
  }

  trigger stolen//si on prend l'objectif
  {
    setstate circuit invisible//alors on enlève l'image de la carte
  }

  trigger returned//si les axis reprennent l'objectif
  {
    setstate circuit default //on remet l'image en place
  }

  trigger captured// quand les alliés sécurisent l'objectif
  {
    trigger truckbox visible//on change l'apparence de l'objectif rouge transparent
    trigger truckboxtrans invisible
  }
}

truckbox//on initialise l'arrivée de l'objectif par défaut
{
  spawn
  {
    wait 50
    setstate truckbox invisible
    accum 1 set 0//Dès que l'objectif est ramené cette valeur est changé à 1
  }

  trigger visible// dès que les alliés sécurisent l'objectif
  {
    setstate truckbox default //on donne sont apparence normale à l'arrivée
    accum 1 abort_if_not_equal 0//si ce n'est pas égal à 0 on ne continue pas
    wm_announce "Allies have secured the Radar Parts!"
    accum 1 set 1//on augmente la valeur de 1
  }

  trigger invisible//ci aucune des conditions ci-dessus sont remplies
  {
    setstate truckbox invisible//on donne l'apparence rouge transparent
  }
}

truckboxtrans //l'objectif rouge transparent
{
  trigger visible//par défaut est visible
  {
    setstate truckboxtrans default
  }

  trigger invisible//quand on ramène l'objectif
  {
    setstate truckboxtrans invisible// il devient invisible
  }
}

truck_exitpoint //le trigger où sera déposé l'objectif
{
  spawn
  {
  }

  death//dès qu'on dépose on appele la fonction stolen_circuit
  {
    trigger game_manager stolen_circuit
  }
}

Voilà, grâce à ce mini-tuto (pas si mini quand même ) Vous pourrez faire des maps à objectif à prendre, Enjoy !

Sources et Liens