Fallout 2 mod Megamod version 2.46 Bug Reports and Suggestions - Closed

Discussion in 'Fallout General Modding' started by MIB88, Jun 25, 2014.

  1. Parto

    Parto It Wandered In From the Wastes

    Jun 20, 2016
    this bug has easy workaround, just say in entrance you have message for profesor bout his brothers death and on second level dont speak with comander, if he ask you just say the same, then dont speak to him again if you come second time ...

    another way is first complete siege quest, then you are a member of brotherhood and he dont have need kill you :DDD
     
  2. alatari

    alatari First time out of the vault

    Sep 4, 2007

    I'm going to try one last time with a speech 101+% and see if Metzger or Slaves can be talked into revealing the loc before resorting to the game editor.

    Now that I went back and read Darek's post about the global variables I realize the save game editor is the only recourse and will d/l it tomorrow and set gvar 1107 to 1.

    -------------

    Found a quest variable bug in Broken Hills.
    I can't tell the man who's wife has disappeared I found her and I can't tell Marcus that everything is dealt with even after discussion with Francis and he leaves the bar. This means that Marcus will never join me.

    I skipped the Free X and Y from Jail quest and had the mutie haters put in prison right away. Maybe that is what broke the found-the-wife and lost people quests?
    I'm going to need to use the save game editor to set the quest completion variable to finished?
     
    Last edited: Aug 6, 2016
  3. 666GaRRuS666

    666GaRRuS666 First time out of the vault

    Jun 16, 2015
    1) For me it didn't worked even w/ 101+ speech 2) you should install 2.46 (in case you're not using it already ofс) in this version it was ok for me, cause some fixes were made, do you just have a dialog that people might be undergroud? 3) markus won't come w/ party for the 1st time if you have Klint in it (at least worked for me and someone who wrote it before, i suppouse)
     
  4. MIB88

    MIB88 Sonny, I Watched the Vault Bein' Built!
    Modder

    Feb 22, 2005
    Ugh, I have been away from this thread too long. So many things to catch up on...

    Metzger, first, though. It works. I haven't changed him in a while and it tested fine in the last version. You need CH > 5 or Speech greater than 50... then you need to pass a Speech check with a -10 modifier. That's all. (The latest version of the script is from March 12, 2016.

    I just checked the slaves. The slaves were checking for an incorrect variable. They should tell you the location when global variable 1123 is 1, but they were checking for global variable 1107. Fixed for next release.

    1. Bob is evil. Killing him will net you positive karma. I never paid attention to killing Fence. Could be an oversight of the author. (@Chris Parks , you around?) Or, it could be that Fence isn't really evil. A necessary evil. A bad guy who is keeping the likes of Bob at least partially in check. Without the moderating effects of Fence, Bob could wreak even more havoc. So, killing a moderating force could be seen as evil, maybe? I don't know what was intended. I'll give it some thought.

    2. Ignore the guide. Ok, don't ignore it. But, at least keep in mind that the guide was written at least 5 years ago. There have been/will be changes. I did change the required ore to 10 pieces.


    Carson:
    I don't know how the Carson map got damaged. The version in the latest download says I modified it in March 2015, or something like that. I don't know what I could have changed, though. I know I redid the scripts there. Anyway, there is another one in the latest version in the folder fallout2\Map Edges\data\maps. Just copy/paste it to the fallout2\data\maps folder.


    BoS Facility:
    Buggy as hell, I know. I'll get around to correcting that location eventually.


    Cockroaches and spit weapons:
    Thanks for the report. I'll fix it so that cockroaches are not affected by the drop weapon script.


    Abbey:
    There were two overlapping locations for the Abbey, as I was in the process of adding in the one from the RP. About 95% complete. I have seven scripts left to modify. I have a couple of exit grids to update. And there is some new scenery (tires and bones) that I could re-add to a couple of maps. That's it. Then time to playtest.


    Looting NPCs:
    Added some code to prevent NPCs from looting on the Den Residential map and the NCR Bazaar map. The crashes were due to NPCs looting gear and then running off to be destroyed. Since the items were still in their inventories when the critters were removed/made invisible, the game freaked out and crashed. This fix was already added for the Slaver Camp.
     
    Last edited: Aug 5, 2016
    • [Like] [Like] x 1
  5. Darek

    Darek is currently unavailable

    Jan 7, 2008
    It really doesn't work. Before you can get to any speech or charisma checks Metzger is looking for gvar 823 which you have named "SULIK_SISTER_BROKEN_RECHECKTHIS". I don't think anything is setting that variable to 1 nor do I understand why you would use any other variable than gvar 1123 (as in 823 was probably used before but is now obsolete).
    The date of the script is 12th of March, 2016 at 10:45. If yours is the same, it still needs to get fixed.
     
  6. MIB88

    MIB88 Sonny, I Watched the Vault Bein' Built!
    Modder

    Feb 22, 2005
    Ack! Of course it was working with a previous version before I started adding in more elements of the RP. The variable that should be triggered in Metzger is also 1123, not the 823 mentioned. Variable 823 is from the other version of the Primitive Tribe. Sulik would find his sister was able to escape her captors and return home. Maybe this was the Alternative Life mod? Or possibly the Global mod. Thanks for the catch.

    On a completely unrelated note:
    What in the heck does the checkpartymemberneardoor procedure really do?
     
    Last edited: Aug 5, 2016
  7. alatari

    alatari First time out of the vault

    Sep 4, 2007
    I'm fully prepared to continue updating the guide when I find and understand the changes.
    Just need accurate information to put in. Will update to 10 ore for metal I armor.

    ------
    Bug found in Chad scripts.

    So on the hint that I might get Marcus to acknowledge that I found the missing people and the guy to give the dialog about his missing wife being found, I went back to a save game where I can get Maxson and other dude out of jail and don't tell Marcus about it so Francis can't say "If you'd told someone you hated muties you'd known about the conspiracy" path. (I hope this works cause was hoping to get Marcus companion this game).

    That means I had to do Chad over and this time took the briefcase to him and tried blackmail "cut me in for $1000 and you can flee town" (I failed my speech check at 86% and 5 reloads work fine so this would happen on characters with lower speech) to which he claims he knows nothing even with the briefcase in my inventory and then the dialog heads to a fight choice and the old bug of a fight-straight-out-of-dialog happens.
    The dialog screen freezes with no dialog choices. No '0' to escape the dialog. ESC key lets you reload but the dialog is still covering the screen and frozen and even exiting to main menu then reloading still won't fix. Only way to recover is exit game completely and start over.

    ------

    OK, tried keeping the "Free Maxson and Franc from jail" quest open and showed the note to Francis and he left town. but can not close the Find the Missing People quest or Missing Wife quest. The quest has a line drawn through it in the Pip Boy as if it's already completed though.

    I'll try and actually rescue the guys from jail before taking the missing people quest.
     
    Last edited: Aug 6, 2016
  8. MIB88

    MIB88 Sonny, I Watched the Vault Bein' Built!
    Modder

    Feb 22, 2005
    @alatari
    You said you went back in your saved games. But, there is something new to the map. New spatial scripts were added which play into the "Find the missing townspeople" and the smaller "missing wife" quests. Did you go back to a game from before you first entered the eastern part of Broken Hills? If you did not, then those spatial scripts are not there.
     
  9. Darek

    Darek is currently unavailable

    Jan 7, 2008
    Supposedly it stops doors from closing while party members are within 5 hexes of them. Not sure if it's working though (edit: It does work but it's only like 20 doors total that takes advantage of that code in the vanilla game, so not all self-closing doors do.). I think it was only meant to be included in the door scripts but someone at BIS fucked up and it got included in every script via headers.
    Basically, when you include define.h that in turn includes party.h which adds the checkPartyMembersNearDoor procedure.
    I'm no good with headers (can't stand them) but have a feeling party.h should only be included when needed and not every time define.h is (which is pretty much every script).
    If you use optimization with Timeslip's script editor, checkPartyMembersNearDoor will be automatically removed from non-door scripts, so I guess she figured it wasn't needed. :shrug:
     
    Last edited: Aug 5, 2016
  10. MIB88

    MIB88 Sonny, I Watched the Vault Bein' Built!
    Modder

    Feb 22, 2005
    Ah, so it was just as it sounded. I just wanted to make sure that it didn't have another function.
    Yeah, I know what you mean: I don't use headers, either. Every time I find myself editing a script that has some extra code regarding doors, karma for kids when destroyed, or other unused variables, I delete all that stuff. (I guess it would a lot easier to use Timeslip's script editor with optimization. However, I am still editing the old fashioned way.) Thanks for the answer.
     
  11. alatari

    alatari First time out of the vault

    Sep 4, 2007
    @MIB88, you did notice I reported that Chad locked up the game if you fail the speech check on him?

    I entered Broken Hills on Feb 27 @ 13:45, went to the General Store and then to Marcus at Feb 27 13:50. This is the save game I used just before talking to Marcus the first time.

    I then tried freeing the guys from jail, got the air purifier scheme, then went to the ant area (the quest gets crossed off then), then told Marcus about their air purifier scheme, then talked to Francis, then came back and all I can tell Marcus is that there are ant tunnels but no option to say I found people.

    I'm going to try a game where I talk to the guy about his wife and find the tunnels before talking to Marcus and get the Missing People quest.

    UPDATE:
    -So I went back to the save game where I just entered Broken Hills and Lumpy is still under my car bumper.
    -Ran to eastern map and talked to the worried husband for his quest and entered the tunnels, killed a few ants and found no people.
    -Talked to Marcus and kept choosing 'Anything else' till he offered up the missing people and choice the 'will do it for free' option.
    -Went back to eastern map and found people, killed a few more ants that weren't there before. Used eyeglass icon on woman. Got note from her and ran straight to Francis.
    -Francis calls me scum but the option to show note is there, he leaves town.
    -Only option for Marcus is to tell him about the tunnels possibility but not verified. Worried man has no option to say she's found.

    Since I already knew about the tunnels before taking the quest then I should be able to mention the tunnels under the city immediately but the dialog choice isn't available.
    I checked my save games to look at GVAR 305 BH_MISSING=
    It's 0 before and changes to 3 if you get the Missing People quest.
    When you find the people it changes to 6.
    After Francis leaves it still stays at 6.

    Assuming these are binary flags I'd assign them as such:
    0000 (0) = unstarted quest
    0001 (1) = found the tunnels pre-quest
    0010 (2) = assigned the quest by Marcus, never found tunnels
    0011 (3) = Found tunnels and have quest.
    0111 (7) = Found people, tunnels, have quest.
    1111 (15) = Francis dealt with, have quest, found people and tunnels.

    What number to set this variable 305 to mark the quest complete?
     
    Last edited: Aug 6, 2016
  12. Darek

    Darek is currently unavailable

    Jan 7, 2008
    @alatari , the missing persons quest does work now but if your save game is from an older version of the megamod, you need to play with a save where you have never been to Broken Hills before. To fix your save game you need to set gvar 305 to 7 if you wanted to get paid for doing the quest, or set gvar 305 to 8 if you said you'd do the quest for free. Then go talk to Marcus. Also talking to Francis is not a necessary part of the quest.

    @MIB88, the missing persons quest is crossed out too early, need to update quest.txt:
    "# Find the missing persons
    1506, 702,305, 2, 5"
    Change that last 5 to a 9 so the quest ends at the correct time.
     
  13. Darek

    Darek is currently unavailable

    Jan 7, 2008
    @MIB88

    Chad bug with starting combat in broken1 map. Node021 don't close.
    This one and the next comes from the RP (that is also bugged). Not sure exactly what the problem is, but it's something to do with using attack_complex without a proper way to exit dialog. Anyway, just bypass node021 and node992 and change node018 to look like the following.

    Chad.ssl:

    Code:
    procedure Node018
    begin
       gsay_reply(613, 202);
       critter_add_trait(self_obj, 1, 5, 24);
       set_local_var(6, 1);
       set_local_var(7, 2);
       giq_option(4, 613, 205, Node998, 50);
       float_msg(self_obj, message_str(613, 206), 8);
    end

    Chad is also supposed to give up when taking too much damage. Problem is that "terminate_combat;" is in the critter_p procedure while it needs to be in the combat_p procedure. So add combat_p_proc, and edit critter_p_proc like this:

    Chad.ssl:

    Code:
    procedure combat_p_proc
    begin
       variable LVar0 := 0;
       variable LVar1 := 0;
       if (local_var(7) == 2) then begin
         LVar0 := get_critter_stat(self_obj, 7);
         LVar1 := get_critter_stat(self_obj, 35);
         if (LVar1 < (LVar0 / 4)) then begin
           terminate_combat;
         end
       end
    end
    
    
    procedure critter_p_proc
    begin
       variable LVar0 := 0;
       variable LVar1 := 0;
       if ((global_var(309) == 1) or (local_var(5) == 2) and obj_can_see_obj(self_obj, dude_obj)) then begin
         set_local_var(5, 1);
         attack_complex(dude_obj, 0, 1, 0, 0, 30000, 0, 0);
       end
       if (cur_map_index == 79) then begin
         if (map_var(25) == 1) then begin
           set_map_var(25, 2);
           add_timer_event(self_obj, game_ticks(0), 4);
           doTalk := 1;
         end
       end  
       if (local_var(7) == 2) then begin
         LVar0 := get_critter_stat(self_obj, 7);
         LVar1 := get_critter_stat(self_obj, 35);
         if (LVar1 < (LVar0 / 4)) then begin
           set_local_var(6, 0);
           set_local_var(7, 0);      
           set_map_var(31, 1);
           call talk_p_proc;
         end
       end
    end

    The Megamod's Chad script also have two procedures not closing properly (missing an "end" at the end). They are "procedure critter_p_proc" and "procedure timed_event_p_proc".


    broken2.gam missing one entry to do with Chad:

    MVAR_House_Encounter :=0; // (25)

    Without it the player can't get busted searching through Chad's drawers.


    Broken Hills map 1:
    change shoot through flags on two wall blockers on the right side of the entrance door to the prison building, to prevent mutants to go hostile when you are armed even though you are outside of the building. I got attacked while standing and talking with Marcus twice which felt a bit silly.
    In the RP map a lamp post has been placed just outside that blocks the mutants line of sight, but turning off the shoot-through should suffice.
     
  14. MIB88

    MIB88 Sonny, I Watched the Vault Bein' Built!
    Modder

    Feb 22, 2005
    Damn! Thank you very much, @Darek. I'll make all these fixes right now.

    Made a few fixes. Still have to take care of the map.
    However, I keep going over the procedure_timed_event. I can't see the problem with it...
     
    Last edited: Aug 8, 2016
  15. Darek

    Darek is currently unavailable

    Jan 7, 2008
    Maybe it's a compiler/decompiler thing, but usually when a procedure begins it also needs to end.
    An empty procedure looks like this:
    Code:
    procedure timed_event_p_proc
    begin
    end
    When I decompile your Chad script, that "end" is missing, and I can't compile it again without adding it.
    Again, it might have something to do with what program being used, but this is what it looks like for me when I have just decompiled it:
    Code:
    procedure timed_event_p_proc
    begin
       variable LVar0 := 0;
       if (fixed_param == 1) then begin
         game_ui_disable;
         float_msg(self_obj, message_str(613, 171), 8);
         add_timer_event(self_obj, game_ticks(2), 2);
       end
       else begin
         if (fixed_param == 2) then begin
           gfade_out(600);
           LVar0 := tile_num(self_obj);
           move_to(self_obj, 0, 0);
           set_obj_visibility(self_obj, 1);
           move_to(self_obj, LVar0, 0);
           gfade_in(600);
           game_ui_enable;
         end
         else begin
           if (fixed_param == 3) then begin
             display_msg(message_str(613, 300));
             give_exp_points(750);
             display_msg(message_str(14, 100) + 750 + message_str(14, 101));
             set_global_var(0, global_var(0) + -5);
             debug_msg("Player gains " + -5 + " Karma Points.");
             set_global_var(37, 0);
             set_global_var(38, 0);
             set_global_var(39, 0);
             set_global_var(40, 0);
             set_global_var(41, 0);
             set_global_var(42, 0);
             set_global_var(43, 0);
             set_global_var(44, 0);
             set_global_var(45, 0);
             tmp_gen_rep := global_var(0);
             if (has_trait(0, dude_obj, 95)) then begin
               tmp_gen_rep := global_var(0) * 2;
             end
             if (tmp_gen_rep >= 1000) then begin
               set_global_var(37, 1);
             end
             else begin
               if (tmp_gen_rep >= 750) then begin
                 set_global_var(38, 1);
               end
               else begin
                 if (tmp_gen_rep >= 500) then begin
                   set_global_var(39, 1);
                 end
                 else begin
                   if (tmp_gen_rep >= 250) then begin
                     set_global_var(40, 1);
                   end
                   else begin
                     if (tmp_gen_rep > -250) then begin
                       set_global_var(41, 1);
                     end
                     else begin
                       if (tmp_gen_rep > -500) then begin
                         set_global_var(42, 1);
                       end
                       else begin
                         if (tmp_gen_rep > -750) then begin
                           set_global_var(43, 1);
                         end
                         else begin
                           if (tmp_gen_rep > -1000) then begin
                             set_global_var(44, 1);
                           end
                           else begin
                             set_global_var(45, 1);
                           end
                         end
                       end
                     end
                   end
                 end
               end
             end
             gfade_out(600);
             set_obj_visibility(self_obj, 1);
             gfade_in(600);
             set_global_var(300, 9);
           end
           else begin
             if (fixed_param == 4) then begin
               call talk_p_proc;
             end
           end
         end
       end
       return 0;
       LVar0 := 0;
    
     
  16. MIB88

    MIB88 Sonny, I Watched the Vault Bein' Built!
    Modder

    Feb 22, 2005
    Odd. Yours is showing a lot more begins/ends... including two begins before parameter 3. Here's what mine looks like. Four begins and four ends.
    Code:
    procedure timed_event_p_proc
    begin
      variable LVar1 := 0;
    
      if (op_fixed_param() == 1) then
      begin
        op_game_ui_disable();
        op_float_msg(op_self_obj(), op_message_str(613, 171), 8);
        op_add_timer_event(op_self_obj(), op_game_ticks(2), 2);
      end
      else if (op_fixed_param() == 2) then
      begin
        op_gfade_out(600);
        LVar1 := op_tile_num(op_self_obj());
        op_move_to(op_self_obj(), 0, 0);
        op_set_obj_visibility(op_self_obj(), 1);
        op_move_to(op_self_obj(), LVar1, 0);
        op_gfade_in(600);
        op_game_ui_enable();
      end
      else if (op_fixed_param() == 3) then
      begin
        op_display_msg(op_message_str(613, 300));
        op_give_exp_points(750);
        op_display_msg(op_message_str(14, 100) + 750 + op_message_str(14, 101));
        op_set_global_var(0, op_global_var(0) + -5);
        op_debug_msg("Player gains " + -5 + " Karma Points.");
        op_set_global_var(37, 0);
        op_set_global_var(38, 0);
        op_set_global_var(39, 0);
        op_set_global_var(40, 0);
        op_set_global_var(41, 0);
        op_set_global_var(42, 0);
        op_set_global_var(43, 0);
        op_set_global_var(44, 0);
        op_set_global_var(45, 0);
        tmp_gen_rep := op_global_var(0);
        if (op_has_trait(0, op_dude_obj(), 95)) then
          tmp_gen_rep := op_global_var(0) * 2;
        if (tmp_gen_rep >= 1000) then
          op_set_global_var(37, 1);
        else if (tmp_gen_rep >= 750) then
          op_set_global_var(38, 1);
        else if (tmp_gen_rep >= 500) then
          op_set_global_var(39, 1);
        else if (tmp_gen_rep >= 250) then
          op_set_global_var(40, 1);
        else if (tmp_gen_rep > -250) then
          op_set_global_var(41, 1);
        else if (tmp_gen_rep > -500) then
          op_set_global_var(42, 1);
        else if (tmp_gen_rep > -750) then
          op_set_global_var(43, 1);
        else if (tmp_gen_rep > -1000) then
          op_set_global_var(44, 1);
        else
          op_set_global_var(45, 1);
        op_gfade_out(600);
        op_set_obj_visibility(op_self_obj(), 1);
        op_gfade_in(600);
        op_set_global_var(300, 9);
      end
      else if (op_fixed_param() == 4) then
        call talk_p_proc();
    end
    
    Maybe it is just a (de)compiler issue.
     
  17. Darek

    Darek is currently unavailable

    Jan 7, 2008
    Yeah it seems that way. I usually decompile with int2ssl and it looks like it's getting confused with the last bit.
    return 0;
    LVar0 := 0;
    Both of the procedures it had problems with ended that way. When I "decompile" with the sfall script editor it comes out with the correct amounts of "ends", so your script is fine.
    Also, your snippet of code don't seem to have "return 0;" and "LVar := 0;", which is a bit odd as both my decompilers show that. When I decompile the RP script (with identical code in those two procedures), I don't get that. Guessing that is something you compiler adds/removes automatically, but who knows.
     
  18. alatari

    alatari First time out of the vault

    Sep 4, 2007
    @MIB88 It's just an annoyance but Cassidy says the line about the heart pills and how about some Jet like way, way, way too damn much. Sometimes he says it every 3 hexes moved.

    @Darek
    I said in my first post in this 2.46 forum that none of my save games from 2.45 would work. The game crashes and I started a completely new game. Go review my first post which was a bug report about how 2.45 save games refuse to work in 2.46 by fresh install and just copying all the 2.45 games into the DATA area.
    So this game is fresh 2.46 and the quest doesn't work and I started from a save game where the character just entered Broken Hills.

    Under what circumstances can the quest work for you and not for me when we both started 2.46 games?

    EDIT:
    OK, I forgot about this game's possible issues with save game corruption.
    Can saving my new games over the few hundred 2.45 saves, that won't work, cause an old map to be used?

    If this is the issue then deleting some save game and saving into that slot before I enter Broken Hills should allow me to run the quest as long as I keep saving in empty slots.
    (I was just using the old saves as quest/action reminders)
     
    Last edited: Aug 9, 2016
  19. MIB88

    MIB88 Sonny, I Watched the Vault Bein' Built!
    Modder

    Feb 22, 2005
    I don't know if previous saves from 2.45 would be causing the problems. I guess it's possible. But, we were not talking about simply making sure not to use games from 2.45 and earlier.

    Certain fixes/changes are seen only when entering a map for the first time. If you:
    1. entered the eastern side of Broken Hills, then
    2. went back to the western side, then
    3. added a patch with a new eastern map, then
    4. revisited the eastern map,

    you would not see the changes in your game. The game would save your original map from before the patch. That is why we said the game has to be from before you enter the eastern part of Broken Hills. (Although, to be on the safe side, it might be best to use a game from before you even entered Broken Hills at all.)
     
  20. Darek

    Darek is currently unavailable

    Jan 7, 2008
    OK, I haven't been following everything in this thread so by the way you and MB88 have been talking I just assumed you where playing with old save games. Besides, all the symptoms point to that.

    Here is how the quest works...

    Get the quest from Marcus: gvar305 = 2 or 3
    Enter the ant caves: gvar305 = 5 or 6
    Find the bodies: gvar305 = 7 or 8
    Report back to Marcus: gvar305 = 11

    Nothing else that you have done in Broken Hills (quest wise) should have any effect on this quest.

    Now, you say gvar305 changes to 6 when you find the bodies. Are you absolutely sure about that? Cause that makes no sense whatsoever as it's not possible with the new htcorpse script (finding the bodies). It can only change from 6 to 8 or 5 to 7, nothing else.
    So if you are correct, that would mean that not only is it an old map but also an old script. And whole scripts are not saved in your save games.

    I really don't know what to think here.:shrug:
    Did @MIB88 sneak in some updates of Broken Hills since the first version of 2.46, are you really playing 2.46, do you have a bad install with files from both 2.45 and 2.46?