Jump to content

EET v13.4 released


Recommended Posts

Your arguments about getting money too quickly are based on the assumption that mods have been added on top of EET. In vanilla EET you are in the same situation as when you start a vanilla BG2 game (unless you metagame and prepare beforehand). You have to do at least Nalia's quest or some odd jobs to earn some money.

 

If you install mods that allow you to gain money much faster then it's also no problem to install a tweak that increases the amount of money needed for the Shadow Thieves. I still believe that EET should not change the vanilla storyline without very good reasons, especially if it involves personal opinions about how to improve gameplay. There will always be at least one player having a different view.

 

You are absolutely right.

 

My view on EET is that it will be the new platform for modded games. But of course, this is just a single view.

 

I have brought up the discussion mainly to avoid the situation where various mods now will introduce their own solution to the issue.

However, if common approach remains that EET leaves this open to mods, so be it.

 

I think the solution I will apply within my own mod ( which will only be applied when you have the respective NPC in the party) does not interfer with anything else, so the problem is solved for me.

 

(And with NI any user can just replace the single value in baldur.bcs quoted further up to the sum he/she likes to have and be happy.)

Edited by Roxanne
Link to comment

I think the solution I will apply within my own mod ( which will only be applied when you have the respective NPC in the party) does not interfer with anything else, so the problem is solved for me.

Sorry, but what you are doing is really concerning, cause it's like you are pulling a rabbit out of your ars and expect everyone just abbey it ... aka if the player has your character on their party, no matter what else happens before that point, the player is penalized just for that single thing with say 100 000 gold cost increase for this single thing.

 

It's like you are building a wall that allows no one else to even play with the char. Or you just prefer the cheaters... C:AddGold(130000) :p

Link to comment

I don't know if this is caused by EET or one of my mods. I'm currently in Chapter 19 and just cleared Suldanessellar. Now I went back to Athkatla to invite Neera into my party so I can do her personal quests. While traveling from Athkatla City Gates to the Wild Forest I have been redirected to the area where you would meet Drizzt and companions (AR2601). Since I have met Drizzt already this is just an empty area which leaves you wondering about why you are here again. I have attached a save for you to reproduce.

000000075-FM - To Wild Forest.zip

Link to comment

I don't know if this is caused by EET or one of my mods. I'm currently in Chapter 19 and just cleared Suldanessellar. Now I went back to Athkatla to invite Neera into my party so I can do her personal quests. While traveling from Athkatla City Gates to the Wild Forest I have been redirected to the area where you would meet Drizzt and companions (AR2601). Since I have met Drizzt already this is just an empty area which leaves you wondering about why you are here again. I have attached a save for you to reproduce.

 

I can reproduce it in your save on clean EET installation. Sounds like a vanilla problem although I can't find such thing reported on Redmine. I'm not quite sure how engine works when it comes to that encounter either. NI search reports that it is not triggered by the obvious:

ForceRandomEncounter(S:Area*)

The only AR2601 presence is in WMP file link entries where the area has 101 encounter probability set from AR2500 (Underdark exit) to various areas. Here is a direct result of vanilla WMP exporting:

AR2500     N          AR1700     CDExit     2          2          AR2601     N          N          N          N          101
AR2500     N          AR1304     ExitSE     3          2          AR2601     N          N          N          N          101
AR2500     N          AR0020     ExitNE     3          2          AR2601     N          N          N          N          101
AR2500     N          AR1300     ExitSE     3          2          AR2601     N          N          N          N          101
AR2500     E          AR1300     ExitSE     3          2          AR2601     N          N          N          N          101
AR2500     E          AR0020     ExitNE     3          2          AR2601     N          N          N          N          101
AR2500     E          AR1304     ExitSE     3          2          AR2601     N          N          N          N          101
AR2500     E          AR1700     CDExit     2          2          AR2601     N          N          N          N          101
AR2500     S          AR1700     CDExit     2          2          AR2601     N          N          N          N          101
AR2500     S          AR1304     ExitSE     3          2          AR2601     N          N          N          N          101
AR2500     S          AR0020     ExitNE     3          2          AR2601     N          N          N          N          101
AR2500     S          AR1300     ExitSE     3          2          AR2601     N          N          N          N          101
AR2500     W          AR1700     CDExit     2          2          AR2601     N          N          N          N          101
AR2500     W          AR1304     ExitSE     3          2          AR2601     N          N          N          N          101
AR2500     W          AR0020     ExitNE     3          2          AR2601     N          N          N          N          101
AR2500     W          AR1300     ExitSE     3          2          AR2601     N          N          N          N          101

