User talk:Srs bsnss: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 12: Line 12:
3) Path_tracks and tracktrains. This is how I do tube cubes and have generally found it to be the easiest and best way. To do:
3) Path_tracks and tracktrains. This is how I do tube cubes and have generally found it to be the easiest and best way. To do:


- Create a path_track entity. Give it a name like vac_path1. Set the 'Next Stop' to vac_path2. Duplicate it (hold shift + drag), and it should automatically re-name it and connect it to the first one. Continue this process of duplicating the one before until you have enough to satisfy your pipes (pro tip: more path_tracks in bends will make it smoother). One the last one, give it the output:
*Create a path_track entity. Give it a name like vac_path1. Set the 'Next Stop' to vac_path2. Duplicate it (hold shift + drag), and it should automatically re-name it and connect it to the first one. Continue this process of duplicating the one before until you have enough to satisfy your pipes (pro tip: more path_tracks in bends will make it smoother). One the last one, give it the output:
OnPass > !activator > Kill
OnPass > !activator > Kill


- Create a prop_dynamic_override. Set it's model to metal_box.mdl. Name it whatever you want (e.g. vac_box)
*Create a prop_dynamic_override. Set it's model to metal_box.mdl. Name it whatever you want (e.g. vac_box)


-Create a func_tracktrain (a brush entity). Give it the following settings:
*Create a func_tracktrain (a brush entity). Give it the following settings:
Name = vac_tracktrain
Name = vac_tracktrain
First Stop = vac_path1
First Stop = vac_path1
Max/Initial Speed = 800 is good, but whatever you like
Max/Initial Speed = 800 is good, but whatever you like
*Go back to the prop_dynamic_override's settings, set 'Parent' to vac_tracktrain.


-Go back to the prop_dynamic_override's settings, set 'Parent' to vac_tracktrain.
*Create a point_template entity. Name it vac_temp. Give it the following settings:
 
- Create a point_template entity. Name it vac_temp. Give it the following settings:
Temp 1 = vac_tracktrain
 
Temp 2 = vac_box
Temp 1 = vac_tracktrain
Temp 2 = vac_box
* '''''MAKE SURE THE FLAG "PRESERVE ENTITY NAMES" IS NOT TICKED.'''''
 
MAKE SURE THE FLAG "PRESERVE ENTITY NAMES" IS NOT TICKED.
*Create a logic_timer. Give it the following settings:
 
Name = vac_timer
- Create a logic_timer. Give it the following settings:
Random Time = Yes
Name = vac_timer
Min. Interval = 0.3 is good but whatever you want
Random Time = Yes
Max. Interval = 1.3 is good but whatever you want.
Min. Interval = 0.3 is good but whatever you want
Max. Interval = 1.3 is good but whatever you want.


Smaller gap will mean a greater frequency of cubes.
Smaller gap will mean a greater frequency of cubes.
 
Give it the following output:
* Give it the following output:


OnTimer > vac_temp > ForceSpawn.
OnTimer > vac_temp > ForceSpawn.
* Simply trigger the logic_timer, and you're done! Cubes!


Simply trigger the logic_timer, and you're done! Cubes!
=But what if you want different objects? This only produces one type of cube!=
 
But what if you want different objects? This only produces one type of cube! Well:
* Repeat the middle steps, I.E., create a new prop_dynamic_override, a new func_tracktrain, and a new point_template for your other object.


- Repeat the middle steps, I.E., create a new prop_dynamic_override, a new func_tracktrain, and a new point_template for your other object.
* Create a logic_case. Give it a name like vac_spawner and give it the following outputs:
 
- Create a logic_case. Give it a name like vac_spawner and give it the following outputs:
OnCase01 > vac_temp > ForceSpawn
 
OnCase02 > vac_temp2 > ForceSpawn
OnCase01 > vac_temp > ForceSpawn
OnCase03 > vac_temp3 > ForceSpawn
OnCase02 > vac_temp2 > ForceSpawn
OnCase03 > vac_temp3 > ForceSpawn
etc. etc.
etc. etc.
*Go into the settings of the logic_timer. Remove the original output and give it this one:
OnTimer > vac_spawner > PickRandom.


- Go into the settings of the logic_timer. Remove the original output and give it this one:
* Ta-da! Random objects through your tubes! Make sure you give them separate names, of course, as well as re-parenting and so on.
 
OnTimer > vac_spawner > PickRandom.
 
Ta-da! Random objects through your tubes! Make sure you give them separate names, of course, as well as re-parenting and so on.


Hopefully this helps.
Hopefully this helps.

Revision as of 05:01, 15 March 2016

I'm sick of seeing the red text at the top of my screen, so here I am, making this page exist. Srs bsnss 01:33, 4 July 2013 (PDT)

Vactubes

This is kinda tricky. There are three ways that it can be done.

1) Animations - this is what Valve uses. There's a cube model, I forget it's name, which has animations that are designed for specific sets of pipes and so I wouldn't recommend it, unless you copy-paste some tubes from Valve maps.

2) A system of trigger_push entities. This is the dodgiest method, and is used only once or twice in the official game. It involves trigger_pushes pushing the cube through the pipes. It would not recommend it.

3) Path_tracks and tracktrains. This is how I do tube cubes and have generally found it to be the easiest and best way. To do:

  • Create a path_track entity. Give it a name like vac_path1. Set the 'Next Stop' to vac_path2. Duplicate it (hold shift + drag), and it should automatically re-name it and connect it to the first one. Continue this process of duplicating the one before until you have enough to satisfy your pipes (pro tip: more path_tracks in bends will make it smoother). One the last one, give it the output:

OnPass > !activator > Kill

  • Create a prop_dynamic_override. Set it's model to metal_box.mdl. Name it whatever you want (e.g. vac_box)
  • Create a func_tracktrain (a brush entity). Give it the following settings:
Name = vac_tracktrain
First Stop = vac_path1
Max/Initial Speed = 800 is good, but whatever you like

  • Go back to the prop_dynamic_override's settings, set 'Parent' to vac_tracktrain.
  • Create a point_template entity. Name it vac_temp. Give it the following settings:
Temp 1 = vac_tracktrain
Temp 2 = vac_box

  • MAKE SURE THE FLAG "PRESERVE ENTITY NAMES" IS NOT TICKED.
  • Create a logic_timer. Give it the following settings:
Name = vac_timer
Random Time = Yes
Min. Interval = 0.3 is good but whatever you want
Max. Interval = 1.3 is good but whatever you want.

Smaller gap will mean a greater frequency of cubes.

  • Give it the following output:

OnTimer > vac_temp > ForceSpawn.

  • Simply trigger the logic_timer, and you're done! Cubes!

But what if you want different objects? This only produces one type of cube!

  • Repeat the middle steps, I.E., create a new prop_dynamic_override, a new func_tracktrain, and a new point_template for your other object.
  • Create a logic_case. Give it a name like vac_spawner and give it the following outputs:
OnCase01 > vac_temp > ForceSpawn
OnCase02 > vac_temp2 > ForceSpawn
OnCase03 > vac_temp3 > ForceSpawn

etc. etc.

  • Go into the settings of the logic_timer. Remove the original output and give it this one:
OnTimer > vac_spawner > PickRandom.
  • Ta-da! Random objects through your tubes! Make sure you give them separate names, of course, as well as re-parenting and so on.

Hopefully this helps.