» Sat Nov 21, 2009 1:51 am
no, you see, the point is they NEVER leave CAUTION mode, they constantly stay alerted as long as the dead body is there. If you leave the cell, AI evaluation for the enemies in the cell stops, you come back, they go into alert mode again, it's really ridiculous, like I sneak-killed one of the powder gangers in Goodsprings and his friends are running around the dead body in CONSTANT INFINITE ALERT mode, constantly mumbling such crap like "must be jumpy again", they calm down eventually, but then, here goes, they see the dead body again and BAMM! immediately enter ALERT mode again, I can't even hit the VATS key quickly enough. And obviously, I can't sneak attack anybody who's alerted, cause no increased damage this way. So it totally breaks the game. I checked what particular enemies the AI considers and it turns out it will only consider enemies killed by the player. Once an enemy of the player faction detects a corpse flagged as "killed by player faction" (ActionRef.IsKiller player), it will enter alert mode. It doesn't matter to the game if the killed creature is (or rather was) a member of their faction or not, if it's player-killed, it means player is close, means "enter alert mode". That's the game logic here.
Ok, so I tried different approaches, there are a couple of settings in the game that reduce the amount of corpses in the area before the game starts despawning them. I set all values to 1 and now the game engine heartbeat despawns all enemies after a short while, which means the damn AI finally shuts its f... up and calms down so I an sneak attack again. This crap never happened in Fallout 3, don't know why Obsidian would add something that totally breaks the sneak approach to the game. So this fixes the damn problem, but this causes all kinds of other problems, like looting the bodies, obviously. Well, as I said, I am adding scripts to enemies that automatically move their entire inventory to the player upon death. But really, most enemies are just carrying worthless crap, I wouldn't cry if it despawned along with enemies before I can loot it.
The real problem here is that humanoid enemies cannot pick up weapons, when the game transfers inventory to me upon enemy death, for some reason, their crap weapons are not transferred, hell knows why, don't really care, is actually a good thing, I want the weapons to stay on the dead enemies so their allies can pick them up, but the obviousl problem is that the engine despawns them too quickly along with their weapons, so AI controlled NPCs don't have enough time to loot their bodies. Like at Goodsprings, I changed the Goodsprings settler faction to be neutral with the Powder gang, I wanted to kill all enemies myself. So I sneak up on them, drug myself to the brim, sneak shoot 4 enemies to the head, then run out of action points. So there are 2 melee attackers left, I chew a turbo and run away to regen some APs for final shots. Usually, the two remaining enemies would now run to their dead allies to pick up some dynamite and ranged weapons, but BAMM! right after the enemies' inventory is auto-transferred to me, they despawn along with their primary weapons (which, as I said, are not transferred to me for some technical reason). So the idiots run to their allies, try to pick up their weapons, but too late! Funny, actually, but not what I want. This crap is hard-coded and only Obsidian can fix this. Come on, Obsidian, it's not normal if enemies stay alerted forever! In vanilla game, the dead bodies will never despawn until the amount of corpses reaches a critical number, so that means constant alert mode.
There are also probs with enemies that have the plot flag set on them, don't despawn properly, against, constant CAUTION mode on their allies, I'd have to rewrite every single script in the toolset to properly fix all this mess, damn, Obsidian, fix this!