Guest Fennek Posted June 16, 2010 Share Posted June 16, 2010 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
cmorgan Posted June 16, 2010 Share Posted June 16, 2010 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
Guest Fennek Posted December 31, 2010 Share Posted December 31, 2010 The Kagain-problem (no valid replies) seems still to exist (if it doesn't come from Unfinished Business). Link to comment
jastey Posted June 16, 2011 Share Posted June 16, 2011 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
cmorgan Posted June 16, 2011 Share Posted June 16, 2011 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
erik Posted June 16, 2011 Share Posted June 16, 2011 What if Player2 is in the party but dead at the moment? Shouldn't you be using InPartyAllowDead? Link to comment
cmorgan Posted June 17, 2011 Share Posted June 17, 2011 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. Link to comment
jastey Posted June 17, 2011 Share Posted June 17, 2011 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
cmorgan Posted September 17, 2011 Share Posted September 17, 2011 confirmed repaired in v19 09.17.2011 using NumInParty() instead of the grid. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.