Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Recommended Posts

j4rio said:

Revenant takes full ssg shot without flicking.

Looks like it happened to me as well, but it was not the first time, so did I just miss? Plays back with PG-RAW-X.WAD / PG-RAW.WAD (Perdition's Gate).

pg15uvm-shootthrurev.zip

Share this post


Link to post

I wonder, does somebody ever recorded a non-TAS demo of killing cyberdemon with chainsaw or fist (without Berserk power-up)?

Share this post


Link to post

There's a spot in one very old map (it's in one of the WADPAK compilations, I think) where you can saw off the cybe's leg at zero risk to yourself. Quite boring, but the place is short of ammo, so...

Share this post


Link to post
cybermind said:

I wonder, does somebody ever recorded a non-TAS demo of killing cyberdemon with chainsaw or fist (without Berserk power-up)?

Check out E2M8 tyson compet-n record for one of vanilla examples. The -fast version is quite hilarious too, but that one is not what you asked for though :>

Share this post


Link to post

Cool, I've really enjoyed that demo :) How about chainsaw one? I think it is much harder to beat because of chainsaw "pull effect".

Share this post


Link to post
cybermind said:

Cool, I've really enjoyed that demo :) How about chainsaw one? I think it is much harder to beat because of chainsaw "pull effect".


Which feels surprisingly similar to a real chainsaw caught in wet wood.

Share this post


Link to post
Azuruish said:

Weird. That chainguy ID (186) got only 20 points from your rocket. What kind of rocket is it?




From a cursory inspection, it looks like the chaingunner took 20 damage from the rocket, but then through some combination of being in a different sector / blockmap block, took no splash damage.

Share this post


Link to post
Linguica said:

That amount of damage isn't possible in vanilla, right?

100% sure max is 245 HP, in Boom I never knew, I had 255 HP recorded, so I believed this to be highest unless shown otherwise.

This thread has some reference links.

Edit: shock's demo: -skipsec 68 -trace_givendamage 0 -trace_thingshealth 29

Share this post


Link to post

This is a scary discovery for TAS perfectionists. Imagine trying to kill every hell knight like that...

Share this post


Link to post
4shockblast said:

First shot did 260 (!) damage, second shot did 240

vdgg said:

in Boom I never knew, I had 255 HP recorded, I believed this to be highest unless shown otherwise.


SSG damage depends on RNG state on entry to A_FireShotgun2. For each pellet that hits a shootable thing, I observed P_Random being called 10 times (damage, angle spread x2, slope spread x2 in A_FireShotgun2; then during P_LineAttack, P_SpawnBlood x4 (one in P_SpawnMobj), and P_DamageMobj pain chance). Using this as a model I calculated the damage obtained from every possible starting RNG state as follows: for 20 pellets, sum damage given by 5*(((state>>20)&255)%3+1), then update state to state*1664525+221297+2*49 10 times. 49 is the index of the RNG class pr_all_in_one, the other numbers are hard-coded constants in m_random.c. Note P_Random right shifts by 20 which means bits 28-31 of the state do not contribute to the return value, meaning only 2^28 possible states need consideration, not 2^32 as one might expect.

Sadly I found no RNG state that gave the full 300 damage. So much for the legend of the one-shot revenant.

The best I could find was a single state 244913131 which generated a damage of 295. To demonstrate this I made a small map and built a demo. Move to pick up then fire on tic 44 after weapon switch. A_FireShotgun2 is called at tic 47. There are six P_Random calls before that: 3 mobj spawns, 1 for monster tic randomization, 2 for the monster waking up on tic 46. (Fortunate, otherwise the monster wakes up when shot, giving 12 P_Random calls, for the first pellet, not 10, which breaks the model!) I "rewound" the RNG state to 67171205, six P_Random calls before 244913131. Lastly I found a seed, 45423646, to generate this state. (Fortunate again that the needed state was odd - initial RNG state is (rngseed*2+1)*69069^50, which cannot be even). This goes in the demo header.



Watch with "-trace_givendamage 0 -trace_thingshealth 1" in PrBoom+.

Share this post


Link to post

Impressive shot, RjY! So much blood... So much force that the revenant seems to slide a mile...

What about BFG? I suppose there is no state that produces 4280 damage?

Can your model be incorporated into a tool that predicts the damage for each tic in real-time or maybe even a bot that automatically searches high damage shots for TASers?

Share this post


Link to post
Aqfaq said:

What about BFG? I suppose there is no state that produces 4280 damage?


I don't know. I imagine a model for A_BFGSpray could be made as for A_Fireshotgun2, as it is a case of counting P_Random calls during the main execution of one function, making similar assumptions about every tracer hitting the target and so forth. Thus one might find RNG states that lead to high damage sprays. Then possibly a demo could be constructed although I expect it would be a lot trickier than the SSG case. I might look into this one day although it will not be any time soon.

Aqfaq said:

Can your model be incorporated into a tool that predicts the damage for each tic in real-time or maybe even a bot that automatically searches high damage shots for TASers?


