Jump to content

argent77

Modders
  • Posts

    1,587
  • Joined

Everything posted by argent77

  1. The code looks fine (apart from a minor typo ) and it worked fine in BG2 when I compiled it as a standalone dialog. It's possible that previously executed script actions in the dialog are somehow blocking execution of the current script actions.
  2. A single call of EXTEND_TOP ~script.bcs~ ~mymod/scripts/nuscript.baf~ EVAL should be enough. EXTEND_[TOP|BOTTOM] automatically fetches the game script from BIFF or override (and even creates a new SCRIPT.BCS if it doesn't exist yet), compiles the .BAF and extends the game script. EVAL can be omitted if you don't need to evaluate variables in the .BAF.
  3. The structure information was based on reverse engineered data from the EE executable. However, after some more testing it looks like several key features I mentioned in my previous post can't be used because they are still hardcoded in the engine. I have updated the animation structure description in my previous post to make it more clear. These features might become relevant again if Beamdog or modders can fix/patch the game executable to remove the hardcoded restrictions.
  4. @Acifer Thanks to Bubb's excellent reverse engineering skills I can provide a more accurate description of the dragon animation type: Animation type "multi_new", 9-part BAM animations (slot ranges 1200..12ff): - naming scheme: [prefix][sequence].BAM - prefix: an arbitrary BAM file prefix (e.g. MDR1, MDR2, ...) - sequence: (Numbers behind WK/SC/SD/... indicate cycle numbers) - if attribute split_bams=0: <-- NOTE: This mode is currently ignored in EE games - G1[quadrant]: WK=0-8 - G2[quadrant]: SD/SC/SP=0-8, SD(unused)=9-17, SC(unused)=18-26 - G3[quadrant]: A1=0-8, A2(unused)=9-17, A3(unused)=18-26 - G4[quadrant]: GH=0-8, DE/SL/GU*=9-17, TW=18-26, SL(unused)=27-35, DE(unused)=36-44 - G5[quadrant]: SP(unused)=0-8, CA=9-17 - *: GU (get up) sequence: frames are played back in reverse order by the engine - if attribute split_bams=1: - 1[quadrant]0[dir]: WK=[dir] - 2[quadrant]0[dir]: SD/SC/SP=[dir], SD(unused)=9+[dir], SC(unused)=18+[dir] - 3[quadrant]0[dir]: A1=[dir], A2(unused)=9+[dir], A3(unused)=18+[dir] - 4[quadrant]0[dir]: GH=[dir], DE(unused)=9+[dir], TW(unused)=18+[dir], SL(unused)=27+[dir], DE(unused)=36+[dir] - 4[quadrant]1[dir]: GH(unused)=[dir], DE/SL/GU*=9+[dir], TW(unused)=18+[dir], SL(unused)=27+[dir], DE(unused)=36+[dir] - 4[quadrant]2[dir]: GH(unused)=[dir], DE(unused)=9+[dir], TW=18+[dir], SL(unused)=27+[dir], DE(unused)=36+[dir] - 5[quadrant]1[dir]: SP(unused)=[dir], CA=9+[dir] - *: GU (get up) sequence: frames are played back in reverse order by the engine Example BAM filename for prefix "MDR1", animation sequence CA (release spell), top-right quadrant, SW direction: MDR15312.BAM (active cycle=11) - quadrant: - index in range [1..quadrants]; one digit (see quadrants attribute below) - ordered left->right, top->bottom - dir: - a single-digit number indicating a direction (0=S, 1=SSW, 2=SW, 3=WSW, 4=W, 5=WNW, 6=NW, 7=NNW, 8=N) - eastern directions are calculated by the engine - INI attributes (EE games 2.0+): <-- NOTE: These attributes are currently overridden by harcoded values in EE games - double_blit: (boolean) apparently unused in EE games - quadrants: (int) the number of quadrants the animation has been split into - split_bams: (boolean) 1: animations are spread over various subfiles; 0: animations are packed in G1-G5 files (see above definitions) - palette1: (string) palette resref for sequences starting with "1" prefix - palette2: (string) palette resref for sequences starting with "2" prefix - palette3: (string) palette resref for sequences starting with "3" prefix - palette4: (string) palette resref for sequences starting with "4" prefix - palette5: (string) palette resref for sequences starting with "5" prefix Many animation sequences are marked as "unused". They usually just contain duplicate cycle entries or placeholder data. Unfortunately several features are currently hardcoded in the EE games and can't be changed. This includes the INI attributes as well as not being able to use the unsplit BAM format. I have mentioned them in case Beamdog or modders remove the hardcoded restrictions in future game patches.
  5. These script actions are available to all animations in slots range 3000-3fff. This includes the new Neothelid animation in SoD. The D-type BAMs are just used as an extra layer for this animation type and rendered behind the creature sprite for the ground part. The number of frames in these BAMs don't have to be in sync with the creature sprite BAMs. They are simply played back repeatedly until the creature animation sequence has ended.
  6. That's an interesting idea. I don't know if it's possible, but I'll look into it.
  7. I have recently digged into the various creature animation formats for NI. Maybe these notes about splitted bams can help: Animation type "multi_new" 9-part variant: slot range (1200..12ff) - naming scheme: [resref][sequence].BAM - resref: - a four-letter prefix (e.g. MDR1, MDR2, ...) - sequence: (Note: numbers behind WK/SC/SD/... indicate cycle numbers) - 1[segment]0[dir]: WK=[dir] - 2[segment]0[dir]: SC=[dir], SD=9+[dir], SC=18+[dir] - 3[segment]0[dir]: A1=[dir], A2=9+[dir], A3=18+[dir] - 4[segment]0[dir]: GH=[dir], DE/SL=9+[dir], TW=18+[dir], DE/SL=27+[dir], DE/SL=36+[dir] - 4[segment]1[dir]: GH=[dir], DE/SL=9+[dir], TW=18+[dir], SL=27+[dir], SL/DE=36+[dir] - 4[segment]2[dir]: GH=[dir], DE/SL=9+[dir], TW=18+[dir], SL=27+[dir], SL/DE=36+[dir] - 5[segment]1[dir]: SP=[dir], CA=9+[dir] - segment: - index in range [1..9]: single digit - ordered left->right, top->bottom - dir: - a single-digit number indicating a direction (0=S, 1=SSW, 2=SW, 3=WSW, 4=W, 5=WNW, 6=NW, 7=NNW, 8=N) - eastern directions are calculated by the engine - Attributes (INI files, EE 2.0+): - can_lie_down: (boolean) whether creature falls down when dead/unconscious (?, tbc) - detected_by_infravision: (boolean) whether a red tint is applied when detected by infravision - false_color: (boolean) whether color replacement is enabled - path_smooth: (boolean) 0: pathfinding uses only 45 degrees angles 1: pathfinding uses arbitrary angles (probably as many angles are directions available) - quadrants: (int) the number of segments the animation has been split into - split_bams: (boolean) 0: animations are packed in G1 and G2 files 1: animations are spread over various subfiles ^^ confirmed to be working with 4-part variant (see below), might also work for 9-part variant but I don't know the encoding scheme - translucent: (boolean) whether animation is semi-transparent Animation type "multi_new" 4-part variant: slot range (1300..13ff) - naming scheme: [resref][sequence].BAM - resref: - a four-letter prefix (e.g. MDEM, ...) - sequence: (Note: numbers behind WK/SC/SD/... indicate cycle numbers) - if split_bams=1: - G1[segment]: SC=9-17 - G1[segment]1: WK=0-8 - G1[segment]2: SD=18-26 - G1[segment]3: GH=27-35 - G1[segment]4: GH=27-35, DE=36-44, TW=45-53 - G1[segment]5: TW=45-53 - G2[segment]: A1=0-8 - G2[segment]1: A2=9-17 - G2[segment]2: A3=18-26 - G2[segment]3: A4=27-35 - G2[segment]4: A5=36-44 - G2[segment]5: SP=45-53 - G2[segment]6: CA=54-62 - if split_bams=0: - G1[segment]: WK=0-8, SC=9-17, SD=18-26, GH=27-35, DE=36-44, TW=45-53, SL=54-62, GU=63-71 - G2[segment]: A1=0-8, A2=9-17, A3=18-26, A4=27-35, A5=36-44, SP=45-53, CA=54-62 - eastern directions are calculated by the engine - segment: - index in range [1..4]: single digit - ordered left->right, top->bottom - Attributes (INI files, EE 2.0+): same as for 9-part variant
  8. Spellhold Studios PS:T Unfinished Business - Reloaded This mod is a continuation of Qwinn's original PS:T Unfinished Business (PST-UB), based on version 4.12, that has been completely overhauled and made compatible with Planescape Torment: Enhanced Edition (PST:EE). This release adds the new component "Restored Tenement of Thugs" specifically for PST:EE, based on content from Qwinn's PS:T Fixpack, as well as several translation updates and Project Infinity support. Changelog: Added new component "Restored Tenement of Thugs" for PST:EE Converted readmes into html format Updated Spanish translation (thanks SrReddy) Updated Italian translation Updated Brazilian Portuguese translation Added Project Infinity metadata Added WeiDU SUPPORT information Fixed potential display issues with component names in WeiDU.log and Project Infinity Download: GitHub Discussion: SHS, Beamdog Readme
  9. There are actually kit_example.tph, kit_example2.tph, kit_example3.tph and kit_example4.tph to demonstrate how to add a regular singleclass kit, copy an existing kit, retrieving attributes from an existing kit and adding a true multiclass kit in addition to the readme. The parameters are largely the same as for the old ADD_KIT/fl#add_kit_ee combo, so there shouldn't really be a need for another tutorial.
  10. Since you can only visit stores through the magic store you have visited before at least once this condition is met automatically. Special access could mean a monetary fee or some other kind of "donation", or only party members of certain races, gender or alignment can access the store. Basically everything that is specifically checked every time you want to visit a store from the regular merchant.
  11. New release: Magic Store of Vergadain 2.0 This version offers two options how to install the magic store: 1. Fee required: The ghostly merchant will only allow you to access stores when you pay him a fee. The fee amount depends on the current game or campaign. This option has been included for balance reasons, since the magic store can make life of an adventurer much easier (e.g. having the opportunity to resurrect your companions, identify items or restock with consumables even in the most remote places of the world). 2. Free of charge: This is the same option as provided by the previous mod version. You can access any shop offered by the magic store free of charge. This release also takes care of special stores where you would have to pay an additional fee for access (e.g. Ribald's special store in BG2). Currently only two shops are considered (Ribald's special store and a store offered by the Golem Construction mod). Please let me know if there are more mods with stores that require some kind of "access conditions", so I can add them to the mod. Moreover, this version adds Russian translation to the mod. Changes: Added new install option: Ghostly Merchant may charge a fee whenever you want to visit a store Added special treatment of stores where the original merchant demands a fee for access Added Russian translation (thanks yota13) Added German readme
  12. Magic Store of Vergadain The mod allows you to acquire a magical artifact called "Magic Store of Vergadain" that provides the means to visit any store you have visited in the past. Getting your hands on this unique artifact involves a small quest of one kind or another. It is available for original BG2, Tutu, BGT, BG:EE, SoD, BG2:EE, EET and IWD:EE. This release provides multiple installation options and comes with Russian translation by yota13. Changes: - Added new install option: Ghostly Merchant may charge a fee whenever you want to visit a store - Added special treatment of stores where the original merchant demands a fee for access - Added Russian translation (thanks yota13) - Added German readme Download: GitHub Discussion: G3, Beamdog Readme
  13. The group of "Nearest()" identifiers has never worked correctly for me. Afaik, "Nearest()" also takes the active creature into account, and "SecondNearest()" actually targets the third nearest (when taking the active creature into account). In your case the NearestAllyOf() specifier in combination with Allegiance() and General() checks might produce the desired result: IF See(NearestAllyOf(Myself)) Allegiance(LastSeenBy(Myself),PC) General(LastSeenBy(Myself),HUMANOID) THEN ... However, that only works in EE games. Edit: You might even drop the Allegiance() check, but I don't know of NearestAllyOf also includes familiars and other ally types in the check.
  14. Thanks for the hint about the parameter "from_utf8". This is a big improvement over the traditional way of handling translations. No more trouble creating .tra files with the right ANSI encoding. This "feature" isn't related in any way to HANDLE_CHARSETS though. It rather appears to be a quirk of the WeiDU binary. The 64-bit Windows executable seems to display UTF-8-encoded setup.tra correctly in the console window, but the 32-bit executable does not. Since most mods ship with 32-bit executables it's still advisable to use only US-ASCII characters in the setup.tra.
  15. Yes, it does. See the readme for more details (linked in first post).
  16. Your line of thought would be more fitting for a delivery service kind of mod. But that's not what I had in mind. The 'ghostly merchant' is certainly arguable (I initially thought about making it a conversable item), but I think the way it's currently implemented fits well into a high level magic world like the Forgotten Realms. I could have just as well used a djinni instead. There are still several aspects that have to be tweaked in future releases though. In its current state the artifact is quite powerful.
  17. Thank you! Yes, it was a coding challenge (which was the main reason I actually created this mod in the first place. )
  18. Magic Store of Vergadain This mod allows you to acquire a magical artifact called "Magic Store of Vergadain" that provides the means to visit any store you have visited in the past. Getting your hands on this unique artifact involves a small quest of one kind or another. The mod supports the following games and game variants: Original BG2 Tutu/EasyTutu BGT BG:EE (with or without SoD) BG2:EE EET IWD:EE The mod is currently available in English and German. Download: GitHub Discussion: G3, Beamdog Readme
  19. Magic Store of Vergadain Download from GitHub Readme Introduction The games contain a great number of stores for your shopping needs. However, finding or returning to a store can take a lot of time or is sometimes not even possible. This mod allows you to acquire a magical artifact that provides the means to visit any store you have visited in the past. Getting your hands on this unique artifact involves a small quest of one kind or another. The mod supports the following games and game variants: Original BG2 Tutu/EasyTutu BGT BG:EE (with or without SoD) BG2:EE EET IWD:EE It is currently available in English, German, Polish and Russian. Components 1. Magic Store of Vergadain (for BG2, Tutu, BGT, BG:EE, SoD, BG2:EE, EET and IWD:EE) This is the main component. It installs the artifact "Magic Store of Vergadain" and associates it with a small quest. The Magic Store keeps track of the stores you visit throughout the game, so you can visit them later at any time and place even if the original store becomes unavailable. Activating the artifact summons a ghostly merchant who offers a list of available stores for your shopping needs. Each game campaign provides their own small quest to get access to the Magic Store of Vergadain. The quest usually starts by acquiring a book about forgotten artifacts. It can be found in: BG1: Somewhere in Beregost. SoD: In the opening dungeon. BG2:SoA: Somewhere at Waukeen's Promenade in Athkatla. BG2:ToB: Somewhere in Saradush. IWD:EE: Somewhere in Kuldahar. Only one Magic Store can be acquired in the whole game. For example, if you acquired the Magic Store in EET during the BG1 campaign you can't get another one during the SoD, BG2:SoA or BG2:ToB campaigns. 2. Alternate portrait for Ghostly Merchant (requires the main component) This optional component installs an alternate portrait version of the Ghostly Merchant without ghostly features.
  20. There is a git option that defines how line endings are handled. You can check it with this console command: git config --get core.autocrlf On Windows it should be set to "true" (unless you know what you're doing), so that text files are checked out with cr/lf (windows-style) and committed with lf (unix-style). You can find more info here: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_formatting_and_whitespace
  21. Update: NPC Generator 1.4 Changelog: - Added Project Infinity metadata - Added German translation for WeiDU prompts - Fixed potential display issues with component names in WeiDU.log and Project Infinity - Compatibility improvements
  22. Yes, that should work fine. The code checks the FAMILIAR status, so that speed increase is only applied when the creature is in follower mode. @jastey Just to make sure, are these value correct? (Cre resref is only used to check for creature existence during install time.) // cre resref => script name ~c#bran01~ => ~c#brandock~ ~c#grey02~ => ~c#grey~ ~c#sola12~ => ~c#solaufein~
  23. Thanks for the reminder. I planned to expand this feature to support familiars, but couldn't find the time to actually implement it until now. I have rewritten the code to be more flexible (see commit). Non-EE games and EE games prior to patch 2.0 don't (properly) support the Familiar target which makes it a bit more complicated for these games, but I found a workaround for this issue. The code also supports special familiar-type followers (provided they exist at install time). @jastey I think one your mods provides a familiar-type follower? If you can tell me their cre resref and script name I can add it to the list.
  24. NPC Generator This mod allows you to install any number of pregenerated or exported characters as regular NPCs. It is available for original BG2, BGT, Tutu, BG:EE (with or without SoD), BG2:EE, EET and IWD:EE. Version 1.3 fixes an installation error in IWD:EE and improves plot-specific behavior of NPCs and followers for SoD and BG2-SoA. Download: GitHub Discussion: G3, Beamdog Readme
×
×
  • Create New...