Co-Op Door (Portal 2)

From Valve Developer Community
Jump to: navigation, search
English
Note:Coop Door représente les portes présentes dans les cartes jouables en coopération où les deux joueurs doivent se trouver dans la zone pour ouvrir la porte. Pour une facilitation de la traduction et de l'écriture, le terme "porte" désigne ici l'ensemble du mécanisme (porte en elle-même + triggers + etc...)

Les portes de Coopération sont constituées de deux triggers sur lesquelles devront être les robots pour les ouvrir. Pour chaque trigger activé, un panneau indicateur représentant une personne sera allumé.

La porte de mp_coop_doors.

Instance

1.) Créez un func_instance avec les paramètres suivant :

Property Name Value
Name coop_exit_door
VMF Filename instances/coop/coop_team_double_exit_door.vmf

2.) Créez un bloc avec la texture trigger, transformez-le en trigger_playerteam avec les outputs suivants :

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouchBluePlayer coop_exit_door instance:relay_blue_in;Trigger <none> 0.00 No
Io11.png OnEndTouchBluePlayer coop_exit_door instance:relay_blue_out;Trigger <none> 0.00 No
Io11.png OnStartTouchOrangePlayer coop_exit_door instance:relay_orange_in;Trigger <none> 0.00 No
Io11.png OnEndTouchOrangePlayer coop_exit_door instance:relay_orange_out;Trigger <none> 0.00 No

Création manuelle

La porte

1.) Ajoutez un prop_testchamber_door avec le paramètre suivant :

Property Name Value
Name door_01

2.) Ajoutez un logic_coop_manager avec le paramètre suivant :

Property Name Value
Name coop_man

et l'output :

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnChangeToAllTrue door_01 Open <none> 0.00 No

Déclenchement

1.) Ajoutez un logic_relay avec le paramètre suivant :

Property Name Value
Name relay_b_in

et l'output :

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger coop_man SetStateATrue <none> 0.00 No

2.) Ajoutez un logic_relay avec le paramètre suivant :

Property Name Value
Name relay_b_out

et l'output :

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger coop_man SetStateAFalse <none> 0.00 No

3.) Répétez les étapes 1 et 2 en changeant ce qui suit :

Property Name Value
Name relay_o_in

output:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger coop_man SetStateBTrue <none> 0.00 No

Ajoutez un logic_relay avec le paramètre suivant :

Property Name Value
Name relay_o_out

output:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger coop_man SetStateBFalse <none> 0.00 No

4.) Créez un bloc avec la texture trigger. Transformez ce bloc en trigger_playerteam avec les outputs suivants :

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouchBluePlayer relay_b_in Trigger <none> 0.00 No
Io11.png OnEndTouchBluePlayer relay_b_out Trigger <none> 0.00 No
Io11.png OnStartTouchOrangePlayer relay_o_in Trigger <none> 0.00 No
Io11.png OnEndTouchOrangePlayer relay_o_out Trigger <none> 0.00 No

Check Boxes

1.) Ajoutez un Prop_static avec le paramètre suivant :

Property Name Value
World Model models/props/sign_frame02/sign_frame02.mdl

2.) Créez un func_brush de 32Lx4Wx32H avec la texture : signage/coop/teamdoor/orange

Property Name Value
Name checkbox_o

Alignez-le à gauche, à l'intérieur du cadre.

3.) Répétez l'étape 2 en changeant ce qui suit : signage/coop/teamdoor/blue


Alignez-le à droite, à l'intérieur du cadre.


4.) Ajoutez deux env_texturetoggle avec les paramètres suivants :

Property Name Value
Name textog_o
Target Brush(es). checkbox_o
Property Name Value
Name textog_b
Target Brush(es). checkbox_b

5.) Ajoutez deux ambient_generic avec les paramètres suivants :

Property Name Value
Name sound_out
Sound Name portal.button_down
Property Name Value
Name sound_in
Sound Name portal.button_up


6.) Ajoutez les outputs suivants au relay_o_in :

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger textog_o SetTextureIndex 1 0.00 No
Io11.png OnTrigger sound_in PlaySound <none> 0.00 No

Et les outputs suivants au relay_o_out:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger textog_o SetTextureIndex 0 0.00 No
Io11.png OnTrigger sound_out PlaySound <none> 0.00 No

Ajoutez les outputs suivants au relay_b_in :

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger textog_b SetTextureIndex 1 0.00 No
Io11.png OnTrigger sound_in PlaySound <none> 0.00 No

Et les outputs suivants au relay_b_out:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger textog_b SetTextureIndex 0 0.00 No
Io11.png OnTrigger sound_out PlaySound <none> 0.00 No

Vous avez maintenant créé une porte qui s'ouvrira si les deux partenaires de co-op sont dans le triggers.