Checkpoints
Un article de Wiki-Mapping.
Version du 18 janvier 2007 à 09:05 (modifier) Psylopat (Discuter | contribs) M (→Description) ← Différence précédente |
Version du 8 mai 2007 à 13:27 (modifier) (défaire) Psylopat (Discuter | contribs) (→Script - diverses corrections) Différence suivante → |
||
Ligne 40: | Ligne 40: | ||
spawn | spawn | ||
{ | { | ||
- | wm_axis_respawntime | + | wm_axis_respawntime 5 |
- | wm_allied_respawntime | + | wm_allied_respawntime 5 |
wm_number_of_objectives 4 | wm_number_of_objectives 4 | ||
Ligne 49: | Ligne 49: | ||
wm_setwinner -1 | wm_setwinner -1 | ||
- | | + | wm_objective_status 1 0 0 |
- | | + | wm_objective_status 2 0 0 |
- | | + | wm_objective_status 3 0 0 |
+ | wm_objective_status 1 1 0 | ||
+ | wm_objective_status 2 1 0 | ||
+ | wm_objective_status 3 1 0 | ||
// Accum 1-3 seront les états des checkpoints, -1 signifie que personne contrôle le drapeau | // Accum 1-3 seront les états des checkpoints, -1 signifie que personne contrôle le drapeau | ||
Ligne 67: | Ligne 70: | ||
{ | { | ||
// Les Allies prennent le controle du checkpoint #1 | // Les Allies prennent le controle du checkpoint #1 | ||
- | | + | wm_objective_status 1 1 1 |
// Mis à jour du compteur de drapeau capturés pour déterminer le vainqueur | // Mis à jour du compteur de drapeau capturés pour déterminer le vainqueur | ||
Ligne 85: | Ligne 88: | ||
{ | { | ||
// Les Axis prennent le controle du checkpoint #1 | // Les Axis prennent le controle du checkpoint #1 | ||
- | | + | wm_objective_status 1 0 1 |
// Mis à jour du compteur de drapeau capturés pour déterminer le vainqueur | // Mis à jour du compteur de drapeau capturés pour déterminer le vainqueur | ||
Ligne 98: | Ligne 101: | ||
// appelle la fonction pour voir si le round a été gagné | // appelle la fonction pour voir si le round a été gagné | ||
trigger game_manager checkgame_red | trigger game_manager checkgame_red | ||
+ | } | ||
trigger cp2_blue | trigger cp2_blue | ||
{ | { | ||
- | | + | wm_objective_status 2 1 1 |
trigger game_manager adjustwinner_cp1_blue | trigger game_manager adjustwinner_cp1_blue | ||
accum 2 set 1 | accum 2 set 1 | ||
wm_announce "Allies take the checkpoint 2!" | wm_announce "Allies take the checkpoint 2!" | ||
trigger game_manager checkgame_blue | trigger game_manager checkgame_blue | ||
+ | } | ||
trigger cp2_red | trigger cp2_red | ||
{ | { | ||
- | | + | wm_objective_status 2 0 1 |
trigger game_manager adjustwinner_cp1_red | trigger game_manager adjustwinner_cp1_red | ||
accum 2 set 0 | accum 2 set 0 | ||
Ligne 118: | Ligne 123: | ||
trigger cp3_blue | trigger cp3_blue | ||
{ | { | ||
- | | + | wm_objective_status 3 1 1 |
trigger game_manager adjustwinner_cp1_blue | trigger game_manager adjustwinner_cp1_blue | ||
accum 3 set 1 | accum 3 set 1 | ||
Ligne 127: | Ligne 132: | ||
trigger cp3_red | trigger cp3_red | ||
{ | { | ||
- | | + | wm_objective_status 3 0 1 |
trigger game_manager adjustwinner_cp1_red | trigger game_manager adjustwinner_cp1_red | ||
accum 3 set 0 | accum 3 set 0 |
Version du 8 mai 2007 à 13:27
Sommaire |
Description
C'est un exemple pour une map capture the flag avec 3-checkpoint.
La partie est gagnée si une équipe capture les 3 drapeaux, en cas de fin du temps sans qu'une équipe ait réussi à capturer l'intégralité des drapeaux, celle qui en a capturés le plus est déclarée vainqueur.
D'abord construisez une pièce simple avec un info_player_start et un script-multiplayer. (clic droit et choisir le script > multiplayer_script).
Une fois votre pièce construite, nous allons y rajouter les entités correspondantes aux flags.
Entités
team_wolf_checkpoint
Placez dans votre pièce 3 team_wolf_checkpoint. Cliquez droit et choisissez-les ensuite dans la catégorie team. Maintenant votre carte doit être comme cela :
Sélectionnez maintenant le premier des checkpoints et appuyez sur 'N'.
Paramétrez le comme ce qui suit :
Le modèle est le point drapeau qui est employé dans chaque carte officielle pour checkpoints/spawnpoints.
Répétez cela pour les 3 points de contrôle avec bien sûr d'autre scriptnames - ceux-ci sont cp2 et cp3.
Scripting
Script
//checkpoint_tutorial //Map: checkpoint_tutorial.map //done by the muffinman // game_manager { spawn { wm_axis_respawntime 5 wm_allied_respawntime 5 wm_number_of_objectives 4 wm_set_round_timelimit 10 // Personne ne contrôle d’objectifs au début wm_setwinner -1 wm_objective_status 1 0 0 wm_objective_status 2 0 0 wm_objective_status 3 0 0 wm_objective_status 1 1 0 wm_objective_status 2 1 0 wm_objective_status 3 1 0 // Accum 1-3 seront les états des checkpoints, -1 signifie que personne contrôle le drapeau accum 1 set -1 accum 2 set -1 accum 3 set -1 // Accum 4 compte le nombre de drapeaux capturés accum 4 set 0 } // Les routines suivantes sont éxécutées lorsqu'une équipe capture un drapeau. trigger cp1_blue { // Les Allies prennent le controle du checkpoint #1 wm_objective_status 1 1 1 // Mis à jour du compteur de drapeau capturés pour déterminer le vainqueur trigger game_manager adjustwinner_cp1_blue // Changement de la valeur de l'accum1 pour indiquer que les Allies ont le drapeau 1 accum 1 set 1 // Message d’alerte pour dire aux joueurs que l’objectif à été pris wm_announce "Allies take the checkpoint 1!" // appelle la fonction pour voir si le round a été gagné trigger game_manager checkgame_blue } trigger cp1_red { // Les Axis prennent le controle du checkpoint #1 wm_objective_status 1 0 1 // Mis à jour du compteur de drapeau capturés pour déterminer le vainqueur trigger game_manager adjustwinner_cp1_red // Changement de la valeur de l'accum1 pour indiquer que les Axis ont le drapeau 1 accum 1 set 0 // Message d’alerte pour dire aux joueurs que l’objectif à été pris wm_announce "Axis take the Checkpoint 1!" // appelle la fonction pour voir si le round a été gagné trigger game_manager checkgame_red } trigger cp2_blue { wm_objective_status 2 1 1 trigger game_manager adjustwinner_cp1_blue accum 2 set 1 wm_announce "Allies take the checkpoint 2!" trigger game_manager checkgame_blue } trigger cp2_red { wm_objective_status 2 0 1 trigger game_manager adjustwinner_cp1_red accum 2 set 0 wm_announce "Axis take the Checkpoint 2!" trigger game_manager checkgame_red } trigger cp3_blue { wm_objective_status 3 1 1 trigger game_manager adjustwinner_cp1_blue accum 3 set 1 wm_announce "Allies take the checkpoint 3!" trigger game_manager checkgame_blue } trigger cp3_red { wm_objective_status 3 0 1 trigger game_manager adjustwinner_cp1_red accum 3 set 0 wm_announce "Axis take the Checkpoint 3!" trigger game_manager checkgame_red } // On indique au cours de la partie l'équipe gagnante qui possède le plus de drapeaux trigger checkwinner { wm_setwinner -1 accum 4 abort_if_equal 0 wm_setwinner 1 accum 4 abort_if_greater_than 0 wm_setwinner 0 } trigger adjustwinner_cp1_blue { accum 4 inc 1 trigger game_manager checkwinner accum 1 abort_if_not_equal 0 accum 4 inc 1 trigger game_manager checkwinner } trigger adjustwinner_cp1_red { accum 4 inc -1 trigger game_manager checkwinner accum 1 abort_if_not_equal 1 accum 4 inc -1 trigger game_manager checkwinner } trigger adjustwinner_cp2_blue { accum 4 inc 1 trigger game_manager checkwinner accum 2 abort_if_not_equal 0 accum 4 inc 1 trigger game_manager checkwinner } trigger adjustwinner_cp2_red { accum 4 inc -1 trigger game_manager checkwinner accum 2 abort_if_not_equal 1 accum 4 inc -1 trigger game_manager checkwinner } trigger adjustwinner_cp3_blue { accum 4 inc 1 trigger game_manager checkwinner accum 3 abort_if_not_equal 0 accum 4 inc 1 trigger game_manager checkwinner } trigger adjustwinner_cp3_red { accum 4 inc -1 trigger game_manager checkwinner accum 3 abort_if_not_equal 1 accum 4 inc -1 trigger game_manager checkwinner } // Détermination de l'équipe gagnante si elle a capturée tout les drapeaux trigger checkgame_blue { // On vérifie que tout les accums correspondant aux checkpoints soit attribués aux alliés (=1) accum 1 abort_if_not_equal 1 accum 2 abort_if_not_equal 1 accum 3 abort_if_not_equal 1 // Qui gagne : 0 == AXIS, 1 == ALLIED wm_setwinner 1 //Fin du round wm_endround } trigger checkgame_red { // On vérifie que tout les accums correspondant aux checkpoints soit attribués aux axis (=0) accum 1 abort_if_not_equal 0 accum 2 abort_if_not_equal 0 accum 3 abort_if_not_equal 0 // Qui gagne : 0 == AXIS, 1 == ALLIED wm_setwinner 0 //Fin du round wm_endround } } cp1 { trigger axis_capture { trigger game_manager cp1_red } trigger allied_capture { trigger game_manager cp1_blue } } cp2 { trigger axis_capture { trigger game_manager cp2_red } trigger allied_capture { trigger game_manager cp2_blue } } cp3 { trigger axis_capture { trigger game_manager cp3_red } trigger allied_capture { trigger game_manager cp3_blue } }
Commandes et Syntaxe
- accum x abort_if_equal y
- on arrête le script si l'accum x n'est pas égal à la valeur y
- accum x abort_if_greater_than y
- on arrête le script si l'accum x est plus élevé que la valeur y
- accum x inc y
- ajoute la valeur y à la valeur précédente de l'accum x (y peut être négatif)