Discuter:Command post

Un article de Wiki-Mapping.

Jump to: navigation, search

Note: Je commence la rédaction du tuto sur la partie théorique, je vais tacher de respecter le très bon format proposez par psylopat !

Sommaire

[modifier] Description

Voilà nous allons nous attaquer au command post, alors il y a 2 types de command post:

  • les command post exclusif à une équipe.
  • les command post "neutre".

Ils permettent d'augmenter le temps de rechargement de l'équipe qui la construite, et peut être utilisé pour d'autres avantages ( ex: donner un spawn).

Image:Tuto_hq_pres.jpg

[modifier] Command post exclusif

[modifier] Entitées requises

Pour réaliser notre command post nous allons devoir utilisé une flotte d'entitées, pour ne pas nous y perdre les voici dans un joli organigramme :

image:Tuto_cpex_orga.JPG

Nota: le trigger_objectif_info n'est pa représenté car il n'intervient pas dans le script.

[modifier] func_constructible

Une fonction contructible qui sera en fait le groupe de clip du command post ouvert, c'est la seule entitée sur laquelle les joueurs peuvent agir depuis le jeu.

Très important elle avoir une construction_class de 2 .

Donc nous allons faire une ensemble de brush avec la texture clip (des textures common) qui représente un command post ouvert, que vous pouvez trouvez dans le fichier .map à la fin. N'oublions surtout pas le brush origine généralement un brush de 16*16*16 avec la texture origin (des textures common)placé hors des clips , au-dessus, qui facilite la selection de l'entité mais surtout qui est obligatoire !

Image:Tuto_hq_func_contructible.jpg

[modifier] Misc_gammemodel

Les gammemodels sont plus que de simple model car eux on peut les animés et/ou les faire apparaitrent/disparaitrent grâce au script. Nous allons donc avoir besoin de plusieurs model de ce type, les clefs importantes:

  • targetname: (ex:)
  • scriptname: (ex:)
  • model (ex:)
  • skin (ex:)
  • modelscale : 1.5 (Très important sinon vous aurez un command post taille hobbit)

les clefs model & skin peuvent prendre plusieurs valeur selon qu l'on souhaite un command post , neutre,allié ouvert, axis cassé, etc ...

En voici la liste par regroupement:

*models\mapobjects\radios_sd\compostalliedclosed.md3      | Model du 'command post' allié fermé.
*models\mapobjects\radios_sd\compostalliedclosed.skin     | Le 'skin' équivalent .
*models\mapobjects\radios_sd\compostallieddamaged.md3     | Model du 'command post' allié détruit.
*models\mapobjects\radios_sd\compostallieddamaged.skin    | Le 'skin' équivalent .
*models\mapobjects\radios_sd\compostalliedopened.md3      | Model du 'command post' allié ouvert.
*models\mapobjects\radios_sd\compostalliedopened.skin     | Le 'skin' équivalent .
*models\mapobjects\radios_sd\compostaxisclosed.md3        | Model du 'command post' axis fermé.
*models\mapobjects\radios_sd\compostaxisclosed.skin       | Le 'skin' équivalent .
*models\mapobjects\radios_sd\compostaxisdamaged.md3       | Model du 'command post' axis détruit.
*models\mapobjects\radios_sd\compostaxisdamaged.skin      | Le 'skin' équivalent .
*models\mapobjects\radios_sd\compostaxisopened.md3        | Model du 'command post' axis ouvert.
*models\mapobjects\radios_sd\compostaxisopened.skin       | Le 'skin' équivalent .
*models\mapobjects\radios_sd\compostneutralclosed.md3     | Model du 'command post' neutre, toujours fermé.
*models\mapobjects\radios_sd\compostneutralclosed.skin    | Le 'skin' équivalent .

[modifier] Script_mover

Ici les script_mover nous serviront juste à "clipé" notre command post dans les états détruit, fermé et en construction. On les fera apparaitre et disparaitre pour nos besoin. On aura donc besoin de plusieurs scritp_mover, les clefs importantes:

  • targetname: (ex:)
  • scriptname: (ex:)

