Jump to content


[Repaired] 2 Problems / bugs


8 replies to this topic

#1 Guest_Fennek_*

Guest_Fennek_*
  • Guests

Posted 16 June 2010 - 10:43 AM

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.

Edited by cmorgan, 17 September 2011 - 01:06 PM.


#2 cmorgan

cmorgan

    journeyman investigator

  • Gibberlings
  • 6913 posts
  • Gender:Male
  • Location:Glencoe, IL, USA

Posted 16 June 2010 - 12:14 PM

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!

Edited by cmorgan, 16 June 2010 - 12:15 PM.

I love deadlines. I love the whooshing noise they make as they go by. - Douglas Adams

#3 Guest_Fennek_*

Guest_Fennek_*
  • Guests

Posted 31 December 2010 - 10:44 AM

The Kagain-problem (no valid replies) seems still to exist (if it doesn't come from Unfinished Business).

#4 jastey

jastey
  • Gibberlings
  • 5365 posts
  • Gender:Female

Posted 16 June 2011 - 07:09 AM

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



#5 cmorgan

cmorgan

    journeyman investigator

  • Gibberlings
  • 6913 posts
  • Gender:Male
  • Location:Glencoe, IL, USA

Posted 16 June 2011 - 08:07 AM

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.
I love deadlines. I love the whooshing noise they make as they go by. - Douglas Adams

#6 erik

erik

    Kobold sorcerer

  • Modders
  • 442 posts
  • Gender:Male
  • Location:fjords nearby

Posted 16 June 2011 - 01:08 PM

What if Player2 is in the party but dead at the moment?

Shouldn't you be using InPartyAllowDead?

#7 cmorgan

cmorgan

    journeyman investigator

  • Gibberlings
  • 6913 posts
  • Gender:Male
  • Location:Glencoe, IL, USA

Posted 17 June 2011 - 05:10 AM

Good point - and one I can correct immediately. But the NVROL that I replicated had PC + 4 NPCs, all alive, kicking, and unhampered by anything. Which sure puzzles the heck out of me.
I love deadlines. I love the whooshing noise they make as they go by. - Douglas Adams

#8 jastey

jastey
  • Gibberlings
  • 5365 posts
  • Gender:Female

Posted 17 June 2011 - 10:09 AM

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

#9 cmorgan

cmorgan

    journeyman investigator

  • Gibberlings
  • 6913 posts
  • Gender:Male
  • Location:Glencoe, IL, USA

Posted 17 September 2011 - 01:05 PM

confirmed repaired in v19 09.17.2011

using NumInParty() instead of the grid.
I love deadlines. I love the whooshing noise they make as they go by. - Douglas Adams



Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users