Possibly but I am not minded to try. I think it would be hard to reliably predict SSG damage ahead of time. Many things can go wrong. For example, when you attack, the weapon does not fire for three more tics. In that time it's most likely some monster would call P_Random and throw off the result. We also have to assume that all 20 pellets hit, because a single miss will also throw off the entire calculation, there is one fewer P_Random call in that case (the one for pain chance in P_DamageMobj). So the target must not be crossing a blockmap square boundary. And so on.

For a tool, the simplest / most feasible idea I can think of is, given the current RNG state (which you obtain from the engine somehow), calculate the next few dozen RNG states and the predicted damage if A_FireShotgun2 was called with that state (assuming all pellets hit). Then you tear your hair out manipulating the game into calling P_Random the exact number of times so that A_FireShotgun2 is called with the right state. Not something I'm going to work on though, sorry.

Share this post


Link to post

Really nice 295dmg shot. I wonder what's the minimum SSG shot damage then. I'm guessing demon could survive it quite easy but is it less than 110 damage?

Share this post


Link to post

Edit: 12 calls for the first pellet only, 10 for the other 19 (105 damage):

Spoiler

105 1
110 14
115 100
120 718
125 3243
130 12492
135 40743
140 117540
145 303101
150 701378
155 1474291
160 2824134
165 4962384
170 8036222
175 12007122
180 16618546
185 21323925
190 25411459
195 28153044
200 29020400
205 27828987
210 24815251
215 20590378
220 15853773
225 11330361
230 7492150
235 4575810
240 2571771
245 1325268
250 623715
255 265795
260 102357
265 35019
270 10618
275 2655
280 591
285 86
290 13
295 1

(Wrong model, >10 calls for *every* pellet)

I've changed it to use 12 calls instead of 10.
Spoiler

100 1
105 5
110 18
115 128
120 745
125 3219
130 12419
135 41027
140 117216
145 301695
150 701768
155 1474814
160 2826138
165 4963061
170 8032588
175 12004905
180 16618493
185 21328679
190 25409035
195 28155776
200 29019618
205 27836549
210 24816315
215 20586288
220 15848743
225 11327361
230 7490345
235 4575527
240 2573843
245 1327385
250 624958
255 266354
260 101758
265 34923
270 10415
275 2615
280 599
285 117
290 13

13 calls (three 100 damage states):
Spoiler

100 3
105 10
110 32
115 175
120 733
125 3411
130 12450
135 40210
140 117658
145 301558
150 700286
155 1472585
160 2824826
165 4967016
170 8036240
175 12010430
180 16616229
185 21327330
190 25412779
195 28146889
200 29014760
205 27833205
210 24821032
215 20586431
220 15855331
225 11323652
230 7496517
235 4576935
240 2569635
245 1325359
250 622823
255 267118
260 102068
265 35362
270 10706
275 2905
280 640
285 115
290 10
295 2

14 calls (eight 300 damage states!):
Spoiler

105 1
110 21
115 123
120 770
125 3264
130 12602
135 40938
140 118417
145 302913
150 701334
155 1470167
160 2822358
165 4965905
170 8037192
175 12005711
180 16614807
185 21325559
190 25419452
195 28161542
200 29020368
205 27816607
210 24813889
215 20577637
220 15865912
225 11334691
230 7494822
235 4571035
240 2569913
245 1324288
250 625034
255 266776
260 102754
265 34845
270 10447
275 2592
280 640
285 102
290 16
295 4
300 8

Share this post


Link to post

Numeric breakdown:

Rocket 1: 252 dmg to HK t. 163

Rocket 2: 259 dmg to HK t. 163

Rocket 3: 269 dmg to HK t. 164, 40 dmg to HK t. 161

Rocket 4: 275 dmg to HK t. 164, 49 dmg to HK t. 161

Rocket 5: 252 dmg to HK t. 161

Rocket 6: 256 dmg to HK t. 161

 

Pretty sexy numbers and probably impossible for vanilla, but keep in mind this is complevel 9 again. Different distribution, different values. For those interested, the command you want is -trace_thingshealth 161 163 164

Share this post


Link to post
12 hours ago, Killer5 said:

Unfortunately the demo is gone

How annoying, this may have been a particularly rare event, likely requiring a combination of a series of bad damage rolls and/or the effect of a hyperdetailed bumpy floor.

 

I ran some tests in a circle full of demons and a lot of rockets. It seems that the splash damage felt by a demon that was directly hit by a rocket is nearly always >= 100 (only 3 below out of 216). Given that, it is highly likely two direct rocket hits (at least 20 damage each) and ensuing splash damages (at least 100 each) will total at least 240 which is more than enough to kill a monster with 150 starting health.

 

Thus it is reasonable to conject that at least one (combining with two very low damage rolls) or possibly both (!) of the splash damages from the first two rockets weren't received. Most likely due to Barrel explosions which do no damage aka through some combination of being in a different sector / blockmap block, the chaingunner took no splash damage (can rule out reject table oddities, as the map has no reject table). It's a real shame there's no demo that could be analysed to find out what really happened.

Share this post


Link to post

3 shotgunners killed 1 in shotgun blast, all of them full health. Of course it's probably not that difficult to line up 3 shotgunners and kill them, but believe me when I say I've played underhalls quite a few times and I've never seen anything like this. Happens about 12 seconds into the second map, though the screenshot shows what happened.

3-sg.jpg

3-sg.zip

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×