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