Antlions: Random Spawn: Difference between revisions
No edit summary |
(cleanup, please check whether {{cleanup}} can be removed) |
||
Line 1: | Line 1: | ||
{{tutorial cleanup}} | {{tutorial cleanup}} | ||
The great thing about | The great thing about these antlions is that they are made to be used with other litle tools to make them spawn randomly when the player walks on a specified material, be it sand or any other material. | ||
This tutorial will walk you through the making of a simple example of randomly unburrowing antlions. | |||
==Getting started== | |||
First, make a map with sand and rocks. The situation we are attempting to create is that if the player walks on the sand, antlions come out near the player and attack, and the player is forced to walk on the rocks. | |||
These are the entities we are going to need: | |||
[[ambient_generic]] | * [[npc_antlion]] | ||
* [[env_shake]] | |||
* [[ambient_generic]] | |||
* [[npc_antlion_template_maker]] | |||
* [[logic_relay]] | |||
* [[env_player_surface_trigger]] | |||
* [[info_node_hint]] | |||
==Configuring the entities== | |||
''Cursive text'' is a flag. | |||
===npc_antlion=== | |||
:Name: AntLion | |||
:''Starts Burrowed'': yes | |||
===env_player_surface_trigger=== | |||
:Name: SurfaceTrigger | |||
:GameMaterialToWatch: sand | |||
This entity triggers inputs if the player is walking on the specified material. | |||
Create the following outputs: | |||
OnSurfaceChangedFromTarget, relay_expanse_disablespawn, Trigger | |||
OnSurfaceChangedToTarget, relay_expanse_spawn, Trigger | |||
Those mean that if the player starts walking on the surface we have chosen, it triggers the relay OnSurfaceChangedToTarget which enables the npc_antlion_template_maker, and after that that when (or if) the player steps off it, it triggers the relay OnSurfaceChangedFromTarget which stops the spawning. | |||
===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 | |||
This entity creates the noise when the antlions are emerging. | |||
===env_shake=== | |||
Name : shake_antlion_spawn | :Name: shake_antlion_spawn | ||
:Amplitude: 2 | |||
:Effect Radius: 500 | |||
:Duration: 3 | |||
:Frequency: 100 | |||
This entity creates the quake when the antlions are emerging. | |||
===npc_antlion_template_maker=== | |||
:Name: antlion_expanse_spawner | |||
:StartDisabled: Yes (we do not want the template_maker to start spawning at the beginning of the map.) | |||
:Num. of NPCs: Leave empty because we will check ''Infinite Children'' in flags. | |||
:Frequency: 0.35 | |||
:Max Live NCPs: how many antlions can live at same time, 8 for example | |||
:Name Of Template NPC: AntLion | |||
:Spawn On HintGroup: antlion_expanse_spawn_nodes | |||
:Spawn Radius: 1000 | |||
:Spawn Target: !player (the target that the antlions will attack) | |||
:Ignore Bugbait: No | |||
Now, remember to check ''Infinite Children''. | |||
Then, add the following output: | |||
OnAllSpawnedDead, antlion_expanse_spawner, SetMaxChildren, 8, 8.00 | |||
That means if all antlions are dead it resets the max number to 8 to prevent any problems. | |||
===logic_relay=== | |||
Name : | :Name: relay_expanse_spawn | ||
Add the following outputs, the numbers this time meaning Delay: | |||
OnTrigger, sound_antlion_spawn, PlaySound | |||
OnTrigger, relay_expanse_disablespawn, CancelPending | |||
OnTrigger, shake_antlion_spawn, StartShake, 0.10 | |||
OnTrigger, antlion_expanse_spawner, Enable, 1.00 | |||
This means if this relay is triggered it plays the sound, the ground shakes and the npc_antlion_template_maker enables 1 second after we walked on the ground, which makes an effect like the antlions are coming up. | |||
===Another logic_relay=== | |||
:Name: relay_expanse_disablespawn | |||
Add the following outputs, the numbers meaning Delay again: | |||
OnTrigger, sound_antlion_spawn, StopSound | |||
OnTrigger, shake_antlion_spawn, StopShake | |||
OnTrigger, antlion_expanse_spawner, Disable, 0.50 | |||
OnTrigger, relay_expanse_spawn, CancelPending, 0.50 | |||
This means if this relay is triggered, the sound stops, the shake stops and the template_maker disables. | |||
===info_node_hint=== | |||
These 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. | |||
:Hint: AntLion Burrow Point | |||
:Hint Group: antlion_expanse_spawn_nodes | |||
== Notes == | |||
== | |||
The antlions use [[info_node]] to navigate on the ground, and [[info_node_air]] to navigate while flying. | The antlions use [[info_node]] to navigate on the ground, and [[info_node_air]] to navigate while flying. | ||
To make them follow a precise | To make them follow a precise path, use [[path_corner]]s and set it to the antlion's path corner, and place [[info_node]]s around the way so the antlions can navigate through them. | ||
If there is a wall in their way, put some [[info_node_air]]s about 10 units above it, the antlions will use it to fly above the wall. | |||
===Quick tutorial to making antlions follow a path=== | |||
If you want the antlions to run to a precise target, use [[aiscripted_schedule]], name it and configure: | |||
Goal Entity : Is the target, it can be one precise or a classname, like npc_citizen | :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: Choose one | |||
:Schedule to run: Choose one | |||
:Interruptability: Choose one | |||
:Goal Entity: Is the target, it can be one precise or a classname, like [[npc_citizen]]. | |||
Then at the [[npc_antlion_template_maker]], add the following output: | |||
OnSpawnNpc, AiSchedule, StartSchedule | |||
== Example Map == | == Example Map == | ||
[http://www.pcgamemods.com/mod/15620.html Example map] | |||
[[Category:Level Design Tutorials]] | [[Category:Level Design Tutorials]] | ||
[[Category:Tutorials]] | |||
[[Category:Abstract Mapping]] |
Revision as of 08:50, 6 March 2006
The great thing about these antlions is that they are made to be used with other litle tools to make them spawn randomly when the player walks on a specified material, be it sand or any other material.
This tutorial will walk you through the making of a simple example of randomly unburrowing antlions.
Getting started
First, make a map with sand and rocks. The situation we are attempting to create is that if the player walks on the sand, antlions come out near the player and attack, and the player is forced to walk on the rocks.
These are the entities we are going to need:
- npc_antlion
- env_shake
- ambient_generic
- npc_antlion_template_maker
- logic_relay
- env_player_surface_trigger
- info_node_hint
Configuring the entities
Cursive text is a flag.
npc_antlion
- Name: AntLion
- Starts Burrowed: yes
env_player_surface_trigger
- Name: SurfaceTrigger
- GameMaterialToWatch: sand
This entity triggers inputs if the player is walking on the specified material.
Create the following outputs:
OnSurfaceChangedFromTarget, relay_expanse_disablespawn, Trigger OnSurfaceChangedToTarget, relay_expanse_spawn, Trigger
Those mean that if the player starts walking on the surface we have chosen, it triggers the relay OnSurfaceChangedToTarget which enables the npc_antlion_template_maker, and after that that when (or if) the player steps off it, it triggers the relay OnSurfaceChangedFromTarget which stops the spawning.
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
This entity creates the noise when the antlions are emerging.
env_shake
- Name: shake_antlion_spawn
- Amplitude: 2
- Effect Radius: 500
- Duration: 3
- Frequency: 100
This entity creates the quake when the antlions are emerging.
npc_antlion_template_maker
- Name: antlion_expanse_spawner
- StartDisabled: Yes (we do not want the template_maker to start spawning at the beginning of the map.)
- Num. of NPCs: Leave empty because we will check Infinite Children in flags.
- Frequency: 0.35
- Max Live NCPs: how many antlions can live at same time, 8 for example
- Name Of Template NPC: AntLion
- Spawn On HintGroup: antlion_expanse_spawn_nodes
- Spawn Radius: 1000
- Spawn Target: !player (the target that the antlions will attack)
- Ignore Bugbait: No
Now, remember to check Infinite Children.
Then, add the following output:
OnAllSpawnedDead, antlion_expanse_spawner, SetMaxChildren, 8, 8.00
That means if all antlions are dead it resets the max number to 8 to prevent any problems.
logic_relay
- Name: relay_expanse_spawn
Add the following outputs, the numbers this time meaning Delay:
OnTrigger, sound_antlion_spawn, PlaySound OnTrigger, relay_expanse_disablespawn, CancelPending OnTrigger, shake_antlion_spawn, StartShake, 0.10 OnTrigger, antlion_expanse_spawner, Enable, 1.00
This means if this relay is triggered it plays the sound, the ground shakes and the npc_antlion_template_maker enables 1 second after we walked on the ground, which makes an effect like the antlions are coming up.
Another logic_relay
- Name: relay_expanse_disablespawn
Add the following outputs, the numbers meaning Delay again:
OnTrigger, sound_antlion_spawn, StopSound OnTrigger, shake_antlion_spawn, StopShake OnTrigger, antlion_expanse_spawner, Disable, 0.50 OnTrigger, relay_expanse_spawn, CancelPending, 0.50
This means if this relay is triggered, the sound stops, the shake stops and the template_maker disables.
info_node_hint
These 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.
- Hint: AntLion Burrow Point
- Hint Group: antlion_expanse_spawn_nodes
Notes
The antlions use info_node to navigate on the ground, and info_node_air to navigate while flying.
To make them follow a precise path, use path_corners and set it to the antlion's path corner, and place info_nodes around the way so the antlions can navigate through them.
If there is a wall in their way, put some info_node_airs about 10 units above it, the antlions will use it to fly above the wall.
Quick tutorial to making antlions follow a path
If you want the antlions to run to a precise target, use aiscripted_schedule, name it and configure:
- 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: Choose one
- Schedule to run: Choose one
- Interruptability: Choose one
- Goal Entity: Is the target, it can be one precise or a classname, like npc_citizen.
Then at the npc_antlion_template_maker, add the following output:
OnSpawnNpc, AiSchedule, StartSchedule