My guess is that the unusual 101 value is meant to somehow tell engine to not use this particular random encounter more than once. In your game the engine somehow forgot about it and triggered the encounter. Double weird considering AR2500 doesn't seems to be even connected with Wild Forest. Nothing comes to my mind what may have cause such engine quirk. If the same problem could be reproduced in vanilla BG2:EE we could request changing this implementation to ForceRandomEncounter via AR2500.BCS instead.

Edited by K4thos
Link to comment

Judging by the travel time the party must have passed another area before arriving in AR2601. Travel time from City Gates to the Wild Forest is 20 hours. Travel time from AR2601 to Wild Forest is only 6 hours.

 

Now I have encountered another issue. The entrance point of the Wild Forest is not right either. I'm arriving at the top right corner of the map which allows me to travel directly to the Hidden Camp without picking up Neera. The only mod in my installation that modifies the worldmap are the components "Restored Random Encounters" and "Minor Restorations" of Almateria's Restoration Project.

Edited by argent77
Link to comment

Judging by the travel time the party must have passed another area before arriving in AR2601. Travel time from City Gates to the Wild Forest is 20 hours. Travel time from AR2601 to Wild Forest is only 6 hours.

 

Now I have encountered another issue. The entrance point of the Wild Forest is not right either. I'm arriving at the top right corner of the map which allows me to travel directly to the Hidden Camp without picking up Neera. The only mod in my installation that modifies the worldmap are the components "Restored Random Encounters" and "Minor Restorations" of Almateria's Restoration Project.

 

Just a guess - since Drizzt and company are spawned in ar 2601 by script, this may be an indication that this area was originally intended as a random encounter area with Drizzt appearing in the one special case. The mod may have restored this situation.

Link to comment

The area has the size of a typical ambush area, but the associated area script only handles Drizzt and friends. Judging from a quick search it doesn't look like Almateria's Restoration Project is modifying AR2601. It might be an unwanted side effect caused by that mod or a glitch in EET's worldmap handling. I have started Neera's quest very late (right before entering the Tree of Life) which might have something to do with it.

Btw, it gets even weirder with the entrance points of the Wild Forest. If I travel to the Wild Forest via Small Teeth Pass I'm not redirected to AR2601 and arrive in the bottom right corner of the Wild Forest.

Link to comment
The area has the size of a typical ambush area, but the associated area script only handles Drizzt and friends. Judging from a quick search it doesn't look like Almateria's Restoration Project is modifying AR2601. It might be an unwanted side effect caused by that mod or a glitch in EET's worldmap handling. I have started Neera's quest very late (right before entering the Tree of Life) which might have something to do with it.

 

Btw, it gets even weirder with the entrance points of the Wild Forest. If I travel to the Wild Forest via Small Teeth Pass I'm not redirected to AR2601 and arrive in the bottom right corner of the Wild Forest.

 

It doesnt seem to be related to mods considering I've just tested it with clean EET Worldmap in your save by replacing the old one via this code (it's part of the save updating feature from setup-EET_end.exe):

 

 

COPY_EXISTING_REGEXP - GLOB ~.+\.WMP~ ~override~
    COMPRESS_INTO_VAR 0 SOURCE_SIZE 9 wmpData
    SET uncLen = SOURCE_SIZE
    SET compLen = STRING_LENGTH ~%wmpData%~
    SPRINT $array_wmp_glob("%SOURCE_FILE%" "%uncLen%" "%compLen%") "%wmpData%"

OUTER_SPRINT dir ~test/000000075-FM - To Wild Forest~

