View Issue Details

IDProjectCategoryView StatusLast Update
0003388The Dark ModDef / Setuppublic29.04.2013 01:13
ReporterSpringheel Assigned Tograyman  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status resolvedResolutionfixed 
Product VersionTDM 2.00 
Target VersionTDM 2.00 
Summary0003388: Issue with Transaction scripted scene *spoilers*
Description



In the scripted bookstore scene, Grenefeld does not die in 1.09 like he should.

"The Grenefeld death sequence is the most horrible contraption of duct-tape and glue I've ever created. It is the ultimate map breakage testmark, I suppose.

Troubleshooting that will be one-way ticket to hell. Hopefully the cause for this is something ultra-simple.

There is a book on the table in front of Grenefeld. It is called "grenefeld_slay2." This contains some S&R that kills him.
The book is targeted by a trigger_once called "grenefeld_kill2." It should be possible to deduce if this is never activated: do the objectives tick off? "
TagsNo tags attached.
Attached Files
victim.map (6,327 bytes)

Activities

Springheel

Springheel

28.04.2013 00:18

administrator   ~0005321

Another interesting moment...grenefeld didn't die, but his glasses went flying off and hit the revenant, which caused her to turn and look at them. The sequence never continued after that and I had to quite from the console.
sotha_sil

sotha_sil

28.04.2013 05:21

reporter   ~0005322

Does the cutscene exit properly so that the player gets to fight LQ?

If the "Grenefeld is dead" objective ticks off, it means that everything is triggered properly, but S&R command is not killing Grenefeld (G). The command is on a book on the table in front of G. Book is named "grenefeld_slay2."

If the glasses are detached properly, it means the book IS triggered as it should be. The same book detaches the glasses and kills G.

Based on this analysis, the S&R command kill is broken somehow.

The glasses will probably not be a problem if G dies like he should. The glasses are bound to G. When he is killed the glasses are unbound. If they are unbound on a living AI, they probably get more kick than if unbound on a collapsing ragdoll. Fixing G death fixes "glasses rocket-firing" issue, I believe.
sotha_sil

sotha_sil

28.04.2013 05:27

reporter   ~0005323

Attached a testmap "victim.map."

Check if the AI in front of you dies if you pull the lever.

Lever targets the panel, which contains S&R command that should kill the AI, analogously to Transaction G death scene.

If this S&R works, but Transaction S&R does not, then we have plunged into a mysterious situation.
Springheel

Springheel

28.04.2013 12:00

administrator   ~0005324

The rest of the sequence does finish as normal (I only saw the rev get hit with the glasses once in about 10 tries).

I'll give the map a test today, thanks.
Springheel

Springheel

28.04.2013 12:16

administrator   ~0005325

Tested the map. Flipping the switch did not kill the guard. Although interestingly, he reacted as if he heard a noise each time I pulled it down.

So which S/R should be firing?
sotha_sil

sotha_sil

28.04.2013 12:37

reporter   ~0005326

Okay, we have now narrowed it down to S&R breakage. Good.

The settings on the switch plate are:
// entity 4
{
"classname" "func_static"
"name" "func_static_19"
"model" "models/darkmod/mechanical/switches/switch_flip_backplate.ase"
"origin" "-28 61.375 6.625"
"sr_class_1" "R"
"sr_type_1" "STIM_TRIGGER"
"sr_state_1" "1"
"sr_effect_1_1" "effect_kill"
"sr_effect_1_1_arg1" "victim"
}

It is an ordinary kill effect S&R. It works in TDM 1.08. Looks like "effect_kill" does not work anymore in the developer version. How it is so, I have no clue.

It may be very critical: what if other responses are broken as well? Many features in other maps could break too.
grayman

grayman

28.04.2013 15:04

viewer   ~0005327

When I pull the switch with the latest TDM SVN, the guard dies, just like in 1.08.

I verified that the response effect script is receiving the request to kill the guard, and is calling his damage() routine to do the job.

I don't know why mine works and yours doesn't.

I checked in a new windows DLL, on the off chance that my DLL is different than what's in SVN (it shouldn't be).

Please upgrade to (at least) SVN release 13432 and test with that.
Springheel

Springheel

28.04.2013 23:23

administrator   ~0005328

Just updated. No change; guard doesn't die when switch is pulled.
grayman

grayman

28.04.2013 23:25

viewer   ~0005329

SH: Are you using TDM standalone, or with D3 present?
grayman

grayman

28.04.2013 23:50

viewer   ~0005330

effect_kill relies on "damage_suicide" and I can't find a definition for that in darkmod/def/.

It appears in base/def/, though, which is where 1.08 must get it from.
Springheel

Springheel

28.04.2013 23:58

administrator   ~0005331

I do all my testing standalone now. I'll copy over damage_suicide and see if that works.
Springheel

Springheel

29.04.2013 00:04

administrator   ~0005332

Ok, after copying over the suicide entity, the guard dies when I pull the switch. Nice to solve this, but it makes me worried about how many other D3 entities that screwthings up might be missing...there was no console warning about that missing entity.
Springheel

Springheel

29.04.2013 00:09

administrator   ~0005333

Last edited: 29.04.2013 00:09

Confirmed that the Transaction sequence is now working normally.

grayman

grayman

29.04.2013 01:13

viewer   ~0005334

I dug into this a bit deeper.

The code says that if damage entity doesn't exist, abort.

However, when it's looking to see if the entity exists, if it doesn't, it creates a dummy. So the abort code path is never run, so I'm not sure why it's even there. The dummy, of course, has damage = 0, which is why death doesn't occur.

Since we need to know for standalone purposes when something doesn't exist, I'm going to change the code to allow the crash, and see if the console message provided at crash time is useful.

If it's readable, and identifies the missing entity, I suggest we use that in the lead-up to 2.00.

Issue History

Date Modified Username Field Change
28.04.2013 00:07 Springheel New Issue
28.04.2013 00:18 Springheel Note Added: 0005321
28.04.2013 05:21 sotha_sil Note Added: 0005322
28.04.2013 05:24 sotha_sil File Added: victim.map
28.04.2013 05:27 sotha_sil Note Added: 0005323
28.04.2013 12:00 Springheel Note Added: 0005324
28.04.2013 12:16 Springheel Note Added: 0005325
28.04.2013 12:37 sotha_sil Note Added: 0005326
28.04.2013 14:46 grayman Assigned To => grayman
28.04.2013 14:46 grayman Status new => assigned
28.04.2013 15:04 grayman Note Added: 0005327
28.04.2013 23:23 Springheel Note Added: 0005328
28.04.2013 23:25 grayman Note Added: 0005329
28.04.2013 23:50 grayman Note Added: 0005330
28.04.2013 23:58 Springheel Note Added: 0005331
29.04.2013 00:04 Springheel Note Added: 0005332
29.04.2013 00:09 Springheel Note Added: 0005333
29.04.2013 00:09 Springheel Status assigned => resolved
29.04.2013 00:09 Springheel Resolution open => fixed
29.04.2013 00:09 Springheel Note Edited: 0005333
29.04.2013 01:13 grayman Note Added: 0005334