This article relates to the game "Team Fortress 2". Click here for more information.

Ko/Team Fortress 2/Creating a Payload Map: Difference between revisions

From Valve Developer Community
< Ko
Jump to navigation Jump to search
(Created page with "{{Template:ABSGametypeLib:ko}} This tutorial will walk you through setting up the basic elements of a payload map. The standard convention is that the blue team attacks and the ...")
 
m (obsolete language category)
 
(41 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Template:ABSGametypeLib:ko}}
{{TF2 topicon|suf=:ko}} {{lang|Team Fortress 2/Creating a Payload Map|title=Creating a Payload Map}}
{{ABSGametypeLib:ko}}


This tutorial will walk you through setting up the basic elements of a payload map. The standard convention is that the blue team attacks and the red team defends. This tutorial offers no advice as to how the layout of a payload map should be designed. For that information, see [[Payload_Design_Theory]]. In this tutorial you will create the train for the payload and all the necessary entities to work the map with 2 capture points on the first round. To create a single stage payload map, certain entities are unnecessary and you will be alerted to what can be omitted.
이 강의는 어느 형식으로 수레밀기를 만드는지 그리고 수레밀기의 기본요소들을 소개합니다. 표준적인 관습은 블루팀이 공격하고 레드 팀이 방어하는 것입니다. 이 강의는 어느 형식으로 수레 밀기의 맵 개요를 짜는지는 말해주지 않습니다. 이 강의에서는 당신은 수레밀기를 위한 수레를 만들것입니다 그리고 맵과 첫 라운드를 위한 각종 필요한 엔티티들을 소개받을것입니다. 한 라운드의 수레밀기 맵을 만든다면, 당신은 불필요한 엔티티들을 생략해도 됩니다.
== 라운드 세우기 ==
=== 게임 규칙과 논리 ===
이 강의에서는 오로지 한 라운드만 있습니다 하지만 다른 라운드도 있다고 생각하겟습니다.


== Setting up the round ==
*{{ent|tf_gamerules}}를 만드시고 이름을 '''GameRules'''로 지어주세요.
=== Game Rules and Logic ===
For this tutorial there is only 1 round but has been made with other rounds in mind.


*Create a {{ent|tf_gamerules}} and name it '''GameRules'''.
*{{ent|logic_auto}} 엔티티를 만들어 주시고 output 탭에 아래 항목들을 적어주세요:
 
*Create a {{ent|logic_auto}} entity and select the outputs tab.
::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnMapSpawn || GameRules || SetRedTeamRole || 1 || 0.00 || No
| [[File:Io11.png]] || OnMapSpawn || GameRules || SetRedTeamRole || 1 || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnMapSpawn || GameRules || SetBlueTeamRole || 2 || 0.00 || No
| [[File:Io11.png]] || OnMapSpawn || GameRules || SetBlueTeamRole || 2 || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnMultiNewMap || GameRules || SetRedTeamRespawnWaveTime || 4 || 0.00 || No
| [[File:Io11.png]] || OnMultiNewMap || GameRules || SetRedTeamRespawnWaveTime || 4 || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnMultiNewMap || GameRules || SetBlueTeamRespawnWaveTime || 8 || 0.00 || No
| [[File:Io11.png]] || OnMultiNewMap || GameRules || SetBlueTeamRespawnWaveTime || 8 || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnMapSpawn || GameRules || SetBlueTeamGoalString || #Goldrush_red_final_goal || 0.00 || No
| [[File:Io11.png]] || OnMapSpawn || GameRules || SetBlueTeamGoalString || #Goldrush_red_final_goal || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnMapSpawn || GameRules || SetRedTeamGoalString || #Goldrush_red_final_goal || 0.00 || No
| [[File:Io11.png]] || OnMapSpawn || GameRules || SetRedTeamGoalString || #Goldrush_red_final_goal || 0.00 || No
|}
|}


*Place a {{ent|team_control_point_master}} and name it '''CP_master''', and adjust the properties (not all are displayed).
*{{ent|team_control_point_master}}를 소환하고 이름을 '''CP_master''' 로 지어주세요, 그리고 설정을 알맞게 바꿔주세요 (보여지는 모두다 꼭 해야할 필요는 없음).
::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || CP_Master
| Name || 엔티티의 이름 || CP_Master
|-
|-
| Start Disabled || Self-explanatory || No
| Start Disabled || 자명 || No
|-
|-
| Cap Layout || Self-explanatory ||  
| Cap Layout || 자명 ||  
|-
|-
| Restrict team from winning || Self-explanatory || Red
| Restrict team from winning || 자명 || Red
|-
|-
| Switch teams on map win? || Self-explanatory || Yes
| Switch teams on map win? || 자명 || Yes
|-
|-
| Scoring Style || Self-explanatory || Add team score for each captured point
| Scoring Style || 자명 || Add team score for each captured point
|-
|-
| Play all rounds before changelevel || Self-explanatory || Only changelevel after all mini-rounds have been played to completion
| Play all rounds before changelevel || 자명 || Only changelevel after all mini-rounds have been played to completion
|-
|-
| Partial cap rate || Rate at which to give partial cap points for area captures || 0.1
| Partial cap rate || 점령 지점에 대한 세부적인 속도를 설정합니다. || 0.1
|}
|}  


{{note|Use Changelevel normally for the property "Play all round before changelevel" if you are designing a single-stage payload level.}}
{{Note|Changelevel 을 사용하는것은 보통 "Play all round before changelevel" 을 만약 하나의 라운드만 만들려고 한다면 쓰는것입니다.}}


=== Round Entities ===
=== 라운드 엔티티 ===


Next, an entity must be set up for each round in a round-based payload map.  
다음으로, 라운드-기반 수레밀기 맵에 필요한 각각의 엔티티들입니다.


{{note|This entity is unnecessary for a single-stage payload level.}}
{{Note|T이 엔티티들은 하나의 수레밀기 맵에는 불필요한것들입니다.}}


*Create a {{ent|team_control_point_round}} entity, and name it Round_A.
*{{ent|team_control_point_round}} 엔티티를 만들어 주시고, Round_A로 이름지어 주세요.


Set the {{ent|team_control_point_round}} properties as follows:
{{ent|team_control_point_round}} 의 설정을 아래와 같이 해주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Round_A
| Name || 엔티티의 이름 || Round_A
|-
|-
| Start Disabled || Self-explanatory || No
| Start Disabled || 자명 || No
|-
|-
| Print Name || Self-explanatory ||  
| Print Name || 자명 ||  
|-
|-
| Priority || Higher rounds are played first || #TotalRounds
| Priority || 첫번쨰로 플레이 하게되는 라운드 || #TotalRounds
|-
|-
| Control points in this round || Self-explanatory || CP_A_1 CP_A_2
| Control points in this round || 자명 || CP_A_1 CP_A_2
|-
|-
| Restrict team from winning || Self-explanatory || Red
| Restrict team from winning || 자명 || Red
|}
|}


{{note|The priority property is counter-intuitive. The higher the number, the higher the priority. So for round 1 of a 3 round level, the priority should be set to 3.}}
{{Note|우선 순위 설정은 반-직관적입니다. 숫자가 높을수록, 높은 우선 순위를 가집니다. 1부터 3까지의 라운드가 있다면, 우선 순위는 3으로 설정되어야 합니다.}}


{{note|Subsequent team_control_point_round entities should be lower in priority, and have the correct corresponding capture points indicated.}}
{{Note|차후 team_control_point_round 엔티티들은 낮은 우선 순위를 가지게 됩니다, 그리고 바람직하고 올바른 점령 지점을 가집니다.}}


=== Round Timer ===
=== 라운드 시간 ===


Now we will create entities that will ensure that if the round time runs out, that Red team will win.
이제 우리는 라운의 시간이 흘러가서 레드 팀이 이기게 하는 타이머를 설정해볼 시간입니다.


*Create a {{ent|game_round_win}} entity and name it '''Round_Win''' Set Team to '''Red'''.
*{{ent|game_round_win}} 엔티티를 만들어 주시고 이름을 '''Round_Win''' 으로 Team '''Red''' 로 설정해주세요.


*Create a {{ent|team_round_timer}} entity and set the following properties:
*{{ent|team_round_timer}} 엔티티를 만들어 주시고 아래와 같이 설정해주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Round_Timer
| Name || 엔티티의 이름 || Round_Timer
|-
|-
| Start paused || Self-explanatory || No
| Start paused || 자명 || No
|-
|-
| Reset time on round restart || Self-explanatory || Yes
| Reset time on round restart || 자명 || Yes
|}
|}


Go to outputs and enter the following new outputs:  
output 탭으로 가서 새로운 output을 만든뒤 아래와 같이 설정해주세요:


::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnFinished || Round_Win|| RoundWin ||  || 0.00 || No
| [[File:Io11.png]] || OnFinished || Round_Win|| RoundWin ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnSetupFinished || SetupGate || Open ||  || 0.00 || No
| [[File:Io11.png]] || OnSetupFinished || SetupGate || Open ||  || 0.00 || No
|}
|}


This sets the winner of the round to Red when time runs out, and opens the SetupGate after the setup timer expires.  
이 설정들은 레드 팀이 시간이 다 흘러갔을 때 이기도록 설정하는 것이였습니다, 그리고 SetupGate 를 통해서 타이머가 만료되면 문이 열리게 합니다.


{{note|Creating a SetupGate is not discussed in this tutorial at this time.}}
{{Note|SetupGate 를 만드는 방법은 이 강의에서 다루지 않습니다.}}


=== Filters ===
=== 필터 ===
Now we will create important filters for this gametype.
우리는 이제 이 게임형식에 있어 중요한 부분인 필터를 만들것입니다.


*Create a {{ent|filter_activator_name}} entity with the following properties:
*{{ent|filter_activator_name}} 엔티티를 만들고 다음과 같이 설정해주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 || 값e
|-
|-
| Name || Name of the entity || Filter_Cart
| Name || 엔티티의 이름 || Filter_Cart
|-
|-
| Filter mode || Self-explanatory || Allow entities that match criteria
| Filter mode || 자명 || Allow entities that match criteria
|-
|-
| Filter Name || Self-explanatory || Bomb_Train
| Filter Name || 자명 || Bomb_Train
|}
|}
This entity is used so only the cart will activate the final capture and explosion.
이 엔티티는 수레가 마지막 점령 지점으로 갔을때 점령 과 폭발을 일으킵니다.


*Create a {{ent|filter_activator_class}} entity with the following properties:
*{{ent|filter_activator_class}} 엔티티를 만들고 다음과 같이 설정해주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Filter_Players
| Name || 엔티티의 이름 || Filter_Players
|-
|-
| Filter mode || Self-explanatory || Disallow entities that match criteria
| Filter mode || 자명 || Disallow entities that match criteria
|-
|-
| Filter Classname || Self-explanatory || player
| Filter Classname || 자명 || player
|}
|}
This entity is used to prevent players from being hurt by the cart.
이 엔티티는 수레에 플레이어가 데미지를 받지 않도록 합니다.


