Fallout 2 Restoration Project 2.2 - OPEN BETA (ie NOT FINAL)

Status
Not open for further replies.
I based my new mod on 2.1.2b patch and people report NPC weird behavior bugs (companions get lost, or leave all of a sudden).

So this kind of leaves me wondering when 2.2 will come out.

I personally suffered gamecrashes when trying to fry several enemies with flamethrower. This happens when there's a group of enemies (non-humans). Is this known?
 
Mordor_XP said:
I based my new mod on 2.1.2b patch and people report NPC weird behavior bugs (companions get lost, or leave all of a sudden).
I haven't seen any reports of that nature in 2.1.2b or 2.2 beta. Perhaps the NPC base proto files, which need to be part of the dat file, are the cause here. Either way, sounds like issues with your mod unless you can also reproduce it with just the RP. But if you have reports that you want to send my way, I'll take a look.

Mordor_XP said:
I personally suffered gamecrashes when trying to fry several enemies with flamethrower. This happens when there's a group of enemies (non-humans). Is this known?
I think I recall running into this when I first played Fallout 2 long ago. Again, it's all about consistently seeing crashes or seeing a pattern to them. There are a few ways to corrupt your game due to engine bugs and I'm sure there are some that won't be noticed until sometime later.
 
btw, killap, you should consider adding these to the upcoming version:

http://www.nma-fallout.com/forum/viewtopic.php?t=62893 (replace the default shitty random-value countdown display with a clean one that displays once every five seconds)

http://www.nma-fallout.com/forum/viewtopic.php?t=62903 (using .Pixote.'s 120% Mutant Death Anims with some tweaks, Power Armor and Super Mutants have separate and properly-sized death animations in relation to their body size)

The timer countdown one would take a little while to customize the script for your needs, but implementing the proper-sized death animation should only take a couple minutes. (download, paste files, edit some text)
 
killap said:
I think I recall running into this when I first played Fallout 2 long ago. Again, it's all about consistently seeing crashes or seeing a pattern to them. There are a few ways to corrupt your game due to engine bugs and I'm sure there are some that won't be noticed until sometime later.

Editing .pro files (which my mod is all about at the moment) during playing and not starting new game after each modification. It's caued by this?
 
The cure is to always enter combat for a round right after the critter dies from the explosive.
Thank You! But I would never get this solution by myself. It is a pity that the bug isn't solvable.
 
Skynet said:
Nibiru said:
hi
i liked the kaga encounter in the exit of arroyo, i think this was a waste to remove it

I think removal makes sense. He was banished from the village, so why let him hang around.

the banishment starts at the bridge i think, and the encounter is at hundred of meters, there's plenty of explanation why he would still approach arroyo

i just liked his speech and the gloomy atmosphere, it was very fallout to me
 
Lavo said:
Blacksun said:
and by the way, it would be great to add a good miria mod as install option!

Yes, please!
Miria mod is really well done and it would be nice to have it as an optional install in RP!


Anyway, big thanks to everyone involved in making this awesome mod and its components!
I know this is probably the last big update for this mod, but I hope you will still make some bugsquishes (if there are any bugs left) or add new graphics/animations (if someone makes them - like the mohawk girl) to it from time to time.

Hi there! I played the previous RP patches. Really great work!! Can't be enough appreciated.
Deplorably, i never got it to work with Miria Mode. Are they compatible with each other anyway? The mere thought of Miria or Davin actually becoming a viable choice as party member is thrilling. Would be really awesome to make that mode an install option for rp 2.2.
 
One more thing

I forgot something from my last post for the resto project. The fallout 2 hint book that you get at the end of the game, if you get it by any other means early in game (by using a character editor, or klamall ext.) it does not work, it comes up with "That does nothing." I have managed to get it to work from the Klamall cheat but only in the modified zone upon leaving if I did not use it, the book becomes broken again. I have NOT had a chance to get it 'normally' by beating the game to see if it still works properly, someone should check it though cause if it's broken throughout the game that would be bad. Sorry for the late reply and good luck, thank you for all the effort and time.
 
