Checkpoints
Un article de Wiki-Mapping.
Version du 15 janvier 2007 à 18:21 (modifier) Wolfy (Discuter | contribs) ← Différence précédente |
Version actuelle (2 août 2009 à 22:51) (modifier) (défaire) 88.174.179.57 (Discuter) (→Script - suppr accents) |
||
(6 révisions intermédiaires masquées) | |||
Ligne 1: | Ligne 1: | ||
- | == | + | == Description == |
- | C'est un exemple pour une map capture the flag avec 3-checkpoint. | + | 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. | |
- | (clic droit et choisir le script > multiplayer_script). | + | 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 : | ||
[[Image:Image006.jpg]] | [[Image:Image006.jpg]] | ||
- | |||
- | |||
Sélectionnez maintenant le premier des checkpoints et appuyez sur 'N'. | Sélectionnez maintenant le premier des checkpoints et appuyez sur 'N'. | ||
- | + | Paramétrez le comme ce qui suit : | |
- | + | ||
- | + | ||
- | + | ||
[[Image:image007.gif]] | [[Image:image007.gif]] | ||
+ | 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. | 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=== | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | <pre>//checkpoint_tutorial | ||
//Map: checkpoint_tutorial.map | //Map: checkpoint_tutorial.map | ||
- | |||
//done by the muffinman | //done by the muffinman | ||
// | // | ||
- | |||
game_manager | game_manager | ||
- | |||
{ | { | ||
+ | spawn | ||
+ | { | ||
+ | wm_axis_respawntime 5 | ||
+ | wm_allied_respawntime 5 | ||
- | + | wm_number_of_objectives 4 | |
+ | wm_set_round_timelimit 10 | ||
- | + | // Personne ne controle d’objectifs au debut | |
+ | 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 etats des checkpoints, -1 signifie que personne controle le drapeau | |
+ | accum 1 set -1 | ||
+ | accum 2 set -1 | ||
+ | accum 3 set -1 | ||
+ | // Accum 4 compte le nombre de drapeaux captures | ||
+ | accum 4 set 0 | ||
+ | } | ||
+ | // Les routines suivantes sont executees lorsqu'une equipe 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 captures pour determiner 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 à ete pris | ||
+ | wm_announce "Allies take the checkpoint 1!" | ||
+ | // appelle la fonction pour voir si le round a ete gagne | ||
+ | trigger game_manager checkgame_blue | ||
+ | } | ||
- | // Les | + | trigger cp1_red |
+ | { | ||
+ | // Les Axis prennent le controle du checkpoint #1 | ||
+ | wm_objective_status 1 0 1 | ||
+ | // Mis à jour du compteur de drapeau captures pour determiner 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 à ete pris | |
+ | wm_announce "Axis take the Checkpoint 1!" | ||
+ | // appelle la fonction pour voir si le round a ete gagne | ||
+ | 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'equipe gagnante qui possede 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 | ||
+ | } | ||
- | accum 1 | + | 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 | ||
+ | } | ||
- | accum 2 | + | 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 | ||
+ | } | ||
- | accum | + | 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 | ||
+ | } | ||
- | // | + | // Determination de l'equipe gagnante si elle a capturee tout les drapeaux |
+ | trigger checkgame_blue | ||
+ | { | ||
+ | // On verifie que tout les accums correspondant aux checkpoints soit attribues aux allies (=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 | ||
+ | } | ||
- | accum | + | trigger checkgame_red |
+ | { | ||
+ | // On verifie que tout les accums correspondant aux checkpoints soit attribues 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 | ||
+ | } | ||
} | } | ||
- | |||
- | |||
- | |||
- | // The following functions are called from the checkpoints when either team takes control of it | ||
- | |||
- | |||
- | |||
- | trigger cp1_blue | ||
- | |||
- | { | ||
- | |||
- | // Allied takes control of checkpoint #1 | ||
- | |||
- | wm_set_objective_status 1 1 | ||
- | |||
- | |||
- | |||
- | // First update winner based on number of flags held by both teams | ||
- | |||
- | trigger game_manager adjustwinner_cp1_blue | ||
- | |||
- | |||
- | |||
- | // Change the variable within the script so that we can check if someone wins the round | ||
- | |||
- | 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 | ||
- | |||
- | { | ||
- | |||
- | wm_set_objective_status 1 0 | ||
- | |||
- | |||
- | |||
- | // First update winner based on number of flags held by both teams | ||
- | |||
- | trigger game_manager adjustwinner_cp1_red | ||
- | |||
- | |||
- | |||
- | // Change the variable within the script so that we can check if someone wins the round | ||
- | |||
- | 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 | ||
- | |||
- | { | ||
- | |||
- | // Allied takes control of checkpoint #1 | ||
- | |||
- | wm_set_objective_status 2 1 | ||
- | |||
- | |||
- | |||
- | // First update winner based on number of flags held by both teams | ||
- | |||
- | trigger game_manager adjustwinner_cp1_blue | ||
- | |||
- | |||
- | |||
- | // Change the variable within the script so that we can check if someone wins the round | ||
- | |||
- | accum 2 set 1 | ||
- | |||
- | |||
- | |||
- | // Message d’alerte pour dire aux joueurs que l’objectif à été pris | ||
- | |||
- | |||
- | |||
- | wm_announce "Allies take the checkpoint 2!" | ||
- | |||
- | |||
- | |||
- | // appelle la fonction pour voir si le round a été gagné | ||
- | |||
- | trigger game_manager checkgame_blue | ||
- | |||
- | } | ||
- | |||
- | |||
- | |||
- | trigger cp2_red | ||
- | |||
- | { | ||
- | |||
- | wm_set_objective_status 2 0 | ||
- | |||
- | |||
- | |||
- | // First update winner based on number of flags held by both teams | ||
- | |||
- | trigger game_manager adjustwinner_cp1_red | ||
- | |||
- | |||
- | |||
- | // Change the variable within the script so that we can check if someone wins the round | ||
- | |||
- | accum 2 set 0 | ||
- | |||
- | |||
- | |||
- | // Some kind of UI pop-up to alert players | ||
- | |||
- | wm_announce "Axis take the Checkpoint 2!" | ||
- | |||
- | |||
- | |||
- | // Call function to check if the round has been won | ||
- | |||
- | trigger game_manager checkgame_red | ||
- | |||
- | } | ||
- | |||
- | |||
- | |||
- | trigger cp3_blue | ||
- | |||
- | { | ||
- | |||
- | // Allied takes control of checkpoint #1 | ||
- | |||
- | wm_set_objective_status 3 1 | ||
- | |||
- | |||
- | |||
- | // First update winner based on number of flags held by both teams | ||
- | |||
- | trigger game_manager adjustwinner_cp1_blue | ||
- | |||
- | |||
- | |||
- | // Change the variable within the script so that we can check if someone wins the round | ||
- | |||
- | accum 3 set 1 | ||
- | |||
- | |||
- | |||
- | // Some kind of UI pop-up to alert players | ||
- | |||
- | wm_announce "Allies take the checkpoint 3!" | ||
- | |||
- | |||
- | |||
- | // Call function to check if the round has been won | ||
- | |||
- | trigger game_manager checkgame_blue | ||
- | |||
- | } | ||
- | |||
- | |||
- | |||
- | trigger cp3_red | ||
- | |||
- | { | ||
- | |||
- | wm_set_objective_status 3 0 | ||
- | |||
- | |||
- | |||
- | // First update winner based on number of flags held by both teams | ||
- | |||
- | trigger game_manager adjustwinner_cp1_red | ||
- | |||
- | |||
- | |||
- | // Change the variable within the script so that we can check if someone wins the round | ||
- | |||
- | accum 3 set 0 | ||
- | |||
- | |||
- | |||
- | // Some kind of UI pop-up to alert players | ||
- | |||
- | wm_announce "Axis take the Checkpoint 3!" | ||
- | |||
- | |||
- | |||
- | // Call function to check if the round has been won | ||
- | |||
- | trigger game_manager checkgame_red | ||
- | |||
- | } | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | // Keep winner set to team with most flags | ||
- | |||
- | |||
- | |||
- | 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 | ||
- | |||
- | } | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | // Check for game-winning condition | ||
- | |||
- | |||
- | |||
- | trigger checkgame_blue | ||
- | |||
- | { | ||
- | |||
- | // Check all for checkpoints and see if they have been set to '1' - allied | ||
- | |||
- | accum 1 abort_if_not_equal 1 | ||
- | |||
- | accum 2 abort_if_not_equal 1 | ||
- | |||
- | accum 3 abort_if_not_equal 1 | ||
- | |||
- | |||
- | |||
- | // Set the round winner: 0 == AXIS, 1 == ALLIED | ||
- | |||
- | wm_setwinner 1 | ||
- | |||
- | |||
- | |||
- | // End the round | ||
- | |||
- | wm_endround | ||
- | |||
- | } | ||
- | |||
- | |||
- | |||
- | trigger checkgame_red | ||
- | |||
- | { | ||
- | |||
- | // Check all for checkpoints and see if they have been set to '0' - axis | ||
- | |||
- | accum 1 abort_if_not_equal 0 | ||
- | |||
- | accum 2 abort_if_not_equal 0 | ||
- | |||
- | accum 3 abort_if_not_equal 0 | ||
- | |||
- | |||
- | |||
- | // Set the round winner: 0 == AXIS, 1 == ALLIED | ||
- | |||
- | wm_setwinner 0 | ||
- | |||
- | |||
- | |||
- | // End the round | ||
- | |||
- | wm_endround | ||
- | |||
- | } | ||
- | |||
- | } | ||
- | |||
- | |||
cp1 | cp1 | ||
- | |||
{ | { | ||
+ | trigger axis_capture | ||
+ | { | ||
+ | trigger game_manager cp1_red | ||
+ | } | ||
- | trigger | + | trigger allied_capture |
- | + | { | |
- | { | + | trigger game_manager cp1_blue |
- | + | } | |
- | trigger game_manager | + | |
- | + | ||
} | } | ||
- | |||
- | |||
- | |||
- | trigger allied_capture | ||
- | |||
- | { | ||
- | |||
- | trigger game_manager cp1_blue | ||
- | |||
- | } | ||
- | |||
- | } | ||
- | |||
- | |||
cp2 | cp2 | ||
- | |||
{ | { | ||
+ | trigger axis_capture | ||
+ | { | ||
+ | trigger game_manager cp2_red | ||
+ | } | ||
- | trigger | + | trigger allied_capture |
- | + | { | |
- | { | + | trigger game_manager cp2_blue |
- | + | } | |
- | trigger game_manager | + | |
- | + | ||
} | } | ||
- | |||
- | |||
- | |||
- | trigger allied_capture | ||
- | |||
- | { | ||
- | |||
- | trigger game_manager cp2_blue | ||
- | |||
- | } | ||
- | |||
- | } | ||
- | |||
- | |||
cp3 | cp3 | ||
- | |||
{ | { | ||
+ | trigger axis_capture | ||
+ | { | ||
+ | trigger game_manager cp3_red | ||
+ | } | ||
- | trigger | + | trigger allied_capture |
+ | { | ||
+ | trigger game_manager cp3_blue | ||
+ | } | ||
+ | }</pre> | ||
- | + | === 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) | ||
- | + | [[Catégorie:GtkRadiant]] | |
+ | [[Category:Scripting]] |
Version actuelle
Sommaire |
[modifier] 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.
[modifier] Entités
[modifier] 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.
[modifier] Scripting
[modifier] 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 controle d’objectifs au debut 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 etats des checkpoints, -1 signifie que personne controle le drapeau accum 1 set -1 accum 2 set -1 accum 3 set -1 // Accum 4 compte le nombre de drapeaux captures accum 4 set 0 } // Les routines suivantes sont executees lorsqu'une equipe 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 captures pour determiner 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 à ete pris wm_announce "Allies take the checkpoint 1!" // appelle la fonction pour voir si le round a ete gagne 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 captures pour determiner 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 à ete pris wm_announce "Axis take the Checkpoint 1!" // appelle la fonction pour voir si le round a ete gagne 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'equipe gagnante qui possede 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 } // Determination de l'equipe gagnante si elle a capturee tout les drapeaux trigger checkgame_blue { // On verifie que tout les accums correspondant aux checkpoints soit attribues aux allies (=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 verifie que tout les accums correspondant aux checkpoints soit attribues 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 } }
[modifier] 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)