{{note|The following entities are only required for multi-round payload levels.}}
{{Note|다음 엔티티들은 다중-라운드 수레밀기 맵에만 필요한 엔티티들 입니다.}}


*Create a {{ent|filter_activator_tfteam}} entity with the following properties:
*{{ent|filter_activator_tfteam}} 엔티티를 만들어주시고 다음과 같이 설정해주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || filter_A_2
| Name || 엔티티의 이름|| filter_A_2
|-
|-
| Filter mode || Self-explanatory || Allow entities that match criteria
| Filter mode || 자명 || Allow entities that match criteria
|-
|-
| Associated Control Point || Self-explanatory || CP_A_2
| Associated Control Point || 자명 || CP_A_2
|}
|}
This filter is used for any entity that should be usable by the owner of the Second Capture Point of the First Round. This could apply to Spawn Door Triggers, Resupply/Regeneration Triggers, etc.
이 필터는 첫번째 라운드 에서 두번째 점령 지점이 점령이 되었을떄 발동합니다. 이것은 스폰 문 트리거나, 재보급/재생성 트리거 등에도 사용됩니다.


*Create another {{ent|filter_activator_tfteam}} entity with the following properties:
*다른 {{ent|filter_activator_tfteam}} 엔티티를 생성하여 주시고 다음과 같이 설정해주세요:


::{| class=standard-table
::{| class=standard-table
! Property Name || Description || Value
! 설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || filter_B_2
| Name || 엔티티의 이름 || filter_B_2
|-
|-
| Filter mode || Self-explanatory || Allow entities that match criteria
| Filter mode || 자명 || Allow entities that match criteria
|-
|-
| Associated Control Point || Self-explanatory || CP_B_2
| Associated Control Point || 자명 || CP_B_2
|}
|}


Similar to the entity above, this filter should be used for any entity that should be usable by the owner of the Second Capture Point of the Second Stage.
위 엔티티와 비슷하지만, 이 필터는 두번쨰 라운드에서 두번째 점령 지점이 점령 되었을때 발동합니다.


== Building the payload ==
== 수레밀기의 제작 ==
=== Prepping the payload ===
=== 수레 밀기 준비 ===
[[image:Tutpayload train1.JPG|thumb|right|200px|Basic payload train.]]
[[File:Tutpayload train1.JPG|thumb|right|200px|수레의 기본적인 모습.]]
This section will help you build the train section and the entities needed to get it to function.
이 부분은 당신이 수레를 만드는 것과 이것이 제 기능을 하는 엔티티들을 소개해줄것입니다.


First we create a simple brush entity that represents the payload train.
먼저 수레를 표현해줄 간단한 블럭 엔티티를 만들어보세요.


*Create a brush the same size of the payload model, but using the <code>tools/toolsclip</code> texture and make it a {{ent|func_tracktrain}} (with ctrl+t). Name this brush '''Bomb_Train'''.
*수레의 모델이랑 크기가 일정한 블럭을 하나만드세요, 하지만 <code>tools/toolsclip</code> 텍스쳐를 사용해 이것을 {{ent|func_tracktrain}}(컨트롤+t)로 만들어주세요. 블럭의 이름은 '''Bomb_Train'''


:{{note|Make sure your train is oriented 0 degrees: facing east/right from the overhead view in Hammer. It must stay oriented this way to function properly.}}
:{{Note|당신의 수레가 0도 로 배치되었는지 확인하세요: facing /우측 Hammer 에서 옆/우측 시야로 볼때 0도 로 배치되어야 합니다. 이것은 이렇게 설정해둬야, 그 길로 제대로 갈수있기떄문입니다.}}


*Set the origin of the {{ent|func_tracktrain}} to be above the train. This will ensure that the spectator camera view of the cart is above the cart, and not in the cart.  
*{{ent|func_tracktrain}}의 origin 을 수레의 위로 오게 설정하세요. 이것은 수레의 관전자 카메라의 시점이 수레 안이 아닌, 수레 위로 오게합니다.


:{{note|In order to set the origin above the train, edit the z value of the origin property in the func_tracktrain. Raising the origin by a value of +16 units should be sufficient in most cases.}}
이제 우리는 실질적인 수레의 모델을 만들것입니다.


Now we add the actual physics prop for the train.
*{{ent|prop_physics_override}} 를 만드시고 다음과 같은 설정을 따라주세요:
 
*Create a {{ent|prop_physics_override}} and set the following properties:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Bomb_Model
| Name || 엔티티의 이름 || Bomb_Model
|-
|-
| Pitch Yaw Roll || Y Z X || 0 180 0
| Pitch Yaw Roll || Y Z X || 0 180 0
|-
|-
| World Model || Self-explanatory || <code>models/props_trainyard/bomb_cart.mdl</code>
| World Model || 자명 || <code>models/props_trainyard/bomb_cart.mdl</code>
|-
|-
| Disable Shadows || Self-explanatory || Yes
| Disable Shadows || 자명 || Yes
|-  
|-  
| Fade Scale || Forcible fade distance || 0
| Fade Scale || 거리에 의한 강제적 사라짐 || 0
|}
|}