Sduibek said:
Heh.

What are the script commands to begin and end combat, anyway?


EDIT: Ohhhhhhhh I think I just figured out why it crashes-- If an explosive goes off and the critter doesn't die, they of course attack you, as the vast majority of critters have a damage_proc function with the attack() code within it. (And maybe it runs even if that code isn't there, I haven't bothered to check)

So if you kill them, what it probably does is run the damage_proc code anyway even though it was a one-hit-kill, so when you exit the map and it tries to save, it saves Critter as being in state Dead and Attacking Player. Which makes the savegame routine rather unhappy :lol: It's probably trying to initiate combat or something, but Critter is dead, hence the crash.
I don't think it's quite that simple to be honest. I did look into it before (testing in-game, not much deeper than that). But I thought it might be worth repeating some info in case it helps someone else.

If you hang around on the map waiting for the explosion the game will crash too. Leaving the map just triggers the explosion and because of the map transition it doesn't crash but instead corrupts the map you just left.
The bug does not happen on maps you have loaded from a savegame, only when you enter a map while playing are affected.
So saving and loading your game before planting the explosives will prevent the bug.
It's also enough to simply start combat mode and exit it before planting the explosives to prevent it.
If the bug do happen the simple fix, like killap mentioned, is to start/exit combat mode on the map you arrived to (won't work on any other map).
EDIT: Someone has to die from the explosion for the bug to happen!

I'm pretty sure it has nothing to do with scripts as when I tried without any it still crashed. Could be something with the event timer cue perhaps, but I don't see why start/stop combat before the explosion would prevent it (or save load for that matter). Something is cleared by those actions anyway. What and where though. :shrug:

Anyway killap, I'll put the code I wrote here in case others have opinions on it. The "fix" will only run when the bug will happen so as not to be too annoying (won't run on load-game or previous combat on same map). Sure it might be confusing to see a quick start/stop combat, but it sure beats getting that crash/corrupt map.
I put the code in the object dude script but you might want to migrate it to a global script if possible.

Code:
Obj_dude_script:

variable armed_explosive;

procedure critter_p_proc
begin

   variable list_ground_items;
   variable explosive;

   If (armed_explosive == 1) then begin
      if ((obj_carrying_pid_obj(self_obj, 206)) or (obj_carrying_pid_obj(self_obj, 209))) then begin
         armed_explosive := 2;
         attack_complex(dude_obj, 0, 1, 0, 0, 30000, 0, 0);
      end
      else begin
         list_ground_items:=list_begin(1);      //LIST_GROUNDITEMS
         while(list_ground_items != 0) do begin
            explosive:=list_next(list_ground_items);
            if (explosive) then begin
               if(not(combat_is_initialized)) and ((obj_pid(explosive) == 206) or (obj_pid(explosive) == 209)) then begin
                  armed_explosive := 2;
                  attack_complex(dude_obj, 0, 1, 0, 0, 30000, 0, 0);
               end
            end
            else begin
               list_end(list_ground_items);
               list_ground_items:=0;
            end
         end
      end
   end
   else begin

procedure map_enter_p_proc
begin
        armed_explosive := 1;
end

procedure combat_p_proc
begin
   if (armed_explosive > 0) then begin
      if (armed_explosive == 2) then begin
         terminate_combat;
      end
      armed_explosive := 0;
   end
   else begin

Trokanis said:
I forgot something from my last post for the resto project. The fallout 2 hint book that you get at the end of the game, if you get it by any other means early in game (by using a character editor, or klamall ext.) it does not work, it comes up with "That does nothing." I have managed to get it to work from the Klamall cheat but only in the modified zone upon leaving if I did not use it, the book becomes broken again. I have NOT had a chance to get it 'normally' by beating the game to see if it still works properly, someone should check it though cause if it's broken throughout the game that would be bad. Sorry for the late reply and good luck, thank you for all the effort and time.
The hint book needs to have a script attached to it, something that will not happen when you add it into your inventory with a save editor. You'll have to add it to a map with the Fallout Mapper for it to work.
 
