Jump to content

[Repaired] 2 Problems / bugs


Guest Fennek

Recommended Posts

Guest Fennek

I noticed two things: The Imoen in Candlekeep still has her Bg1-portrait even if one installs the component that she gets her Bg2-portrait. When one meets her outside, everything is correct. So I guess one .cre was forgotten.

 

I also got a minor problem with Kagain. I went with him to the attacked wagon where one should look for Entar Silvershild's son, killed the bandits and Kagain started his dialoge that he now would be some sort of outcast. At the end one had to choose "no vaild replies" to finish the dialogue (after one accepted him in the party). So nothing really problematic happend, but either an answer-text was forgotten or there's a glitch in the code.

Link to comment

For Kagain, i think it is a glitch that sometimes appears with this block, which is supposed to give a certain amount of gold per person:

E:\ie_modding_archive\bg1npc-v18\bg1npc\phase2\dlg\x#kaqst.d

IF ~~ THEN BEGIN X#KAQUREWARDParty
 SAY @45
 IF ~InParty(Player1) InParty(Player2) InParty(Player3) InParty(Player4) InParty(Player5) InParty(Player6)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(75) JoinParty()~ JOURNAL @35 EXIT
 IF ~InParty(Player1) InParty(Player2) InParty(Player3) InParty(Player4) InParty(Player5) !InParty(Player6)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(60) JoinParty()~ JOURNAL @35 EXIT
 IF ~InParty(Player1) InParty(Player2) InParty(Player3) InParty(Player4) !InParty(Player5) !InParty(Player6)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(45) JoinParty()~ JOURNAL @35 EXIT
 IF ~InParty(Player1) InParty(Player2) InParty(Player3) !InParty(Player4) !InParty(Player5) !InParty(Player6)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(30) JoinParty()~ JOURNAL @35 EXIT
 IF ~InParty(Player1) InParty(Player2) !InParty(Player3) !InParty(Player4) !InParty(Player5) !InParty(Player6)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(15) JoinParty()~ JOURNAL @35 EXIT
 IF ~InParty(Player1) !InParty(Player2) !InParty(Player3) !InParty(Player4) !InParty(Player5) !InParty(Player6)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(15) JoinParty()~ JOURNAL @35 EXIT
END

 

I think this might need to be set up on NumInParty() checks instead, as this particular implementation seems to flake out on some installs/in some settings.

 

a recode for v19, this summer -

 

IF ~~ THEN BEGIN X#KAQUREWARDParty
 SAY @45
 IF ~NumInParty(6)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(75) JoinParty()~ JOURNAL @35 EXIT
 IF ~NumInParty(5)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(60) JoinParty()~ JOURNAL @35 EXIT
 IF ~NumInParty(4)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(45) JoinParty()~ JOURNAL @35 EXIT
 IF ~NumInParty(3)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(30) JoinParty()~ JOURNAL @35 EXIT
 IF ~NumInParty(2)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(15) JoinParty()~ JOURNAL @35 EXIT
 IF ~NumInParty(1)~ THEN DO ~EraseJournalEntry(@33) EraseJournalEntry(@44) GiveGoldForce(15) JoinParty()~ JOURNAL @35 EXIT
END

 

The Imoen portrait may be another mod - but there is more robust code that will make sure all of her incarnations are picked up with a declared set of files submitted already, so i will triple check before release.

 

Thanks for reporting these!

Link to comment

For installed UB in a clean Tutu game, I don't see a NVROL problem in _kagaij.dlg, so I don't think it's UB:

 

// creator : weidu (version 22900)

// argument : _KAGAIJ.DLG

// game : .

// source : ./override/_KAGAIJ.DLG

// dialog : ./dialog.tlk

// dialogF : ./dialogf.tlk

 

BEGIN ~_KAGAIJ~

//////////////////////////////////////////////////

// WARNING: this file contains non-trivial WEIGHTs

//////////////////////////////////////////////////

 

IF WEIGHT #0 ~ Global("KagainCaravan","GLOBAL",3)

!GlobalTimerExpired("Kagain","GLOBAL")

GlobalGT("Chapter","GLOBAL",1)

~ THEN BEGIN 0 // from:

SAY #97958 /* ~Well, look what I found; this is the body of Silvershield's son. Guess I'm in a lot of trouble now. With him dead, I'll be a wanted dwarf. From what I've gathered so far, all of you are after them damnable bandits. Well, since my reputation is now mud how 'bout I help you gain revenge on those scum bags.~ */

IF ~~ THEN REPLY #97959 /* ~We don't want you around any more, so hit the road.~ */ JOURNAL #97960 /* ~Entar Silvershield's son was killed.~ */ GOTO 1

IF ~~ THEN REPLY #97961 /* ~Sure, we could use your skills.~ */ DO ~SetGlobal("KagainCaravan","GLOBAL",4)

~ JOURNAL #97960 /* ~Entar Silvershield's son was killed.~ */ EXIT

END

 

IF ~~ THEN BEGIN 1 // from: 7.0 0.0

SAY #97962 /* ~Stupid chumps, your loss.~ */

IF ~~ THEN DO ~LeaveParty()

EscapeArea()

~ EXIT

END

 

IF ~~ THEN BEGIN 2 // from:

SAY #97963 /* ~Heh, my reputation's probably calmed down by now, anyway. See ya around, ya lumps.~ */

IF ~~ THEN DO ~LeaveParty()

EscapeArea()

~ EXIT

END

 

IF ~~ THEN BEGIN 3 // from:

SAY #97964 /* ~You've got hardy hides, folk. If you ever need a little more dwarven muscle around, you've got it.~ */

IF ~~ THEN DO ~LeaveParty()

SetDialogue("_KAGAIP")

~ EXIT

END

 

IF WEIGHT #2 /* Triggers after states #: 7 even though they appear after this state */

~GlobalTimerExpired("Kagain","GLOBAL")

Global("KagainCaravan","GLOBAL",0)

~ THEN BEGIN 4 // from:

SAY #97965 /* ~I don't want to rush you mutton-heads, but I have a caravan to find! Get a move on!~ */

IF ~~ THEN DO ~SetGlobalTimer("Kagain","GLOBAL",SEVEN_DAYS)

SetGlobal("KagainCaravan","GLOBAL",1)

~ EXIT

END

 

IF WEIGHT #3 /* Triggers after states #: 7 even though they appear after this state */

~GlobalTimerExpired("Kagain","GLOBAL")

Global("KagainCaravan","GLOBAL",1)

~ THEN BEGIN 5 // from:

SAY #97966 /* ~I'm getting nowhere with you useless chumps! I'll find my lost caravan on my own, and yous can all just get bent!~ */

IF ~~ THEN DO ~SetGlobal("KagainCaravan","GLOBAL",4)

LeaveParty()

EscapeArea()

~ EXIT

END

 

IF WEIGHT #4 /* Triggers after states #: 7 even though they appear after this state */

~ Global("KagainCaravan","GLOBAL",3)

GlobalTimerExpired("Kagain","GLOBAL")

~ THEN BEGIN 6 // from:

SAY #97967 /* ~I'm tired of looking fer the damn caravan. We'll never find it among all the other dead caravans we've been coming across. Let's just forget about it and keep to whatever you wanna do.~ */

IF ~~ THEN DO ~SetGlobal("KagainCaravan","GLOBAL",4)

~ EXIT

END

 

IF WEIGHT #1 ~ Global("KagainCaravan","GLOBAL",3)

!GlobalTimerExpired("Kagain","GLOBAL")

GlobalLT("Chapter","GLOBAL",2)

~ THEN BEGIN 7 // from:

SAY #97958 /* ~Well, look what I found; this is the body of Silvershield's son. Guess I'm in a lot of trouble now. With him dead, I'll be a wanted dwarf. From what I've gathered so far, all of you are after them damnable bandits. Well, since my reputation is now mud how 'bout I help you gain revenge on those scum bags.~ */

IF ~~ THEN REPLY #97959 /* ~We don't want you around any more, so hit the road.~ */ JOURNAL #97960 /* ~Entar Silvershield's son was killed.~ */ GOTO 1

IF ~~ THEN REPLY #97961 /* ~Sure, we could use your skills.~ */ DO ~SetGlobal("KagainCaravan","GLOBAL",4)

~ JOURNAL #97960 /* ~Entar Silvershield's son was killed.~ */ EXIT

END

Link to comment

I am pretty sure it is the use of the bg1npc (my) logic grid

 

InParty(Player1) InParty(Player2) InParty(Player3) InParty(Player4) InParty(Player5) InParty(Player6)

 

only rotating the NOT condition. It looks logical to just have the subtraction of players work like this:

 

InParty(Player1) InParty(Player2) InParty(Player3) InParty(Player4) InParty(Player5) InParty(Player6)

InParty(Player1) InParty(Player2) InParty(Player3) InParty(Player4) InParty(Player5) !InParty(Player6)

InParty(Player1) InParty(Player2) InParty(Player3) InParty(Player4) !InParty(Player5) !InParty(Player6)

InParty(Player1) InParty(Player2) InParty(Player3) !InParty(Player4) !InParty(Player5) !InParty(Player6)

etc, ...

 

until you remember that partyslot and the designation of player (object) might not be quite so straightforward. I thought you could only have Player1 + Player2 + Player3, but from playing around with this, it seems that sometimes you can have Player1 + Player3 + Player4. I am still researching, as that really does not make any sense to me, but for whatever reason using this grid seems to allow a NVROL. The easy way out is to just use NumInParty, and then ask the Gurus why

 

IP1 IP2 IP3 IP4 IP5 IP6

IP1 IP2 IP3 IP4 IP5 -IP6

IP1 IP2 IP3 IP4 -IP5 -IP6

IP1 IP2 IP3 -IP4 -IP5 -IP6

IP1 IP2 -IP3 -IP4 -IP5 -IP6

IP1 -IP2 -IP3 -IP4 -IP5 -IP6

 

doesn't work as expected.

Link to comment

The easiest explanation would be once player 2(3..6) always player2(3..6)? Meaning, if Player2 gets kicked out, there would be no player2, until a new NPC (or the old one) joins the party. If I recall correctly from a multiplayer game I once played with self-created NPCs, they remained at the same slot for the whole game (which drove me kind of crazy since I wanted them to march in a different order so I had to switch it manually after every loading in the game).

Link to comment

Archived

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

×
×
  • Create New...