Les 'script_mover' seront un groupe de brush de la forme voulue (ex:fermé), ils devront comme la 'func_constructible' possedé un brush origine de 16*16*16 avec la texture origin' (des textures common) placé hors des clips, au-dessus, ce qui facilitera la selection mais il est surtout obligatoire !

Image:Tuto_hqradio_script_mover.jpg

[modifier] Trigger_objective_info (TOI)

L'entité target_objective_info sert à positionner le command post sur la carte il définit aussi à partir d'où les ingénieurs pourront construire notre command post.

Il doit donc englober nos entitées et posséder un brush origine de 16*16*16 avec la texture origin' (des textures common) placé hors des clips, au-dessus, ce qui est surtout obligatoire !


Image Image Image

  • targetname :
  • shortname : Allied Command Post (Le nom affiché sur la command map.)
  • track : Allied Command Psot (Texte affiché quand vous passer près : "you are near...")
  • target :


[modifier] Liste des entitées et leur clefs

  • Une func_construcible: de la forme d'un "cp" ouvert.
  1. scriptname:allied_hqradio_openbuilt
  2. targetname:allied_hqradio
  3. spawnflags:8(ce traduit par la case allied_constructible cochée)
  • Un script_mover: de la forme d'un cp fermé.
  1. scriptname:allied_hdradio_closed_clip
  2. targetname:allied_hdradio_closed_clip
  3. spawnflags:2(traduit par la case solid de cochée)
  • Un script_mover: de la forme d'un "cp" cassé.
  1. scriptname:allied_hqradio_damaged_clip
  2. targetname:allied_hqradio_damaged_clip
  3. spawnflags:2(traduit par la case solid de cochée)
  • Un gamemodel:(cp fermé)
  1. model:models/mapobjects/radios_sd/compostalliedclosed.md3
  2. skin:models/mapobjects/radios_sd/compostalliedclosed.skin
  3. targetname:allied_hqradio_closed_model
  4. scriptname:allied_hqradio_closed_model
  5. modelscale:1.5
  • Un gamemodel:(cp ouvert)
  1. model:models/mapobjects/radios_sd/compostalliedopened.md3
  2. skin:models/mapobjects/radios_sd/compostalliedopened.skin
  3. targetname:allied_hqradio_openbuilt_model
  4. scriptname:allied_hqradio_openbuilt_model
  5. modelscale:1.5
  • Un gamemodel:(cp détruit)
  1. model:models/mapobjects/radios_sd/compostallieddamaged.md3
  2. skin:models/mapobjects/radios_sd/compostallieddamaged.skin
  3. targetname:allied_hqradio_damaged_model
  4. scriptname:allied_hqradio_damaged_model
  5. modelscale:1.5
  • Un trigger_objective_info:
  1. scriptname:allied_hqradio_toi
  2. target:allied_hqradio
  3. track:Allied command post
  4. shortname:Allied CP
  5. spawnflags:64(traduit par la case is_commandpost cochée)


[modifier] Script

Le principe est simple on a plusieurs état due à la func_constructible pour chaque état on va définir l'état de nos entité. Plus donner les temps de charge au début de la carte, plus donner les bonnus pour le cp construit, et aussi le enlever quand le cp est detruit.


game_manager
{
  spawn
  {
		wm_axis_respawntime 5
		wm_allied_respawntime 5
  }
}

allied_hqradio_damaged_clip
{
	spawn
	{
		wait 200
		setstate allied_hqradio_damaged_clip invisible
		setstate allied_hqradio_damaged_model invisible
	}
	
}

allied_hqradio_closed_clip
{
	spawn
	{
		wait 200
		setstate allied_hqradio_closed_clip default
		setstate allied_hqradio_closed_modell default
	}
	
}

