Confiscation Field: Difference between revisions
(Created page with "This tutorial will show how to create a fully functional confiscation field. A field that will supercharge the Gravity Gun into a much more powerful vers...") |
Thunder4ik (talk | contribs) m (Unicodifying, replaced: [[Image: → [[File: (32), See Also → See also) |
||
(5 intermediate revisions by 5 users not shown) | |||
Line 5: | Line 5: | ||
=== Step 1 === | === Step 1 === | ||
[[File:confiscationstep1. | [[File:confiscationstep1.PNG|thumb|Step 1]] | ||
Start off by creating a <code>512x256x256</code> room. Keep in mind however, that the room does not have to be this exact size, but the confiscation fields seen in Valve's maps are a similar size to the size of the room that will be created in this tutorial. | Start off by creating a <code>512x256x256</code> room. Keep in mind however, that the room does not have to be this exact size, but the confiscation fields seen in Valve's maps are a similar size to the size of the room that will be created in this tutorial. | ||
=== Step 2 === | === Step 2 === | ||
[[File:confiscationstep2. | [[File:confiscationstep2.PNG|thumb|Step 2]] | ||
Create four <code>128x128</code> walls on opposite ends of the room. It is recommended that you have them at least 16 units off the ground. Create 4 [[prop static|prop_static]] entities, and set their ''World Model'' to <code>models/props_combine/weaponstripper.mdl</code>. Place them so that each hole has one of these prop_static's flush inside them. Make sure that the | Create four <code>128x128</code> walls on opposite ends of the room. It is recommended that you have them at least 16 units off the ground. Create 4 [[prop static|prop_static]] entities, and set their ''World Model'' to <code>models/props_combine/weaponstripper.mdl</code>. Place them so that each hole has one of these prop_static's flush inside them. Make sure that the holes are sealed in the back as to prevent leaks. | ||
=== Step 3 === | === Step 3 === | ||
[[File:confiscationstep3. | [[File:confiscationstep3.PNG|thumb|Step 3]] | ||
Create 4 [[env citadel energy core|env_citadel_energy_core]] entities and place them at the base of each confiscation field emitter. Give them the following keyvalues. | Create 4 [[env citadel energy core|env_citadel_energy_core]] entities and place them at the base of each confiscation field emitter. Give them the following keyvalues. | ||
{| class="standard-table sortable" | {| class="standard-table sortable" | ||
Line 24: | Line 24: | ||
=== Step 4 === | === Step 4 === | ||
[[File:confiscationstep4. | [[File:confiscationstep4.PNG|thumb|Step 4]] | ||
Create 4 [[info target|info_target]] entities and place them in the same place you placed the 4 env_citadel_energy_core's, at the base of each emitter. Give them the following keyvalues. | Create 4 [[info target|info_target]] entities and place them in the same place you placed the 4 env_citadel_energy_core's, at the base of each emitter. Give them the following keyvalues. | ||
{| class="standard-table sortable" | {| class="standard-table sortable" | ||
Line 34: | Line 34: | ||
=== Step 5 === | === Step 5 === | ||
[[File:confiscationstep5. | [[File:confiscationstep5.PNG|thumb|Step 5]] | ||
Create 4 [[env spark|env_spark]] entities in exactly the same place as the last two steps. Give them the following keyvalues. | Create 4 [[env spark|env_spark]] entities in exactly the same place as the last two steps. Give them the following keyvalues. | ||
{| class="standard-table sortable" | {| class="standard-table sortable" | ||
Line 49: | Line 49: | ||
=== Step 6 === | === Step 6 === | ||
[[File:confiscationstep6. | [[File:confiscationstep6.PNG|thumb|Step 6]] | ||
Create 7 [[ambient generic|ambient_generic]] entities. | Create 7 [[ambient generic|ambient_generic]] entities. | ||
Line 153: | Line 153: | ||
=== Step 8 === | === Step 8 === | ||
[[File:confiscationstep8. | [[File:confiscationstep8.PNG|thumb|Step 8]] | ||
Create 4 [[light|light]] entities. Place them at the emitters 8 units away from the info_target entities. Give them the following key values. | Create 4 [[light|light]] entities. Place them at the emitters 8 units away from the info_target entities. Give them the following key values. | ||
{| class="standard-table sortable" | {| class="standard-table sortable" | ||
Line 170: | Line 170: | ||
=== Step 9 === | === Step 9 === | ||
[[File:confiscationstep9. | [[File:confiscationstep9.PNG|thumb|Step 9]] | ||
Create 4 trigger brush entities. Make them the size of the room. Make the first 2 brush entities a [[trigger vphysics motion|trigger_vphysics_motion]], make the third one a [[trigger weapon dissolve|trigger_weapon_dissolve]] and make the fourth one a [[trigger weapon strip|trigger_weapon_strip]]. | Create 4 trigger brush entities. Make them the size of the room. Make the first 2 brush entities a [[trigger vphysics motion|trigger_vphysics_motion]], make the third one a [[trigger weapon dissolve|trigger_weapon_dissolve]] and make the fourth one a [[trigger weapon strip|trigger_weapon_strip]]. | ||
Line 219: | Line 219: | ||
|- | |- | ||
| Max amount to reduce velocity || 32 | | Max amount to reduce velocity || 32 | ||
|} | |||
On flags, make sure only <code>Physics Objects</code> and <code>Everything</code> is ticked. | |||
==== trigger_weapon_dissolve ==== | |||
{| class="standard-table sortable" | |||
|- | |||
! Property Name !! Value | |||
|- | |||
| Name || weapon_dissolve | |||
|- | |||
| Start Disabled || Yes | |||
|- | |||
| Filter Name || filter_weapon_strip_weapons | |||
|- | |||
| Emitter Name || weaponstrip_emitter | |||
|} | |} | ||
On flags, make sure only <code>Physics Objects</code> and <code>Everything</code> is ticked. | On flags, make sure only <code>Physics Objects</code> and <code>Everything</code> is ticked. | ||
Line 234: | Line 249: | ||
=== Step 10 === | === Step 10 === | ||
[[File:confiscationstep10. | [[File:confiscationstep10.PNG|thumb|Step 10]] | ||
Create a [[game ragdoll manager|game_ragdoll_manager]] and a [[game weapon manager|game_weapon_manager]]. Give them these keyvalues. | Create a [[game ragdoll manager|game_ragdoll_manager]] and a [[game weapon manager|game_weapon_manager]]. Give them these keyvalues. | ||
Line 256: | Line 271: | ||
=== Step 11 === | === Step 11 === | ||
[[File:confiscationstep11. | [[File:confiscationstep11.PNG|thumb|Step 11]] | ||
Create a [[filter activator name|filter_activator_name]] and a [[filter activator class|filter_activator_class]]. Give them these keyvalues. | Create a [[filter activator name|filter_activator_name]] and a [[filter activator class|filter_activator_class]]. Give them these keyvalues. | ||
Line 280: | Line 295: | ||
=== Step 12 === | === Step 12 === | ||
[[File:confiscationstep12. | [[File:confiscationstep12.PNG|thumb|Step 12]] | ||
Create 8 [[logic relay|logic_relay]] entities. Give them the following keyvalues. | Create 8 [[logic relay|logic_relay]] entities. Give them the following keyvalues. | ||
Line 363: | Line 378: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnChargingPhyscannon || logic_weapon_strip_physcannon_start || Trigger || <none> || 0.00 || No | ||
|} | |} | ||
Line 371: | Line 386: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_motion_disable_player || Enable || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || logic_weapon_strip_announce || Trigger || <none> || 2.00 || No | ||
|} | |} | ||
Line 381: | Line 396: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_emitterfx || Stop || 4 || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_emitterlight || TurnOff || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weapon_strip || Disable || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || strip_stop || Trigger || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_emitterspark || StartSpark || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || ambient_weaponstrip_loop || StopSound || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || logic_room0_end_scan || Trigger || <none> || 2.00 || No | ||
|} | |} | ||
Line 401: | Line 416: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_sound_announce || PlaySound || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || logic_weapon_strip_strip || Trigger || <none> || 5.00 || No | ||
|} | |} | ||
Line 411: | Line 426: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_emitterfx || StartCharge || 4.0 || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_motion_disable || Enable || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_sound_charge_start || PlaySound || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_sound_charge_loop || PlaySound || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weapon_strip || Enable || <none> || 4.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || logic_weapon_strip_dissolve || Trigger || <none> || 6.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_emitterlight || TurnOn || <none> || 6.00 || No | ||
|} | |} | ||
Line 431: | Line 446: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weapon_dissolve || Enable || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_sound_dissolve_start || PlaySound || <none> || 0.00 || No | ||
|} | |} | ||
Line 441: | Line 456: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_emitterspark || StartSpark || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_sound_error || PlaySound || <none> || 1.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || logic_weapon_strip_physcannon_end || Trigger || <none> || 4.00 || No | ||
|} | |} | ||
Line 453: | Line 468: | ||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weapon_dissolve || Disable || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weapon_strip || Disable || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_motion_disable || Disable || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_sound_charge_loop || StopSound || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weapon_dissolve || StopSound || <none> || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || strip_stop || Trigger || <none> || 1.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_motion_disable_player || Disable || <none> || 1.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || weaponstrip_sound_security || PlaySound || <none> || 4.00 || No | ||
|} | |} | ||
Line 473: | Line 488: | ||
Once that is set up, to simply start the confiscation field, set up a [[trigger once|trigger_once]] to trigger the <code>logic_room0_start_scan</code> relay. As a bonus, you can also add Outputs to <code>logic_room0_start_scan</code> and <code>logic_room0_end_scan</code> to enable and disable Combine Shield Walls respectively. | Once that is set up, to simply start the confiscation field, set up a [[trigger once|trigger_once]] to trigger the <code>logic_room0_start_scan</code> relay. As a bonus, you can also add Outputs to <code>logic_room0_start_scan</code> and <code>logic_room0_end_scan</code> to enable and disable Combine Shield Walls respectively. | ||
== See | == See also == | ||
* [[Half-Life 2 Level Creation|Half-Life 2 Level Creation]] | * [[Half-Life 2 Level Creation|Half-Life 2 Level Creation]] | ||
Line 480: | Line 495: | ||
* [https://www.dropbox.com/s/xwd2nmx34aqqzfc/sdk_confiscationfield_scratch.vmf?dl=0] Example VMF that was made in this tutorial. | * [https://www.dropbox.com/s/xwd2nmx34aqqzfc/sdk_confiscationfield_scratch.vmf?dl=0] Example VMF that was made in this tutorial. | ||
[[Category: Level Design]] |
Latest revision as of 08:33, 8 January 2024
This tutorial will show how to create a fully functional confiscation field. A field that will supercharge the Gravity Gun into a much more powerful version of it. If the player also happens to be carrying any other weapons, the field will fizzle them before supercharging the Gravity Gun.
Entity Creation
Step 1
Start off by creating a 512x256x256
room. Keep in mind however, that the room does not have to be this exact size, but the confiscation fields seen in Valve's maps are a similar size to the size of the room that will be created in this tutorial.
Step 2
Create four 128x128
walls on opposite ends of the room. It is recommended that you have them at least 16 units off the ground. Create 4 prop_static entities, and set their World Model to models/props_combine/weaponstripper.mdl
. Place them so that each hole has one of these prop_static's flush inside them. Make sure that the holes are sealed in the back as to prevent leaks.
Step 3
Create 4 env_citadel_energy_core entities and place them at the base of each confiscation field emitter. Give them the following keyvalues.
Property Name | Value |
---|---|
Name | weaponstrip_emitterfx |
Then go to the flag's tab and make sure the Start on
flag is off and the No small particles
flag is on.
Step 4
Create 4 info_target entities and place them in the same place you placed the 4 env_citadel_energy_core's, at the base of each emitter. Give them the following keyvalues.
Property Name | Value |
---|---|
Name | weaponstrip_emitter |
Step 5
Create 4 env_spark entities in exactly the same place as the last two steps. Give them the following keyvalues.
Property Name | Value |
---|---|
Name | weaponstrip_emitterspark |
Max Delay | 2 |
Magnitude | Medium |
Make sure all flags are unticked.
Step 6
Create 7 ambient_generic entities.
Name them as follows.
ambient_weaponstrip_loop
weaponstrip_sound_announce
weaponstrip_sound_charge_start
weaponstrip_sound_dissolve_start
weaponstrip_sound_error
weaponstrip_sound_security
weaponstrip_sound_charge_loop
Step 7
Add the following key values.
ambient_weaponstrip_loop
Property Name | Value |
---|---|
Name | ambient_weaponstrip_loop |
Sound Name | d3_citadel.zapper |
Start Volume | 10 |
Start Pitch | 50 |
On flags, tick Play Everywhere
and Start Silent
and untick Is NOT Looped
.
weaponstrip_sound_announce
Property Name | Value |
---|---|
Name | weaponstrip_sound_announce |
Sound Name | citadel.overwatch_weaponstrip |
On flags, tick all.
weaponstrip_sound_charge_start
Property Name | Value |
---|---|
Name | weaponstrip_sound_charge_start |
Sound Name | d3_citadel.weapon_zapper_start |
On flags, tick Play Everywhere
and Start Silent
and untick Is NOT Looped
.
weaponstrip_sound_dissolve_start
Property Name | Value |
---|---|
Name | weaponstrip_sound_dissolve_start |
Sound Name | d3_citadel.weapon_zapper_charge_node |
On flags, tick Play Everywhere
and Start Silent
and untick Is NOT Looped
.
weaponstrip_sound_error
Property Name | Value |
---|---|
Name | weaponstrip_sound_error |
Sound Name | citadel.overwatch_weaponstrip_fail |
On flags, tick all.
weaponstrip_sound_security
Property Name | Value |
---|---|
Name | weaponstrip_sound_security |
Sound Name | citadel.overwatch_weaponstrip_fail_security |
On flags, tick all.
weaponstrip_sound_charge_loop
Property Name | Value |
---|---|
Name | weaponstrip_sound_charge_loop |
Sound Name | d3_citadel.weapon_zapper_ambient_loop |
On flags, tick Play Everywhere
and Start Silent
and untick Is NOT Looped
.
Step 8
Create 4 light entities. Place them at the emitters 8 units away from the info_target entities. Give them the following key values.
Property Name | Value |
---|---|
Name | weaponstrip_emitterlight |
Brightness | 225 241 255 250 |
Appearance | 33 |
Custom Appearance | mmnmmommommnonmmonqnmmo |
Make sure the flag Initially Dark
is ticked.
Step 9
Create 4 trigger brush entities. Make them the size of the room. Make the first 2 brush entities a trigger_vphysics_motion, make the third one a trigger_weapon_dissolve and make the fourth one a trigger_weapon_strip.
Give them the following keyvalues
trigger_vphysics_motion 1
Property Name | Value |
---|---|
Name | weaponstrip_motion_disable_player |
Start Disabled | Yes |
Filter Name | filter_weapon_strip_player |
Scale gravity of objects in the field. | 2 |
Max velocity in field | 8 |
Max amount to reduce velocity | 0 |
Velocity scale/drag | 0 |
Angular Velocity scale/drag | 0 |
Linear force | 0 |
On flags, make sure only Clients
is ticked.
trigger_vphysics_motion 2
Property Name | Value |
---|---|
Name | weaponstrip_motion_disable |
Start Disabled | Yes |
Filter Name | filter_weapon_strip_weapons |
Scale gravity of objects in the field. | 0.0 |
Additional air density for drag | 0.5 |
Max velocity in field | 2 |
Max amount to reduce velocity | 32 |
On flags, make sure only Physics Objects
and Everything
is ticked.
trigger_weapon_dissolve
Property Name | Value |
---|---|
Name | weapon_dissolve |
Start Disabled | Yes |
Filter Name | filter_weapon_strip_weapons |
Emitter Name | weaponstrip_emitter |
On flags, make sure only Physics Objects
and Everything
is ticked.
trigger_weapon_strip
Property Name | Value |
---|---|
Name | weapon_strip |
Start Disabled | Yes |
On flags, make sure only Clients
is ticked.
Step 10
Create a game_ragdoll_manager and a game_weapon_manager. Give them these keyvalues.
game_ragdoll_manager
Property Name | Value |
---|---|
Max Ragdoll Count | 5 |
game_weapon_manager
Property Name | Value |
---|---|
Weapon Classname | weapon* |
Max Allowed in Level | 4 |
Step 11
Create a filter_activator_name and a filter_activator_class. Give them these keyvalues.
filter_activator_name
Property Name | Value |
---|---|
Name | filter_weapon_strip_player |
Filter Name | !player |
filter_activator_class
Property Name | Value |
---|---|
Name | filter_weapon_strip_weapons |
Filter Classname | weapon_* |
Step 12
Create 8 logic_relay entities. Give them the following keyvalues.
logic_relay 1
Property Name | Value |
---|---|
Name | logic_room0_start_scan |
logic_relay 2
Property Name | Value |
---|---|
Name | logic_room0_end_scan |
logic_relay 3
Property Name | Value |
---|---|
Name | strip_stop |
logic_relay 4
Property Name | Value |
---|---|
Name | logic_weapon_strip_announce |
logic_relay 5
Property Name | Value |
---|---|
Name | logic_weapon_strip_strip |
logic_relay 6
Property Name | Value |
---|---|
Name | logic_weapon_strip_dissolve |
logic_relay 7
Property Name | Value |
---|---|
Name | logic_weapon_strip_physcannon_start |
logic_relay 8
Property Name | Value |
---|---|
Name | logic_weapon_strip_physcannon_end |
I/O Creation
Add the following outputs to the following entities.
weapon_dissolve
logic_room0_start_scan
strip_stop
logic_weapon_strip_announce
logic_weapon_strip_strip
logic_weapon_strip_dissolve
logic_weapon_strip_physcannon_start
logic_weapon_strip_physcannon_end
Once that is set up, to simply start the confiscation field, set up a trigger_once to trigger the logic_room0_start_scan
relay. As a bonus, you can also add Outputs to logic_room0_start_scan
and logic_room0_end_scan
to enable and disable Combine Shield Walls respectively.
See also
External Links
- [1] Example VMF that was made in this tutorial.