@Darek

So I've only ever seen this bug when I plant an explosive on a critter and then leave the map. You're saying this can happen by just placing an explosive on the map and then exiting it? And even worse, just planting an explosive and waiting for it to go off? If that's that case, why are there not hundreds of reports of crashes in the Temple of Trials?

Also, in the case of the crash bug a few posts back, I was able to prevent the crash by entering combat right after planting the explosive, not by start/exit combat after arriving at my new map.
 
To be honest I'm further confused after looking at Per's guide, because he specifically mentions dropping Dynamite and then leaving the map:

Nearly Ultimate FO1 Guide said:
Set an explosive for 10-30 seconds and plant it on your victim using Steal, or if you have the right armour (i.e. Powered Armor) you can even keep the explosive in your inventory and stand next to the victim.

If any critter is harmed by the blast but doesn't die you'll enter combat mode which is usually bad.

However, you can circumvent this effect by leaving the map before the explosive goes off, or at least running pretty far away from anyone who's allied with the victim.

A clever variation of this is the concept of "satchel charges", as described by Corpse: "I found a cool way to assassinate people with explosives. If you have a Bag, just place the explosives in it, set the timer (while they are in the Bag), then drop the Bag with the explosives next to your victim and run. Kaboom! You could even do that when they are with a large group of goons and no one will notice. This also works if you place the explosives in any container (a locker or a desk etc.) near your victim."

If you're setting more than one bomb at once, make sure there's a wall or something behind the victim so they don't get thrown back by the first blast and avoid the others.
 
Hi. I Found a small bug in a quest from NCR (forgot the name of the quest) that you take caravan to Redding and then few scripted attacks happens. When I win, I leave the map and then suddenly reappear in the exact same map with the dead bodies from the previous battle. When i leave the map again the game switch to next battle normally. Sometime for some reason my PC will be in the middle of caravan cart, which mean is impossible to move him. After this occur , loading a game lead to crash and only way to return to desktop is to log of my Windows. Not heavy bug but is my responsibility to report. Other than that , no bugs.

EDIT: Ok very very small bug (not sure if this is bug at all) in NCR i buy a cigarette box, when I have a lighter and a cigarette , i can smoke (logically) but when i have 2 (yes, two lighters in my inventory) for some reason when i click on the cigarettes i see "That does nothing" message. Prolly the game engine is confused because of the two lighters ... who knows.
 
killap said:
So I've only ever seen this bug when I plant an explosive on a critter and then leave the map. You're saying this can happen by just placing an explosive on the map and then exiting it? And even worse, just planting an explosive and waiting for it to go off? If that's that case, why are there not hundreds of reports of crashes in the Temple of Trials?
Someone has to die, that's why!
Sorry, I should have mentioned that.
That's the biggest problem with my code, It can't can't tell if someone dies or not, so non-assassination use of explosives can get the start/stop combat treatment unnecessarily. But in the case of Temple of Trials, you are pretty much guaranteed to have been in combat before planting the explosives, so the code won't do the start/stop combat as it's not needed.

In theory you could add a start/stop combat function on map-enter and the explosives bug will never happen, but that would be rather annoying.
If it would be possible to check if someone dies it would be great, but I don't know how to. Then again, maybe it's already too late to run the code then.
Could always remove the part of code that checks for explosives on the ground, but then your not 100% protected from the bug.

