Antlions: Random Spawn
Random Spawns
The great thing about theses antlions is that they are made to be used with other litle tools to make them spawn a little randomly when the hero walks on a specified material, can be sand or other!
So before all, make a map with sand and rocks which we will make here is that, if the player walks on the sand, antlions come out near the player and attack, so he is forced to walk on the rocks. Its fun to make, and fun to play!
You need :
And a lot of info_node_hint
How to make this up.
Configure the Antlion name it AntLion and Starts Burrowed on yes
Name the Following like this:
env_player_surface_trigger : Surface Trigger
ambient_generic : sound_antlion_spawn
env_shake : shake_antlion_spawn
npc_antlion_template_maker : antlion_expanse_spawner
logic_relay 1 : relay_expanse_spawn
logic_relay 2 : relay_expanse_disablespawn
Lets Start with the env_shake.
Name : shake_antlion_spawn
Amplitude : 2
Effect Radius : 500
Duration : 3
Frequency : 100
Thats it, the env_shake is just to make the effect better.
Lets continue with the ambient_generic.
Name : sound_antlion_spawn
SoundName : Streetwar.d3_c17_10b_rumble1
Volume : 8
Fade In Time : 1.5
Fade Out Time : 2
Pitch : 120
Start Pitch : 90
Max Audible Distance : 1250
Thats it too, the sound is to make a diging sound when the antlions are coming, it is nice and very stressing!
Lets continue with the env_player_surface_trigger, I call it a "material detector" , its to trigger inputs if the player is walking on the specified material, in GameMaterialToWatch, pick sand, then go in the out puts and put this :
My Output Target Entity Target Input
OnSurfaceChangedFromTarget relay_expanse_disablespawn Trigger
OnSurfaceChangedToTarget relay_expanse_spawn Trigger
What we just did here is that if the player starts walking on the surface we have chosen, it triggers the relay which enables the template_maker, and that if it stops walking on it, it trigger the relay which disables the spawning.
Lets continue with the npc_antlion_template_maker
In KeyValues :
StartDisabled : Yes, we do not want the template_maker to start spawning at the beginning of the map.
Num. of NPCs : Not Really Matter because we will check Infinit Children in flags.
Frequency : 0.35 is a good speed for this operation
Max Live NCPs : How Many Antlions can live in same time, I generally put 8
Name Of Template NPC : AntLion, the name of the npc_antlion used
Spawn On HintGroup : I will explain later, write antlion_expanse_spawn_nodes
Spawn Radius : 1000, read the help for more details
Spawn Target : The target that the Antlions will attack, in this case, !player DON'T FORGET THE ! Its not player, its !player
Ignore Bugbait : No
The rest of the keyvalues doesnt matter, now go in flags, the only flag that needs to be checked is Infinite Children.
Almost done, now go in outputs and write :
MyOutput Target Entity TargetInput Override Parameter Delay
OnAllSpawnedDead antlion_expanse_spawner SetMaxChildren 8 8.00
We just made that if all antlions are dead it resets the number to 8 to provide any problems.
Lets continue with the logic_relay 1 : relay_expanse_spawn
Go in the outputs and put this :
My Output Target Entity Target Input Delay
OnTrigger sound_antlion_spawn PlaySound 0
OnTrigger relay_expanse_disablespawn CancelPending 0
OnTrigger shake_antlion_spawn StartShake 0.10
OnTrigger antlion_expanse_spawner Enable 1
What we just did here, we made that if this relay is triggered it plays the sound, the ground shakes and the template_maker enables 1 second after we walked on the ground, which makes an effect like the antlions are coming up and its very nice :)
Lets continue with the logic_relay 2 : relay_expanse_disablespawn
Go in the outputs and put this :
My Output Target Entity Target Input Delay
OnTrigger sound_antlion_spawn StopSound 0
OnTrigger shake_antlion_spawn StopShake 0
OnTrigger antlion_expanse_spawner Disable 0.50
OnTrigger relay_expanse_spawn CancelPending 0.50
Here we made that if this relay is triggered, the sound stops, the shake stops and the template_maker disables.
And now, lets Finish with the info_node_hint
Theses are to set where the antlions can spawn, you must put one everywere that the antlion can possibly spawn, and the npc_antlion_template_maker will pick the one nearest the player.
All you got to configure are this :
Hint : AntLion : Burrow Point
Hint Group : antlion_expanse_spawn_nodes
Precise Ways
The antlions use info_node to navigate on the ground, and info_node_air to navigate while flying.
To make them follow a precise way, make manually a way with PathCorners and set it to the antlion's path corner, and place info_node around the way so the antlions can navigate trough them.
If there is a wall on their way, put some info_node_air up the wall about 10 units above it, the antlions will use it to fly above the wall.
If you want the antlions to run to a precise target, use aiscripted_schedule, name it, then :
Target Npc : Antlion
Search Radius : If there are more than one target, put 0.
All In Radius : If there are more than one target, put yes.
Ai State To Set : Put whatever you want.
Schedule to run : Pick one :)
Interruptability : You choose
Goal Entity : Is the target, it can be one precise or a classname, like npc_citizen...
Then at the npc_template_maker of the Antlion, go in output and put
OnSpawnNpc AiSchedule StartSchedule
And its good to go.
Example Map
I made a quick example map of this tutorial, if you are too tired to read all of it, just download the .vmf, copy and past the things I did.