Checkpoints

Un article de Wiki-Mapping.

(Différences entre les versions)
Jump to: navigation, search
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 30+ wm_axis_respawntime 5
- wm_allied_respawntime 30+ 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 contrôle d’objectifs au début+ // Personne ne controle d’objectifs au debut
wm_setwinner -1 wm_setwinner -1
- wm_set_objective_status 1 -1+ wm_objective_status 1 0 0
- wm_set_objective_status 2 -1+ wm_objective_status 2 0 0
- wm_set_objective_status 3 -1+ 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 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 capturés+ // Accum 4 compte le nombre de drapeaux captures
accum 4 set 0 accum 4 set 0
} }
- // Les routines suivantes sont éxécutées lorsqu'une équipe capture un drapeau.+ // 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_set_objective_status 1 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 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 à été pris+ // 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 été gagné+ // 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_set_objective_status 1 0+ 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 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 à été pris+ // 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 été gagné+ // 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_set_objective_status 2 1+ 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_set_objective_status 2 0+ 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_set_objective_status 3 1+ 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_set_objective_status 3 0+ 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'équipe gagnante qui possède le plus de drapeaux+ // On indique au cours de la partie l'equipe gagnante qui possede le plus de drapeaux
trigger checkwinner trigger checkwinner
{ {
Ligne 198: Ligne 203:
} }
- // Détermination de l'équipe gagnante si elle a capturée tout les drapeaux+ // Determination de l'equipe gagnante si elle a capturee tout les drapeaux
trigger checkgame_blue trigger checkgame_blue
{ {
- // On vérifie que tout les accums correspondant aux checkpoints soit attribués aux alliés (=1)+ // 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 vérifie que tout les accums correspondant aux checkpoints soit attribués aux axis (=0)+ // 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 :

Image:Image006.jpg

Sélectionnez maintenant le premier des checkpoints et appuyez sur 'N'.

Paramétrez le comme ce qui suit :

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.

[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)