killap said:
Also, in the case of the crash bug a few posts back, I was able to prevent the crash by entering combat right after planting the explosive, not by start/exit combat after arriving at my new map.
Not sure I understand what you are saying here, and I couldn't figure out how to download that save game (Russian page).
Was the save game before or after the explosives had been planted?
I mean entering combat before or after planting an explosive don't matter, as long as it has not detonated yet. Both will prevent a crash.
When you leave a map where you have planted a bomb, it goes off and if someone dies because of it, the game will crash when you return to the map you came from. But if you enter combat mode before returning to the map it will not crash.
You have to enter combat on the map you arrived to, you can't go to a third map and enter combat there as that will not have any effect.

Basically, if you plant an explosive and leave the map, the game adds some data about the explosion to the map you arrive to. Maybe a timer event, not sure. Something that can only be cleared from that map though, by entering combat.
I'm guessing that data only causes a crash on the map the explosives were used, because only there is it linked to some kind of action.

holder80 said:
Hi. I Found a small bug in a quest from NCR (forgot the name of the quest) that you take caravan to Redding and then few scripted attacks happens. When I win, I leave the map and then suddenly reappear in the exact same map with the dead bodies from the previous battle.
It comes from saving your game while on the caravan map. When you leave the map and have encounters left, you are returned to the same map you just left (it will be in the state it was when you saved it, so if the critters where dead, they'll still be, otherwise they'll be alive). It's also true that the game can crash when you try to load a game after this has happened.
Just load your savegame right after you have saved it and it should work properly.
It can be fixed but requires a shitload of script editing, so not sure if it's wort it.

Also, I reported the lighter issue 2 pages back. ;)
 
Darek said:
Someone has to die, that's why!
Ahh, okay.

Darek said:
killap said:
Also, in the case of the crash bug a few posts back, I was able to prevent the crash by entering combat right after planting the explosive, not by start/exit combat after arriving at my new map.
Not sure I understand what you are saying here, and I couldn't figure out how to download that save game (Russian page).
Was the save game before or after the explosives had been planted?
I mean entering combat before or after planting an explosive don't matter, as long as it has not detonated yet. Both will prevent a crash.
When you leave a map where you have planted a bomb, it goes off and if someone dies because of it, the game will crash when you return to the map you came from. But if you enter combat mode before returning to the map it will not crash.
You have to enter combat on the map you arrived to, you can't go to a third map and enter combat there as that will not have any effect.
The save game was before the bomb was planted.

What I mean is that I did the following:

1. I plant the explosive on the critter.
2. I enter/exit combat.
3. I leave the map (went to the closest exit, which is the reactor room in the save game).
4. I return to the map I was previously at.

This prevented the crash from happening. I didn't have to enter combat at the map I arrived to. In fact, the steps above was the only way I could prevent the game from crashing. Arming the explosives, entering/exiting combat, and then planting did nothing. It was only entering/exiting combat AFTER planting the explosives that prevented the crash. Entering combat upon arrival of the next map did not help.

Also, I killed the critter after setting explosives next to him and I wasn't able to reproduce any type of crash. Only if the explosives were in his inventory did problems arise.

And lastly, the code you provided did not prevent crashing for me with the save game being discussed.

Here's a link to that save game: http://www.killap.net/fallout2/betas/SLOT01.zip Is it suffering from another problem, perhaps?

I'm in the process of coming up with my own variation of this explosive crash fix, but no promises yet...
 
To confuse things even more, I'm getting an explosives related crash even when the target doesn't die... I have a save game in modoc, with a plastic explosive and 10 dynamite in my inventory. I load it, run a script to give me 300 steal skill and remove the 95% cap on pickpocket chance, and then:

Plant a dynamite on someone in modoc, wait for it to go off, the someone dies: no crash.
Plant a dynamite on someone in modoc, move to another section of modoc, move back: no crash.
Plant dynamite on someone in modoc, exit to world map, come back: no crash.

That's consistent with Darek's theory that you can't cause a crash on the map you first loaded, but then no-one is talking about map transitions in the save game, so that's another oddity... So I load the save, move to another area of modoc, plant explosives on someone, leave the map, come back: bits of human male decorating the walls of the building, but still no crash...

