Jump to content

Workroom Wishlist/Corrections


cmorgan

Recommended Posts

Hey there, everyone... Pro5 is doing a massive review of code on the BGT side, which is bound to pay off for both Tutu and BGT players. Before I begin integrating Pro5's reports from email into the worklog (and this thread), could anyone following BG1 NPC pull any bug reports *NOT* covered below and post in this thread? (I can't access other sites at work, so it is up to you folks). I will use it to build my target list and check against the work Pro5 is working through on the BGT side. The list so far:

 

Edit Nov 29, 2006 by cm: integrated into 3rd post master list

Link to comment

Nice list. There's something a bit wacky with your hyperlinks though - might want to double check (might want to number them too) ;).

 

I don't think there's much on other forums (assuming you've covered this one and you and pro5 are aware of SHS issues). Only thing is apparently Macready has covered the 3rd item on your list in the next EasyTutu release (area scripts).

 

This came up in a search here and on PPG but we're probably talking about a separate mod:

- Continuity between BG1 NPC and BG2 Flirts

 

Also the only thing I had in my notes you haven't already covered is this:

- Rebalance Garrick subquest items with Song & Silence store items

(I PMed you about this a while back - haven't gotten around to doing more research... may be a fix to S&S instead)

 

Regarding Imoen dialogue... I'm sure others have noticed this, and it's probably nothing, but if you do a file corruption check in NI, you get some offset errors in _IMOEN.DLG. This is on a completely clean, unmodded EasyTutu install. You get the same thing in a few other .DLGs but none that affect BG1 NPC that I'm aware of. And a DLG check in DLTCEP has similar errors in _IMOEN.DLG and IMOEN2.DLG - something about titleless journal strings and transitions having action indexes but no flags. This comes up quite a bit so like I said, it's probably nothing (but if so it'd be good to filter out of the checks somehow...).

Link to comment

Worklog prompts from Pro5's work and pending forum-prompted repairs:

To Do List for pro5-3

  • update documentation
  • update tra package with WinMerge info on changes to older tra's already out to translators
  • Rebuild PID stringfixers for BGT side of the install.
  • Readjust the Brilla interjection at the end of Kagain's quest to make sure everything works and the DV changes actually took hold.
  • Recheck and update Contributor's Credits thread & ReadMe
  • Rebuild Gorion's Body burial to be a single event triggered by solo, party, delayed party>> On at least two installs, variables that are supposed to be set by Imoen's J-File interactions do not set variables, causing the variables to hang open. This may or may not be related to dialogues exiting early. Confirmed that this is a problem with Jaheira's interjecting CHAIN3; repairing code and moving the burial of gorion to a separate triggered DisplayStringHead event that can be triggered across multiple situations.
  • Rebuild Jaheira's first friend talk as an independent event
  • Check NVROL on Ajantis/Sharteel interaction
  • Deal with Beador only reacting to Jaheira resulting in a "set-up" for the druids
  • Miloch's suggested Myr'Cutio (X#GARWYL) repairs: choose from bardic armour to AC4, HP36 < Increase - perhaps double, THAC0 18 > Lower, # of attacks 1 < Could make it 2 or even 3, Has proficiency of 1 in swords < could make 3 or 4
  • http://forums.pocketplane.net/index.php/topic,23372.0.html as per Pro5's discovery, and devSin's confirmation, check and reduce Area checks using AreaType
    Note that AreaType() checks can be logically combined. If you wanted a trigger to be true if OR(2) AreaType(OUTDOOR) AreaType(DUNGEON), you can use AreaType(33). My custom build of Near Infinity allows you to OR these conditions and will correctly resolve them when decompiling (AreaType(33) would decompile to AreaType(OUTDOOR | DUNGEON)), but you can just use the numeric ID and compile with anything. The same applies for negation (if you want !AreaType(OUTDOOR) !AreaType(DUNGEON), !AreaType(33) will produce equivalent results).
    Not sure I want to go here; might be hard for new folks to pick out where we are baneing/luvvin
  • recheck Kivan's falsed out timer and rebuild with new condition to avoid PIDs (see point for bandit timers on Pro5's list; we need to either dump it or rebuild it)
  • Nythrun's creature debugging: The only creature I noticed out of the Bio-usual order is x#corafi.cre which is in the charname order, so no real problems outside of DLTCP
     
    Three creatures don't have spell memorization tables at all - this won't trouble the game until something tries to read how many spells they should have, then boom. Probably best to add one
     
    mixed v1 .eff structures (0x30 in length) with v2 (0x108 when embedded) on a creature in the BG2 engine. Several of the creatures are like this: x#dfake.cre, x#corafi.cre, and x#ajanfi.cre. I'll see if there's an automatable way to standardize this, as I'm not sure what will happen when the engine sets a LOCALS on a BG1-era-effect creature.
     
    Innates not being level one aren't the mod's fault and hopefully Macready fixes them in Tutu.
     
    cmorgan note: will run alpha of Nythrun's .cre fixer anyways; then gather data for Tutufix and patch into BG1 NPC.
  • berelinde's gathered debugging:
    X#LP1REP.tra, X#LP2REP.tra, X#LP3REP.tra
    @48 = ~Ah, another way to spend your riches. How novel. You might as well save your gold. Fame or infamy will not save us.~
     
    X#GAINT.D
    I_C_T2 ~_KISSIQ~ 1 X#GarKis
    == ~_GARRIJ~ IF ~InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID) Global("TalkedToChicken","GLOBAL",0)~ THEN @114 END
     
    X#IMINT.D
    I_C_T2 _KISSIQ 1 X#ImoenKissiq1
    == ~_IMOEN2~ IF ~InParty("imoen") InMyArea("imoen") !StateCheck("imoen",CD_STATE_NOTVALID) Global("TalkedToChicken","GLOBAL",0)~ THEN @116
    END
     
    X#MINSC.tra
    @99 = ~Welcomed the returning heroes. Oh, goodie, Minsc is so happy to have found a new lodge in this far away place. Look, even little Boo looks forward in anticipation to the great feast your Order will give in our honor at the end of our quest.~
     
    X#COINT.tra
     
    @122 = ~And an oddball too... why not hurl lightning and fireballs at me once I've spoken to her and made for the exit, like every other woman? That way nobody gets hurt... unless there is sentient furniture in the room...~
     
    Please change to
     
    @122 = ~And an oddball too... why not hurl lightning and fireballs at me once I've spoken to her and made for the exit, like every other woman? That way nobody gets hurt... unless the furniture in the room has sentimental value...~

 

note: edited to move completed fixes to a reference post so I know what to do next.

 

Unknowns needing attention

  • Interaction/compatibility with UB for Tutu (there is not currently a BGT version AFAIK)

Requests Not In Scope of BG1 NPC Project

  • Continuity of flirts/banters/romances into BG2 (should be a separate BG2 mod)
  • Imoen BG1 expansion (romance or otherwise) (should be a separate Tutu mod)
  • Beregost rebuild or repair (good discussions on PPG about this).

Link to comment

Pro5 fix for BGT version of the first part of BGREPLACE.D, without happiness entries. Note: In BGT some, if not most, of those unhappy-leave states are False() - therefore no fix is necessary.

 

cm note-t-self; find way of pouring bottles of scotch through internet connection - or win lottery to freely distribute cash :p

 

/Edit - Integrated into internal pro5-1 distribution; see reference post

Link to comment
Also the only thing I had in my notes you haven't already covered is this:

- Rebalance Garrick subquest items with Song & Silence store items

(I PMed you about this a while back - haven't gotten around to doing more research... may be a fix to S&S instead)

Miloch, could you drop me a pm on this? I can't find my notes on this, and so can't take a look. Are we talking about item changes, or a check for Song & Silence and using those items?

Link to comment
Miloch, could you drop me a pm on this? I can't find my notes on this, and so can't take a look. Are we talking about item changes, or a check for Song & Silence and using those items?
I think a lot of this could be solved by just making the items at the Song & Silence vendor more expensive, if Andyr or someone is willing to accept those changes. My point was the existence of relatively easily-obtained bard items right in that same area conflicts with the subquest somewhat. I haven't had a chance to look at this recently, but it wouldn't be hard to call up the items with NI or DLTCEP and suggest some more appropriate values. I'll take a look.
Link to comment

Ok, finally got around to looking at the subquest items and Raoul's - posted details on the Song & Silence forum since my main recommendations are for that mod. Spoilers in the next paragraph - you've been warned!

 

.......

 

The bottom line for BG1NPC is that the bardic armour you get from the quest is not as good as that you've probably already bought from Raoul. However, it is flagged and described as magical chain, so it should be better (AC4). This will make the Myr'Cutio (X#GARWYL) harder also but he isn't that tough, certainly not for a party of six by this point in the game. The skeletons are obviously no contest. In addition to my suggested changes from the other thread, the following would make him more of a challenge:

- HP36 < Increase - perhaps double

- THAC0 18 > Lower it quite a bit so he can hit :D

# of attacks 1 < Could make it 2 or even 3

- Has proficiency of 1 in swords < could make 3 or 4

- Possibly put a couple healing potions in his quick slot

Link to comment

OK, will have a new version this evening - first on the list is this (I forgot about) for BGT, from pro5:

X#KIVAN.D

REPLACE ~BVICONI~
IF ~~ THEN BEGIN 0 // ---> 575
SAY @0
IF ~~ THEN EXIT
END
END

REPLACE ~BVICONI~
IF ~~ THEN BEGIN 8 // ---> 583
SAY @1
IF ~~ THEN EXIT
END
END

REPLACE ~BVICONI~
IF ~~ THEN BEGIN 9 // ---> 584
SAY @2
IF ~~ THEN EXIT
END
END

REPLACE ~BVICONI~
IF ~~ THEN BEGIN 10 // ---> 585
SAY @3
IF ~~ THEN EXIT
END
END

X#KIINT.D

I_C_T2 ~EDWIN~ 0 KivanEdwin1	// 0 ---> 74
== ~KIVANJ~ IF ~InParty("kivan") !Dead("kivan") !StateCheck("kivan",CD_STATE_NOTVALID)~ THEN @80
END

I_C_T2 ~EDWIN~ 1 KivanEdwin2	// 1 ---> 75
== ~KIVANJ~ IF ~InParty("kivan") !Dead("kivan") !StateCheck("kivan",CD_STATE_NOTVALID)~ THEN @80
END

X#AJINT.D

//Edwin
I_C_T2 ~EDWIN~ 8 X#AjantisEdwin	// 8 --> 82
== AJANTJ IF ~InParty("ajantis") !Dead("ajantis") !StateCheck("ajantis",CD_STATE_NOTVALID)~ THEN @56 
END

X#SHINT.D

/* Edwin */
I_C_T2 ~EDWIN~ 8 X#SharEdwinJoin	// 8 ---> 82
==~SHARTJ~IF~InParty("sharteel") !Dead("sharteel") !StateCheck("sharteel",CD_STATE_NOTVALID)~ THEN @16
END

X#MIINT.D ( headers only, to save space )

I_C_T2 ~EDWIN~ 0 MinscEdwinDyna2	// 0 ---> 74
I_C_T2 ~EDWIN~ 1 MinscEdwinDyna2a	// 1 ---> 75
I_C_T2 ~EDWIN~ 2 MinscEdwinDyna2b	// 2 ---> 76
I_C_T2 ~EDWIN~ 7 MinscEdwinDyna3	// 7 ---> 81
I_C_T2 ~EDWIN~ 6 MinscEdwinDyna4	// 6 ---> 80
I_C_T2 ~EDWIN~ 5 MinscEdwinDyna5	// 5 ---> 79
I_C_T2 ~EDWIN~ 8 MinscEdwinDyna6	// 8 ---> 82
I_C_T2 ~EDWINJ~ 6 MinscEdwinDyna1	// 6 --> 193

X#EDINT.D

EXTEND_BOTTOM ~EDWIN~ 3		// --> 77
IF ~~ THEN REPLY @0 + X#EdwinJoinsAlone
END

EXTEND_BOTTOM ~EDWIN~ 4		// --> 78
IF ~~ THEN REPLY @0 + X#EdwinJoinsAlone
END

EXTEND_BOTTOM ~EDWINJ~ 12	// --> 199
IF ~InParty("edwin") !Dead("edwin") !StateCheck("edwin",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("EdwinAbandoned","GLOBAL",1)
SetGlobal("KickedOut","LOCALS",2) SetDialogue("EDWIN") LeaveParty()~ EXIT
END

X#GAINT.D

 I_C_T2 ~EDWIN~ 0 X#GarEdJ1		// ---> 74
== ~GARRIJ~ IF ~InParty("garrick")
!Dead("garrick")
!StateCheck("garrick",CD_STATE_NOTVALID)~ THEN @70 END

I_C_T2 ~EDWIN~ 1 X#GarEdJ2		// ---> 75
== ~GARRIJ~ IF ~InParty("garrick")
!Dead("garrick")
!StateCheck("garrick",CD_STATE_NOTVALID)~ THEN @71 END

I_C_T2 ~EDWIN~ 2 X#GarEdJ3		// ---> 76
== ~GARRIJ~ IF ~InParty("garrick")
!Dead("garrick")

X#IMINT.D

I_C_T ~EDWIN~ 8 X#EdwinImoenJoin	// 8 ---> 82
== ~IMOEN2J~ IF ~InParty("IMOEN2") !Dead("IMOEN2") !StateCheck("IMOEN2",CD_STATE_NOTVALID)~ THEN @93
== ~EDWIN~ IF ~InParty("IMOEN2") !Dead("IMOEN2") !StateCheck("IMOEN2",CD_STATE_NOTVALID)~ THEN @94
END

Repaired BGT, January 4, 2007

Link to comment

ok, I am truly an idiot at times - not a knock on myself, just memory problems! I think the current internal of the Bardic Rep Change is not working 'cause I coded

/* Tutu area script changes */
EXTEND_BOTTOM ~FW2301.BCS~ ~BG1NPC/Phase2/BAF/X#LP1REPAS.BAF~ //The Friendly Arm Inn
EXTEND_BOTTOM ~FW4809.BCS~ ~BG1NPC/Phase2/BAF/X#LP2REPAS.BAF~ //The Belching Dragon
EXTEND_BOTTOM ~FW0705.BCS~ ~BG1NPC/Phase2/BAF/X#LP3REPAS.BAF~ //The Elfsong

 

I think that should be

/* Tutu area script changes */
EXTEND_BOTTOM ~_AR2301.BCS~ ~BG1NPC/Phase2/BAF/X#LP1REPAS.BAF~ //The Friendly Arm Inn
EXTEND_BOTTOM ~_AR4809.BCS~ ~BG1NPC/Phase2/BAF/X#LP2REPAS.BAF~ //The Belching Dragon
EXTEND_BOTTOM ~_AR0705.BCS~ ~BG1NPC/Phase2/BAF/X#LP3REPAS.BAF~ //The Elfsong

 

Cluaing in the devil works, but for some reason does not let the second or third responses become active. Everyone interjects, but coming back does not allow second sections of the CHAIN to show up.

 

/Edit- good news - and bad.

The area script works great, so does the deactivation and the initial override.bcs for the poets. Two problems remain.

1. The DisplayStringHead needs a longer delay so it doesn't become annoying, and it never resumes after the Bard is talked to.

2. We somehow have scripted out the ability to have the second and third replies for each NPC present. It jumps right to the "Do it" or "Not Today". Something is evaluating each of these the first time, because there is noticeable lag while processing this dialogue. We may need a CHAIN guru to tell us why this isn't working.

Link to comment

I've been having a similar problem with chains breaking under odd circumstances. I've been solving it by using extern commands, which are cumbersome.

 

Would a random number function work here instead, and let them say stuff over and over if they feel like it?

 

IF ~InParty("NPC") InMyArea("NPC") !StateCheck("NPC","CD_STATE_NOTVALID) RandomNum(3,1)~ THEN ~blah blah blah~

IF ~InParty("NPC") InMyArea("NPC") !StateCheck("NPC","CD_STATE_NOTVALID) RandomNum(3,2)~ THEN ~fidlesticks~

IF ~InParty("NPC") InMyArea("NPC") !StateCheck("NPC","CD_STATE_NOTVALID) RandomNum(3,3)~ THEN ~whatev~

Link to comment

I don't see why one would work and the other not... I have posted at PPG and am off to read the CoM post about CHAIN behavior (if I can find it).

 

We could work around this (with long and involved recoding), but the idea is so elegant it just *has* to work!

 

On the DisplayStringHead, I apparently coded it to only run on initial sight. I have set it up so it runs whenever the .cre is activated, but will not run in the interval between closing dialogue and Deactivating. It looks like it is working fine. i will get a fixed version up tonight.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...