View Issue Details

IDProjectCategoryView StatusLast Update
0002352The Dark ModCodingpublic03.06.2011 03:56
ReporterSpringheel Assigned Totels  
PrioritynormalSeveritynormalReproducibilityalways
Status closedResolutionfixed 
Product VersionTDM 1.02 
Target VersionTDM 1.03Fixed in VersionTDM 1.03 
Summary0002352: Arrows stick into player head
DescriptionA few people have reported arrows sticking into them. They can then frob the arrow and use it. I've seen this myself at least once in NHAT.


This spawnarg in the player def is supposed to prevent that:
"arrowsticking_disabled" "1"

TagsNo tags attached.

Activities

solarsplace

solarsplace

08.09.2010 17:52

reporter   ~0003184

Hi

I am able to reproduce the issue in the RTTC map.

Uploaded screen shot.

Almost 100% convinced issue is not map related and have a fair idea what the problem is.

Asking Tels as to whether you would like me to proceed and investigate further.

Thanks
solarsplace

solarsplace

08.09.2010 17:52

reporter  

shot00026.jpg (299,959 bytes)
solarsplace

solarsplace

11.09.2010 11:15

reporter   ~0003185

Hi

Fault identified.

PM'd Tels about some fixes for it.
solarsplace

solarsplace

12.09.2010 08:21

reporter   ~0003187

The problem is in the this file: tdm_base01/tdm_weapon_arrow_result_base.script

Much of the code is dedicated to deciding to what entities the arrow result should bind to.

The general rule seems to be (with regard to you the player) that no arrow should bind to you when health > 0 (I.e alive).

The problem seems to be cause at line 82 in the script:

ai bindMasterAI = struckEnt.getBindMaster();

When an entitiy that is bound to the player such as the players head is struck by the arror projectile the above line only partly
seems to work.

struckEnt.getBindMaster() returns the player1 entitiy as one would hope.

But the cast of the player entitiy to a type of ai does not appear to work.

This next statement bindMasterAI always = false and the condition is never entered. Therefore arrow results are bound to the players head.

if (bindMasterAI)
{
    if (bindMasterAI.getHealth() > 0)
    {
        // Don't allow stuck arrows on living AI's attachments
        allowSpawnObj = false;
    }
}

A suggested quick way to resulove this issue would be to test if struckEnt.getBindMaster() is player1, and if player1 health > 0 then allowSpawnObj = false

Thanks
tels

tels

30.09.2010 10:22

reporter   ~0003212

Last edited: 30.09.2010 10:42

I haven't tested it, but the condition failing makes sense if the player isn't considered to be an AI.

I have added an experimental patch that checks specifically for the player with revision #11087.

tels

tels

30.09.2010 19:17

reporter   ~0003214

Needs testing to confirm it really works now.

Issue History

Date Modified Username Field Change
03.09.2010 23:50 Springheel New Issue
08.09.2010 17:52 solarsplace Note Added: 0003184
08.09.2010 17:52 solarsplace File Added: shot00026.jpg
11.09.2010 11:15 solarsplace Note Added: 0003185
12.09.2010 08:21 solarsplace Note Added: 0003187
30.09.2010 10:22 tels Note Added: 0003212
30.09.2010 10:27 tels Assigned To => tels
30.09.2010 10:27 tels Reproducibility have not tried => always
30.09.2010 10:27 tels Status new => assigned
30.09.2010 10:27 tels Resolution open => fixed
30.09.2010 10:27 tels Product Version => TDM 1.02
30.09.2010 10:27 tels Fixed in Version => TDM 1.03
30.09.2010 10:27 tels Target Version => TDM 1.03
30.09.2010 10:42 tels Note Edited: 0003212
30.09.2010 10:42 tels Summary Arrows stick into player => Arrows stick into player head
30.09.2010 19:17 tels Note Added: 0003214
30.09.2010 19:17 tels Status assigned => resolved
03.06.2011 03:56 greebo Status resolved => closed