If I load in modoc, travel to geko, then plant explosives on a ghoul hanging around near the entrance, it's a different matter entirely:

plant dynamite, (which isn't enough to kill him) then either wait for it to go off or try exiting to the world map: crash in combatai_check_retaliation, which calls combatai_rating with a critter pointer of -1.
plant plastic explosives, which does kill him, then either wait or try and exit to the world map: crash in damage_object, which tries to access a critter pointer of -1.
Travel to geko, then run a script to reduce all critters on the map to 1 hp before planting the explosive, which I was originally doing to ensure that my target died: no crash

Both crashing functions are called from apply_damage, which is called from report_explosion. So it appears that somewhere in the explosives code it's setting a critter to -1 that should be 0. Or given the range of behaviours seen, it's more likely that it's uninitialised memory that isn't getting filled in at all... I was hoping that initialising it to 0 at some point in report_explosion would fix the crash problem, but I haven't been able to get it to work yet.

Edit: I've built an experimental sfall dll with an attempted fix for the explosion issue. It fixes my gecko crashes, but given the wide range of symptoms people are seeing I suspect there might be a deeper problem and that I've just papered over one crack out of many... In any case, each time it thinks it might need to do something it'll print something to the console (Either null pointer, valid pointer or bad pointer, along with the pointer value.) I'm interested if it ever prints a bad pointer that isn't -1, if it ever prints anything when you aren't using an explosive, and which crashes it fixes/fails to fix.
 
OK killap, I've tested that save. What you are saying makes no sense to me.

First of all I'd like to point out another possible problem on that save. If you are using my glcrippled script, the NPC CRIPPLED button is on even though you are alone. This is because Bess is somehow with you in spirit (her script follows you around). I've seen this before but don't know what triggers it. Instead of trying to find that out it's easier to just exclude her from the glcrippled script (party_member_pid=16777407).


OK, back to the explosives. Who is your target of assassination?

If it is the President, then you would first have to leave the map and come back before being able to get a crash.
Seriously, I can't get any explosive crash on a map I just loaded at all. Are you saying you do?

What I am also seeing is that it does not matter when you enter combat mode. It can be before arming the explosive, after that, or after planting them. It just have to be sometime before it goes off. Like I said you could put it in map enter and it would prevent a crash.

The thing about entering combat mode on the map you arrive to (on map transition after planting an explosive), this is something I have only been able to do on other peoples savegames. I don't know how to trigger this behavior myself. When I leave a map after planting an explosive (and someone dies), it always crashes instantly. But in the case of those save games, it doesn't. Instead it crashes when they come back to that map again. That's when entering combat on the map you arrived to has an effect.

My fix works for me, on any scenarios I have tested, but maybe you are doing something I am not?

About killing critters with dynamite placed on the ground, yeah maybe it don't crash. I might have just expected that to cause a crash too and never tested it. I can't remember what I tried and when I tested it now it didn't cause any crashing.

Meh, I guess it's not much of a point dissecting this if Timeslip's fix work. I just hate not understanding why because of inconsistencies. :)

@ Timeslip,

Before I had only tested on New Reno and the Den maps (and oil rig on other peoples saves), but you are right, Modoc seems to be imune to crashing.
Well I did manage to get it to crash by blowing myself up by mistake, but it didn't happen every time. Very strange. Is it an AI thing or something?
Anyway, your fix seems to work as far as I could tell. Well done as always.

I tested with that enclave save killap linked to.
I saw the following...

Pointer was null - Was on a map just loaded, and also on a map not just loaded but with the enter combat trick.

Bad ptr ffffffff: VirtualQuery failed - On a non-load/non-combat mode map.

Bad ptr 3: memory not writable (1) - On a non-load/non-combat mode map where target had very low hit points.

Does that mean anything?
 
Darek said:
Pointer was null - Was on a map just loaded, and also on a map not just loaded but with the enter combat trick.