COPY ~%dir%/baldur.sav~ ~%dir%~
    EDIT_SAV_FILE 9 BEGIN
        TO_UPPER SAV_FILE
        /////                                                  \\\\\
        ///// WMP                                              \\\\\
        /////                                                  \\\\\
        PATCH_IF ((~%SAV_FILE%~ STRING_CONTAINS_REGEXP ~\.WMP$~)=0) BEGIN
            PATCH_PRINT ~Editing *%SAV_FILE%* ...~
            // local wmp arrays
            GET_OFFSET_ARRAY are_array WMP_AREAS //get predefined array WMP_AREAS
            PHP_EACH are_array AS are_num => are_offset BEGIN //go through the array WMP_AREAS
                READ_ASCII are_offset are_name //write area reference in variable
                TO_UPPER are_name
                READ_LONG are_offset+0x30 are_flags
                SPRINT $EVAL ~array_%SAV_FILE%~("%are_name%") "%are_flags%"
            END
        END
    END
BUT_ONLY
// replacing old worldmap with new worldmap and removing not existing resources
COPY ~%dir%/baldur.sav~ ~%dir%~ //for some reason can't be added into previous patching block
    PATCH_IF (SOURCE_SIZE >= 0x8) BEGIN
        READ_ASCII 0 sig ( 8 )
        PATCH_IF (~%sig%~ STRING_EQUAL ~SAV V1.0~) BEGIN
            SET curOfs = 0x8
            WHILE (curOfs < SOURCE_SIZE) BEGIN // scanning resource entries...
                READ_LONG curOfs lenFileName //Length of filename
                READ_ASCII (curOfs + 0x4) fileName ( lenFileName ) NULL //Filename (length specified by previous field)
                READ_LONG (curOfs + lenFileName + 0x8) lenCompressed //Compressed data length
                SET entrySize = lenFileName + lenCompressed + 0xc
                //remove not existing resources
                PATCH_IF (NOT FILE_EXISTS_IN_GAME ~%fileName%~) AND (~%fileName%~ STRING_CONTAINS_REGEXP ~\.[Tt][Oo][HhTt]$~) BEGIN
                    PATCH_PRINT ~%fileName% issue: does not exist in game! Removing file...~
                    // remove header and data from the BALDUR.SAV
                    DELETE_BYTES curOfs entrySize
                    SET SOURCE_SIZE = SOURCE_SIZE - entrySize
                END ELSE PATCH_IF ((~%fileName%~ STRING_CONTAINS_REGEXP ~\.[Ww][Mm][Pp]$~)=0) BEGIN
                    // remove header and data from the BALDUR.SAV
                    DELETE_BYTES (curOfs + lenFileName + 0xc) lenCompressed
                    // inserting new data to the BALDUR.SAV
                    PHP_EACH array_wmp_glob AS x => y BEGIN
                        PATCH_IF ~%x%~ STRING_EQUAL_CASE ~%fileName%~ BEGIN
                            SPRINT uncLen "%x_1%"
                            SPRINT compLen "%x_2%"
                            WRITE_LONG (curOfs + lenFileName + 0x4) uncLen
                            WRITE_LONG (curOfs + lenFileName + 0x8) compLen
                            INSERT_BYTES (curOfs + lenFileName + 0xc) compLen
                            WRITE_ASCIIE (curOfs + lenFileName + 0xc) ~%y%~ //%wmpData%
                        END
                    END
                    // optional if we want to continue scanning for other files
                    SET SOURCE_SIZE = SOURCE_SIZE + compLen - lenCompressed
                    SET entrySize = lenFileName + compLen + 0xc
                    SET curOfs = curOfs + entrySize
                    // terminate WHILE loop
                    //SET curOfs = SOURCE_SIZE
                END ELSE BEGIN
                    // skipping entry
                    SET curOfs = curOfs + entrySize
                END
            END
        END
    END
BUT_ONLY
// updating wmp flags
COPY ~%dir%/baldur.sav~ ~%dir%~
    EDIT_SAV_FILE 9 BEGIN
        TO_UPPER SAV_FILE
        PATCH_IF ((~%SAV_FILE%~ STRING_CONTAINS_REGEXP ~\.WMP$~)=0) BEGIN
            GET_OFFSET_ARRAY are_array WMP_AREAS //get predefined array WMP_AREAS
            PHP_EACH are_array AS are_num => are_offset BEGIN //go through the array WMP_AREAS
                READ_ASCII are_offset are_name //write area reference in variable
                TO_UPPER are_name
                PATCH_IF (VARIABLE_IS_SET $EVAL ~array_%SAV_FILE%~(~%are_name%~)) BEGIN
                    TEXT_SPRINT flags $EVAL ~array_%SAV_FILE%~(~%are_name%~)
                    WRITE_LONG are_offset+0x30 flags
                END
            END
        END
    END
