Jump to content

K4thos

Modders
  • Posts

    1,420
  • Joined

  • Last visited

Posts posted by K4thos

  1. ok, I see where the problem lays with that PLAYER1.DLG. EET didn't import "WeiDU-BGEE.log" (RC6 regression), that is why compatibility patch couldn't detect if first BG1 NPC Component has been installed. This means that there are few more patches not applied, so there may be more problems. Files attached to this post are already fixed, so it may be a good idea to re-install EET to be sure that all patches have been applied. If subtledoctor will confirm that the mod installs fine on OSX I will push update with those files as RC6.3 on GitHub.

  2. @k4thos I was wrong before: just throwing a " ./ " in front of the setup-EET_core command does work... but then EET_core fails, with this error:

    /bin/sh: setup-EET: command not found

    ERROR: cannot locate EET/temp/patch/are/AR0002.ARE

    EDIT - it's possible the MKDIR command is failing to create the temp directory. I don't know how it works in Weidu, but a quick Google search shows that the mkdir command fails in OS X unless the full path to the destination is specified. Again calling an AppleScript might be useful here, since it can use path_to_me. Maybe a shell script - or Weidu - can do something similar? I'm not familiar enough.

     

    MKDIR is weidu command so it should be platform independent. Please try replacing files attached to this post (simply "extract here" in main BG2:EE folder) and run the installation again. I've added additional osxBin variable and changed WEIDU_EXECUTABLE variable based on os.

     

    As for the directory confusion - I will change the message from "BG:EE" to "BG:EE+SoD"

    EET.zip

  3. I've noticed an issue with the transition from SoD to SoA. If you're playing with a party consisting of two or more custom characters they are all moved to the SoA starting dungeon into their respective cells. However, they are not disabled. For some reason the temporary bag of holding for the imported items is placed into the inventory of the second party member, so you can manually drop items that are still in the bag to the ground. In my case I could drop the Helmet of Dumathoin (bdhelm09) and the Archer's Eyes (bdamul02).

    Multiplayer characters not been kicked is intented. Although the fact that you were able to open thier inventory before the cutscene starts is not (there is a slight delay caused by MoveToCampaign command before the area script starts working). As you can see in game Player1 is still under MakeUnselectable() effect applied during SoD ending (violet foot ring) but other characaters already recovered from this state when transported to dungeon. I've attached a fix for this issue to this post. It needs to be tested so please upload a save (or try it out with this patch installed) It can be installed after last component - order doesn't really matter.

     

    Another issue involves the "Import Game" feature when starting a new SoA game. If you start a regular SoA game, save and import that save to start a new SoA game you have two Imoens in your party. The Imoen from the imported save appears to be treated like a custom-made character. Rinse and repeat to fill all your party slots with more Imoens.

    Huh, not sure what to do with it. "Import Game" feature is supposed to import save from "Baldur's Gate - Enhanced Edition/save" directory rather than use current game for it. In worse case the feture will need to be disabled.

     

    And another minor installation issue. A text file called "A" is created in the root folder of the drive where you install EET. It contains some log data from the tileconv conversion process:

    fixed, thanks.

     

    Silly question: where do I run this from? The BG2EE game folder?

    yep

     

    but I confess I don't understand what is happening here. Why have an "initialize" mod that triggers a whole separate mod on exit? Why not make them a single mod? Or, rather than trying to externally call the Weidu executable on exit, why not just INCLUDE the other .tp2?

    no other way to reload merged TLK: http://forums.pocketplane.net/index.php/topic,29571.msg338034.html#msg338034

    Maybe CravesDaak will be able to fix the installation on Mac. Sorry for inconvenience. I never used OSX in my lifetime.

    ForRC6.0UpToRC6.2.rar

  4. Thanks for the quick fix.

     

    The latest BG1NPC release is from April 2016. It looks like RC5 and earlier didn't transfer BG1EE's PLAYER1.DLG at all. I haven't noticed it since it just contains a few lines that are probably only relevant in certain party compositions.

     

    I think it may be related to weidu. The compatibility patch inside 'EET/compat/bg1npc/include.tph' already had this code:

    //Compatibility with BG1NPC Required Modifications
    ACTION_IF (FILE_EXISTS ~WeiDU-BGEE.log~) AND (FILE_CONTAINS ~WeiDU-BGEE.log~ ~BG1NPC\.TP2. #[0-9]+ #0 ~) BEGIN
        EXTEND_TOP ~REDDEATH.BCS~ ~EET/compat/bg1npc/baf/X#BRDWI.BAF~ EVALUATE_BUFFER //Interjection scripting changes, BG1 NPCs
        //delete files existing in BG2:EE
        DELETE + ~%patch_dir%/dlg/PLAYER1.dlg~
    END

    which should delete the file during installation when component 0 is detected (this was obviously mistake on my part considering this file is actually used - for some reson I thought it is empty - maybe it was when I was creating that compatibility patch).

     

    Do you still have SETUP-EET_CORE.DEBUG file to check what has been reported when weidu tried to use DELETE + on PLAYER1.DLG? If no, no problem, I will test it on new installation.

  5. Does this mean that Player1.dlg becomes Player1_.dlg for the BG1 campaign?

     

    what do you mean by it? Isn't it just a normal dialogue file like any other in game? It's not assigned to Player1 like MULTIG.DLG is assigned to multiplayer characters (or at least that's not the case when I load the save file in NI).

     

    BG1NPCProject simply CHAINS to it and removes it from charaname when dialogue is finished:

    CHAIN ~PLAYER1~ IMINT4.7A
    @357
    = @358
    == ~%IMOEN_JOINED%~ @359
    = @360
    DO ~ActionOverride(Player1,SetDialogue(""))~
    EXIT
    
    CHAIN ~PLAYER1~ IMINT4.7B
    @361
    = @362
    = @363
    = @364
    = @365
    == ~%IMOEN_JOINED%~ @366
    DO ~ActionOverride(Player1,SetDialogue(""))~
    EXIT

    Or maybe I'm missing something? If the dialogue is special in any way than we could merge it via setup-eet_end.exe

     

    ---------

     

    edit: to clarify - I meant that you can append to PLAYER1.DLG in your mod instead of PLAYER1_.DLG if you like and it should work regardless of the campaign since it's your code that assigns it, not the engine.

  6. I've experienced something similar. One of my BG2 mods failed installation while processing PLAYER1.DLG. It looks like EET overwrites BG2EE's PLAYER1.DLG with the PLAYER1.DLG from BG1EE. Vanilla BG1EE doesn't contain this file, but it is added by mods, like BG1NPC. It worked correctly in RC5.

     

    this explains it. I've checked this mod with 'BGEE_to_EET_mod_checker' tool in past and don't remember this file to be reported as conflicting with BG2. Is PLAYER1.DLG new addition to BG1 NPC Project?

     

    I will install all mods from BG:EE compatibility list to see if any other than BG1NPC Project uses this file. Probably following code will be added to 'EET/compat/bg1npc/include.tph':

    ACTION_IF FILE_EXISTS ~%patch_dir%/dlg/PLAYER1.DLG~ BEGIN
      ACTION_DEFINE_ASSOCIATIVE_ARRAY remapped_dlg BEGIN
        "PLAYER1" => "PLAYER1_"
      END
      MOVE + ~%patch_dir%/dlg/PLAYER1.DLG~ ~%patch_dir%/dlg/PLAYER1_.DLG~
    END

    this will handle it automatically during installation. Shin, you can paste above code to 'EET/compat/bg1npc/include.tph' and re-install EET.

     

    edit: alternatively the file could be simply appended to the existing one considering BG2 file seems to be properly filtered. I will take a look how exactly BG1 NPC Project deal with it when installed on BGT.

  7. Attempting to install ascension 1.5 beta onto a fresh EET 1.6 + SoD install with weidu 239.03 results in the following error for me:

     

     

    [./override/BIMOEN25.DLG] loaded, 11225 bytes

    [bIMOEN25.DLG] loaded

    [./override/BALTH.DLG] loaded, 4137 bytes

    [bALTH.DLG] loaded

    WARNING: internal label [7] not found in processed DLG [PLAYER1]

    ERROR: processing .D actions [ascension/ascensionmain/d/player1.d]: Invalid_argument("index out of bounds")

    Stopping installation because of error.

    Stopping installation because of error.

     

    ERROR Installing [Ascension v1.51 BETA (requires ToB)], rolling back to previous state

    Unable to Unlink [ascension/backup/0/OTHER.0]: Unix.Unix_error(1, "unlink", "ascension/backup/0/OTHER.0")

    [ascension/backup/0/UNSETSTR.0] SET_STRING uninstall info not found

    Will uninstall 188 files for [ASCENSION/SETUP-ASCENSION.TP2] component 0.

     

    Did this happen before as well? Did I overlook something in the installation process? I tried rolling back to weidu 239 as well, but same result.

    Edit: It works on vanilla BG2EE, so something might be up with the conversion process.

    can't reproduce it. Version downloaded from here (Clone or download -> Download ZIP) installs fine for me on RC6 using weidu 239.03. You're aware that BG2:EE mods should be installed before setup-EET_end.exe, right?

  8. The console stuff looks fine.

    thanks. If anyone will have problems with OSX installation let us know.

     

    ---------

     

    huh, looks like I forgot to mention one thing in RC6 changelog:

    - Siege of Dragonspear areas reachable when progressing through story contrary to vanilla SoD which removes access to them after each chapter. It's a 2 step process. First cleaning takes place to get rid of characters that shows up later in the SoD story after the chapter that the area was meant to be accessible is finished, so you are still able to finish pretty much all side content in later SoD chapters. Second cleaning takes place when you visit these areas after finishing SoD story - in such case everyone related to Crusaders and Coalition is disabled, so the areas are ready to be repopulated again by mods (desperately needed for Coalition Camp and Dragonspear Castle considering almost everyone there were involved with the main plot)

     

    Above feature has not been tested yet extensively but it's part of RC6.

  9. Great!. When version 1.0 :)?

    Quote from first post:

     

    Before we can call it version 1.0 following things have to happen:

    - new stable WeiDU release

    - hopefully a BG2:EE patch that resolves this engine problem. The fog effect in SoD areas looks awful to me (exactly the same as reported in that link by someone else). If this won't be fixed relatively soon than fog effects will be disabled in EET.

    - fixing stuff found by you guys - feel free to report problems in this topic (if they haven't been reported already to Beamdog either on forums or directly on redmine)

    - call for translators to update new strings added to EET TRA files

     

     

    When it's done :spanking:

    In fact the RC6 is already feature complete (that is why more RC versions are not planned unless there will be enough reports to warrant additional RC). Stable release date is now dependent on outside factors, as mentioned above. In the meantime I will continue polishing the mod based on your feedback guys - once again thanks for all the reports.

     

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

     

    Once more regarding that Drizzt encounter bug. It should be fixed in RC6. Using this clua code in your save, argent, solves it:

    C:Eval('SetEncounterProbability("AR2500","AR3000",0)')

    If you test it the entrance entry point will be still incorrect because your save has been made on RC5 (no longer a problem on RC6) but the Drizzt encounter is not triggered.

     

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

     

    Some things regarding RC6:

    - save updating feature from setup-EET_end.exe is not compatible with old one, so it's recommended to delete 'Baldur's Gate - Enhanced Edition Trilogy/save/saves.tra' and old saves created in previous installation. The reason for that is related to the TLK merging - all vanilla BG:EE, BG2:EE and SoD content is now persistent when it comes to save data (form now on saves will be compatible with any installation when it comes to vanilla content), so the optional save patcher now exports mod added strings and update strings in saves that has been added by mods only, not all like in previous version.

    - the code has been greatly optimized (hopefully without regressions). Probably there is still room for improvements (I was shocked looking at some crap I've written ages ago that needed minutes to perform simple task :jesus: ). On my old laptop (second generation 2 core intel) clean EET without mods now installs in 23 minutes. If someone will make a clean installation without other mods on better stationary rig with good CPU please post here the computer specification (CPU, RAM, system) and how long it takes to install the mod on it. Also reports from people using some ancient PCs would be valuable. I'd like to include this information in the readme. To make the measurements more reliable please reset the computer first and disable resource heavy background applications (especially file scanners).

    - you can ignore setup-EET_core.exe file - it is called automatically during installation, after TLK files are merged. You don't need to install it manually (you can even delete this file after installation is finished considering it's not needed for re-installation). Maybe this second file won't be used in future considering newest weidu added a feature to expand the TLK on the fly without merging via STRING_SET_EVALUATE NEXT_STRREF (need to test how much longer it would take - if more than a minute or two than we will stick with --make-tlk solution).

    - and the most important thing:

     

    Version 1.0 Release Candidate 6.2

    - added Mac OS X weidu Binary

     

    The mac installation has not been tested in quite a while, so I'm not sure if the mod still works correctly with it. Could anyone please check these commands if they use correct OS X syntax?

    cat EET/temp/bg2ee.tra EET/temp/append.tra EET/base/blank.tra EET/temp/bgee.tra > EET/temp/result.tra

    this is meant to merge 4 files into 1. Doing it in weidu via ATTACH_FILE was buggy (probably due to file sizes), so I've used AT_NOW instead.

    rm -rf EET/temp

    this should delete whole directory and its content without any prompts

    rm -f %USER_DIRECTORY%/save/saves.tra

    as above but for a single file (again not via weidu due to weird stuff happenning when you try to delete very large files)

  10. RC6 is up on GitHub: https://github.com/K4thos/EET/releases/

    NPC mod patches also have been updated.

     

    Version 1.0 Release Candidate 6

     

    - 11 SoD items correctly imported to BG2
    - added 'no backup' mode for some files that are meant to be temporary during installation (previously there was a problem with uninstallation since temp files are deleted)
    - arrays with spell effects and general descriptions are now used during conversion to automatically assign BG2 strings if appropriate
    - BG:EE TLK entries are now patched after TLK files are merged (feature requires WeiDU 239.03+ due to NEXT_STRREF variable usage)
    - changes to util.lua functions moved to M_EET.lua (FPS based message and journal pop-up time, support for both BG:EE and BG2:EE style journal entries, chapter labels)
    - chapter names shows up correctly in Journal
    - characters turned to stone in BD1000 no longer uses DPLAYER3.BCS (vanilla SoD weirdness)
    - Developers Documentation added to docs directory (simplified version focusing only on things that may be useful for those interested in modding EET platform. Not really a documentation per se, more a document with modding hints)
    - Dynaheir, Khalid, Yoshimo recognized dead by Fate Spirit in ToB
    - fixed biography table generation for ARCHER and WILD_MAGE kits
    - fixed bug with spell effects descriptions
    - fixed incorrect icons assigned to SoD areas in BP-BGT Worldmap TBL file
    - fixed level 1 BG:EE CHR files importation
    - fixed problem with removing Imoen's Belt in Spellhold
    - fixed problem with Underground Exit and Watcher's Keep links
    - fixed RC5 regression in Ducal Palace second floor SoD script which caused stuttering and NPC disabling
    - GUI auto biography feature now supports multi-class characters
    - HLA screen in SoD GUI now available in SoD style
    - implemented support for 'ObjectType' remapping whenever trigger/action refers 'Object' (knew I forgot about something important)
    - improved auto detection of BG:EE installation (loop through all default GOG, Steam, Beamdog directories - let me know if you use default directory but the game prompt to type it manually rather than asking for default directory confirmation)
    - improved items importation to SoA via K#IMPORT.2DA
    - killed NPCs won't show up in SoD (exceptions for Skie and old NPCs that are not joinable in BG2)
    - Neera spawned in correct coordinates if game was started in SoA
    - new function used during conversion will now automatically add missing 'Protection from Display Specific String' effects based on BG2 TLK entries
    - no backup made upon patching Baldur.lua via 'Finalise EET' component
    - one Aec'letec even if you killed some BG2 Tanar'ri before meeting him
    - optimized patching code (no current/total amount of files patched visual feedback, changes in some antique code) - about 1/4 shorter installation time
    - Pocket Plane ability no longer can be casted successfully inside Pocket Plane
    - shorter travel times between BG1->SoD, SoA->BG1, ToB->SoA (feedback regarding it needed)
    - SoA quests controlled by global script will now remain active during ToB
    - SoD Chapter 9 and 10 textscreens no longer replace ToB ones
    - starting from ToB campaign without playing previous campaigns allows you to summon default BG2:EE NPCs
    - Underground River name correctly presented on worldmap
    - updated EET_functions.tph (STATE_REALLY_DEAD check changed into 'Dead' trigger, WITCH_TRA command used to not overwrite strings used by mods dependent on AUTO_TRA - BG2:EE NPC patches should be re-downloaded since they use this external file)
    - updated 'note for translators' that explains new strings added in 1.0 RC releases. German, French, Spanish translation has been disabled since they haven't been updated yet
    - wav files packed into multiple 150 MB biff files rather than one 700+ MB
    - WeiDU updated to the latest beta (239.03, almost stable version that support patch 2.x features)

     

    edit: RC 6.1 (quick fix)

    - fixed Polish translation installation

     

    edit: forgot to mention this in RC6 changelog:

    - Siege of Dragonspear areas reachable when progressing through story contrary to vanilla SoD which removes access to them after each chapter. It's a 2 step process. First cleaning takes place to get rid of characters that shows up later in the SoD story after the chapter that the area was meant to be accessible is finished, so you are still able to finish pretty much all side content in later SoD chapters. Second cleaning takes place when you visit these areas after finishing SoD story - in such case everyone related to Crusaders and Coalition is disabled, so the areas are ready to be repopulated again by mods (desperately needed for Coalition Camp and Dragonspear Castle considering almost everyone there were involved with the main plot)

  11. I couldn't find a related SetEncounterProbability() action in any of the scripts

    wait, woot :O This actually explains the issue. Completely forgot that this action exists. Here is what is found in AR2601.BCS:

        SetEncounterProbability("AR2500","AR0020",0)
        SetEncounterProbability("AR2500","AR1300",0)
        SetEncounterProbability("AR2500","AR1304",0)
        SetEncounterProbability("AR2500","AR1700",0)

    So it should be a matter of adding this to the same block to fix the problem:

        SetEncounterProbability("AR2500","AR3000",0)

    Vanilla BG2 probably indeed automatically change the probability from 101 to 0 considering above code doesn't exist in non-EE BG2. Thanks for investigating it, argent.

  12. 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)

  13. 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.

  14. 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.

  15. 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.

  16. 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.

  17. 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.

  18. because I thought EET wasn't taking your money away in CI

     

    all your items and money are taken from you in Irenicus Dungeon in EET. Optionally you will be able to install EET_Tweaks component that moves items to Illych's chest within the dungeon, but that's a tweak and not something that players will experience by default.

  19. Since the situation is created by the base EET installation, my argument is that EET should be a stand-alone playable mod - not requiring the user to use a handbook/guidance tthat tells him to install some extra tweaks and mods to get a meaningful game in the end.

     

     

    I agree with this statement although not sure if I understand the whole problem. You loose all of the money at the start of SoA. So the only way to travel to Spellhold is either doing quests in BG2 areas (which will take exactly the same amount of this as doing it in vanilla BG2:EE) or going back to old BG1/SoD areas to do unfinished quests there and pick up some previously left out valuable items to sell them (in the latter case it's a player's decision to speed up the length of Chapter 14 that could be warranted from the role-playing perspective).

     

    Without any item/tweak etc mods by just selling a few items found in the dungeon, first promenade visit and doing slum slaver quests, I already have enough gold to potentially finish chapter 14. (I was only at promenade, slums and docks so far). This is almost vanilla contents and still I could already go to Spellhold.

     

    but exactly the same is true for vanilla BG2:EE. Shouldn't it be a feature request to Beamdog than?

  20. I've encountered another issue. When Imoen rejoins your party in Spellhold she still has her unremovable belt from Chateau Irenicus equipped.

     

    fixed, thanks! This LUA code should fix it locally in your game:

    C:Eval('ActionOverride("Imoen2",DestroyItem("IMOENHP1"))')
  21. 1. Will it be necessary to change anything in ADD_JOURNAL @1 @2 @3 USING bla/bla to get mod's journal entry into the quest part of the journal (where applicable).

     

    I think argent77 will be able to answear this. From what I understand his code works exactly the same as ADD_JOURNAL weidu command that works on pre patch 2.x games, so if Wisp will internalize it to use non-function syntax than you won't need to change anything.

    2. Are there other changes a mod needs to consider with this update?

     

    weidu? Nothing that I'm aware of. EET now merges TLK files but it doesn't affect mods in any way, so nothing has to be changed in your code. EET_functions.tph file that automatically implements EET NPC continuity system to NPC mods has been updated but from what I remember you don't use it, so you don't need to acknowledge it. Although you will need to redownload EET compatibility patches if you use those mods once RC6 is pushed to GitHub (patches also awaits for new weidu before I upload them) since many of them depends on this file. To eliminate such situations in future I've removed the file from all patches mod directories and load it from within EET directory instead like this: INCLUDE ~EET/other/EET_functions.tph~. This way from now on if mod author internalize the patch he/she no longer need to worry about this file being out of date.

  22. Just a little update - RC6 is ready but not pushed to GitHub yet. I think it may be a good idea to wait for weidu 239.03 release, so we can test both feature complete EET (probably final RC release before 1.0 unless there will be enough problems to warrant additional RC) and the almost stable version of weidu that supports patch 2.x features at the same time. If I interpret this post correctly next weidu release candidate is right around the corner.

  23. This is not directly a bug in EET, but rather a side effect of the continuation it provides. "Corinth's Bow +2" (bdbow02.itm) from SoD may cause trouble if you continue to use it in Athkatla. On a critical hit this bow casts "Luck" on the user, which happens to be the vanilla arcane spell "Luck", and is therefore detected by the Cowled Wizards. This ability makes using the bow in the city very dangerous.

     

    There may be more items causing trouble. SoD added a lot of items which auto-cast spells on certain conditions. Maybe it's possible to add a fix that automatically scans all items with auto-cast spell effects and replaces these spells with copies marked as non-arcane.

     

    not sure about this one. I've just checked vanilla BG2 Club of Detonation +3 (BLUN27) which also uses Spell Type -> Wizard (I assume this is what's causing the Wizards spawn?) so making copy of each referenced spell and assigning modified one to items could also alter equipment that is designed by default to cause problems in Athkatla. Even if we limit it to files with BD prefix items with effects similar to Club of Detonation would than stand out from vanilla equipment. I think it's more a material for tweak rather than global solution that should be implemented by default. Or maybe we should deal with it case by case taking care of items for which Cowled Wizards spawning doesn't make sense? Some more opinions would be valuable.

  24. Thrown Hammers uses a different set of Description Icons in SoD to match the dark theme. EET can be modified to use the darker SoD theme via the component from EET_end, but as it comes last in the install order I have no way to detect if it will be installed (other than to ask). How do I prompt the user as to whether they will be using the SoD theme before the 1st component of Thrown Hammers begins installing?

    The easiest way (and probably most reasonable considering player can change mind regarding GUI) would be installing normal ones by default and adding this code to your tp2:

    ACTION_IF GAME_IS ~eet~ BEGIN
      COPY ~yourDirectoryWithDarkIcons~ ~EET/SoD_GUI~
    END

    that folder is copied to override when the sod gui is installed.

     

    Alternatively you could use built-in weidu menu system (check the weidu documentation or any mod that use it) or code like this inside component:

    OUTER_SET valid_answer = 0
    OUTER_SET button = 0
    OUTER_WHILE (valid_answer = 0) BEGIN
        ACTION_IF (button = 1) BEGIN //Dark
            COPY ~yourDirectoryWithDarkIcons~ ~override~
            OUTER_SET valid_answer = 1
        END ELSE ACTION_IF (button = 2) BEGIN //Bright
            COPY ~yourDirectoryWithBrightIcons~ ~override~
            OUTER_SET valid_answer = 1
        END ELSE BEGIN
            PRINT @900000 //Choose icons: 1] Dark 2] Bright
            ACTION_READLN button
            ACTION_IF NOT (IS_AN_INT button) BEGIN
                OUTER_SET button = 0
            END
        END
    END
×
×
  • Create New...