Jump to content

CamDawg

Gibberling Poobah
  • Posts

    12,012
  • Joined

Posts posted by CamDawg

  1. The Gibberlings Three

    The G3 Anniversary mod was created by the resident modders on the site's first anniversary as a way to thank our wonderful community. It features one long (and admittedly somewhat silly) quest that can be initiated by speaking a Drini, a half-elf in the Copper Coronet. Version 13 fixes a bug that could prevent installation for Russian players and makes a few minor item fixes.

  2. The G3 Anniversary mod was created by the resident modders on the site's first anniversary as a way to thank our wonderful community. It features one long (and admittedly somewhat silly) quest that can be initiated by speaking a Drini, a half-elf in the Copper Coronet. Version 13 fixes a bug that could prevent installation for Russian players and makes a few minor item fixes.

    v13 changelog

    • Fixed bug that prevented installation on Russian games
    • Minor item fixes:
      • Tome of Arcane Recall will no longer require identification after its first use
      • Flickering White Ioun Stone will now show a 'Resist Cold' portrait icon
      • Mage Boots of Self Preservation were not working at all
  3. The Gibberlings Three

    G3 is pleased to welcome a new project from morpheus562: Morpheus562's Kitpack! From morpheus562 himself:

    "These kits are inspired from various areas to include 5e subclasses and NWN2 Prestige Classes. I would like to explicitly note the phenomenal work that Kaedrin did with introducing many new Prestige Classes to NWN2 and I borrow from his work to bring them into the Infinity Engine. There is more to come, but what is listed below is fully functional."

    Version 1.0 is now available in English and French.

  4. The monk description states:

    Quote

    – Starts with an Armor Class of 9 at 1st level and gains an additional +1 bonus every 2 levels.

    It's every two levels until level 18 (AC0), then every three levels until level 30 (AC -4), and then every five levels to the end of their ability table (level 40, AC -6).

    The two monk kits share this progression, though it's not explicitly mentioned in the kit descriptions. There is one small difference: their ability tables extend to level 50, but AC stops improving at level 40/AC -6 like the main class.

     

  5. This is Jarno's ongoing old-man-yelling-at-clouds moment, as he seems to think that anyone mentioning "BGT" is referring to Bardez's original (non-WeiDU) BGT instead of the current (WeiDU mod) BGT at SHS.

    Unlike Jarno, I've actually contributed to both, so I'll keep my own counsel as to how I'll refer to them.

  6. In the olden days, there was a good discussion to be had as to whether the approach of BG content in BG2 as a standalone game (Tutu) or a continuous story (BGT) was a better idea.

    After a while, it became obvious that the superior project was the one still being supported--for a while that was Tutu when Macready was still active, but these days it's definitely BGT.

  7. Yes, Melicamp should be there, so the dialogue is breaking before completion. He's supposed to return after you sort out the miners, or you can also send him away to get the scrying device from Taerom. From the console, you can fix this with

    C:Eval('Activate("melicamp")')

    when you're in the High Hedge.

  8. 4 hours ago, jastey said:

    Humbly asking to report it to the list for Unified cre patching in mods if the changes aren't already included.

    Thanks, and done!

    3 hours ago, Angel said:

    I hope you don't mind me grabbing the unfinished business stuff for my own restorations mod as well. ^^

    By all means. However I forgot to include the mtob4 and motb5 creatures, which I've added to the original post. EEFP assigns those dialogues to the creature files, but the creature files themselves are unused.

  9. In development, but EE Fixpack currently has the following changes:

    • The following creatures are assigned their filename as their death variable (e.g. farm4.cre is given 'farm4' as its DV): farm4.cre, housg1.cre, and housg2.cre. I don't know if we track SoD assets, but in case we do it also does the same for bdcrus6d.cre, bdcrus7d.cre, bdcrus8d.cre, bdcrus9d.cre, bdcrus21.cre, and bdcrus22.cre.
    • The following creatures are assigned their filename as their dialogue: ftobe7.cre, mtob4.cre, mtob5.cre, read4.cre.
  10. While I've got this all coded, I wanted to write it all out while I decide how to organize and integrate this into the existing fixes. I'll add a commit link when I do.

    edit: committed

    The broad strokes

    BGEE dialogues suffer from three systematic problems, traceable back to their oBG roots:

    1. If a creature didn't have anything to say in the oBG engine, it would play one of their common selection sounds. In BG2 (and EEs) you get a 'X has nothing to say to you' error message.
    2. oBG didn't have LOCALS-scoped variables, so many dialogues rely on triggers that track how many times they've spoken (NumberOfTimesTalkedTo, or NTTT triggers)
    3. Most oBG creatures have special dialogues for when they're charmed

    We've run into #1 a couple of times already (Oberan and Glanmarie or Tiax) and the general solution has been to simply copy in their common selection sounds into the dialogue proper to avoid the error message.

    #2 isn't really a problem on its own, but combined with #3, it can potentially break a lot of stuff. Many quest NPCs give their quest the very first time you speak with them (when NTTT=0) with no way of coming back to it. So if your first dialogue with them is when they're charmed, you can never receive their quest since NTTT=1 (or more). Even when it's not a quest-giver, the initial dialogue is typically a longer introduction and the subsequent dialogues are either minimal (a simple greeting) or assume you received the information from the first time you spoke. I had fixed a handful of these in previous official patches (Garrick, Tranzig, Gandolorian) as they were reported.

    So, I had some free time and thought I'd do a review of the BGEE charmed dialogues, thinking I'd turn up a handful of issues, spend a couple of hours fixing them, and go on my merry way. That was a week ago: I ended reviewing over 300 dialogue files and adding fixes for about 200.

    Weighting

    The first batch is easy: charmed dialogues need to be weighted more or less at the top of the dialogue stack, otherwise you would charm the creature and get one of their normal dialogues. Only a handful of things should be weighted higher, like post-cutscene dialogues or other high-priority dialogues. This affected about 100 dialogues:

    Spoiler

    alyth.dlg, amnis2.dlg, amnis4.dlg, bandct.dlg, bandic.dlg, beggba.dlg, bentan.dlg, boyba2.dlg, boyba3.dlg, boybe1.dlg, boybe2.dlg, brevli.dlg, dabron.dlg, druidc.dlg, farm2.dlg, farm5.dlg, farmbe.dlg, fcook2.dlg, fcook3.dlg, flam2.dlg, flam5.dlg, flam7.dlg, flam7.dlg, flam8.dlg, flam9.dlg, friend.dlg, friwen.dlg, ftowba.dlg, ftowbe.dlg, ftowfr.dlg, ftowna.dlg, gantol.dlg, girba1.dlg, girba2.dlg, girba3.dlg, greywo.dlg, haffg2.dlg, halffg.dlg, halfg2.dlg, halfg3.dlg, halfg4.dlg, halfg6.dlg, hobgo5.dlg, housg1.dlg, housg4.dlg, housg6.dlg, iron11.dlg, iron12.dlg, iron14.dlg, iron2.dlg, iron3.dlg, iron4.dlg, iron5.dlg, iron6.dlg, ironm4.dlg, kivanp.dlg, mcook2.dlg, mcook5.dlg, minern.dlg, minern.dlg, minern.dlg, monken.dlg, mtbe3.dlg, mtbe4.dlg, mtbe5.dlg, mtbe7.dlg, mtbe8.dlg, mtbe9.dlg, mtob2.dlg, mtob3.dlg, mtob4.dlg, mtob5.dlg, mtowf2.dlg, nemagreb.dlg, nobl10.dlg, nobl11.dlg, nobl12.dlg, nobl14.dlg, nobl2.dlg, nobl3.dlg, nobl5.dlg, nobl6.dlg, nobl7.dlg, nobl8.dlg, nobw2.dlg, nobw5.dlg, nobw6.dlg, nobw9.dlg, perdue.dlg, poghm7.dlg, prost3.dlg, prost5.dlg, prost7.dlg, prost8.dlg, pumberl.dlg, read3.dlg, rielta.dlg, servan.dlg, serwen.dlg, sil.dlg, smith.dlg, tiaxp.dlg, trave2.dlg, travel.dlg, viconi.dlg, viconp.dlg, xanp.dlg, yeslic.dlg

    Preserving NumberOfTimesTalkedTo (NTTT) Triggers

    For previous fixes, I had swapped out NTTT triggers for local variables. However, I found an easier way that required a lot fewer changes: if a dialogue has a NTTT=0 trigger, then have the charmed dialogue check if NTTT=0 and set NTTT=0 manually to prevent the counter from incrementing, and otherwise letting it increment normally. The upside is that triggers for all non-charmed dialogues are preserved (which makes life easier for mods) and eliminates the need for major script changes. This was done semi-automatically for about 170 dialogues:

    Spoiler

    aldeth.dlg, alora.dlg, alyth.dlg, amnis2.dlg, amnise.dlg, ardeno.dlg, bandct.dlg, bentan.dlg, boyba2.dlg, boyba3.dlg, boybe1.dlg, boybe2.dlg, branwe.dlg, brathl.dlg, brevli.dlg, brielb.dlg, brilla.dlg, centeo.dlg, charle.dlg, davaeo.dlg, deagan.dlg, delthy.dlg, dillar.dlg, drienn.dlg, druidc.dlg, drunk.dlg, dynahe.dlg, fahrin.dlg, faldor.dlg, farm3.dlg, farm5.dlg, farmbr.dlg, fcook2.dlg, fcook3.dlg, flam10.dlg, flam2.dlg, flam4.dlg, flam5.dlg, flam7.dlg, flam7.dlg, flam8.dlg, flam9.dlg, flambg.dlg, flamen.dlg, flamgg.dlg, friend.dlg, friwen.dlg, ftobe2.dlg, ftobe3.dlg, ftobe4.dlg, ftobe5.dlg, ftobe6.dlg, ftobe7.dlg, ftobe8.dlg, ftowb6.dlg, ftowb7.dlg, ftown2.dlg, gallor.dlg, gantol.dlg, girba1.dlg, girba2.dlg, girba3.dlg, glanma.dlg, haffg2.dlg, halfen.dlg, halffg.dlg, halfg2.dlg, halfg3.dlg, halfg4.dlg, halfg5.dlg, halfg6.dlg, halftr.dlg, hobgo5.dlg, housen.dlg, housg1.dlg, housg3.dlg, housg4.dlg, housg6.dlg, hunter.dlg, iron11.dlg, iron12.dlg, iron14.dlg, iron3.dlg, iron4.dlg, iron5.dlg, iron6.dlg, ironm2.dlg, ironm3.dlg, ironm4.dlg, ithtyl.dlg, jebado.dlg, jhasso.dlg, landri.dlg, laurel.dlg, lena.dlg, lobar.dlg, marl.dlg, mcook2.dlg, mcook3.dlg, mcook5.dlg, minec5.dlg, minern.dlg, monken.dlg, mtbe10.dlg, mtbe11.dlg, mtbe3.dlg, mtbe4.dlg, mtbe5.dlg, mtbe9.dlg, mtob2.dlg, mtob3.dlg, mtob4.dlg, mtob5.dlg, mtob7.dlg, mtob8.dlg, mtob9.dlg, mtowf2.dlg, mtown2.dlg, niklos.dlg, nila.dlg, nobl10.dlg, nobl11.dlg, nobl12.dlg, nobl14.dlg, nobl4.dlg, nobl5.dlg, nobl6.dlg, nobl7.dlg, nobl8.dlg, nobw5.dlg, nobw9.dlg, oberan.dlg, oublek.dlg, perdue.dlg, poe.dlg, poghm4.dlg, prat.dlg, prost7.dlg, prost8.dlg, quayle.dlg, ragefa.dlg, raiken.dlg, ramazi.dlg, read4.dlg, rielta.dlg, safana.dlg, safana.dlg, seniya.dlg, serva2.dlg, servan.dlg, serwen.dlg, sewerc.dlg, sil.dlg, silenc.dlg, skie.dlg, smith.dlg, smuggl.dlg, sonner.dlg, telman.dlg, tenya.dlg, teven.dlg, thalan.dlg, thaldo.dlg, tiax.dlg, torlob.dlg, trave2.dlg, travel.dlg, viconi.dlg, volose.dlg, wilton.dlg, xzar.dlg, yago.dlg, yeslic.dlg

    Fixing 'X has nothing to say to you'

    While this wasn't a focus of the review, I found about 50 of these anyway and fixed them. The creature's common selection sounds were added to their dialogue as a base state, similar to the existing fixes for Tiax et al.

    Spoiler

    boyba2.dlg, boybe1.dlg, boybe2.dlg, brilla.dlg, dillar.dlg, farm3.dlg, fcook2.dlg, fcook3.dlg, flam10.dlg, flam2.dlg, flam7.dlg, flam8.dlg, flam9.dlg, flambg.dlg, flamgg.dlg, ftobe7.dlg, ftowb4.dlg, ftowb6.dlg, ftowb7.dlg, girba1.dlg, haffg2.dlg, halfg5.dlg, housg1.dlg, housg2.dlg, housg3.dlg, housg4.dlg, hunter.dlg, iron3.dlg, ironm3.dlg, ironm4.dlg, jhasso.dlg, mtbe10.dlg, mtbe11.dlg, mtbe2.dlg, mtbe3.dlg, mtbe4.dlg, mtbe8.dlg, mtob3.dlg, mtob4.dlg, mtob5.dlg, mtob7.dlg, mtob8.dlg, mtob9.dlg, mtown2.dlg, nobl12.dlg, nobw3.dlg, nobw5.dlg, nobw9.dlg, poe.dlg, prost7.dlg, prost8.dlg, rededg.dlg, serva2.dlg, serwen.dlg, trave2.dlg, volose.dlg

    Additional fixes

    In the course of reviewing these, I found other errors in the dialogues to be fixed:

    • Zelma (SoD) can be charmed to get your money back. In the gap between getting it back and the charm wearing off, she had nothing to say. (bdzelma.dlg)
    • Be'land's charmed dialogue says you can enjoy the museum for free, but was not setting the variable to stop him from soliciting the entrance fee once the charm expired (beland.dlg)
    • Multiple charmed dialogues could re-open journal entries for completed quests: Brandilar - Investigating the Merchants' League Estate (brandi.dlg), Flaming Fist Enforcer - Afoul of the Law (ffhunt.dlg), Harbor Master - Investigating the Iron Throne (harbor.dlg), two Beregost commoners - The Wizard's School (mtbe2.dlg, mtbe6.dlg)
    • Delainy/Durlyle have two dialogues, one for their appearance in the village and a second one if they help you escape. The first one had a charmed dialogue that would reveal the secret of the village too early and has been disabled. The same charmed dialogue is still available in their second appearance where it's appropriate. (delainy1.dlg, durlyle1.dlg)
    • The Flaming Fist Enforcer hassling the party south of Beregost has two flunkies. If he peacefully leaves, they should leave with him. (flam5.dlg)
    • One of the commoners in Beregost (ar3316) calls the guards, but no guards were actually appearing. (ftobe4.dlg)
    • Several charmed dialogues have the charmed NPC giving the party something. In most of them, they would check to make sure they had the item in question first, but two were missed. (ftobe5.dlg, nobl8.dlg)
    • A few dialogues would blindly hand off dialogue to another NPC nearby without bothering to check if that NPC was actually available for dialogue, e.g. Marl and Dunkin, Helshara and Ithmeera, and others. This would cause the dialogue to exit abruptly on a 'Continue' button. Appropriate checks have been added, and the dialogue now cleanly exits. (helsha.dlg, ithmee.dlg, housg1.dlg, marl.bcs, marl.dlg, mtown2.dlg, nobl4.dlg)
    • If Hentold gives the party his dagger while charmed, his normal dialogue would assume he still had it and he'd continue to try and give it to you. These dialogues now check if he has the dagger first. (hentol.dlg)
    • One of the shared dialogues for Nashkel commoners has 13 random replies. However, one of them is closed when the Brage quest ends, giving a 1/13 chance of 'X has nothing to say'. One of the other 12 lines will now appear under this circumstance. (mtowna.dlg)
    • The six diggers at the archaeological site all share one common dialogue, and have the 'X has nothing to say' bug. This couldn't be fixed the conventional way (grabbing common selection sounds) because they have different soundsets. In addition, they have five lines that play in sequence based off of NTTT triggers. This means that if you speak to each miner, you'll get the same line six times and will only see the other lines if you speak to one of them five times. To address both if these, these five lines are weighted randomly so that they'll always have something to say, and to make it substantially less obvious that they're using the same dialogue. (digger.dlg)
    • Several commoners in BG use a shared dialogue; prior to chapter seven there are nine possible lines. Once chapter seven hits, they change to three, but they all have the same trigger so only one could play. Based on other commoner dialogues and the lines themselves, it looks like these three lines should depend on the party reputation, and the appropriate triggers have been added. (ftowba.dlg)
    • The shared, generic Nashkel miner dialogues had two lines for the miners outside before you speak to Emerson, but they were weighted so low you could never see them (minern.dlg)

    Other changes

    • Given that dialogues could now preserve NTTT values, a few scripts had to be adjusted to check if the creature was charmed before trying to initiate dialogue, otherwise script loops could occur. (alora.bcs, bandic.bcs, centeol.bcs, davaeorn.bcs, flam2.bcs, flam7.bcs, initdlg.bcs, marl.bcs, monken.bcs, prat.bcs, ramazith.bcs, rieltar.bcs, shoutdlg.bcs, sil.bcs, yago.bcs)
    • A few creatures needed script names assigned to facilitate other fixes. (farm4.cre, housg1.cre, housg2.cre)
    • A few creatures had unique dialogues available, but not assigned. (ftobe7.cre, mtob4.cre, mtob5.cre, read4.cre)

    Unfinished business

    Pinging @AstroBryGuy for this section. Outside of the creatures being assigned their dialogues (last bullet in previous section) none of the following are being included in EEFP. It's been a while since I delved into BG1UB so apologies if these are already known and/or implemented:

    • There's dialogue for an unused server, friwen.dlg, who should be at the FAI. The creature friwen.cre is assigned the BG-appropriate serwen.dlg and appears in the Elfsong and Blushing Mermaid, despite an unused serwen.cre being available. Suggest that friwen.cre and serwen.cre get assigned their namesake dialogues, swap the friwen.cre at the Blushing Mermaid and Elfsong for serwen.cre, and add friwen.cre to the FAI.
    • ssungu.dlg appears to be a dialogue for a guard outside the Seven Suns. You can ask for Jhasso and possibly get moved to a basement where the guard is commanded by Jhasso-doppleganger to kill the party. I think.
    • volose.cre is a serving wench who appears after Volo leaves, trying to get the party to pay Volo's tab since Volo skipped paying. She can potentially turn the bouncer hostile.
    • wilton.dlg appears to be someone who appears after you help Farmer Brun, and gives you a Cloak of Displacement as a reward.
    • banmer.dlg appears to be a merchant who gets attacked by the party. The party is posing as bandits (seems to be part of getting accepted into the bandit group to reach the bandit camp) and you can peacefully "rob" the merchants, or actually do it.
    • mtob6.dlg is a commoner who's gambling, who seems to trip a warning global to... do something.
    • Galteran (mtbe6,cre using mtbe6.dlg) seems to have an unassigned script (mtowbe6.bcs) where he will call the guards or attack after a brief interlude.
    • mtob4.cre and mtob5.cre had their unique dialogues assigned (last bullet point in previous section) but the creature files themselves are unused. From the dialogue, mtob4.cre should be placed alone in a room at the Splurging Sturgeon, and motb5.cre placed somewhere in the Elfsong.
  11. You'll have to go back to oIWD for the files. IWDEE overlays the original sound file from oIWD (narr_ch6) with background music (the chap0 soundtrack in ACM) into the combined narr_ch6 file in IWDEE.

    If we decide to truncate the line (even selectively), we need to check non-English versions. The English version is best-case as the bit to be removed is at the beginning of the line, and the narration inflection is still correct starting mid-sentence.

  12. 13 hours ago, subtledoctor said:

    I think the issue is, there are voiced lines. No?

    Yes, it's the chapter text screen with voiced narration.

    Out of curiosity, I went back to look at the IWD design docs. Originally the jarl had a wardstone to access LDD, so if we deem this as Not A Fix I'll address it in Unfinished Business.

  13. 5 hours ago, jastey said:

    If players could advance too early without intend just by exiting the wrong exit, then some change to make them aware would be good.

    It's just another cave entrance in an area with three; there's no indication that you're moving to a new chapter. To me the narration makes it pretty clear that the devs intended for the party to finish the glacier events before moving on to LDD.

  14. After you restore Larrel's Astrolabe at the Severed Hand, Larrel sends you along to Dorn's Deep. You start in the myconid cavern and can adventure around for a bit, and eventually you'll reach the frozen aquarium. At this point you're supposed to deal with the frost salamanders in the aquarium, fix the bridge to the southwest, and venture into the caves where Joril and his fellow frost giants live.

    The problem is that, from the aquarium exterior, you can move directly to this area (ar7000):AR7000.jpg

    You can go directly into Lower Dorn's Deep, skipping the frost giant cave (and the aquarium) outright. Now, this doesn't break anything--you can complete LDD, the frost giant cave, and the aquarium in any order and still proceed to the endgame. The problem is that as soon as you enter LDD you get the new chapter screen, where the very first line of the chapter narration is "Leaving the horrors of the frost giant caves behind them..." even though the party could have skipped them.

    So, suggestions? We can do nothing (always an option) or put up some barrier to prevent the party from using the LDD entrance until they have Joril's badge, or something else you want to suggest. Personally I advocate for a barrier: disable the transition and overlay an info trigger with text along the lines of "A mysterious force bars the way and you ca go no further at this time." (feel free to suggest better text, if you prefer this option).

  15. 37 minutes ago, suy said:

    Scope of variables seem also completely missing from the course and almost missing from WeiDU's docs.

    It wasn't until the introduction of functions that WeiDU even had variable scope. Assume global unless you're explicitly operating under a function or WITH_SCOPE. And I know this will horrify all of the real programmers here, but most of the time limiting scope is not worth the effort.

    37 minutes ago, suy said:

    When to use ACTION/OUTER/PATCH_SOMETHING is an incredible mess to me

    For me, I find the easiest to frame this mentally is to think in terms of actions vs. patches. Many things have both a patch and action version; actions tend to be ACTION_ or OUTER_ and patch are INNER_ or PATCH_ . Granted, WeiDU doesn't help with syntax like OUTER_INNER_PATCH or INNER_ACTION, but it's mainly a matter of keeping track of which mode you're in at the moment. Most of the problems are that WeiDU doesn't always have clear delineation of when you're switching from one context to the other.

  16. Yeah, 'ongoing' is basically a committed thread where folks keep posting bugs. And while 'open' and no tags are roughly the same, when they're tagged 'open' they get added to the search results--which I've been using as a to-do list.

  17. I've spent the last couple of days wading through the forum, trying to make sure bug reports don't get missed. As such, I've started using the tagging system to track topics and settled on the following tags:

    • open - A bug report for which no action has been taken yet, or needs investigation.
    • need-info - A bug report we can't replicate and we're waiting on the original bug reporter for more information.
    • closed - A bug report that we're not taking action on for a variety of reasons: could be a duplicate, not a bug, fix is worse than the bug, &c.
    • committed - A bug report that has been fixed and added to the repo.
    • ongoing - One of a handful of threads where folks keep reporting bugs and the fixes are a running process.
    • meta - For tagging threads (like this one) where the content is informational or a discussion.

    The six tags above are meant to be exclusive--e.g nothing should get an 'ongoing' and 'committed' tag.

    • code - Used to denote issues we can't make to the engine or codebase or where a code change would result in a better bugfix.
    • bgee, bg2ee, iwdee, pstee - When a bug is moved to committed, the game gets tagged to help documentation.

    These tags are nonexclusive, though I generally wait until a bug has been committed to add the game tags.

    Don't worry about tagging posts; one of the devs will handle it. Suggestions for the existing tags or for new ones are welcome!

     

×
×
  • Create New...