Can we change the way bursts work?

JimTheDinosaur

Vault Dweller
Modder
To me, this is more or less the holy grail of Fallout modding, and I'm surprised there's been so little discussion about it (at least, if my checking just about every single thread with the word "burst" in it is any indication). Bursts are simultaneously the most amusing part of the game, and the most elusive part modding-wise. I mean, how cool would it be to be able to make it not be useless over greater range, or to be able to override the only 1/3rd of bullets can hit the target rule (at least, if there even is such a rule, I'm not even sure), or to be able to adjust the cone width for different weapons. I'll just lay out some things below, which might have already been gone through ages ago in some carefully hidden part of the forum:

Anyway, what I know is possible is crudely mapping where every critter is on the map: the critter listing feature in Sfall helpfully always scrolls through the critters in the same order, so it's easy to figure out the tile number for each critter and the distance between them.

The problem is that this info doesn't seem precise enough for making a cone; after all, I can tell I'm shooting at a target 6 hexes away and that there's another critter 2 hexes away, but is this critter safely behind me or in the bullet's path? The key would seem to be the "tile_num_in_direction" function, which at it most basic would allow you to calculate if anyone is in the bullet path to the target, and combined with a bit more info, say, the hex to the "right" of the target, and to the "left" of the target, allow you to make a cone.

Of course, a lot of this is already speculation, and what you would do with this info is even more unclear. You would think that you would use the hs_afterhitroll hook script, because you can decide a new target for every bullet there, but of course that one only gets run once with every burst (the game doesn't feel like calculating for every bullet whether it's a hit, miss or critical). So I assume Timeslip would have to supply us with some tool to allow us to manipulate which bullets hit, and who they hit. Did anyone ever ask him about this?
 
The feeling when I first gunned down some random raider with a 10mm with burst, just saw his entire body explode apart. It's strange how the death animations in Fallout 2 greatly beat the newer technology presented in Fallout 3/NV.
 
NovaRain said:
Actually it's 1/6 of the bullets at minimum, here's the explanation how burst attack works:
http://www.nma-fallout.com/forum/viewtopic.php?p=676295#676295

I've asked Timeslip about if there's any way to change the proportions of the bullets, but he didn't reply yet.

Thanks for always helping me out, chief :D.

I completely missed that thread; I did read Atom's "3-stream" explanation somewhere, but as you can see I just completely misremembered it.

Adjusting the proportions would be a great step towards making bursts more viable outside of specific (close quarters/unarmored opponents) scenarios. It should probably be 2/3rd in the center stream and only 1/6th per side stream or something.

The next (already unrealistic) step would be to have the size of the center stream determined by skill. But the best (and wildly unrealistic) thing would be to just nix the whole stream nonsense and calculate every bullet seperately: big to hit penalty, but each bullet can hit a bodypart, can have a critical hit (though probably at another penalty), the whole shebang. That would be awesome.
 
The most obvious way of changing the way bursts work would be through hook scripts, and a lot of these I understand in the context of bursts (afterhitroll gets called once, so does , I assume, itemdamage; tohit gets called multiple times, so does, I assume, combatdamage). But there's one thing I don't understand: in the description for hs_combatdamage it says the following:

hs_combatdamage.int

Runs whenever the target takes damage in combat. Does not run for misses, or on extra targets when bursting.

critter arg1 - The target
critter arg2 - The attacker
int arg3 - The amount of damage to the target
int arg4 - The amount of damage to the attacker
int arg5 - The special effect flags for the target
int arg6 - The special effect flags for the attacker
int arg7 - The weapon used in the attack
int arg8 - The bodypart that was struck

int ret1 - The damage to the target
int ret1 - The damage to the attacker
int ret1 - The special effect flags for the target
int ret1 - The special effect flags for the attacker

How can this be? I always assumed combatdamage was the place where the game finds out what kind of armor, etc. a target has, but if additional burst targets don't get checked there, how does their damage get decided?
 
Back
Top