func_tank
is a brush entity available in Half-Life 2 series, Portal (series), Counter-Strike: Global Offensive, Black Mesa, and Half-Life: Source.
It simulates a gun turret that can aim and shoot things. Make sure Control Volume is set, as it's required.
Flags
Aiming Assistance (Player Only) : [256]
Ignore range when making viewcone checks : [8192]
BaseTank flags
Active : [1]
Player : [2] !FGD
Humans : [4] !FGD
Aliens : [8] !FGD
Only Direct: The tank will only fire if it's target is in direct line of sight. : [16]
Controllable (by player) : [32]
Damage Kick : [64]
Aim at a particular position : [128] !FGD
Aim assistance : [256] !FGD
NPC : [512] !FGD
NPC Controllable : [1024]
NPC Set Controller : [2048]
Allow friendlies to hit player : [4096]
Don't use range as a factor in determining if something is in view cone : [8192] !FGD
Non-solid. : [32768]
Sound on : [65536] !FGD
Perfect accuracy every 3rd shot at player : [131072]
|
Keyvalues
- Name
(targetname)
<string>
- The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g.
parentname
or target
).
Also displayed in Hammer's 2D views and Entity Report.
BaseTank keyvalues
- Bullets
(bullet) <choices>
- Ammo type. Be aware that some games will use Ammo type instead.
Literal value |
Description
|
0 |
None
|
1 |
Pistol
|
2 |
SMG1
|
3 |
AR2 (shows pistol/smg1 bullets?)
|
4 |
Laser (does nothing)
|
- Ammo type
(ammotype) <choices>
- Ammo type. Be aware that some games will use Bullets instead.
Value |
Description
|
|
None
|
Pistol |
Pistol
|
SMG1 |
SMG1
|
AR2 |
AR2
|
CombineHeavyCannon |
Combine Heavy Cannon (Episode 2 autogun)
|
- Control Volume
(control_volume) <targetname>
- Name of a trigger the player must be inside to control the tank.
- (Team) Master
(master) <string>
- Not used for Source. Provided for backwards compatibility with
multisource or game_team_master .
- Yaw rate
(yawrate) <string>
- How fast tank can look left or right.
- Yaw range
(yawrange) <string>
- How far tank can turn left or right.
- Yaw tolerance
(yawtolerance) <string>
- Additional left-right range. If the gun tries to turn beyond Yaw range + Yaw tolerance, the gun will snap back to the maximum Yaw range.
- Pitch rate
(pitchrate) <string>
- How fast tank can look up or down
- Pitch range
(pitchrange) <string>
- How far tank can turn up or down
- Pitch tolerance
(pitchtolerance) <string>
- Additional up-down range. If the gun tries to turn beyond Pitch range + Pitch tolerance, the gun will snap back to the maximum Pitch range.
- Barrel Length
(barrel) <string>
- Solid length of the tank barrel. Any part of the barrel beyond this length may clip through objects.
- Barrel Horizontal
(barrely) <string>
- How wide the barrel is, horizontally.}
- Barrel Vertical
(barrelz) <string>
- How wide the barrel is, vertically.
- Smoke Sprite
(spritesmoke) <sprite>
- Smoke sprite to emit when gun fires.
Bug:Transparency may not work. [todo tested in?]
- Flash Sprite
(spriteflash) <sprite>
- Flash sprite to emit when gun fires.
- Sprite scale
(spritescale) <string>
- Sprite scale for both sprites above.
- Rotate Start Sound
(rotatestartsound) <sound>
- Sound to play when tank starts to turn.
- Rotate Loop Sound
(rotatesound) <sound>
- Sound to play when tank is turning.
- Rotate Stop Sound
(rotatestopsound) <sound>
- Sound to play when tank stops turning.
- Rate of Fire
(firerate) <string>
- Number of bullets to fire in a second.
- Damage Per Bullet
(bullet_damage) <string>
- How much a single bullet hurts everything except the player. If
0 , takes amount from the type of bullet/damage.
- Damage Per Bullet Vs Player
(bullet_damage_vs_player) <string>
- How much a single bullet hurts the player only. If
0 , takes amount from the type of bullet/damage.
- Firing persistence
(persistence) <string>
- How many seconds to keep firing at target's last known position after losing LOS (for NPCs).
- Firing persistence2
(persistence2) <string>
- After Firing persistence is over, how many seconds to periodically fire at target's last known position (for NPCs).
- Bullet accuracy
(firespread) <choices>
- How accurately the gun can fire.
- 0: Perfect Shot
- 1: Small cone
- 2: Medium cone
- 3: Large cone
- 4: Extra-large cone
- Minimum target range
(minRange) <string>
- Minimum range to target something (for NPCs). If a target is closer than this amount, the NPC will probably switch to any weapon they have on them.
- Maximum target range
(maxRange) <string>
- Maximum range to target something (for NPCs).
Confirm:This may actually be the distance for aim assistance instead?
- Gun Base Attachment
(gun_base_attach) <string>
- If Parent is specified, this is the attachment point on the parent to aim from.
- Gun Barrel Attachment
(gun_barrel_attach) <string>
- If Parent is specified, this is the attachment point on the parent to fire from. If you specify this, you'll want to specify the Gun Base Attachment too.
- Gun Yaw Pose Param
(gun_yaw_pose_param) <string>
- If Parent and Gun Pitch Pose Param are specified, then the gun itself will be invisible and the tank will steer a gun on the parent using the pose parameters.
- Gun Yaw Pose Center
(gun_yaw_pose_center) <float>
- The center yaw pose parameter of the gun on the parent.
- Gun Pitch Pose Param
(gun_pitch_pose_param) <string>
- If Parent and Gun Yaw Pose Param are specified, then the gun itself will be invisible and the tank will steer a gun on the parent using the pose parameters.
- Gun Pitch Pose Center
(gun_pitch_pose_center) <float>
- The center pitch pose parameter of the gun on the parent.
- Ammunition Count
(ammo_count) <integer>
- Amount of ammo when player is using. -1 = unlimited ammo.
- Lead Target
(LeadTarget) <boolean>
- Aim ahead to hit moving targets (for NPCs).
- NPC Man Point
(npc_man_point) <targetname>
- Point where NPC must stand to use.
- Post-NPC Attack Grace Period
(playergraceperiod) <float>
- If specified, NPC's manning this func tank won't fire at the player, after firing at a non-player, for this amount of time.
- Ignore Grace Upto
(ignoregraceupto) <float>
- The player grace period is ignored if the player is under this distance from the tank.
- Player Lock Time
(playerlocktimebeforefire) <float>
- The tank must be aiming right on the player for this amount of time before it's allowed to fire.
- Effect Handling
(effecthandling) <choices>
- Produce these sound and particle effects when firing.
- 0: Use Individual Settings.
- 1: AR2
- 2: Combine Cannon
|
Inputs
BaseTank inputs
Activate
- Turn the tank on.
Deactivate
- Turn the tank off (go dormant).
SetFireRate <float>
- How fast to fire (0 = don't fire).
SetDamage <integer>
- Set the Damage Per Bullet keyvalue.
SetTargetPosition <vector>
- World position (coordinates) that to aim at
SetTargetDir <vector>
- Direction (pitch yaw roll) to aim at.
SetTargetEntityName <targetname>
- "Set the entity I should follow/attack to the closest entity matching this name."[Clarify]
SetTargetEntity <entity>
- "Set the entity I should follow/attack to the passed in entity. This requires an output which passes an entity through the output."[Clarify]
ClearTargetEntity
- Clear the entity memory of any targets it was told to attack.
FindNPCToManTank <string>
- Find a nearby capable NPC to man this tank.
StartFindingNPCs
- Start searching for capable NPCs to man this tank.
StopFindingNPCs
- Stop searching for capable NPCs to man this tank.
ForceNPCOff
- Force the NPC manning this tank (if any) to leave.
SetMaxRange <float>
- Set the max range of the tank.
Confirm:Maximum distance a shot can go?
|
Outputs
BaseTank outputs
OnFire
- Fires when the tank fires its bullets.
OnAquireTarget
- Fires when target is newly in range and can be shot.
OnLoseTarget
- Fires when when target goes out of range.
OnAmmoDepleted
- DO NOT USE. Exists in code, but never coded to fire at any point.
OnGotController
- Fires when an NPC starts to control this tank. Players do NOT fire this input.
OnGotPlayerController
- Fires when a Player starts to control this tank. NPCs do NOT fire this input.
OnLostController
- Fires when the NPC controller of the tank stops controlling it. Players do NOT fire this input.
OnLostPlayerController
- Fires when the Player controller of the tank stops controlling it. NPCs do NOT fire this input.
OnReadyToFire
- Fires once when the tank spawns, or is done waiting to fire between rounds. Useful for playing a reloading/charging/searching sound possibly.
|
External links