allied_hqradio_openbuilt
{
	spawn
	{
		wait 400
		constructible_class 2
		trigger allied_hqradio_openbuilt setup
	}

	trigger setup
	{
		setchargetimefactor 1 soldier 1
		setchargetimefactor 1 lieutenant 1
		setchargetimefactor 1 medic 1
		setchargetimefactor 1 engineer 1
		setchargetimefactor 1 covertops 1
		sethqstatus 1 0
	}

	buildstart final
	{
		setstate allied_hqradio_openbuilt_model underconstruction
		setstate allied_hqradio_closed_clip invisible
		setstate allied_hqradio_closed_model invisible
		setstate allied_hqradio_damaged_clip invisible
		setstate allied_hqradio_damaged_model invisible

	}

	decayed final
	{
		setstate  allied_hqradio_openbuilt_model invisible
		setstate allied_hqradio_closed_clip default
		setstate allied_hqradio_closed_model default
		setstate allied_hqradio_damaged_clip invisible
		setstate allied_hqradio_damaged_model invisible
	}

	built final
	{
		setstate  allied_hqradio_openbuilt_model default
		setstate allied_hqradio_closed_clip invisible
		setstate allied_hqradio_closed_model invisible
		setstate allied_hqradio_damaged_clip invisible
		setstate allied_hqradio_damaged_model invisible

		trigger allied_hqradio_openbuilt_model enable_allied_features
		
	}

	death
	{
		setstate  allied_hqradio_openbuilt_model invisible
		setstate allied_hqradio_closed_clip invisible
		setstate allied_hqradio_closed_model invisible
		setstate allied_hqradio_damaged_clip default
		setstate allied_hqradio_damaged_model default

		trigger allied_hqradio_openbuilt_model disable_allied_features
		
	}
}

allied_hqradio_openbuilt_model
{
	spawn
	{
		wait 400
		setstate allied_hqradio_openbuilt_model invisible

	}
	
	trigger enable_allied_features
	{
		//-----------------------------------------------------------------------
		// Increase Allies charge times
		//-----------------------------------------------------------------------
		setchargetimefactor 1 soldier 0.75
		setchargetimefactor 1 lieutenant 0.75
		setchargetimefactor 1 medic 0.75
		setchargetimefactor 1 engineer 0.75
		setchargetimefactor 1 covertops 0.75
		sethqstatus 1 1

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 0 "axis_hq_compost_constructed_allies"

		wm_teamvoiceannounce 1 "allies_hq_compost_constructed"

		wm_removeteamvoiceannounce 1 "allies_hq_compost_construct"
		// *---------------------------------------------------------------------------------*

		wm_objective_status 7 1 1
		wm_objective_status 7 0 2
		wm_announce	"Allied Command Post constructed. Charge speed increased!"

		accum 0 bitset 0
	}

	trigger disable_allied_features
	{
		//-----------------------------------------------------------------------
		// Decrease Allies charge times
		//-----------------------------------------------------------------------
		setchargetimefactor 1 soldier 1
		setchargetimefactor 1 lieutenant 1
		setchargetimefactor 1 medic 1
		setchargetimefactor 1 engineer 1
		setchargetimefactor 1 covertops 1
		sethqstatus 1 1

		// *----------------------------------- vo ------------------------------------------*
		wm_teamvoiceannounce 1 "allies_hq_compost_damaged"

		wm_addteamvoiceannounce 1 "allies_hq_compost_construct"
		// *---------------------------------------------------------------------------------*

		wm_announce	"Axis team has destroyed the Allied Command Post!"
		
	}
}

[modifier] Téléchargement

Le script étant ci-dessus voici la map du command post exclusif pour les alliés: CP_allie_exclusif.map (clic droit -> "enregistrer la cible du lien sous ..." [dixit Psylo :) ])

[modifier] Command post neutre

[modifier] Entitées requises

[modifier] Script

[modifier] Téléchargement


N'hésitez pas a faire vos remarques si il n'y a rien d'ici 3/4jours je posterai la première partie, j'ai dejà commencé le command post neutre mais j'ai pas l'envie après avoir fini celui là .