:{{note|Resize the '''Bomb_Train''' brush so that it matches the size of the model. This ensures that the players won't get stuck in the model.}}
:{{Note|'''Bomb_Train''' 블럭의 크기를 모델의 크기에 알맞게 조절하세요. 이것은 플레이어가 모델에 끼는것을 막아줍니다.}}


Now we need to attach the cart's model to the '''Bomb_Train.'''
이제 우리는 '''Bomb_Train''' 에 수레의 모델을 부착해야합니다.


*Create a '''phys_constraint''' with the parameters:
*'''phys_constraint'''을 만들어 주시고 다음과 같은 요소를 따라주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Value
설정 이름 ||
|-
|-
| Name || Bomb_Const
| Name || Bomb_Const
Line 221: Line 219:
|}
|}


Now we need to add a volume to keep objects from getting stuck on the cart.
이제 우리는 수레를 빠지게할 어느 블럭을 만들어야 합니다.
 
*수레의 모델보다 조금 큰 블럭을 만들어주세요, 하지만 code>tools/tooltrigger</code> 텍스쳐를 이용하고 이것을 {{ent|trigger_hurt}} 으로 만들어주세요. 그리고 트리거가 다음의 설정을 따르게 해주세요:
*Create a brush slightly larger than the payload model, but this time use the <code>tools/tooltrigger</code> texture and make it a {{ent|trigger_hurt}} brush. Set the following properties for this trigger:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Parent || Entity bound to || Bomb_Train
| Parent || 엔티티가 연결 될 다른 엔티 || Bomb_Train
|-
|-
| Filter Name || Applicable Filter || Filter_Players
| Filter Name || 해당되는 필터 || Filter_Players
|-
|-
| Damage || Self-explanatory || 1000
| Damage || 자명 || 1000
|}
|}


::Edit the flags: Uncheck '''Clients''', Check '''Everything (not including physics debris)'''
::flags 수정 : 체크 해제 = '''Clients''', 체크 = '''Everything (not including physics debris)'''


Now we need to create the capture or push zone around the payload cart.
이제 우리는 수레 주변에 수레를 밀거나 점령을 할수있는 공간을 만들겟습니다.


*Using the <code>tools/toolstrigger</code> texture create a box around the train to be used as the capture zone. Make this a {{ent|trigger_capture_area}} and set the following properties:
*<code>tools/toolstrigger</code> 텍스쳐를 이용해 수레 주변에 점령 공간 박스를 만들어 주세요. 이것을 {{ent|trigger_capture_area}} 로 만들어 주시고 다음 설정을 따라주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Bomb_CapArea
| Name || 엔티티의 이름 || Bomb_CapArea
|-
|-
| Parent || Entity bound to || Bomb_Train
| Parent || 호환하는 엔티티 || Bomb_Train
|}
|}


:{{note|This brush needs to extend out from the model as far as you wish players to be when moving the payload.}}
:{{Note|이 블럭은 수레가 움직일때 플레이어들이 얼마나 멀리 있어도 움직일수 있는지 당신이 원하는 만큼 늘려주시기 바랍니다.}}


Now it's time to set up the regeneration zone around the cart.
이제 수레 주변에 재보급 기능을 추가해봅시다.


*Create another box using the <code>tools/toolstrigger</code> texture again around the train. Make this brush the same size as the '''Bomb_CapArea'''. This new trigger  will be the health and ammo regeneration zone. Make this into a {{ent|dispenser_touch_trigger}} with the following properties:
*<code>tools/toolstrigger</code> 텍스쳐로된 다른 블럭을 수레 주변에 만들어 주세요. 이 블럭은 '''Bomb_CapArea''' 만하게 만들어주세요. 이 새로운 트리거는 체력 회복과 탄약 보급을 담당합니다. 이것을 {{ent|dispenser_touch_trigger}} 로 만들어 주시고 다음의 설정을 따라주세요.


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Bomb_Dispense
| Name || 엔티티의 이름 || Bomb_Dispense
|-
|-
| Parent || Entity bound to || Bomb_Train
| Parent || 호환하는 엔티티 || Bomb_Train
|}
|}


=== Activating the payload ===
=== 수레밀기 활성화 시키기 ===
In this section you will need to set the values, the inputs and the outputs required to get the train working. First we will set some additional properties in the '''Bomb_CapArea'''. Make sure the following properties are set:
이 부분에 대해서는 우리가 설정해야할 값들은, 수레가 작동하기위해 설정해야하는 input 과 output들 입니다. 첫째로 우리는 '''Bomb_CapArea''' 에 대한 추가적인 설정들을 할것입니다, 다음 설정으로 맞춰져 있는지 확인해주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Bomb_CapArea
| Name || 엔티티의 이름 || Bomb_CapArea
|-
|-
| Start Disabled || Self-explanatory || No
| Start Disabled || 자명 || No
|-
|-
| Parent || Self-explanatory || Bomb_Train
| Parent || 자명 || Bomb_Train
|-
|-
| Control Point || The cap assigned to this trigger || CP_A_1
| Control Point || 이 트리거에 할당될 지점 || CP_A_1
|-
|-
| Can RED cap? || Self-explanatory || No
| Can RED cap? || 자명 || No
|-
|-
| Can BLUE cap? || Self-explanatory || Yes
| Can BLUE cap? || 자명 || Yes
|-
|-
| Number of RED players to cap || Self-explanatory || 1
| Number of RED players to cap || 자명 || 1
|-
|-
| Number of BLUE players to cap || Self-explanatory || 1
| Number of BLUE players to cap || 자명 || 1
|-
|-
| RED spawn adjust || How much to change the spawn time on cap || 0
| RED spawn adjust || H점령시 얼마나 스폰시간을 바꿀지 || 0
|-
|-  
| Blue spawn adjust || How much to change the spawn time on cap || 0
| Blue spawn adjust || 점령시 얼마나 스폰시간을 바꿀지 || 0
|-
|-
| Time to cap || Prevents capture by standing in the zone || 99999
| Time to cap || 이곳에 서있는 것으로 점령하는것을 방지함 || 99999
|}
|}


Next, we can work on the '''Bomb_Train'''. This tutorial presumes that you want the mine cart sounds from Goldrush. Make sure these variables are set correctly:
다음으로, 우리는 '''Bomb_Train''' 을 작업할것입니다. 이 강의는 당신이 Goldrush 광산 카트의 소리를 원한다고 가정합니다. 당신의 이 변수들이 올바른지 확인하세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Bomb_Train
| Name || 엔티티의 이름 || Bomb_Train
|-
|-
| First Stop Target || Self-explanatory || Track_A_01
| First Stop Target || 자명 || Track_A_01
|-
|-
| Max Speed || Self-explanatory || 90
| Max Speed || 자명 || 90
|-
|-
| Change Velocity || How the acceleration is handled || Linear blend
| Change Velocity || 가속도에 대한 조절 || Linear blend
|-
|-
| Distance Between the Wheels || Self-explanatory || 20
| Distance Between the Wheels || 자명 || 20
|-
|-
| Damage on Crush || Self-explanatory || 99999
| Damage on Crush || 자명 || 99999
|-
|-
| Move Sound || Self-explanatory || Cart.Roll
| Move Sound || 자명 || Cart.Roll
|-
|-
| Start Sound || Self-explanatory || Cart.RollStart
| Start Sound || 자명 || Cart.RollStart
|-
|-
| Stop Sound || Self-explanatory || Cart.RollStop
| Stop Sound || 자명 || Cart.RollStop
|-
|-
| Manual Train Speed || Self-explanatory || On
| Manual Train Speed || 자명 || On
|-
|-
| Manual Accel Speed || Self-explanatory || 70
| Manual Accel Speed || 자명 || 70
|-
|-
| Manual Decel Speed || Self-explanatory || 150
| Manual Decel Speed || 자명 || 150
|}
|}


*Additionally, click on the '''Flags''' tab and check '''No User Control''' and '''Is unblockable by player'''.
*추가적으로, '''Flags''' 탭에 들어가 '''No User Control''' '''Is unblockable by player''' 를 체크해주세요.


{{note|You might also have to set the '''Height above track''' property to  make sure that your train sits on the ground nicely, but also that the spectator camera still works. You will most likely need to modify this value slightly, about 4 units, so that if you have any track props or rims on the wheels of the cart that they match up neatly when compiled.}}
{{Note|당신은 또한 '''Height above track''' 설정을 당신이 당신의 수레가 땅에 멋지게 올려져있는 것을 보고싶다면 체크해도됩니다, 하지만 관전자 카메라는 그대로 작동합니다. 당신은 4개의 개체에 대해 조금의 값들을 수정할 필요가 있습니다, 그러므로 당신은 선로 프롭이나 수레의 바퀴 테를 컴파일 했을때 땅에 잘 맞게 보이도록 해야합니다.}}


== Building the Track ==
== 선로 만들기 ==


You may want to lay track models first until you know what each model is.  
당신은 아마도 기차의 선로들을 만들고 싶어할것입니다.
[[image:Tutpayload track1.JPG|thumb|right|200px|Trains path.]]
[[File:Tutpayload track1.JPG|thumb|right|200px|기차의 선로.]]


You now have a working train but you will now need to build a line for it to run on.
당신은 이미 기차를 위해 작업을 하고 있지만, 먼저 기차가 지나다닐 길부터 만들어야 합니다.


*Create a {{ent|path_track}} entity and place it where you want to start the track, Name this '''Track_A_01'''.
*{{ent|path_track}} 엔티티를 만들어 주시고 선로의 시작 지점에 배치해주세요, 이름은 '''Track_A_01''' 로 설정해주세요.


*Create another {{ent|path_track}} and place it where you next want the line to follow and name this '''Track_A_02'''.
*다른 {{ent|path_track}} 을 만들어 주시고 다음으로 당신이 수레가 지나가길 원하는 길에 배치해주세요 이름은 '''Track_A_02''' 으로 설정해주세요.


*Click back on '''Track_A_01''' and set <code>Next Stop Target</code> to '''Track_A_02'''.
*다시 '''Track_A_01''' 로 돌아가 <code>Next Stop Target</code> '''Track_A_02''' 로 지정해주세요.


*Keep creating new {{ent|path_track}} and continue naming and linking them in the line you want the train to follow.
*이젠 계속적으로 {{ent|path_track}} 을 생성하고 이름을 짓고 그들을 연결하는 작업을 당신이 원하는 만큼 하시길 바랍니다.


{{note|If you clone a [[path_track]] entity(Shift-drag), Hammer will automaticly link these together so you can quickly build track without naming manually.}}
{{Note|만약 당신이 {{L|path_track}} 엔티티를 복제(쉬프트+드래그) 한다면, Hammer 는 자동으로 그들을 연결시켜줄것입니다.}}


To mimic the track models seen in tf2, use several {{ent|prop_static}} entities to generate the track segments, and place these on the path underneath the {{ent|path_track}} entities.  
TF2 에 보이는 선로 모델들을 흉내내 봅시다, 먼저 몇몇의{{ent|prop_static}} 엔티티들을 적절한 선로 모델로 골라서 {{ent|path_track}} 엔티티들 아래에 배치해줍니다.


*The models required are those named <code>props_mining/track*.mdl</code> with the asterisk in place of the type of track segment required.  
*추천하는 선로의 모델은 <code>props_mining/track*.mdl</code> 입니다, 별표는 저런 타입의 모델의 모든 모델을 뜻합니다.


*For the model around the midpoint capture points, use a {{ent|prop_dynamic}} entity, with the world model as <code>props_trainyard/track_midcap.mdl</code>. Name your first capture point model '''CP_A_1_Model'''.
*점령 지점의 중앙 선로를 위한 모델은 {{ent|prop_dynamic}} 엔티티를 소환해 world model <code>props_trainyard/track_midcap.mdl</code> 으로 설정하시고 당신의 첫째 점령 지점 모델의 이름을 '''CP_A_1_Model''' 으로 설정해주세요.


== Adding a Capture Point ==  
== 점령 지점 추가 ==  
[[image:Tutpayload cap1.JPG|thumb|right|200px|Middle capture point.]]
[[File:Tutpayload cap1.JPG|thumb|right|200px|중앙 점령 지점.]]


There are generally two capture points per round: midpoint captures and endpoint captures.
기본적으로 라운드 마다 두 개의 점령 지점이 있습니다: 중앙 지점의 점령과 종착 지점의 점령으로 구성되 있습니다.


=== Mid point cap ===
=== 중앙 점령 지점 ===
First, make sure you have your static '''CP_A_1_Model''' in place. Next, find the Path_Track that sits directly on top of that model. In this example it's '''Track_A_24'''.
첫째로, 당신의 '''CP_A_1_Model''' 가 자리에 얌전히 있는지 확인해 주세요. 그 다음, 그 모델의 바로 위쪽에 있는 Path_Track 을 찾아주세요. 이 예제 에서는  '''Track_A_24''' 네요.  
 
*Select the middle {{ent|path_track}} and go to the outputs tab. Add the following outputs:


*중앙 {{ent|path_track}} 를 선택하신뒤 아래의 output 탭으로 가셔서 똑같이 해주세요:
::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnPass || CP_A_1_Model || Skin || 1 || 0.00 || Yes
| [[File:Io11.png]] || OnPass || CP_A_1_Model || Skin || 1 || 0.00 || Yes
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_CapArea || CaptureCurrentCP ||  || 0.00 || Yes
| [[File:Io11.png]] || OnPass || Bomb_CapArea || CaptureCurrentCP ||  || 0.00 || Yes
|-
|-
| [[Image:Io11.png]] || OnPass || Round_Timer || AddTeamTime || 3 240 || 0.00 || Yes
| [[File:Io11.png]] || OnPass || Round_Timer || AddTeamTime || 3 240 || 0.00 || Yes
|-
|-
| [[Image:Io11.png]] || OnPass || Track_A_23 || DisablePath ||  || 0.00 || Yes
| [[File:Io11.png]] || OnPass || Track_A_23 || DisablePath ||  || 0.00 || Yes
|-
|-
| [[Image:Io11.png]] || OnPass || cap_sound || PlaySound ||  || 0.00 || Yes
| [[File:Io11.png]] || OnPass || cap_sound || PlaySound ||  || 0.00 || Yes
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_Sparks || StopSpark ||  || 0.00 || Yes
| [[File:Io11.png]] || OnPass || Bomb_Sparks || StopSpark ||  || 0.00 || Yes
|-
|-
| [[Image:Io11.png]] || OnPass || CP_A_1 || SetOwner || 3 || 0.10 || Yes
| [[File:Io11.png]] || OnPass || CP_A_1 || SetOwner || 3 || 0.10 || Yes
|}
|}


This performs several important functions when the payload cart reaches this track point. It changes the skin on the capture point model, it captures the area for blue team, disables rollback to the previous track point, plays a sound and stops sparking effects, as well as adding time to blue team's assault via the Round_Timer.
이것은 수레가 이 지점에 닿았을때 발동하는 중요한 기능을 합니다. 이것은 점령 지점의 모델의 스킨도 바꾸고, 블루 팀에게 점령을 선사해주고, 뒤쪽으로 후진하는것도 사용가능하지 않게 하고, 소리를 재생하고 스파크 효과를 멈춥니다, 또한 Round_Timer를 통해 블루 팀의 공격 시간을 추가해줍니다.


Now we need to create the {{ent|team_control_point}} entity and position it so that it is floating over the center of the model and track point.
이제 우리는 {{ent|team_control_point}} 엔티티를 만들어 모델의 정 가운데에 새워놓아야 합니다.


*Set the following properties on your newly created {{ent|team_control_point}}:
*당신이 만든 {{ent|team_control_point}}에다가 아래와 같은 설정을 적용해주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || CP_A_1
| Name || 엔티티의 이름 || CP_A_1
|-
|-
| Start Disabled || Self-explanatory || No
| Start Disabled || 자명 || No
|-
|-
| Print Name || Name to display on HUD || #Goldrush_cap_1_A
| Print Name || HUD 에 출력될 이름 || #Goldrush_cap_1_A
|-
|-
| Group Index || N/A || 0
| Group Index || 해당없음 || 0
|-
|-
| Default Owner || Team || Red
| Default Owner || || Red
|-
|-
| Index || #ofCapPoint starting at 0 || 0
| Index || #ofCapPoint 가 0에서 시작합니다 || 0
|-
|-
| Warning Type || Announcer || No Announcements
| Warning Type || 아나운서 || No Announcements
|-  
|-  
| BLUE Previous Required Point || Self-Explanatory || CP_A_1
| BLUE Previous Required Point || 자명 || CP_A_1
|}
|}


::Set the following output:
::아래의 output 설정도 따라주세요:


::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnCapTeam2 || Bomb_CapArea || SetControlPoint || CP_A_2 || 0.00 || Yes
| [[File:Io11.png]] || OnCapTeam2 || Bomb_CapArea || SetControlPoint || CP_A_2 || 0.00 || Yes
|}
|}


This effectively creates a capture point. This will display a red hologram over the point until blue captures the point, thus displaying a blue hologram. Additionally, the output sets the next capture point for the payload.  
이것은 점령 지점을 효과적으로 만듭니다. 이것은 블루 팀이 점령 하기 전에 점령 지점에서 붉은 홀로그램이 나올것입니다, 따라서 블루팀이 점령하면 청색 홀로그램이 나옵니다. 추가적으로, output의 설정은 수레가 점령 할 다음 점령 지점을 설정합니다.


{{note| The first capture point should have an index value of zero, which each following capture point increasing by +1.}}
{{Note| 첫번째 점령 지점은 index의 값으로 0을 가지고 있어야 합니다, 점령 지점의 수가 증가할수록 +1 해주시면 됩니다.}}
{{note| Warning Type should be set to No Announcements because announcement messages will be handled by the {{ent|team_train_watcher}}.}}
{{Note| Warning Type No Announcements 로 설정해두는게 좋습니다 왜냐하면 안내 메세지가 {{ent|team_train_watcher}}에 의해서 조절되니까요.}}


=== End point cap ===
=== 좀착 점령 지점 ===
Set up this point's {{ent|team_control_point}} entity with the same properties as '''CP_A_1''', but with the following changes:
이 지점의 {{ent|team_control_point}} 엔티티를 만들고 '''CP_A_1''' 과 같이 설정해주세요, 하지만 아래 변화를 따라주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || CP_A_2
| Name || 엔티티의 이름 || CP_A_2
|-
|-
| Print Name || Name to display on HUD || #Goldrush_cap_1_B
| Print Name || HUD에 출력되는 이름 || #Goldrush_cap_1_B
|-
|-
| Index || #ofCapPoint starting at 0 || 1
| Index || #ofCapPoint 가 0에서 시작합니다 || 1
|-
|-
| BLUE Previous Required Point || Self-Explanatory || CP_A_1
| BLUE Previous Required Point || 자명 || CP_A_1
|}
|}


::Don't forget, this entity needs the following output:
::잊지 마세요, 이 엔티티는 다음 output을 따라야합니다:


::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnCapTeam2 || Bomb_CapArea || SetControlPoint || CP_B_1 || 0.00 || No
| [[File:Io11.png]] || OnCapTeam2 || Bomb_CapArea || SetControlPoint || CP_B_1 || 0.00 || No
|}
|}


This sets up the capture point for the next round.
이 설정들은 다음 라운드 점령 지점을 위한 것이었습니다.


*Set the following outputs on your second to last {{ent|path_track}}. For this tutorial it is '''Track_A_42'''.
*두번째 부터 마지막 까지의 {{ent|path_track}}를 다음 output을 따라서 설정하세요. 이 맵에서는 '''Track_A_42''' 입니다.


Set Track_A_42 Outputs:
Track_A_42 의 Output:


::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_CapArea || CaptureCurrentCP ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_CapArea || CaptureCurrentCP ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_CapArea || Disable ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_CapArea || Disable ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_Light || Stop ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_Light || Stop ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_Train || Stop ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_Train || Stop ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || cap_sound || PlaySound ||  || 0.00 || Yes
| [[File:Io11.png]] || OnPass || cap_sound || PlaySound ||  || 0.00 || Yes
|-
|-
| [[Image:Io11.png]] || OnPass || CP_A_2 || SetOwner || 3 || 0.10 || Yes
| [[File:Io11.png]] || OnPass || CP_A_2 || SetOwner || 3 || 0.10 || Yes
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_Train || SetSpeedDirAccel || 1 || 1.00 || No
| [[File:Io11.png]] || OnPass || Bomb_Train || SetSpeedDirAccel || 1 || 1.00 || No
|}
|}


The last {{ent|path_track}} should be underneath this one in order for the cart to ride down the chute like in Goldrush. This final track point, '''Track_A_43''', should have the following Outputs:
마지막 {{ent|path_track}} Goldrush 처럼 카트가 아래쪽으로 활강하는것을 만들기 위해 아래쪽에 있어야 합니다. 이 마지막 선로 지점은 '''Track_A_43''' 이네요, 이것은 다음 Output을 따라야합니다:
 
::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_Train || TeleportToPathTrack || Track_B_1 || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_Train || TeleportToPathTrack || Track_B_1 || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_Train || Stop || Track_B_1 || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_Train || Stop || Track_B_1 || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_CapArea || Enable ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_CapArea || Enable ||  || 0.00 || No
|}
|}


This will teleport the cart to the next round's starting track point, and enable it's push area.
이것은 수레를 다음 라운드의 시작지점의 시작 선로로 순간이동 시킵니다, 그리고 이것의 미는것도 허용을 합니다.


== Train Watcher ==
== Train Watcher ==
The next stage is to add in the train display, which is also used to tell when the train should start rolling back.


*Create a {{ent|team_train_watcher}} and name this '''Watcher_A'''. If you are creating a multi-round map, create a watcher for each round. Set the properties of the first round team_train_watcher to:
*{{ent|team_train_watcher}}를 만들고 이름은 '''Watcher_A'''로 설정해주세요. 만약 당신이 다수-라운드 맵을 만든다면, 라운드 마다 이것을 만들어 주세요. 첫번쨰 라운드의 team_train_watcher 설정을 다음과 같이 해주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Watcher_A
| Name || 엔티티의 이름 || Watcher_A
|-
|-
| Start Disabled || Self-explanatory || No
| Start Disabled || 자명 || No
|-
|-
| Train to watch || Self-explanatory || Bomb_Train
| Train to watch || 자명 || Bomb_Train
|-
|-
| Allow the train to recede || Self-explanatory || Yes
| Allow the train to recede || 자명 || Yes
|-
|-
| Train recede time (in seconds) || Self-explanatory || 0
| Train recede time (in seconds) || 자명 || 0
|-
|-
| Handle Train Movement || Self-explanatory || Yes
| Handle Train Movement || 자명 || Yes
|-
|-
| Default Speed Modifier || Self-explanatory || 1
| Default Speed Modifier || 자명 || 1
|-
|-
| Associated env_spark || Self-explanatory || Bomb_Sparks
| Associated env_spark || 자명 || Bomb_Sparks
|-
|-
| Node that the path starts at || Self-explanatory || Track_A_01
| Node that the path starts at || 자명 || Track_A_01
|-
|-
| Node that the path ends at || Self-explanatory || Track_A_43
| Node that the path ends at || 자명 || Track_A_43
|-
|-
| Linked PathTrack 1 || Self-explanatory || Track_A_24
| Linked PathTrack 1 || 자명 || Track_A_24
|-
|-
| Linked CP 1 || Self-explanatory || CP_A_1
| Linked CP 1 || 자명 || CP_A_1
|-
|-
| Linked PathTrack 2 || Self-explanatory || Track_A_42
| Linked PathTrack 2 || 자명 || Track_A_42
|-
|-
| Linked CP 2 || Self-explanatory || CP_A_2
| Linked CP 2 || 자명 || CP_A_2
|-
|-
| Linked PathTrack 3 || Self-explanatory ||  
| Linked PathTrack 3 || 자명 ||  
|-
|-
| Linked CP 3 || Self-explanatory ||  
| Linked CP 3 || 자명 ||  
|-
|-
| Min Speed for Speed level 1 || Self-explanatory || 1
| Min Speed for Speed level 1 || 자명 || 1
|-
|-
| Min Speed for Speed level 2 || Self-explanatory || 60
| Min Speed for Speed level 2 || 자명 || 60
|-
|-
| Min Speed for Speed level 3 || Self-explanatory || 80
| Min Speed for Speed level 3 || 자명 || 80
|}
|}


Subsequent watchers should be created for each round with appropriately modified variables, such as the name, linked control points, and linked path tracks and nodes. The rest of the variables can stay the same.
차후 이것은 각 라운드에 맞게 변수들이 수정될수 있습니다, 이름이라던가, 연결된 점령 지점 그리고 연결된 선로 등. 변수들은 변하지 않고 있을수도 있습니다.


== Additional Effects ==
== 추가 효과들 ==


On Gold Rush and Badwater, additional effects are added to the cart, such as the dispenser beam, a flashing light, and sparks while the train is moving backwards along the track. Both are simple entities that start and stop depending on certain conditions.
Gold Rush Badwater 같은 경우, 수레에 추가적으로 효과가 붙어 있습니다, 디스펜서 빔이라던지, 빛나는 불빛 그리고 수레의 바퀴에 스파크 등. 모두다 몇 가지 간단한 엔티티와 몇가지 조건으로 만들수 있습니다.
=== 디스펜서 빔 ===


=== Dispenser Beam ===
우리는 지금 디스펜서 빔 효과를 수레에 달것입니다.


Now we will add a dispense beam effect to the train.
*{{ent|mapobj_cart_dispenser}} 를 만들어주시고 디스펜서 체력 회복 빔이 나오기를 원하는 지점에 배치해주세요. 그리고 다음의 설정들을 따라주세요:
 
*Create a {{ent|mapobj_cart_dispenser}} entity and place it where you want the healing beam to come from. Set the following properties:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Bomb_DispenseBeam
| Name || 엔티티의 이름 || Bomb_DispenseBeam
|-
|-
| Parent || Entity bound to || Bomb_Train
| Parent || 따라갈 엔티티 || Bomb_Train
|-
|-
| Team || Selt-explanatory || Blue
| Team || 자명 || Blue
|-
|-
| Custom Touch Trigger || Trigger zone || Bomb_Dispense
| Custom Touch Trigger || 트리거 지점 || Bomb_Dispense
|}
|}


=== Flashing Light ===
=== 반짝이는 빛 ===


*Create a {{ent|info_particle_system}} and align it with the light on top of the bomb cart, and name it '''Bomb_Light'''
*{{ent|info_particle_system}} 을 만들어 주시고 이것은 당신의 수레의 불빛 부분에 놓아주세요 그리고 이름을 '''Bomb_Light'''로 해주세요.


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Bomb_Light
| Name || 엔티티의 이름 || Bomb_Light
|-
|-
| Parent || Self-explanatory || Bomb_Train
| Parent || 자명 || Bomb_Train
|-
|-
| Particle System Name || Self-explanatory || cart_flashinglight
| Particle System Name || 자명 || cart_flashinglight
|-
|-
| Start Active? || Self-explanatory || No
| Start Active? || 자명 || No
|}
|}


=== Sparks ===
=== 스파크 ===


*Create a {{ent|env_spark}} entity at the bottom center of both rear wheels and name it '''Bomb_Sparks'''
*{{ent|env_spark}} 엔티티를 카트 아래의 바퀴 부분에 만들고 이름은 '''Bomb_Sparks''' 로 해주세요.


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || Bomb_Sparks
| Name || 엔티티의 이름 || Bomb_Sparks
|-
|-
| Parent  
| Parent || 자명 || Bomb_Train
|| Self-explanatory || Bomb_Train
|-
|-
| Spark Trail Length || Self-explanatory || Medium
| Spark Trail Length || 자명 || Medium
|}
|}


=== Capture Bell ===
=== 점령 종 ===


On Badwater and Gold Rush, a bell "ding" is used to announce point captures by BLU. Making this sound is simple.
Badwater Gold Rush는, BLU 팀이 점령을 할때 "" 거리는 소리를 BLU 팀에게 들려줍니다. 이 소리들을 간단하게 만들어 보아요.


*Create a new {{ent|ambient_generic}} and name it cap_sound
*{{ent|ambient_generic}} 을 만드시고 이름은 cap_sound 로 정해주세요.


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Name of the entity || cap_sound
| Name || 엔티티의 이름 || cap_sound
|-
|-
| Sound Name || Self-explanatory || Hud.EndRoundScored
| Sound Name || 자명 || Hud.EndRoundScored
|}
|}


==Final Terminus==
==종점==
[[image:Final pl pit.JPG|thumb|right|300px|Place for explode in Hammer]]
[[File:Final pl pit.JPG|thumb|right|300px|Hammer 안에 폭발하는 장소를 배치.]]
Now we are going to create a basic version of the explosion at the final terminus. KaBOOOOOOM!
이제 우리는 수레밀기의 하이라이트인 폭발하는 종점 지역을 만들어 보겟습니다. 뿌우우우우우우우우움!


===Final Capture Point===
===마지막 점령 지점===


*Make sure your final team_control_point has its properties properly configured, with Index # reflecting the highest number of total capture points.  
*당신의 마지막 team_control_point 의 설정이 적절히 설정되었는지 확인하세요, 예를 들어 Index 의 값이 모든 점령 지점들 중제일 높은 값으로 설정되어 있는지 등.
*Also, the print name should be increased correctly in sequence,
*또한, print name은 정확한 순서대로 나옵니다.
*Additionally, BLUE Previous Required Point 1 should reflect the previous point's entity name.
*추가적으로, BLUE Previous Required Point 1 의 엔티티 이름 이전의 지점이여야 합니다.
*Finally, set the following '''Flags''' as checked:
*마지막으로, '''Flags''' 탭의 아래의 항목이 그대로 되어있는지 확인하여주세요:
::{| class=standard-table
::{| class=standard-table
!  Flag Name || Description || Value
!  Flag 이름 || 설명 ||
|-
|-
| Start with model hidden || Self-explanatory || True
| Start with model hidden || 자명 || True
|-
|-
| Disable Shadow || Self-explanatory || True
| Disable Shadow || 자명 || True
|-
|-
| Disable Sounds || Self-explanatory || True
| Disable Sounds || 자명 || True
|}
|}


===Explode Pit===
===폭발 하는 구덩이===
====Pit Model====
====구덩이 모델====


*First you should create a pit for the cart to fall into for the final explosion. After you've created the brushwork, cover the pit with the following models.  
*먼저 당신은 마지막 폭발 장소에서 수레가 구덩이로 굴러 들어갈만한 알맞은 구덩이 모델을 만들어야 합니다. 당신이 화법을 완료했다면, 아래의 명시된 모델들로 구덩이들을 장식해주세요.
*Create a '''prop_static''' with World Model ''models/hybridphysx/badwater_destruction_before.mdl''  
*''models/hybridphysx/badwater_destruction_before.mdl'' 이 World Model 값인 '''prop_static''' 을 만들어주세요.
*Make another with World Model ''models/props_farm/sewer_cap001a.mdl''.
*다른 하나는 World Model ''models/props_farm/sewer_cap001a.mdl'' 인것으로 만들어주세요.


====Doors to Pit====
====구덩이로 향하는 문====


*Create two brush-entities '''func_door''', with the material ''glass/glasswindow002a'' on the upper face.
*두개의 '''func_door''' 블럭 엔티티를 만들어 주시고, 이것의 윗면은 ''glass/glasswindow002a'' 의 텍스쳐로 발라주세요.
Parameters for two '''func_door''':
두개의 '''func_door'''에 대한 한도:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Self-explanatory || cap_door
| Name || 자명 || cap_door
|-
|-
| Speed || Self-explanatory || 700
| Speed || 자명 || 700
|-
|-
| Move Direction (Pitch Yaw Roll)|| Self-explanatory || 0 270 0
| Move Direction (Pitch Yaw Roll)|| 자명 || 0 270 0
|}
|}


*In '''Flags''' check '''Touch Opens''' to '''false''' and check '''Toggle''' to '''true'''.
*'''Flags''' 탭에서 '''Touch Opens''' 항목을 '''체크 해제''' 해주시고 '''Toggle''' '''체크''' 해주세요.


*On one of two doors create the outputs:
*두 개의 문들중 하나의 output:
::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnFullyOpen || cap_door || kill ||  || 0.00 || No
| [[File:Io11.png]] || OnFullyOpen || cap_door || kill ||  || 0.00 || No
|}
|}
It will destroy the door when it's fully open.
문이 완전하게 열릴때, 이것이 파괴될것입니다.


*In the pit create a brush-entity '''trigger_hurt''' with the parameters Damage - 1000, Damage Cap - 1000.
*구덩이 안에 '''trigger_hurt''' 블럭 엔티티를 만들어 주시고 Damage 의 값을 1000으로 Damage Cap 의 값을 1000으로 설정해주세요.


*Create a brush-entity '''func_nobuild''' on the upper doors with parameter Team - Any.
*'''func_nobuild''' 블럭 엔티티를 문의 상단 부분에 놓아주시고 팀 설정을 Any 로 설정해주세요.


====Barrels in Pit====
====구덩이 속 드럼통====


*Create 10-15 entities '''prop_dynamic_override''' with WorldModel ''models/props_badlands/barrel03.mdl'' and Name - ''End_Barrels''
*''models/props_badlands/barrel03.mdl'' 이 WorldModel 값인 '''prop_dynamic_override''' 를 10-15개 정도 만들어 주시고 이름은 - ''End_Barrels'' 으로 설정해주세요.


===Final Explosion===
===마지막 폭발===
[[image:Final pl explode.jpg|thumb|right|300px|Final explode (ingame) ([http://www.fpsbanana.com/maps/78017 dpl_mine_b2])]]
[[File:Final pl explode.jpg|thumb|right|300px|마지막 폭발 (인게임) ([http://www.fpsbanana.com/maps/78017 dpl_mine_b2])]]


*Create near pit three {{ent|ambient_generic}}.
*구덩이 근처에 {{ent|ambient_generic}}를 만들어 주세요.


Parameters of the first:
첫번째의 한도:
::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Self-explanatory || Cart_tip
| Name || 자명 || Cart_tip
|-
|-
| SoundName || Self-explanatory || Cart.Falling
| SoundName || 자명 || Cart.Falling
|}
|}


Parameters of the second:
두번째의 한도:
::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Self-explanatory || pre_kaboom
| Name || 자명 || pre_kaboom
|-
|-
| SoundName || Self-explanatory || Cart.Trigger
| SoundName || 자명 || Cart.Trigger
|}
|}


Parameters of the Third:
세번째의 한도:
::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Self-explanatory || kaboom
| Name || 자명 || kaboom
|-
|-
| SoundName || Self-explanatory || Cart.Explode
| SoundName || 자명 || Cart.Explode
|}
|}


Additionally, create an {{ent|env_shake}} entity with the following properties:
추가적으로, {{ent|env_shake}} 엔티티를 생성하여 다음 설정을 따라주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Self-explanatory || kaboom_shake
| Name || 자명 || kaboom_shake
|-
|-
| Amplitude || Self-explanatory || 16
| Amplitude || 자명 || 16
|-
|-
| Effect Radius || Self-explanatory || 500
| Effect Radius || 자명 || 500
|-
|-
| Duration || In seconds || 1
| Duration || In || 1
|-
|-
| Frequency || Self-explanatory || 150
| Frequency || 자명 || 150
|}
|}


::Set the following '''Flags''' as checked:
::'''Flags''' 탭에서 다음 값들이 체크되있는 확인해주세요:
::{| class=standard-table
::{| class=standard-table
!  Flag Name || Value
!  Flag 이름 ||
|-
|-
| Global Shake || True
| Global Shake || True
Line 710: Line 702:
|}
|}


*Now create under doors one {{ent|info_particle_system}} with parameters:
*문 아래에 {{ent|info_particle_system}} 를 만들어주시고 다음 한도들을 따라주세요:
::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Self-explanatory || pit_effect
| Name || 자명 || pit_effect
|-
|-
| Particle System Name || Self-explanatory || cinefx_goldrush
| Particle System Name || 자명 || cinefx_goldrush
|-
|-
| Pitch Yaw Roll (Y Z X) || Self-explanatory || -90 0 0
| Pitch Yaw Roll (Y Z X) || 자명 || -90 0 0
|}
|}


*Now create {{ent|trigger_multiple}} with properties:
*{{ent|trigger_multiple}} 을 생성한 다음 아래 설정을 따라주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Self-explanatory || KaBoomZone
| Name || 자명 || KaBoomZone
|-
|-
| Start Disabled || Self-explanatory || Yes
| Start Disabled || 자명 || Yes
|}
|}


::Set the following outputs:
::다음 output을 따라주세요:
::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnStartTouch || !activator || SetHealth || -1000 || 0.00 || No
| [[File:Io11.png]] || OnStartTouch || !activator || SetHealth || -1000 || 0.00 || No
|}
|}


Now we are ready to address the outputs for the final {{ent|path_track}}.  
이제 우리는 마지막의 {{ent|path_track}} 으로 output을 부를때가 왔습니다.


*Set the outputs as follows:
*output을 다음과 같이 해주세요:


::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnPass || cap_door || Open ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || cap_door || Open ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || Cart_tip || PlaySound || || || 0.00 || No
| [[File:Io11.png]] || Cart_tip || PlaySound || || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || Bomb_Light || Stop || || || 0.00 || No
| [[File:Io11.png]] || Bomb_Light || Stop || || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || CP_C_2 || SetOwner || 3 || || 0.10 || No
| [[File:Io11.png]] || CP_C_2 || SetOwner || 3 || || 0.10 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_Train || kill||  || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_Train || kill||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_Const || Break ||  || 0.01 || No
| [[File:Io11.png]] || OnPass || Bomb_Const || Break ||  || 0.01 || No
|-
|-
| [[Image:Io11.png]] || OnPass || pre_kaboom || PlaySound ||  || 0.50 || No
| [[File:Io11.png]] || OnPass || pre_kaboom || PlaySound ||  || 0.50 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_CapArea || CaptureCurrentCP ||  || 2.00 || No
| [[File:Io11.png]] || OnPass || Bomb_CapArea || CaptureCurrentCP ||  || 2.00 || No
|}
|}


{{note|This tutorial is assuming the final terminus takes place on the second point of the third round, and hence CP_C_2 is SetOwner to 3. Replace the capture point name as necessary.}}
마지막으로, {{ent|trigger_once}} 블럭을 구덩이의 아래쪽에 당신이 폭발을 원하는 장소에 만들어주세요.
 
Finally, create a {{ent|trigger_once}} brush at the bottom of the pit where you want the cart to explode.  


*Set the following properties:
*다음 설정을 따라주세요:


::{| class=standard-table
::{| class=standard-table
Property Name || Description || Value
설정 이름 || 설명 ||
|-
|-
| Name || Self-explanatory ||Final_Trigger
| Name || 자명 ||Final_Trigger
|-
|-
| Start Disabled || Self-explanatory || No
| Start Disabled || 자명 || No
|-
|-
| Filter Name || Associated Filter || Filter_Cart
| Filter Name || 호황되는 필터 || Filter_Cart
|}
|}


::Add the following outputs:
::다음 output 들을 추가해주세요:


::{| class=standard-table
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnPass || kaboom || PlaySound ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || kaboom || PlaySound ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || kaboom_shake || StartShake ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || kaboom_shake || StartShake ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || pit_effect || Start ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || pit_effect || Start ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || end_barrels || kill ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || end_barrels || kill ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_CapArea || kill||  || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_CapArea || kill||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || Bomb_Model || kill ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || Bomb_Model || kill ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || KaBoomZone || Enable ||  || 0.00 || No
| [[File:Io11.png]] || OnPass || KaBoomZone || Enable ||  || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnPass || KaBoomZone || Disable ||  || 0.10 || No
| [[File:Io11.png]] || OnPass || KaBoomZone || Disable ||  || 0.10 || No
|}
|}


::Set the '''Flags''' to only '''Physics debris''' true, with every other flag false.
::'''Flags''' 탭에서 오로지 '''Physics debris''' 만 체크해주세요, 다른 나머지는 다 체크 해제 해주시면됩니다.


====Timeline====
====연대표====


So what happens is:
일어나는 일을 천천히 봅시다:


0.0:
0.0:
*open doors to pit
*구덩이로 가는 문이 열립니다.
*destroy '''Bomb_Train'''
*'''Bomb_Train'''이 제거됩니다.
*cart tipping sound played
*수레가 소리가 납니다.
*cart effects disabled
*수레의 효과들이 사용불가능 해집니다.
0.01:
0.01:
*detach and fall cart's model
*수레의 모델이 떨어집니다.
0.5:
0.5:
*"beep" sound played
*"" 소리가 납니다.
On Contact with Trigger:
트리거에 닿았을때:
*play ka-boom sound
*폭발음 발생.
*play ka-boom effect
*폭발 효과.
*ka-boom shakes screen
*폭발로 인한 화면 흔들림.
*destroy barrels
*드럼통들 폭파.
*destroy cart's model
*수레의 모델 삭제.
*capture final CP
*마지막 점령지점을 점령.
*destroy Capture Zone
*점령 지점 파괴.
*activate killing zone
*사살 지점 활성화
After Contact (.1 seconds):
접촉후 (.1 ):
*deactivate killing zone
*사살 지점 비활성화


== Conclusion ==
== 결론 ==


You should now have at least a fully working 1 stage round of payload style game play, if you have taken in this tutorial fully you should be able to change the number of rounds and capture point to anything you need. If you have any questions or complaints, post them on the [[Talk:{{PAGENAME}}|talk page]].
당신은 이제 수레밀기의 모든 기능을 완전히 갖춘 하나의 라운드를 만든것입니다, 만약 당신이 이 강의를 다 듣고 라운드나 점령 지점의 수를 당신이 필요한 대로 바꿀수도 있습니다. 만약 당신이 질문이 있다면 {{L|Talk:{{PAGENAME}}|질문}}해주세요.


== See also ==
== 다른 볼것 ==
* [[TF2/Creating Rollback/Rollforward zones for payload maps|Creating rollback/rollforward zones for payload maps]]
* {{en}} [[TF2/Creating Rollback/Rollforward zones for payload maps|Creating rollback/rollforward zones for payload maps]]
* [[Team Fortress 2 Level Creation]]
* {{L|Team Fortress 2 Level Creation|카테고리 : 팀 포트리스2 레벨디자인}}


[[Category:Level Design Tutorials]]
{{ACategory|Level Design}}
[[Category:Team Fortress 2|Creating]]
{{ACategory|Team Fortress 2}}

Latest revision as of 03:37, 22 August 2024

English (en)한국어 (ko)Русский (ru)Translate (Translate)

이 게임종류는 Boojum Snark의 팀 포트리스2 게임종류 라이브러리에 포함된것 입니다.

이 게임모드를 위해서 만들어야 하는 완전한 엔티티는 Boojum Snark의 팀 포트리스2 게임종류 라이브러리에 포함되어 있습니다, 다운로드 가능한 VMF에 모든 팀 포트리스2의 게임종류가 포함되어 있습니다 엔티티들은 VMF에서 당신의 맵으로 스스로 만들어야 하거나 혹은 디버깅해야 하는 번거로운 상황없이 쉽게 옮길 수 있습니다.

Boojum Snark의 팀 포트리스2 게임종류 라이브러리는 여기서 다운받으실수 있습니다 : TF2Maps.net

이 강의는 어느 형식으로 수레밀기를 만드는지 그리고 수레밀기의 기본요소들을 소개합니다. 표준적인 관습은 블루팀이 공격하고 레드 팀이 방어하는 것입니다. 이 강의는 어느 형식으로 수레 밀기의 맵 개요를 짜는지는 말해주지 않습니다. 이 강의에서는 당신은 수레밀기를 위한 수레를 만들것입니다 그리고 맵과 첫 라운드를 위한 각종 필요한 엔티티들을 소개받을것입니다. 한 라운드의 수레밀기 맵을 만든다면, 당신은 불필요한 엔티티들을 생략해도 됩니다.

라운드 세우기

게임 규칙과 논리

이 강의에서는 오로지 한 라운드만 있습니다 하지만 다른 라운드도 있다고 생각하겟습니다.

  • tf_gamerules를 만드시고 이름을 GameRules로 지어주세요.
  • logic_auto 엔티티를 만들어 주시고 output 탭에 아래 항목들을 적어주세요:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn GameRules SetRedTeamRole 1 0.00 No
Io11.png OnMapSpawn GameRules SetBlueTeamRole 2 0.00 No
Io11.png OnMultiNewMap GameRules SetRedTeamRespawnWaveTime 4 0.00 No
Io11.png OnMultiNewMap GameRules SetBlueTeamRespawnWaveTime 8 0.00 No
Io11.png OnMapSpawn GameRules SetBlueTeamGoalString #Goldrush_red_final_goal 0.00 No
Io11.png OnMapSpawn GameRules SetRedTeamGoalString #Goldrush_red_final_goal 0.00 No
  • team_control_point_master를 소환하고 이름을 CP_master 로 지어주세요, 그리고 설정을 알맞게 바꿔주세요 (보여지는 모두다 꼭 해야할 필요는 없음).
설정 이름 설명
Name 엔티티의 이름 CP_Master
Start Disabled 자명 No
Cap Layout 자명
Restrict team from winning 자명 Red
Switch teams on map win? 자명 Yes
Scoring Style 자명 Add team score for each captured point
Play all rounds before changelevel 자명 Only changelevel after all mini-rounds have been played to completion
Partial cap rate 점령 지점에 대한 세부적인 속도를 설정합니다. 0.1
Note.png메모:Changelevel 을 사용하는것은 보통 "Play all round before changelevel" 을 만약 하나의 라운드만 만들려고 한다면 쓰는것입니다.

라운드 엔티티

다음으로, 라운드-기반 수레밀기 맵에 필요한 각각의 엔티티들입니다.

Note.png메모:T이 엔티티들은 하나의 수레밀기 맵에는 불필요한것들입니다.

team_control_point_round 의 설정을 아래와 같이 해주세요:

설정 이름 설명
Name 엔티티의 이름 Round_A
Start Disabled 자명 No
Print Name 자명
Priority 첫번쨰로 플레이 하게되는 라운드 #TotalRounds
Control points in this round 자명 CP_A_1 CP_A_2
Restrict team from winning 자명 Red
Note.png메모:우선 순위 설정은 반-직관적입니다. 숫자가 높을수록, 높은 우선 순위를 가집니다. 1부터 3까지의 라운드가 있다면, 우선 순위는 3으로 설정되어야 합니다.
Note.png메모:차후 team_control_point_round 엔티티들은 낮은 우선 순위를 가지게 됩니다, 그리고 바람직하고 올바른 점령 지점을 가집니다.

라운드 시간

이제 우리는 라운의 시간이 흘러가서 레드 팀이 이기게 하는 타이머를 설정해볼 시간입니다.

  • game_round_win 엔티티를 만들어 주시고 이름을 Round_Win 으로 Team 은 Red 로 설정해주세요.
  • team_round_timer 엔티티를 만들어 주시고 아래와 같이 설정해주세요:
설정 이름 설명
Name 엔티티의 이름 Round_Timer
Start paused 자명 No
Reset time on round restart 자명 Yes

output 탭으로 가서 새로운 output을 만든뒤 아래와 같이 설정해주세요:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnFinished Round_Win RoundWin 0.00 No
Io11.png OnSetupFinished SetupGate Open 0.00 No

이 설정들은 레드 팀이 시간이 다 흘러갔을 때 이기도록 설정하는 것이였습니다, 그리고 SetupGate 를 통해서 타이머가 만료되면 문이 열리게 합니다.

Note.png메모:SetupGate 를 만드는 방법은 이 강의에서 다루지 않습니다.

필터

우리는 이제 이 게임형식에 있어 중요한 부분인 필터를 만들것입니다.

설정 이름 설명 값e
Name 엔티티의 이름 Filter_Cart
Filter mode 자명 Allow entities that match criteria
Filter Name 자명 Bomb_Train

이 엔티티는 수레가 마지막 점령 지점으로 갔을때 점령 과 폭발을 일으킵니다.

설정 이름 설명
Name 엔티티의 이름 Filter_Players
Filter mode 자명 Disallow entities that match criteria
Filter Classname 자명 player

이 엔티티는 수레에 플레이어가 데미지를 받지 않도록 합니다.

Note.png메모:다음 엔티티들은 다중-라운드 수레밀기 맵에만 필요한 엔티티들 입니다.
설정 이름 설명
Name 엔티티의 이름 filter_A_2
Filter mode 자명 Allow entities that match criteria
Associated Control Point 자명 CP_A_2

이 필터는 첫번째 라운드 에서 두번째 점령 지점이 점령이 되었을떄 발동합니다. 이것은 스폰 문 트리거나, 재보급/재생성 트리거 등에도 사용됩니다.

설정 이름 설명
Name 엔티티의 이름 filter_B_2
Filter mode 자명 Allow entities that match criteria
Associated Control Point 자명 CP_B_2

위 엔티티와 비슷하지만, 이 필터는 두번쨰 라운드에서 두번째 점령 지점이 점령 되었을때 발동합니다.

수레밀기의 제작

수레 밀기 준비

수레의 기본적인 모습.

이 부분은 당신이 수레를 만드는 것과 이것이 제 기능을 하는 엔티티들을 소개해줄것입니다.

먼저 수레를 표현해줄 간단한 블럭 엔티티를 만들어보세요.

  • 수레의 모델이랑 크기가 일정한 블럭을 하나만드세요, 하지만 tools/toolsclip 텍스쳐를 사용해 이것을 func_tracktrain(컨트롤+t)로 만들어주세요. 블럭의 이름은 Bomb_Train
Note.png메모:당신의 수레가 0도 로 배치되었는지 확인하세요: facing 옆/우측 Hammer 에서 옆/우측 시야로 볼때 0도 로 배치되어야 합니다. 이것은 이렇게 설정해둬야, 그 길로 제대로 갈수있기떄문입니다.
  • func_tracktrain의 origin 을 수레의 위로 오게 설정하세요. 이것은 수레의 관전자 카메라의 시점이 수레 안이 아닌, 수레 위로 오게합니다.

이제 우리는 실질적인 수레의 모델을 만들것입니다.

설정 이름 설명
Name 엔티티의 이름 Bomb_Model
Pitch Yaw Roll Y Z X 0 180 0
World Model 자명 models/props_trainyard/bomb_cart.mdl
Disable Shadows 자명 Yes
Fade Scale 거리에 의한 강제적 사라짐 0
Note.png메모:Bomb_Train 블럭의 크기를 모델의 크기에 알맞게 조절하세요. 이것은 플레이어가 모델에 끼는것을 막아줍니다.

이제 우리는 Bomb_Train 에 수레의 모델을 부착해야합니다.

  • phys_constraint을 만들어 주시고 다음과 같은 요소를 따라주세요:
설정 이름
Name Bomb_Const
Entity 1 Bomb_Train
Entity 2 Bomb_Model

이제 우리는 수레를 빠지게할 어느 블럭을 만들어야 합니다.

  • 수레의 모델보다 조금 큰 블럭을 만들어주세요, 하지만 code>tools/tooltrigger 텍스쳐를 이용하고 이것을 trigger_hurt 으로 만들어주세요. 그리고 트리거가 다음의 설정을 따르게 해주세요:
설정 이름 설명
Parent 엔티티가 연결 될 다른 엔티 Bomb_Train
Filter Name 해당되는 필터 Filter_Players
Damage 자명 1000
flags 수정 : 체크 해제 = Clients, 체크 = Everything (not including physics debris)

이제 우리는 수레 주변에 수레를 밀거나 점령을 할수있는 공간을 만들겟습니다.

  • tools/toolstrigger 텍스쳐를 이용해 수레 주변에 점령 공간 박스를 만들어 주세요. 이것을 trigger_capture_area 로 만들어 주시고 다음 설정을 따라주세요:
설정 이름 설명
Name 엔티티의 이름 Bomb_CapArea
Parent 호환하는 엔티티 Bomb_Train
Note.png메모:이 블럭은 수레가 움직일때 플레이어들이 얼마나 멀리 있어도 움직일수 있는지 당신이 원하는 만큼 늘려주시기 바랍니다.

이제 수레 주변에 재보급 기능을 추가해봅시다.

  • tools/toolstrigger 텍스쳐로된 다른 블럭을 수레 주변에 만들어 주세요. 이 블럭은 Bomb_CapArea 만하게 만들어주세요. 이 새로운 트리거는 체력 회복과 탄약 보급을 담당합니다. 이것을 dispenser_touch_trigger 로 만들어 주시고 다음의 설정을 따라주세요.
설정 이름 설명
Name 엔티티의 이름 Bomb_Dispense
Parent 호환하는 엔티티 Bomb_Train

수레밀기 활성화 시키기

이 부분에 대해서는 우리가 설정해야할 값들은, 수레가 작동하기위해 설정해야하는 input 과 output들 입니다. 첫째로 우리는 Bomb_CapArea 에 대한 추가적인 설정들을 할것입니다, 다음 설정으로 맞춰져 있는지 확인해주세요:

설정 이름 설명
Name 엔티티의 이름 Bomb_CapArea
Start Disabled 자명 No
Parent 자명 Bomb_Train
Control Point 이 트리거에 할당될 지점 CP_A_1
Can RED cap? 자명 No
Can BLUE cap? 자명 Yes
Number of RED players to cap 자명 1
Number of BLUE players to cap 자명 1
RED spawn adjust H점령시 얼마나 스폰시간을 바꿀지 0
Blue spawn adjust 점령시 얼마나 스폰시간을 바꿀지 0
Time to cap 이곳에 서있는 것으로 점령하는것을 방지함 99999

다음으로, 우리는 Bomb_Train 을 작업할것입니다. 이 강의는 당신이 Goldrush 광산 카트의 소리를 원한다고 가정합니다. 당신의 이 변수들이 올바른지 확인하세요:

설정 이름 설명
Name 엔티티의 이름 Bomb_Train
First Stop Target 자명 Track_A_01
Max Speed 자명 90
Change Velocity 가속도에 대한 조절 Linear blend
Distance Between the Wheels 자명 20
Damage on Crush 자명 99999
Move Sound 자명 Cart.Roll
Start Sound 자명 Cart.RollStart
Stop Sound 자명 Cart.RollStop
Manual Train Speed 자명 On
Manual Accel Speed 자명 70
Manual Decel Speed 자명 150
  • 추가적으로, Flags 탭에 들어가 No User ControlIs unblockable by player 를 체크해주세요.
Note.png메모:당신은 또한 Height above track 설정을 당신이 당신의 수레가 땅에 멋지게 올려져있는 것을 보고싶다면 체크해도됩니다, 하지만 관전자 카메라는 그대로 작동합니다. 당신은 4개의 개체에 대해 조금의 값들을 수정할 필요가 있습니다, 그러므로 당신은 선로 프롭이나 수레의 바퀴 테를 컴파일 했을때 땅에 잘 맞게 보이도록 해야합니다.

선로 만들기

당신은 아마도 기차의 선로들을 만들고 싶어할것입니다.

기차의 선로.

당신은 이미 기차를 위해 작업을 하고 있지만, 먼저 기차가 지나다닐 길부터 만들어야 합니다.

  • path_track 엔티티를 만들어 주시고 선로의 시작 지점에 배치해주세요, 이름은 Track_A_01 로 설정해주세요.
  • 다른 path_track 을 만들어 주시고 다음으로 당신이 수레가 지나가길 원하는 길에 배치해주세요 이름은 Track_A_02 으로 설정해주세요.
  • 다시 Track_A_01 로 돌아가 Next Stop TargetTrack_A_02 로 지정해주세요.
  • 이젠 계속적으로 path_track 을 생성하고 이름을 짓고 그들을 연결하는 작업을 당신이 원하는 만큼 하시길 바랍니다.
Note.png메모:만약 당신이 path_track(en) 엔티티를 복제(쉬프트+드래그) 한다면, Hammer 는 자동으로 그들을 연결시켜줄것입니다.

TF2 에 보이는 선로 모델들을 흉내내 봅시다, 먼저 몇몇의prop_static 엔티티들을 적절한 선로 모델로 골라서 path_track 엔티티들 아래에 배치해줍니다.

  • 추천하는 선로의 모델은 props_mining/track*.mdl 입니다, 별표는 저런 타입의 모델의 모든 모델을 뜻합니다.
  • 점령 지점의 중앙 선로를 위한 모델은 prop_dynamic 엔티티를 소환해 world model 을 props_trainyard/track_midcap.mdl 으로 설정하시고 당신의 첫째 점령 지점 모델의 이름을 CP_A_1_Model 으로 설정해주세요.

점령 지점 추가

중앙 점령 지점.

기본적으로 라운드 마다 두 개의 점령 지점이 있습니다: 중앙 지점의 점령과 종착 지점의 점령으로 구성되 있습니다.

중앙 점령 지점

첫째로, 당신의 CP_A_1_Model 가 자리에 얌전히 있는지 확인해 주세요. 그 다음, 그 모델의 바로 위쪽에 있는 Path_Track 을 찾아주세요. 이 예제 에서는 Track_A_24 네요.

  • 중앙 path_track 를 선택하신뒤 아래의 output 탭으로 가셔서 똑같이 해주세요:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPass CP_A_1_Model Skin 1 0.00 Yes
Io11.png OnPass Bomb_CapArea CaptureCurrentCP 0.00 Yes
Io11.png OnPass Round_Timer AddTeamTime 3 240 0.00 Yes
Io11.png OnPass Track_A_23 DisablePath 0.00 Yes
Io11.png OnPass cap_sound PlaySound 0.00 Yes
Io11.png OnPass Bomb_Sparks StopSpark 0.00 Yes
Io11.png OnPass CP_A_1 SetOwner 3 0.10 Yes

이것은 수레가 이 지점에 닿았을때 발동하는 중요한 기능을 합니다. 이것은 점령 지점의 모델의 스킨도 바꾸고, 블루 팀에게 점령을 선사해주고, 뒤쪽으로 후진하는것도 사용가능하지 않게 하고, 소리를 재생하고 스파크 효과를 멈춥니다, 또한 Round_Timer를 통해 블루 팀의 공격 시간을 추가해줍니다.

이제 우리는 team_control_point 엔티티를 만들어 모델의 정 가운데에 새워놓아야 합니다.

  • 당신이 만든 team_control_point에다가 아래와 같은 설정을 적용해주세요:
설정 이름 설명
Name 엔티티의 이름 CP_A_1
Start Disabled 자명 No
Print Name HUD 에 출력될 이름 #Goldrush_cap_1_A
Group Index 해당없음 0
Default Owner Red
Index #ofCapPoint 가 0에서 시작합니다 0
Warning Type 아나운서 No Announcements
BLUE Previous Required Point 자명 CP_A_1
아래의 output 설정도 따라주세요:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapTeam2 Bomb_CapArea SetControlPoint CP_A_2 0.00 Yes

이것은 점령 지점을 효과적으로 만듭니다. 이것은 블루 팀이 점령 하기 전에 점령 지점에서 붉은 홀로그램이 나올것입니다, 따라서 블루팀이 점령하면 청색 홀로그램이 나옵니다. 추가적으로, output의 설정은 수레가 점령 할 다음 점령 지점을 설정합니다.

Note.png메모: 첫번째 점령 지점은 index의 값으로 0을 가지고 있어야 합니다, 점령 지점의 수가 증가할수록 +1 해주시면 됩니다.
Note.png메모: Warning Type 은 No Announcements 로 설정해두는게 좋습니다 왜냐하면 안내 메세지가 team_train_watcher에 의해서 조절되니까요.

좀착 점령 지점

이 지점의 team_control_point 엔티티를 만들고 CP_A_1 과 같이 설정해주세요, 하지만 아래 변화를 따라주세요:

설정 이름 설명
Name 엔티티의 이름 CP_A_2
Print Name HUD에 출력되는 이름 #Goldrush_cap_1_B
Index #ofCapPoint 가 0에서 시작합니다 1
BLUE Previous Required Point 자명 CP_A_1
잊지 마세요, 이 엔티티는 다음 output을 따라야합니다:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapTeam2 Bomb_CapArea SetControlPoint CP_B_1 0.00 No

이 설정들은 다음 라운드 점령 지점을 위한 것이었습니다.

  • 두번째 부터 마지막 까지의 path_track를 다음 output을 따라서 설정하세요. 이 맵에서는 Track_A_42 입니다.

Track_A_42 의 Output:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPass Bomb_CapArea CaptureCurrentCP 0.00 No
Io11.png OnPass Bomb_CapArea Disable 0.00 No
Io11.png OnPass Bomb_Light Stop 0.00 No
Io11.png OnPass Bomb_Train Stop 0.00 No
Io11.png OnPass cap_sound PlaySound 0.00 Yes
Io11.png OnPass CP_A_2 SetOwner 3 0.10 Yes
Io11.png OnPass Bomb_Train SetSpeedDirAccel 1 1.00 No

마지막 path_track 은 Goldrush 처럼 카트가 아래쪽으로 활강하는것을 만들기 위해 아래쪽에 있어야 합니다. 이 마지막 선로 지점은 Track_A_43 이네요, 이것은 다음 Output을 따라야합니다:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPass Bomb_Train TeleportToPathTrack Track_B_1 0.00 No
Io11.png OnPass Bomb_Train Stop Track_B_1 0.00 No
Io11.png OnPass Bomb_CapArea Enable 0.00 No

이것은 수레를 다음 라운드의 시작지점의 시작 선로로 순간이동 시킵니다, 그리고 이것의 미는것도 허용을 합니다.

Train Watcher

  • team_train_watcher를 만들고 이름은 Watcher_A로 설정해주세요. 만약 당신이 다수-라운드 맵을 만든다면, 라운드 마다 이것을 만들어 주세요. 첫번쨰 라운드의 team_train_watcher 설정을 다음과 같이 해주세요:
설정 이름 설명
Name 엔티티의 이름 Watcher_A
Start Disabled 자명 No
Train to watch 자명 Bomb_Train
Allow the train to recede 자명 Yes
Train recede time (in seconds) 자명 0
Handle Train Movement 자명 Yes
Default Speed Modifier 자명 1
Associated env_spark 자명 Bomb_Sparks
Node that the path starts at 자명 Track_A_01
Node that the path ends at 자명 Track_A_43
Linked PathTrack 1 자명 Track_A_24
Linked CP 1 자명 CP_A_1
Linked PathTrack 2 자명 Track_A_42
Linked CP 2 자명 CP_A_2
Linked PathTrack 3 자명
Linked CP 3 자명
Min Speed for Speed level 1 자명 1
Min Speed for Speed level 2 자명 60
Min Speed for Speed level 3 자명 80

차후 이것은 각 라운드에 맞게 변수들이 수정될수 있습니다, 이름이라던가, 연결된 점령 지점 그리고 연결된 선로 등. 변수들은 변하지 않고 있을수도 있습니다.

추가 효과들

Gold Rush 나 Badwater 같은 경우, 수레에 추가적으로 효과가 붙어 있습니다, 디스펜서 빔이라던지, 빛나는 불빛 그리고 수레의 바퀴에 스파크 등. 모두다 몇 가지 간단한 엔티티와 몇가지 조건으로 만들수 있습니다.

디스펜서 빔

우리는 지금 디스펜서 빔 효과를 수레에 달것입니다.

  • mapobj_cart_dispenser 를 만들어주시고 디스펜서 체력 회복 빔이 나오기를 원하는 지점에 배치해주세요. 그리고 다음의 설정들을 따라주세요:
설정 이름 설명
Name 엔티티의 이름 Bomb_DispenseBeam
Parent 따라갈 엔티티 Bomb_Train
Team 자명 Blue
Custom Touch Trigger 트리거 지점 Bomb_Dispense

반짝이는 빛

  • info_particle_system 을 만들어 주시고 이것은 당신의 수레의 불빛 부분에 놓아주세요 그리고 이름을 Bomb_Light로 해주세요.
설정 이름 설명
Name 엔티티의 이름 Bomb_Light
Parent 자명 Bomb_Train
Particle System Name 자명 cart_flashinglight
Start Active? 자명 No

스파크

  • env_spark 엔티티를 카트 아래의 바퀴 부분에 만들고 이름은 Bomb_Sparks 로 해주세요.
설정 이름 설명
Name 엔티티의 이름 Bomb_Sparks
Parent 자명 Bomb_Train
Spark Trail Length 자명 Medium

점령 종

Badwater 나 Gold Rush는, BLU 팀이 점령을 할때 "띵" 거리는 소리를 BLU 팀에게 들려줍니다. 이 소리들을 간단하게 만들어 보아요.

설정 이름 설명
Name 엔티티의 이름 cap_sound
Sound Name 자명 Hud.EndRoundScored

종점

Hammer 안에 폭발하는 장소를 배치.

이제 우리는 수레밀기의 하이라이트인 폭발하는 종점 지역을 만들어 보겟습니다. 뿌우우우우우우우우움!

마지막 점령 지점

  • 당신의 마지막 team_control_point 의 설정이 적절히 설정되었는지 확인하세요, 예를 들어 Index 의 값이 모든 점령 지점들 중제일 높은 값으로 설정되어 있는지 등.
  • 또한, print name은 정확한 순서대로 나옵니다.
  • 추가적으로, BLUE Previous Required Point 1 의 엔티티 이름 이전의 지점이여야 합니다.
  • 마지막으로, Flags 탭의 아래의 항목이 그대로 되어있는지 확인하여주세요:
Flag 이름 설명
Start with model hidden 자명 True
Disable Shadow 자명 True
Disable Sounds 자명 True

폭발 하는 구덩이

구덩이 모델

  • 먼저 당신은 마지막 폭발 장소에서 수레가 구덩이로 굴러 들어갈만한 알맞은 구덩이 모델을 만들어야 합니다. 당신이 화법을 완료했다면, 아래의 명시된 모델들로 구덩이들을 장식해주세요.
  • models/hybridphysx/badwater_destruction_before.mdl 이 World Model 값인 prop_static 을 만들어주세요.
  • 다른 하나는 World Model 이 models/props_farm/sewer_cap001a.mdl 인것으로 만들어주세요.

구덩이로 향하는 문

  • 두개의 func_door 블럭 엔티티를 만들어 주시고, 이것의 윗면은 glass/glasswindow002a 의 텍스쳐로 발라주세요.

두개의 func_door에 대한 한도:

설정 이름 설명
Name 자명 cap_door
Speed 자명 700
Move Direction (Pitch Yaw Roll) 자명 0 270 0
  • Flags 탭에서 Touch Opens 항목을 체크 해제 해주시고 Toggle체크 해주세요.
  • 두 개의 문들중 하나의 output:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnFullyOpen cap_door kill 0.00 No

문이 완전하게 열릴때, 이것이 파괴될것입니다.

  • 구덩이 안에 trigger_hurt 블럭 엔티티를 만들어 주시고 Damage 의 값을 1000으로 Damage Cap 의 값을 1000으로 설정해주세요.
  • func_nobuild 블럭 엔티티를 문의 상단 부분에 놓아주시고 팀 설정을 Any 로 설정해주세요.

구덩이 속 드럼통

  • models/props_badlands/barrel03.mdl 이 WorldModel 값인 prop_dynamic_override 를 10-15개 정도 만들어 주시고 이름은 - End_Barrels 으로 설정해주세요.

마지막 폭발

마지막 폭발 (인게임) (dpl_mine_b2)

첫번째의 한도:

설정 이름 설명
Name 자명 Cart_tip
SoundName 자명 Cart.Falling

두번째의 한도:

설정 이름 설명
Name 자명 pre_kaboom
SoundName 자명 Cart.Trigger

세번째의 한도:

설정 이름 설명
Name 자명 kaboom
SoundName 자명 Cart.Explode

추가적으로, env_shake 엔티티를 생성하여 다음 설정을 따라주세요:

설정 이름 설명
Name 자명 kaboom_shake
Amplitude 자명 16
Effect Radius 자명 500
Duration In 초 1
Frequency 자명 150
Flags 탭에서 다음 값들이 체크되있는 확인해주세요:
Flag 이름
Global Shake True
In Air True
설정 이름 설명
Name 자명 pit_effect
Particle System Name 자명 cinefx_goldrush
Pitch Yaw Roll (Y Z X) 자명 -90 0 0
설정 이름 설명
Name 자명 KaBoomZone
Start Disabled 자명 Yes
다음 output을 따라주세요:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch !activator SetHealth -1000 0.00 No

이제 우리는 마지막의 path_track 으로 output을 부를때가 왔습니다.

  • output을 다음과 같이 해주세요:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPass cap_door Open 0.00 No
Io11.png Cart_tip PlaySound 0.00 No
Io11.png Bomb_Light Stop 0.00 No
Io11.png CP_C_2 SetOwner 3 0.10 No
Io11.png OnPass Bomb_Train kill 0.00 No
Io11.png OnPass Bomb_Const Break 0.01 No
Io11.png OnPass pre_kaboom PlaySound 0.50 No
Io11.png OnPass Bomb_CapArea CaptureCurrentCP 2.00 No

마지막으로, trigger_once 블럭을 구덩이의 아래쪽에 당신이 폭발을 원하는 장소에 만들어주세요.

  • 다음 설정을 따라주세요:
설정 이름 설명
Name 자명 Final_Trigger
Start Disabled 자명 No
Filter Name 호황되는 필터 Filter_Cart
다음 output 들을 추가해주세요:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPass kaboom PlaySound 0.00 No
Io11.png OnPass kaboom_shake StartShake 0.00 No
Io11.png OnPass pit_effect Start 0.00 No
Io11.png OnPass end_barrels kill 0.00 No
Io11.png OnPass Bomb_CapArea kill 0.00 No
Io11.png OnPass Bomb_Model kill 0.00 No
Io11.png OnPass KaBoomZone Enable 0.00 No
Io11.png OnPass KaBoomZone Disable 0.10 No
Flags 탭에서 오로지 Physics debris 만 체크해주세요, 다른 나머지는 다 체크 해제 해주시면됩니다.

연대표

일어나는 일을 천천히 봅시다:

0.0:

  • 구덩이로 가는 문이 열립니다.
  • Bomb_Train이 제거됩니다.
  • 수레가 소리가 납니다.
  • 수레의 효과들이 사용불가능 해집니다.

0.01:

  • 수레의 모델이 떨어집니다.

0.5:

  • "삡" 소리가 납니다.

트리거에 닿았을때:

  • 폭발음 발생.
  • 폭발 효과.
  • 폭발로 인한 화면 흔들림.
  • 드럼통들 폭파.
  • 수레의 모델 삭제.
  • 마지막 점령지점을 점령.
  • 점령 지점 파괴.
  • 사살 지점 활성화

접촉후 (.1 초):

  • 사살 지점 비활성화

결론

당신은 이제 수레밀기의 모든 기능을 완전히 갖춘 하나의 라운드를 만든것입니다, 만약 당신이 이 강의를 다 듣고 라운드나 점령 지점의 수를 당신이 필요한 대로 바꿀수도 있습니다. 만약 당신이 질문이 있다면 질문(en)해주세요.

다른 볼것