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 actuelle (2 août 2009 à 22:51) (modifier) (défaire) 88.174.179.57 (Discuter) (→Script - suppr accents) |
||
| (3 révisions intermédiaires masquées) | |||
| 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 | ||
| wm_set_round_timelimit 10 | wm_set_round_timelimit 10 | ||
| - | // Personne ne | + | // Personne ne controle d’objectifs au debut |
| 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 | + | // Accum 1-3 seront les etats des checkpoints, -1 signifie que personne controle le drapeau |
| accum 1 set -1 | accum 1 set -1 | ||
| accum 2 set -1 | accum 2 set -1 | ||
| accum 3 set -1 | accum 3 set -1 | ||
| - | // Accum 4 compte le nombre de drapeaux | + | // Accum 4 compte le nombre de drapeaux captures |
| accum 4 set 0 | accum 4 set 0 | ||
| } | } | ||
| - | // Les routines suivantes sont | + | // Les routines suivantes sont executees lorsqu'une equipe capture un drapeau. |
| trigger cp1_blue | trigger cp1_blue | ||
| { | { | ||
| // 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 | + | // Mis à jour du compteur de drapeau captures pour determiner le vainqueur |
| trigger game_manager adjustwinner_cp1_blue | trigger game_manager adjustwinner_cp1_blue | ||
| Ligne 75: | Ligne 78: | ||
| accum 1 set 1 | accum 1 set 1 | ||
| - | // Message d’alerte pour dire aux joueurs que l’objectif à | + | // Message d’alerte pour dire aux joueurs que l’objectif à ete pris |
| wm_announce "Allies take the checkpoint 1!" | wm_announce "Allies take the checkpoint 1!" | ||
| - | // appelle la fonction pour voir si le round a | + | // appelle la fonction pour voir si le round a ete gagne |
| trigger game_manager checkgame_blue | trigger game_manager checkgame_blue | ||
| } | } | ||
| 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 | + | // Mis à jour du compteur de drapeau captures pour determiner le vainqueur |
| trigger game_manager adjustwinner_cp1_red | trigger game_manager adjustwinner_cp1_red | ||
| Ligne 93: | Ligne 96: | ||
| accum 1 set 0 | accum 1 set 0 | ||
| - | // Message d’alerte pour dire aux joueurs que l’objectif à | + | // Message d’alerte pour dire aux joueurs que l’objectif à ete pris |
| wm_announce "Axis take the Checkpoint 1!" | wm_announce "Axis take the Checkpoint 1!" | ||
| - | // appelle la fonction pour voir si le round a | + | // appelle la fonction pour voir si le round a ete gagne |
| 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 | ||
| Ligne 134: | Ligne 139: | ||
| } | } | ||
| - | // On indique au cours de la partie l' | + | // On indique au cours de la partie l'equipe gagnante qui possede le plus de drapeaux |
| trigger checkwinner | trigger checkwinner | ||
| { | { | ||
| Ligne 198: | Ligne 203: | ||
| } | } | ||
| - | // | + | // Determination de l'equipe gagnante si elle a capturee tout les drapeaux |
| trigger checkgame_blue | trigger checkgame_blue | ||
| { | { | ||
| - | // On | + | // On verifie que tout les accums correspondant aux checkpoints soit attribues aux allies (=1) |
| accum 1 abort_if_not_equal 1 | accum 1 abort_if_not_equal 1 | ||
| accum 2 abort_if_not_equal 1 | accum 2 abort_if_not_equal 1 | ||
| Ligne 215: | Ligne 220: | ||
| trigger checkgame_red | trigger checkgame_red | ||
| { | { | ||
| - | // On | + | // On verifie que tout les accums correspondant aux checkpoints soit attribues aux axis (=0) |
| accum 1 abort_if_not_equal 0 | accum 1 abort_if_not_equal 0 | ||
| accum 2 abort_if_not_equal 0 | accum 2 abort_if_not_equal 0 | ||
| Ligne 277: | Ligne 282: | ||
| ;accum x inc y | ;accum x inc y | ||
| :ajoute la valeur y à la valeur précédente de l'accum x (y peut être négatif) | :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)