Bad ptr ffffffff: VirtualQuery failed - On a non-load/non-combat mode map.

Bad ptr 3: memory not writable (1) - On a non-load/non-combat mode map where target had very low hit points.

Does that mean anything?
Yup. 'Pointer was null' is probably what the output always should be, (I believe it's something to do with who attacked the critter last, so prior to combat starting there's no reason for it to have a value) and wouldn't result in a crash, which makes sense given when you saw it. The other two would have both resulted in a crash.

I don't like papering over crashes without understanding why they were happening, (*cough*soulbringer*cough*) and replacing a crash with some sort of latent save game corruption would not be fun... I'm in two minds over whether to add that as a default-on fix to sfall. At the least, it's worth checking my fix doesn't have any odd side effects when explosives are used in other conditions (during combat, dropped, other aoe weapons like rocket launchers?)

As to the original fix of scripting a combat round, that might actually be better. If we're dealing with a blob of uninitialised memory which gets filled in correctly at the start of combat, I might be correcting the one particular field that's causing a crash in this instance, but entering combat would probably wipe all of them.
 
I have a stupid question... if starting and then ending combat fixes it, what about if you have a script send the end combat command without actually beginning combat first? Would that work? Because then you could run it automatically and the user wouldn't know the difference.
 
Darek said:
If it is the President, then you would first have to leave the map and come back before being able to get a crash.
Seriously, I can't get any explosive crash on a map I just loaded at all. Are you saying you do?
Okay, here are my test scenarios:

Scenario 1:
1. Plant 5 explosives on the President. (need this many to kill him)
2. Leave the map to the reactor area (exit above the President)
3. Come back to the President map.
4. Leave the map to the reactor area again.
5. BOOM CRASH.


Scenario 2:
1. Plant 5 explosives on the President. (need this many to kill him)
2. Enter/Exit combat.
3. Leave the map to the reactor area (exit above the President)
4. Come back to the President map.
5. Leave the map to the reactor area again.
6. No crash. However, today I actually got it to crash once on me, which is odd cause yesterday I tried this 20 times and never had a problem.


Scenario 3:
1. Plant 5 explosives on the President. (need this many to kill him)
2. Leave the map to the reactor area (exit above the President)
3. Come back to the President map.
4. Enter/Exit combat.
5. Leave the map to the reactor area again.
6. No crash. I swear this scenario was crashing for me before, but today I couldn't get it to crash with these steps.

Either way, scenario 1 ALWAYS results in a crash for me. I also tried Timeslip's new dll and it still crashed. When I would leave the map after planting explosives on the President, it would print out ptr 1692058 every time.

Darek/Timeslip are either/both of you able to reproduce the crash in the savegame I posted after following my steps above exactly? This isn't a save game from me, so I have no idea what this player did beforehand that may have corrupted the game in another way.

@Sduibek
Entering/Exiting combat seems to be the solution, but we have no idea what parts of them actually help us. Just sending the exit combat command won't help, either because it doesn't do anything if combat isn't initialized or it's actually the enter combat mode that clears the variables for us.
 
Well not sure if my opinion matters but if Start/End combat on each map load fixes it, I think the 1 second of that during each map load is much better than crashes. Everybody hates crashes.

Especially because many people tend to play for a few hours between saves (whether from being a "hardcore play style" or just forgetting to save due to immersion in the game) and getting a crash in that kind of situation that could have been prevented from 1 second of Start/End Combat each map load is kinda silly.

Up to personal taste though, some whiny people might get really bothered by it :shrug:

Here's a really crappy anology: A game like Diablo III that is run server-side, would you rather have your Hardcore character get ganked and die horribly from a burst of lag that you have absolutely no control over, or have the game automatically pause for 1-3 seconds each map load to "buffer", preventing the said ganking? Obvious decision.

EDIT: Shit, you could even inform the user. Just display a message in the message window informing them the Start/End Combat is part of loading or some crap.
 
Status
Not open for further replies.
Back
Top