BUT_ONLY

 

 

 

Same problem occurred. Than Ive converted your save using the same code but inside vanilla BG2:EE installation (so using vanilla worldmap.wmp) and this time encounter didn't happen. So there must be a bug in EET WMP file. Strange that similar problems didn't happen earlier in the game. I will investigate it further, thanks for report.

 

EET generates the WMP file using BP-BGT Worldmap code. I will begin the investigation by installing that mod and again use above mentioned code to see if the problem will show up again. If no than I've messed up in implementing it properly.

Edited by K4thos
Link to comment

AR3000 had messed up links assigned during WMP generation. Nasty bug considering it not only screwed the random encounter area but also caused incorrect travel times around Tethyr and wrong entrances in few areas (second part of your report). It's now fixed for RC6 release. Once again thanks for the report, argent.

 

edit: As mentioned in below post this was unrelated to Drizzt Encounter bug.

Edited by K4thos
Link to comment

uhh, I give up. The reason why the problem didn't show up on Bp-BGT Worldmap at first try are the missing links from AR3000 to OH6000. As soon as I've added this to the tbl file used by worldmap mod (they should be there by default considering that's how vanilla game works):

SRC_AREA     SRC_NWSE     TARGET_ARE   ENTRY_NAME   TRV_TIME     DEF_ENTRY    ENC1         ENC2         ENC3         ENC4         ENC5         ENC_PROB

OH6000       W            AR3000       ExitSW       1            4            N            N            N            N            N            0
OH6100       W            AR3000       ExitSW       1            4            N            N            N            N            N            0
OH6200       W            AR3000       ExitSW       1            4            N            N            N            N            N            0
AR3000       E            OH6000       Exitwmp      1            4            N            N            N            N            N            0
AR3000       E            OH6100       Exitwmp      1            4            N            N            N            N            N            0
AR3000       E            OH6200       Exitwmp      1            4            N            N            N            N            N            0

the same problem with Drizzt random encounter area triggered second time when travelling from City Gates (AR0020) to Wild Forest (OH6000) occured.

 

The only way to elminate it was changing these lines (Underdark Exit links to Watcher's Keep):

AR2500     N          AR3000     ExitSW     1          4          AR2601     N          N          N          N          101
AR2500     E          AR3000     ExitSW     1          4          AR2601     N          N          N          N          101
AR2500     S          AR3000     ExitSW     1          4          AR2601     N          N          N          N          101
AR2500     W          AR3000     ExitSW     1          4          AR2601     N          N          N          N          101

to this (or completly removing them):

AR2500     N          AR3000     ExitSW     1          4          N          N          N          N          N          0
AR2500     E          AR3000     ExitSW     1          4          N          N          N          N          N          0
AR2500     S          AR3000     ExitSW     1          4          N          N          N          N          N          0
AR2500     W          AR3000     ExitSW     1          4          N          N          N          N          N          0

Vanilla game doesn't have link between AR2500 and AR3000, so the problem can't be reproduced there (this is BP-BGT Worldmap addition that I've also adopted for EET to reduce the time travel between these areas considering they are just few pixels apart).

 

I have no idea how to solve this without removing links between areas (those adopted from BP-BGT Worldmap) or using ForceRandomEncounter (which could conflict with mods) :( I assume the exact same thing would happen on vanilla game if some mod add more links from AR2500 with AR2601 used as a random encounter and 101 probability chance.

Edited by K4thos
Link to comment

What are the consequences of removing the links between AR2500 and AR3000? If it would only increase travel time then I'm in favor of removing the links in question to solve the random encounter issue.

 

no consequences, just bad looking travel distance (exactly the same as in vanilla BG2:EE though, so not a bug).

http://i.imgur.com/hFaKvQq.jpg

 

BP-BGT Worldmap adds 3 new connections with Watcher's Keep compared to vanilla game:

- de'Arnise Hold (AR1304 version, in vanilla game for some reason only AR1300 is connected which is likely a bug)

- Small Teeth Pass (12 hours)

- and the problematic Underdark Exit (4 hours)

 

Above screenshot has link between Underdark Exit and Watchers Keep removed.

Edited by K4thos
Link to comment

 

What are the consequences of removing the links between AR2500 and AR3000? If it would only increase travel time then I'm in favor of removing the links in question to solve the random encounter issue.

 

no consequences, just bad looking travel distance (exactly the same as in vanilla BG2:EE though, so not a bug).

http://i.imgur.com/hFaKvQq.jpg

 

BP-BGT Worldmap adds 3 new connections with Watcher's Keep compared to vanilla game:

- de'Arnise Hold (AR1304 version, in vanilla game for some reason only AR1300 is connected which is likely a bug)

- Small Teeth Pass (12 hours)

- and the problematic Underdark Exit (4 hours)

 

Above screenshot has link between Underdark Exit and Watchers Keep removed.

 

Is all of this maybe a consequence of the (old stupid) BGT feature to make Watcher's Keep available during SoA already? If I remember correctly, this was an option offered by BP-BGT worldmap and maybe all of it is no longer applicable for EET anyway? (Those links do not exist in vanilla, you said)

Edited by Roxanne
Link to comment
Is all of this maybe a consequence of the (old stupid) BGT feature to make Watcher's Keep available during SoA already? If I remember correctly, this was an option offered by BP-BGT worldmap and maybe all of it is no longer applicable for EET anyway? (Those links do not exist in vanilla, you said)

If I remember correctly Watcher's Keep has been always available from SoA, even in vanilla BG2 with ToB expansion installed.

 

--------

 

After some more testing it looks like removing Underdark Exit <-> Watcher's Keep link doesn't really fix the problem. Underdark Exit was just on the route from City Gates to Wildrness Forest but any of the Underdark Exit links triggers this encounter. I've managed to reproduce the issue on vanilla BG2:EE by travelling to Underdark Exit instead of Wild Forest, using argent's save patched to use vanilla wmp file with all flags imported.

 

So it doesn't seem to be related to WMP file and additional links at all. The only explanation I can think of in this case is just that the engine somehow forgot that you have been already in Drizzt encounter area before. Nothing has been changed in game resources by EET between Chapter 18 and Chapter 19 (other than chapter numbers of course), but clearly the data has been lost during that portion of the game. Once you exit that encounter area the problem no longer can be reproduced, so the engine once again saved the information somewhere. Any ideas where this information is saved?

 

It's possible that the same problem would occur in vanilla game playthrough if you would go back from the end of Suldenesellar to Underdark Exit and try to travel from there. Or maybe it was just one-time engine quirk which caused the information about visiting the area being lost. Let's see if anyone else will report this problem in future. Also if anyone have a save from vanilla BG2:EE at the end of Suldenesellar please upload it here.

 

--------

 

edit: The information about visited Drizzt area seems to be saved inside WMP file - 101 encounter probability is changed to 0 after you visit the area. This explains why I've managed to reproduce it after patching the save on vanilla game - only flags have been imported. Still no idea what may have caused encounter probability resetting back to 101 in argent's save in the first place though. Seems like a random engine quirk unless someone will be able to reproduce it in new game (I've tried without success for now)

Edited by K4thos
Link to comment

The AR2601 map issue is definitely related to AR2500. You can trigger it in my save when you travel from AR0020 to AR2500, and from there to either Watcher's Keep (AR3000) or the Wild Forest (OH6000).

The AR2601 encounter probability is set to 0 in the area script AR2601.BCS, but only for travelling from AR2500 to AR0020, AR1300, AR1304 and AR1700. Travelling between AR2500 and AR3000 is not affected.

Comparing the worldmap.wmp from my EET save with the worldmap.wmp from a vanilla BG2EE save I can see that the vanilla WMP doesn't contain any links from AR2500 to AR3000. They are only present in my EET save.

Edit: After travelling to AR3000 the encounter probability for AR2601 is set from 101 to 1 for one of the link entries in the AR2500 structure of worldmap.wmp. This is probably done automatically by the game engine if probability is >100. I couldn't find a related SetEncounterProbability() action in any of the scripts. Btw, setting probability to 100 caused the game engine to keep the value, so I could visit AR2601 repeatedly.

Edited by argent77
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...