Func 50cal: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(This cvar for apache's 50cal.)
 
(20 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{CDA|CFunc50Cal|CFuncTank|CBaseEntity|}}
[[File:50calModel.png|350px|right]]
[[File:50calModel.png|350px|right]]
{{this is a|brush entity|name=func_50cal|game=Black Mesa}} This is {{WP|M2 Browning}} (or Browning .50 caliber machine gun) that was used by [[HECU]] soldiers during the operation on the territory of the [[Black Mesa Research Facility]]. Can be used by player and HECU soldiers. This machine gun is also used in dm_stalkyard.
{{this is a|brush entity|name=func_50cal|game=Black Mesa}} This is {{WP|M2 Browning}} (or Browning .50 caliber machine gun) that was used by [[HECU]] soldiers during the operation on the territory of the [[Black Mesa Research Facility]]. Can be used by player and HECU soldiers. This machine gun is also used in {{code|preset=1|dm_stalkyard}}. All outputs and flags are same as {{ent|func_tank}}, properties as well, but some have special notes. The same for inputs, but there are one unique.
 
{{note|The fire and deploy sounds are hardcoded. You still can change both in your {{bms|1}} mod by replacing the sounds with a blank sounds and playing your own sounds via input/output system.}}
{{note|The fire and deploy sounds are hardcoded. You still can change both in your {{bms|1}} mod by replacing the sounds with a blank sounds and playing your own sounds via input/output system.}}
{{note|Only certain [[NPCs]] ({{ent|npc_human_commander}}, {{ent|npc_human_grenadier}}, {{ent|npc_human_grunt}} and {{ent|npc_human_medic}}) can use this weapon via <code>FindNPCToManTank</code> input. Other will ignore this input.}}
{{note|Only certain [[NPCs]] ({{ent|npc_human_commander}}, {{ent|npc_human_grenadier}}, {{ent|npc_human_grunt}} and {{ent|npc_human_medic}}) can use this weapon via <code>FindNPCToManTank</code> input. Other will ignore this input.}}
{{note|The bullet particles is different in singleplayer and multiplayer, multiplayer particles are smaller.}}
{{note|The bullet particles is different in singleplayer and multiplayer, multiplayer particles are smaller.}}
{{note|The original model for this gun is a bit unfinished. It doesn't have mesh under it (can be noticed in dm_stalkyard and bm_c2a5a). It also uses concrete surface parametrs, instead of metal surface parametrs.}}
{{note|The original model for this gun is a bit unfinished. It doesn't have mesh under it (can be noticed in {{code|preset=1|dm_stalkyard}} and {{code|preset=1|bm_c2a5a}}). It also uses concrete surface parametrs, instead of metal surface parametrs.}}
{{bug|Must be combined with model. Otherwise, game will crash when this entity will shoot.}}
{{bug|hidetested=1|Must be combined with model. Otherwise, game will crash when this entity will shoot.}}
{{bug|NPC's weapon breaks after this gun usage. It doesn't removes, but becomes invisible and unable to shoot (NPC still reload weapon several times, for some reason). This breaks the AI ​​partially, because such NPC still thinks that it have functional weapon. This bug not in {{bms12|4}} (the mod version).}}
{{bug|hidetested=1|NPC's weapon breaks after this gun usage. It doesn't removes, but becomes invisible and unable to shoot (NPC still reload weapon several times, for some reason). This breaks the AI ​​partially, because such NPC still thinks that it have functional weapon. {{not|{{bms12}}}}}}
{{bug|You can find bug in dm_stalkyard when model doesn't rotates with gun position. The gun can kill controller at this moment, because it rotates 360 degrees at this moment. This seems to happen if you quickly press use button several times.
{{bug|hidetested=1|You can find bug in {{code|preset=1|dm_stalkyard}} when model doesn't rotates with gun position. The gun can kill controller at this moment, because it rotates 360 degrees at this moment. This seems to happen if you quickly press use button several times.
{{expand|title=The bug example.|
{{expand|title=The bug example.|
<br>
<br>
Line 14: Line 16:
</gallery>
</gallery>
}}
}}
{{ModernConfirm|Can be fixed.}}
{{Confirm|Can be fixed.}}
}}
}}
==Dedicated [[ConVars]]==
{{varcom|start}}
{{varcom|sk_plr_dmg_50cal|6|arbitrary number|Player damage scale. Non-functional or deprecated.}}
{{varcom|sk_npc_dmg_50cal|6|arbitrary number|NPC damage scale. Non-functional or deprecated.}}
{{varcom|sk_max_50cal|0|arbitrary number|{{todo|Turn out what it does (if it does anything).}}}}
{{varcom|end}}
{{note|All this console commands is not in the mod version.}}
==Flags==
{{Fl BaseTank}}


==Keyvalues==
==Keyvalues==
{{KV|Control Volume|intn=control_volume|target_destination|Name of a trigger the player must be inside to control the tank.}}
{{KV Angles}}
{{KV|(Team) Master|intn=master|string|Not used for Source. Provided for backwards compatibility with {{ent|multisource}} or {{ent|game_team_master}}.}}
:{{important|Value from this property affects what direction the gun treats as its default and snaps to when is not controlled (for instant, this is why the gun in the little bunker in '''bm_c2a2c''' turns to wrong angle).}}
{{KV|Yaw rate|intn=yawrate|string|How fast tank can look left or right.}}
{{KV|Yaw range|intn=yawrange|string|How far tank can turn left or right.}}
{{KV|Yaw tolerance|intn=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'''.}}
{{KV|Pitch rate|intn=pitchrate|string|How fast tank can look up or down}}
{{KV|Pitch range|intn=pitchrange|string|How far tank can turn up or down}}
{{KV|Pitch tolerance|intn=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'''.}}
{{KV|Barrel Length|intn=barrel|string|Solid length of the tank barrel. Any part of the barrel beyond this length may clip through objects.}}
{{KV|Barrel Horizontal|intn=barrely|string|How wide the barrel is, horizontally.}}}
{{KV|Barrel Vertical|intn=barrelz|string|How wide the barrel is, vertically.}}
{{KV|Smoke Sprite|intn=spritesmoke|sprite|Smoke sprite to emit when gun fires. {{bug|Transparency may not work.}}}}
{{KV|Flash Sprite|intn=spriteflash|sprite|Flash sprite to emit when gun fires.}}
{{KV|Sprite scale|intn=spritescale|string|Sprite scale for both sprites above.}}
{{KV|Rotate Start Sound|intn=rotatestartsound|sound|Sound to play when tank starts to turn.}}
{{KV|Rotate Loop Sound|intn=rotatesound|sound|Sound to play when tank is turning.}}
{{KV|Rotate Stop Sound|intn=rotatestopsound|sound|Sound to play when tank stops turning.}}
{{KV|Rate of Fire|intn=firerate|string|Number of bullets to fire in a second.}}
{{KV|Damage Per Bullet|intn=bullet_damage|string|How much a single bullet hurts everything except the player. If <code>0</code>, takes amount from the type of bullet/damage.}}
{{KV|Damage Per Bullet Vs Player|intn=bullet_damage_vs_player|string|How much a single bullet hurts the player only. If <code>0</code>, takes amount from the type of bullet/damage.}}
{{KV|Firing persistence|intn=persistence|string|How many seconds to keep firing at target's last known position after losing [[LOS]] (for NPCs).}}
{{KV|Firing persistence2|intn=persistence2|string|After '''Firing persistence''' is over, how many seconds to periodically fire at target's last known position (for NPCs).}}
{{KV|Bullet accuracy|intn=firespread|choices|How accurately the gun can fire.
:*0: Perfect Shot
:*1: Small cone
:*2: Medium cone
:*3: Large cone
:*4: Extra-large cone}}
{{KV|Minimum target range|intn=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.}}
{{KV|Maximum target range|intn=maxRange|string|Maximum range to target something (for NPCs). {{confirm|This may actually be the distance for aim assistance instead?}}}}
{{KV|Gun Base Attachment|intn=gun_base_attach|string|If '''Parent''' is specified, this is the attachment point on the parent to aim from.}}
{{KV|Gun Barrel Attachment|intn=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.}}
{{KV|Gun Yaw Pose Param|intn=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.}}
{{KV|Gun Yaw Pose Center|intn=gun_yaw_pose_center|float|The center yaw pose parameter of the gun on the parent.}}
{{KV|Gun Pitch Pose Param|intn=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.}}
{{KV|Gun Pitch Pose Center|intn=gun_pitch_pose_center|float|The center pitch pose parameter of the gun on the parent.}}
{{KV|Ammunition Count|intn=ammo_count|integer|Amount of ammo when ''player'' is using. -1 {{=}} unlimited ammo.}}
{{KV|Lead Target|intn=LeadTarget|boolean|Aim ahead to hit moving targets (for NPCs).}}
{{KV|NPC Man Point|intn=npc_man_point|target_destination|Point where NPC must stand to use.}}
{{KV|Post-NPC Attack Grace Period|intn=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.}}
{{KV|Ignore Grace Upto|intn=ignoregraceupto|float|The player grace period is ignored if the player is under this distance from the tank.}}
{{KV|Player Lock Time|intn=playerlocktimebeforefire|float|The tank must be aiming right on the player for this amount of time before it's allowed to fire.}}
{{KV|Effect Handling|intn=effecthandling|choices|Produce these sound and particle effects when firing.
{{KV|Effect Handling|intn=effecthandling|choices|Produce these sound and particle effects when firing.
:*0: Use Individual Settings.
:*0: Use Individual Settings.
:*1: AR2{{note|Changes the color of the fire light to blue.}}
:*1: AR2{{note|Changes the color of the fire light to blue.}}
:*2: Combine Cannon{{bug|Shooting will cause {{code|DispatchEffect: effect "ChopperMuzzleFlash" not found on client}} error message in the console.}}
:*2: Combine Cannon{{bug|hidetested=1|Shooting will cause {{code|DispatchEffect: effect "ChopperMuzzleFlash" not found on client}} error message in the console.}}
}}
 
==Inputs==
{{I|StopFiring|Fires when stops firing. This input is probably created for debugging. Doesn't affect anything.|param=void|nofgd=1}}
 
==Dedicated [[ConVars]]==
{{varcom|start}}
{{varcom|bm_50cal_scale|1.25|[[Float]]|Model scale to set for {{ent|func_50cal}}'s parent entity.
{{important|This console variable is hidden with [[Console_command_flags|"development only" flag]]. Can't be changed without using server plugins.}}
}}
}}
{{KV visiblebrush||b4l4d=1}}
{{varcom|end}}
{{KV BaseEntity|brush=1|base=1}}


==See also==
==See also==
*[[func_tow]] - tow cannon.
*{{ent|func_tow}} - tow cannon.
*[[func_tow_mp]] - tow cannon (multiplayer version).
*{{ent|func_tow_mp}} - tow cannon (multiplayer version).
*[[env_mortar_controller]] - mortar controller.
*{{ent|env_mortar_controller}} - mortar controller.
*[[env_mortar_launcher]] - mortar launcher.
*{{ent|env_mortar_launcher}} - mortar launcher.
*[[func_tankmortar]] - combine mortar (remaining from {{hl2|4}}).
*{{ent|func_tankmortar}} - combine mortar (remaining from {{hl2|4}}).
*[[func_tank]] - main brush gun entity.
*{{ent|func_tank}} - main brush gun entity.
*[[func_tankphyscannister]] - it sets off a {{ent|physics_cannister}} within a specified trigger volume.
*{{ent|func_tankphyscannister}} - it sets off a {{ent|physics_cannister}} within a specified trigger volume.
*[[func_tankairboatgun]] - airboat gun (remaining from {{hl2|4}}).
*{{ent|func_tankairboatgun}} - airboat gun (remaining from {{hl2|4}}).
*[[func_tanklaser]] - laser cannon.
*{{ent|func_tanklaser}} - laser cannon.
*[[func_tank_combine_cannon]] - combine cannon (remaining from {{hl2|4}}).
*{{ent|func_tank_combine_cannon}} - combine cannon (remaining from {{hl2|4}}).

Latest revision as of 05:06, 22 August 2025

C++ Class hierarchy
CFunc50Cal
CFuncTank
CBaseEntity
50calModel.png

func_50cal is a brush entity available in Black Mesa Black Mesa. This is Wikipedia icon M2 Browning (or Browning .50 caliber machine gun) that was used by HECU soldiers during the operation on the territory of the Black Mesa Research Facility. Can be used by player and HECU soldiers. This machine gun is also used in dm_stalkyard. All outputs and flags are same as func_tank, properties as well, but some have special notes. The same for inputs, but there are one unique.

Note.pngNote:The fire and deploy sounds are hardcoded. You still can change both in your Black Mesa mod by replacing the sounds with a blank sounds and playing your own sounds via input/output system.
Note.pngNote:Only certain NPCs (npc_human_commander, npc_human_grenadier, npc_human_grunt and npc_human_medic) can use this weapon via FindNPCToManTank input. Other will ignore this input.
Note.pngNote:The bullet particles is different in singleplayer and multiplayer, multiplayer particles are smaller.
Note.pngNote:The original model for this gun is a bit unfinished. It doesn't have mesh under it (can be noticed in dm_stalkyard and bm_c2a5a). It also uses concrete surface parametrs, instead of metal surface parametrs.
Icon-Bug.pngBug:Must be combined with model. Otherwise, game will crash when this entity will shoot.
Icon-Bug.pngBug:NPC's weapon breaks after this gun usage. It doesn't removes, but becomes invisible and unable to shoot (NPC still reload weapon several times, for some reason). This breaks the AI ​​partially, because such NPC still thinks that it have functional weapon. (not in Black Mesa (mod))
Icon-Bug.pngBug:You can find bug in dm_stalkyard when model doesn't rotates with gun position. The gun can kill controller at this moment, because it rotates 360 degrees at this moment. This seems to happen if you quickly press use button several times.
The bug example.


Confirm:Can be fixed.

Keyvalues

Pitch Yaw Roll (Y Z X) (angles) <QAngle>
This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
Icon-Important.pngImportant:Value from this property affects what direction the gun treats as its default and snaps to when is not controlled (for instant, this is why the gun in the little bunker in bm_c2a2c turns to wrong angle).
Effect Handling (effecthandling) <choices>
Produce these sound and particle effects when firing.
  • 0: Use Individual Settings.
  • 1: AR2
    Note.pngNote:Changes the color of the fire light to blue.
  • 2: Combine Cannon
    Icon-Bug.pngBug:Shooting will cause DispatchEffect: effect "ChopperMuzzleFlash" not found on client error message in the console.

Inputs

StopFiring <void> !FGD
Fires when stops firing. This input is probably created for debugging. Doesn't affect anything.

Dedicated ConVars

Cvar/Command Parameters or default value Descriptor Effect
bm_50cal_scale 1.25 Float Model scale to set for func_50cal's parent entity.
Icon-Important.pngImportant:This console variable is hidden with "development only" flag. Can't be changed without using server plugins.

See also