-
-
Notifications
You must be signed in to change notification settings - Fork 0
Stop a co-op companion killing its own team mate #260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,220 @@ | ||
| LOG started on: 09/05/2026 11:03:31 | ||
| Playing registered version. | ||
| Console initialized. | ||
| UDP Initialized | ||
| WIPX_OpenSocket: Address family not supported by protocol family | ||
| WIPX_Init: Unable to open control socket, IPX disabled | ||
| Exe: 20:02:47 Jul 31 2024 | ||
| 256.0 megabyte heap | ||
| Video mode 800x600x24 60Hz (24-bit z-buffer, 0x FSAA) initialized | ||
| GL_VENDOR: NVIDIA Corporation | ||
| GL_RENDERER: NVIDIA GeForce RTX 3070 Ti/PCIe/SSE2 | ||
| GL_VERSION: 4.6.0 NVIDIA 610.74 | ||
| FOUND: ARB_vertex_buffer_object | ||
| FOUND: ARB_multitexture | ||
| GL_MAX_TEXTURE_UNITS: 4 | ||
| FOUND: ARB_texture_env_combine | ||
| FOUND: ARB_texture_env_add | ||
| FOUND: SDL_GL_SetSwapInterval | ||
| FOUND: EXT_texture_filter_anisotropic | ||
| FOUND: ARB_texture_non_power_of_two | ||
| FOUND: GLSL | ||
| Enabled: GLSL gamma | ||
| Enabled: GLSL alias model rendering | ||
| Enabled: EXT_packed_pixels | ||
| FOUND: glGenerateMipmap | ||
|
|
||
| Sound Initialization | ||
| SDL audio spec : 44100 Hz, 1024 samples, 2 channels | ||
| SDL audio driver: wasapi - C32F391 (NVIDIA High Definition Audio), 65536 bytes buffer | ||
| Audio: 16 bit, stereo, 44100 Hz | ||
| CDAudio disabled at compile time | ||
|
|
||
| Language initialization | ||
| Couldn't load 'localization/loc_english.txt' | ||
| from 'C:\argus\engine' | ||
|
|
||
| ========= Quake Initialized ========= | ||
|
|
||
| execing quake.rc | ||
| execing default.cfg | ||
| execing config.cfg | ||
| execing autoexec.cfg | ||
| SpawnServer: e1m2 | ||
| Clearing memory | ||
| Programs occupy 857K. | ||
| Mod_LoadTexinfo: 1 texture(s) missing from BSP file | ||
| trying to open external vis file | ||
| maps/e1m2.vis not found, trying argus.vis | ||
| external vis not found | ||
| Loaded external entity file maps/e1m2@0caa.ent | ||
| ARGUS slots 8 | ||
| ARGUS worldspawn reached | ||
| ARGNAV 198 nodes, 535 links | ||
| 52 entities inhibited | ||
| ARGUS init on e1m2 | ||
| ARGEVT Carmack spawned | ||
| Server spawned. | ||
| CL_EstablishConnection: connected to local | ||
| recording to C:\argus\engine/argus/session.dem. | ||
| 3 demo(s) in loop | ||
| Client LOCAL connected | ||
| ARGEVT Carmack goal_push 3 | ||
| ARGLOG Carmack t 1.2 pos '1608.0 1664.0 264.0' spd 0 yaw 244.8 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| FITZQUAKE 0.85 SERVER (35301 CRC) | ||
| Serverinfo packet received. | ||
|
|
||
|
|
||
| Castle of the Damned | ||
| Using protocol 15 | ||
| FindFile: can't find music/track08.ogg | ||
| FindFile: can't find music/track08.opus | ||
| FindFile: can't find music/track08.mp3 | ||
| FindFile: can't find music/track08.flac | ||
| FindFile: can't find music/track08.wav | ||
| Couldn't find a cdrip for track 8 | ||
| CL_SignonReply: 1 | ||
| CL_SignonReply: 2 | ||
| ARGEVT Carmack coop_stats break 0 steal 0 block 0 | ||
| ARGLOG player t 1.4 pos '1608.0 1664.0 265.0' spd 0 yaw 270 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| CL_SignonReply: 3 | ||
| 242.4 megabyte data cache | ||
| CL_SignonReply: 4 | ||
| ARGLOG Carmack t 1.7 pos '1587.1 1504.5 264.0' spd 321.0 yaw 272.3 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 1.9 pos '1608.0 1664.0 264.0' spd 0 yaw -85.8 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 2.2 pos '1586.4 1426.8 265.4' spd 320.0 yaw 271.5 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 2.4 pos '1608.1 1662.4 264.0' spd 84.3 yaw -90 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 2.7 pos '1570.7 1334.4 225.7' spd 320.0 yaw 254.5 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 2.9 pos '1538.9 1560.9 264.0' spd 321.4 yaw -90 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 3.2 pos '1555.4 1291.2 200.0' spd 14.1 yaw 260.6 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 3.4 pos '1464.3 1501.7 264.0' spd 48.6 yaw -81.6 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 3.7 pos '1564.0 1325.2 200.0' spd 70.1 yaw 255.7 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 3.9 pos '1461.7 1499.5 264.0' spd 0 yaw -75.9 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 4.2 pos '1588.3 1334.9 200.0' spd 75.3 yaw 227.7 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 4.4 pos '1461.7 1499.5 264.0' spd 0 yaw -85.8 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 4.7 pos '1630.4 1351.5 200.0' spd 128.1 yaw 216.3 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 4.9 pos '1461.7 1499.5 264.0' spd 0 yaw -77.3 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| Carmack: Compiling level geometry. Latency target: 0 ms. | ||
| ARGLOG Carmack t 5.2 pos '1669.8 1376.2 200.0' spd 252.8 yaw 215.1 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack coop_stats break 0 steal 0 block 0 | ||
| ARGLOG player t 5.4 pos '1461.7 1499.5 264.0' spd 0 yaw -64.7 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack goal_pop | ||
| ARGEVT Carmack goal_push 5 | ||
| ARGEVT Carmack goal key | ||
| ARGLOG Carmack t 5.7 pos '1664.2 1376.1 200.0' spd 268.6 yaw 171.1 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack route 21 start '1649.0 1377.0 200.0' goal '945.0 -639.0 440.0' | ||
| ARGLOG player t 6.0 pos '1461.7 1499.5 264.0' spd 0 yaw -60.5 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack hazard | ||
| ARGLOG Carmack t 6.2 pos '1619.8 1446.8 200.0' spd 217.1 yaw 165 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 6.5 pos '1487.7 1453.5 263.0' spd 52.2 yaw -61.9 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 6.8 pos '1616.0 1403.1 200.0' spd 41.3 yaw 150 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 7.0 pos '1493.2 1443.8 248.0' spd 0 yaw -50.6 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack hazard | ||
| ARGLOG Carmack t 7.3 pos '1616.0 1396.4 200.0' spd 7.4 yaw 148 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| You got 2 rockets | ||
| ARGLOG player t 7.5 pos '1522.4 1406.4 242.2' spd 197.6 yaw -45 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 7.8 pos '1616.0 1380.6 200.0' spd 225.1 yaw 266 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 8.0 pos '1574.8 1339.2 219.9' spd 147.5 yaw 8.4 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 8.3 pos '1557.5 1222.9 208.0' spd 442.2 yaw 156.9 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 8.5 pos '1578.1 1344.0 200.0' spd 263.3 yaw -92.8 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack route 21 start '1393.0 1313.0 200.0' goal '945.0 -639.0 440.0' | ||
| ARGLOG Carmack t 8.8 pos '1453.6 1363.1 216.0' spd 481.8 yaw 359 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 9.0 pos '1516.7 1396.7 232.0' spd 324.2 yaw -146.3 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 9.3 pos '1491.1 1292.5 200.0' spd 328.9 yaw 259.8 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack coop_stats break 0 steal 0 block 0 | ||
| ARGLOG player t 9.5 pos '1487.1 1524.0 264.0' spd 199.5 yaw -83.0 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 9.8 pos '1600.6 1164.1 179.5' spd 471.2 yaw 60.1 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack hazard | ||
| ARGEVT Carmack swim | ||
| ARGLOG player t 10.0 pos '1478.7 1573.1 264.0' spd 0 yaw -83.0 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack route 21 start '1649.0 1121.0 80.0' goal '945.0 -639.0 440.0' | ||
| ARGLOG Carmack t 10.3 pos '1756.9 1201.0 118.2' spd 98.6 yaw 198 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 10.5 pos '1489.5 1506.5 264.0' spd 199.5 yaw -80.2 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 10.8 pos '1739.0 1174.4 121.4' spd 155.2 yaw 174.2 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 11.0 pos '1496.8 1463.1 264.0' spd 38.8 yaw -80.2 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 11.3 pos '1659.3 1188.8 120.7' spd 180.8 yaw 201 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 11.5 pos '1511.1 1379.3 230.3' spd 198.9 yaw -80.2 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 11.8 pos '1668.0 1188.1 119.9' spd 124.1 yaw 200 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 12.0 pos '1582.2 1280.9 200.0' spd 278.1 yaw -71.7 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG Carmack t 12.3 pos '1635.2 1126.4 137.3' spd 134.0 yaw 109 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGLOG player t 12.5 pos '1633.4 1253.7 200.0' spd 0 yaw -83.0 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGLOG Carmack t 12.8 pos '1624.0 1136.0 147.4' spd 0 yaw 108 mode 2 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG player t 13.0 pos '1633.4 1253.7 200.0' spd 0 yaw -91.4 mode 0 st 0 gl 0 hp 100 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG Carmack t 13.3 pos '1629.3 1135.9 148.9' spd 40.5 yaw 85.3 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack coop_stats break 0 steal 0 block 0 | ||
| ARGEVT Carmack swim | ||
| ARGLOG player t 13.5 pos '1635.3 1300.1 200.0' spd 104.4 yaw -91.4 mode 0 st 0 gl 0 hp 76 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG Carmack t 13.8 pos '1640.5 1152.3 148.6' spd 57.5 yaw 87.6 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG player t 14.0 pos '1635.6 1334.2 200.0' spd 27.6 yaw -90 mode 0 st 0 gl 0 hp 64 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG Carmack t 14.3 pos '1651.5 1181.1 149.1' spd 51.7 yaw 107.7 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG player t 14.5 pos '1496.5 1349.2 200.0' spd 281.2 yaw -81.6 mode 0 st 0 gl 0 hp 64 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG Carmack t 14.8 pos '1672.8 1191.4 148.1' spd 62.0 yaw 131.0 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG player t 15.1 pos '1496.1 1453.7 248.0' spd 199.6 yaw -77.3 mode 0 st 0 gl 0 hp 48 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG Carmack t 15.3 pos '1706.4 1184.6 149.1' spd 54.7 yaw 124.4 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGLOG player t 15.6 pos '1475.2 1602.2 272.0' spd 346.5 yaw -73.1 mode 0 st 0 gl 0 hp 24 frg 0 | ||
| ARGEVT Carmack swim | ||
| ARGUS routecache adopt | ||
| ARGEVT Carmack route 21 start '1649.0 1121.0 80.0' goal '945.0 -639.0 440.0' | ||
| ARGEVT Carmack swim | ||
| ARGLOG Carmack t 15.8 pos '1734.9 1181.3 132.3' spd 38.3 yaw 118.8 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGLOG player t 16.1 pos '1495.7 1673.6 288.0' spd 15.5 yaw -66.1 mode 0 st 0 gl 0 hp 24 frg 0 | ||
| ARGEVT Carmack pursue | ||
| ARGUS Carmack hunch item_health | ||
| ARGUS routecache adopt | ||
| ARGEVT Carmack route 21 start '1649.0 1121.0 80.0' goal '945.0 -639.0 440.0' | ||
| ARGEVT Carmack pursue | ||
| ARGLOG Carmack t 16.3 pos '1749.3 1181.8 119.3' spd 47.6 yaw 283.7 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGLOG player t 16.6 pos '1495.8 1674.0 288.0' spd 0 yaw -66.1 mode 0 st 0 gl 0 hp 24 frg 0 | ||
| ARGLOG Carmack t 16.8 pos '1740.2 1124.1 118.5' spd 166.1 yaw 177.6 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGLOG player t 17.1 pos '1495.8 1674.0 288.0' spd 0 yaw -66.1 mode 0 st 0 gl 0 hp 24 frg 0 | ||
| ARGLOG Carmack t 17.4 pos '1663.5 1118.6 132.0' spd 174.1 yaw 108.2 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGEVT Carmack coop_stats break 1.8 steal 0 block 0 | ||
| ARGLOG player t 17.6 pos '1495.8 1674.0 288.0' spd 0 yaw -67.5 mode 0 st 0 gl 0 hp 24 frg 0 | ||
| ARGEVT Carmack jump | ||
| ARGLOG Carmack t 17.9 pos '1613.0 1208.0 191.1' spd 71.3 yaw 103.8 mode 2 st 0 gl 0 hp 76 frg 0 | ||
| ARGLOG player t 18.1 pos '1523.3 1720.0 278.4' spd 196.9 yaw -67.5 mode 0 st 0 gl 0 hp 4 frg 0 | ||
| ARGEVT player death Carmack pos '1534.7 1720.0 272.0' | ||
| player chewed on Carmack's boomstick | ||
| Carmack: Fast inverse square root: calculated directly. | ||
| ARGEVT Carmack goal_push 6 | ||
| ARGLOG Carmack t 18.4 pos '1573.4 1226.1 208.0' spd 171.2 yaw 73.7 mode 0 st 0 gl 0 hp 76 frg 1 | ||
| ARGLOG Carmack t 18.9 pos '1608.0 1344.0 200.0' spd 130.1 yaw 73.7 mode 0 st 0 gl 0 hp 76 frg 1 | ||
| ARGLOG Carmack t 19.4 pos '1651.1 1447.6 200.0' spd 257.2 yaw 199.0 mode 0 st 0 gl 0 hp 76 frg 1 | ||
| ARGLOG Carmack t 19.9 pos '1704.9 1415.8 200.0' spd 259.7 yaw 214.5 mode 0 st 0 gl 0 hp 76 frg 1 | ||
| ARGLOG Carmack t 20.4 pos '1587.7 1303.1 200.0' spd 320.4 yaw 214.5 mode 0 st 0 gl 0 hp 76 frg 1 | ||
| ARGLOG Carmack t 20.9 pos '1457.9 1208.3 204.0' spd 320.0 yaw 214.5 mode 0 st 0 gl 0 hp 76 frg 1 | ||
| ARGEVT Carmack swim | ||
| ARGLOG Carmack t 21.4 pos '1321.9 1113.4 147.5' spd 316.3 yaw 214.5 mode 0 st 0 gl 0 hp 76 frg 1 | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| ARGEVT Carmack swim | ||
| Completed demo | ||
| Sending clc_disconnect | ||
| Shutting down SDL sound |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2290,6 +2290,20 @@ void() Argus_Die = | |
| self.takedamage = DAMAGE_NO; | ||
| }; | ||
|
|
||
| // IN CO-OP EVERY PLAYER IS ON THE SAME SIDE. Monsters do not carry | ||
| // classname "player", so anything this returns TRUE for is a | ||
| // teammate, human or bot. The masquerade cuts both ways: it is what | ||
| // lets bots use the stock item and door code, and it is also why | ||
| // every "find a player" scan in here has to be told about allies. | ||
| float(entity e) Argus_IsAlly = | ||
| { | ||
| if (coop <= 0) | ||
| return FALSE; | ||
| if (e == world || e == self) | ||
| return FALSE; | ||
| return (e.classname == "player"); | ||
| }; | ||
|
|
||
| void(entity attacker, float dmg) Argus_Pain = | ||
| { | ||
| // flinch: tracking restarts, aim error widens for a moment | ||
|
|
@@ -2301,8 +2315,15 @@ void(entity attacker, float dmg) Argus_Pain = | |
| self.flags = self.flags - (self.flags & FL_ONGROUND); | ||
| // fight back if hit from behind by someone new: any live player, | ||
| // human or bot (world excluded: lava damage is not an attacker) | ||
| // ...but never against a team mate. Shane shot Carmack on e1m2, | ||
| // this branch made him the enemy, and Carmack shot him dead | ||
| // eighteen seconds into the session. Both took exactly 24 damage | ||
| // within a second of each other, which is what an exchange looks | ||
| // like. In co-op the only attacker that can reach this test IS a | ||
| // team mate, because monsters are not classname "player". | ||
| if (attacker.classname == "player" && attacker.health > 0 | ||
| && attacker != self && self.ar_enemy == world) | ||
| && attacker != self && self.ar_enemy == world | ||
| && !Argus_IsAlly (attacker)) | ||
| { | ||
| self.ar_enemy = attacker; | ||
| self.ar_seen = time; | ||
|
|
@@ -4144,11 +4165,25 @@ float() Argus_Combat = | |
| self.v_angle = vectoangles (aimpt - (self.origin + '0 0 22')); | ||
| self.v_angle_x = 0 - self.v_angle_x; // QC pitch convention | ||
| self.v_angle_y = self.angles_y; | ||
| self.button0 = 1; | ||
| if (time > self.attack_finished) | ||
| // HOLD FIRE THROUGH A TEAM MATE. Not targeting them is not | ||
| // enough: the first e1m2 death was a bot with a monster for an | ||
| // enemy, firing at its last known position during the | ||
| // sight-loss hold while Shane crossed the line. Two shotgun | ||
| // hits, and the kill credited to Carmack. One trace along the | ||
| // shot we are about to take, and if a team mate is what it | ||
| // reaches, wait. Splash is not covered here: a rocket landing | ||
| // beside a team mate still hurts them. | ||
| traceline (self.origin + '0 0 22', aimpt, FALSE, self); | ||
| if (Argus_IsAlly (trace_ent)) | ||
|
Comment on lines
+4176
to
+4177
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Account for the weapon's firing envelope instead of checking only one center ray. Useful? React with 👍 / 👎. |
||
| self.button0 = 0; | ||
| else | ||
| { | ||
| SuperDamageSound (); | ||
| W_Attack (); | ||
| self.button0 = 1; | ||
| if (time > self.attack_finished) | ||
| { | ||
| SuperDamageSound (); | ||
| W_Attack (); | ||
| } | ||
| } | ||
| } | ||
| else | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Trace along
self.v_anglerather than directly towardaimpt. The preceding code overwritesself.v_angle_ywithself.angles_y, and the trigger permits that yaw to differ from the desired aim by up to 12 degrees, while bot weapons such asW_FireShotgunfire usingself.v_angle. During normal aim convergence, a teammate can therefore be directly in the actual firing line while this trace follows a different line and allows the shot, leaving the co-op team-kill regression unfixed.Useful? React with 👍 / 👎.