Difference between revisions of "Func tank"
Line 58: | Line 58: | ||
*[https://www.youtube.com/watch?v=CteM4dNSHGo Func_tank Пулемёты ч1 (на Русском)] | *[https://www.youtube.com/watch?v=CteM4dNSHGo Func_tank Пулемёты ч1 (на Русском)] | ||
+ | *[https://www.youtube.com/watch?v=tQYoxjGUCM4 Func_Tank + MODEL Ч2 (На Русском)] |
Revision as of 22:44, 20 March 2018
func_tank
is a brush entity available in the Half-Life 2 series.
Contents
Entity description
A brush entity that functions as a gun turret.
In code it is represented by class CFuncTank
, defined in hl2_dll\func_tank.cpp
.
www.editlife.net used to have a tutorial on making npc and player usable turrets, which you can read in the Internet Archive here.
Keyvalues
BaseTank:
- 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
orgame_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.
- 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
- Bullet type
<choices>
- Obsolete. If you are mapping for HL2, and don't see this keyvalue, it's probably because you updated hammer for Episode 1. Simply add in a keyvalue named "bullet" without SmartEdit. This keyvalue must be used with HL2. This is also the case for Portal 2.
Literal value Description 0 None 1 Pistol 2 SMG1 3 AR2 4 Laser
- Ammo type
<choices>
- Ammo type. Cannot be used with HL2 or Portal 2 (see above).
Value Description None Pistol
Pistol SMG1
SMG1 AR2
AR2 CombineHeavyCannon
Combine Heavy Cannon
Flags
BaseTank:
- 1: Active
- 16: Only Direct: The tank will only fire if it's target is in direct line of sight.
- 32: Controllable (by player)
- 64: Damage Kick
- 1024: NPC Controllable
- 2048: NPC Set Controller
- 4096: Allow friendlies to hit player
- 32768: Non-solid.
- 131072: Perfect accuracy every 3rd shot at player
- 8192 : Ignore range when making viewcone checks
- 256 : Aiming Assistance (Player Only)
Inputs
BaseTank:
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:
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.
Tutorials about Func_Tank (Russian)
Lessons created by Project-S