Jump to content


Photo

BG1 NPC Project v12 - Seniyad Bug (Jaheira Quest)


  • Please log in to reply
18 replies to this topic

#1 Autar

Autar
  • Member
  • 52 posts

Posted 20 January 2007 - 07:16 AM

I post this at G3 in this tread, because it seems to be a problem occurring also in TUTU/BG installs, but they send me back here :doh:

Had same problem :(

- I'm using a BGT install and BG1 NPC Project v12.

- I went to Cloackwood 1 with Jaheira in the party

- Helped Seniyad killing the hunter (I'm playing druid myself)

- Gotten both Quests from him. (and 250 Xps - I have reduced quest Xps)

- Found Beador killed the shadowdruids and rescued him

- Gone back to near the Tree Fort and killed Andarthe and one other druid (he didnt surrend or something similar, I just killed him)

- Rescued Maretha

- jaheira ask me to report succes to Seniyad, I agreed

- Report rescuing to Beador (50 xps)

- Returned to Seniyad, and found him responding as if I had never gotten the quest.

- By looking throught forums I found

http://forums.gibber...s...&hl=Seniyad
http://forums.pocket...ic,22811.0.html
and this Tread.

"X#JaheiraSen" was set "8"

- I tried to change it to "31" via NI but nothing changed.

- After reading
http://www.gibberlin...eirasQuest.html
I tryed to set that variable to "35" but it also did't solve the problem.

--> Any way to fix it?


My English is very poor. Italian is my mother language and I also know German very good. Be patien with me & sry for my bad English ;)

#2 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 20 January 2007 - 07:28 AM

Sorry, I posted over at G3, but you'd already left.

I prefer to use the CLUAConsole to check and set global variables, because 1) I don't have to shut the game down and 2) It's easy.

It's possible that your NI variable changing didn't take.

Would you be kind enough to type this into the console and see what global is returned?

CLUAConsole:GetGlobal("X#JaheiraSen","GLOBAL")

Thanks.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#3 Autar

Autar
  • Member
  • 52 posts

Posted 20 January 2007 - 07:37 AM

Sorry, I posted over at G3, but you'd already left.

I prefer to use the CLUAConsole to check and set global variables, because 1) I don't have to shut the game down and 2) It's easy.

It's possible that your NI variable changing didn't take.

Would you be kind enough to type this into the console and see what global is returned?

CLUAConsole:GetGlobal("X#JaheiraSen","GLOBAL")

Thanks.


I did some more testing with a older savegame:

after killing Andarthe --> 25
after speaking to Maretha --> 29
after speaking with Jaheira --> 31

Just when I speak to Seniyad again hes giving me the "I congratulate your wise..." option, setting the variable back to 8

EDIT: i did even more testing , that dialoge is coming all the time, even directly after the first time I get it, and its looping, setting all the time the Global back to 8 + giving me Xps

Edited by Autar, 20 January 2007 - 07:42 AM.

My English is very poor. Italian is my mother language and I also know German very good. Be patien with me & sry for my bad English ;)

#4 OldVeteran

OldVeteran
  • Member
  • 168 posts

Posted 20 January 2007 - 07:49 AM

Same thing happens for me. Exactly the same.
Seniyad just thinks you never talked to him before or so.
I think this is likely due to no journal entries being made. I mean even the protect the person from the druids quest does not get completed going the BG1NPC quest route.
--GhostNWN

#5 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 20 January 2007 - 07:50 AM

*Now* we're getting somewhere.

Well, maybe, maybe not. I need to check, and I'm sorry, but it really will take me a little while.

I needed the information about where, exactly, the variable was being reset. Now that I know, I can have a look at her quest dialog.

Keep in mind that I am much more familiar with the Tutu side of things, but I will have a look anyway, and see what I can find.

Please be patient for a few moments.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#6 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 20 January 2007 - 08:00 AM

I swear to you, if it were in my power, I would cheerfully rename one of those two archdruids Bob. Keeping one or the other of those highly similar names in my head while flipping between files and running a search is a nightmare.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#7 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 20 January 2007 - 08:22 AM

No luck. I've been looking at the BGT folder on my install, and it looks fine.

From Jaheira's quest file, but it's appended to Seniyad's dialogue file:
IF ~!Global("ENDOFBG1","GLOBAL",2) GlobalGT("X#JaheiraSen","GLOBAL",26) GlobalLT("X#JaheiraSen","GLOBAL",35)~ SeniyadReward
SAY ~Ah, there you are! I hear that you have administered a fitting punishment for those vile mockers of our true beliefs. Maretha told me everything, as well as the names of two high standing members in our own order, connected with the Shadow Circle. Their punishment was swift and sound. We have dealt a huge blow to the Shadow Druids, and reclaiming our sacred forest shall now be only a matter of time.~

+ ~Class(Player1,DRUID_ALL)~ + ~I am glad to have helped you and Jaheira, Seniyad.~ DO ~SetGlobal("X#JaheiraSen","GLOBAL",35)~ + SEReward1.1D

+ ~!Class(Player1,DRUID_ALL)~ +~I am glad to have helped you and Jaheira, Seniyad.~ DO ~SetGlobal("X#JaheiraSen","GLOBAL",35)~ + SEReward1.1

++ ~Yes, yes, that's really wonderful. Jaheira mentioned that you might have a reward for us...~ DO ~SetGlobal("X#JaheiraSen","GLOBAL",35)~ + SEReward1.2
END

IF ~~  SEReward1.1D
SAY ~You have proven to be a good ally, <CHARNAME>. For that you will be rewarded with the allegiance of the druids of the Cloakwood and a free, undisturbed passage through our woods. Jaheira's guidance has apparently helped us find another steadfast ally of our cause... you would do well by continuing to listen to her wisdom and experience, you can learn much from her.~
= ~And let me add something else as well... this enchanted club was found in the possessions of one of the traitors. I trust you or Jaheira will make good use of it.~
IF ~~ THEN DO ~AddexperienceParty(5000) GiveItemCreate("X#JACLUB",Player1,1,0,0) SetGlobal("SeniyadXP","GLOBAL",1) Shout(3) EscapeArea()~
JOURNAL ~We have been successful in helping the druids of Cloakwood, and they have granted us free passage, a magical club, and newfound friendship. Gaining a new ally is important... with all that has been going on, I have a feeling that it is useful to have new allies.~ EXIT
END

IF ~~ SEReward1.2
SAY ~Do you imply that the allegiance of the druids of Cloakwood, a safe passage through our forests and the personal aid of one of nature's most devoted warriors, is not enough of a reward?~
+ ~Class(Player1,DRUID_ALL)~ + ~Err... well, I...~  + SEReward1.3D
+ ~!Class(Player1,DRUID_ALL)~ + ~Err... well, I...~  + SEReward1.3
+ ~Class(Player1,DRUID_ALL)~ + ~Alright, this is the last time I trust or help a druid...~ + SEReward1.3D
+ ~!Class(Player1,DRUID_ALL)~ + ~Alright, this is the last time I trust or help a druid...~ + SEReward1.3
++ ~Fair enough, Seniyad, and well met.~ + SEReward1.4
END

IF ~~ SEReward1.3D
SAY ~I was merely jesting, <CHARNAME>. Of course, you will be rewarded for this service. Jaheira's guidance has apparently helped us find another steadfast ally to our course... you would do well by continuing to listen to her wisdom and experience, you can learn so much from her.~
= ~This enchanted club was found in the possessions of one of the traitors. I trust you or Jaheira will make good use of it.~
IF ~~ THEN DO ~AddexperienceParty(5000) GiveItemCreate("X#JACLUB",Player1,1,0,0) SetGlobal("SeniyadXP","GLOBAL",1) Shout(3) EscapeArea()~
JOURNAL ~We have been successful in helping the druids of Cloakwood, and they have granted us free passage, a magical club, and newfound friendship. Gaining a new ally is important... with all that has been going on, I have a feeling that it is useful to have new allies.~ EXIT
END

IF ~~ SEReward1.4
SAY ~You have a noble heart, <CHARNAME>. I recognize Jaheira's influence. It seems that she helped us find another steadfast ally to our course... you would do well by continuing to listen to her wisdom and experience, since you can learn much from her.~
= ~I have something for you, Jaheira - this club is a powerful weapon, and it should be wielded by a wiser person than its previous owner - one of the traitors we have discovered with your help.~
IF ~~ THEN DO ~AddexperienceParty(10000) GiveItemCreate("X#JACLUB","jaheira",1,0,0) SetGlobal("SeniyadXP","GLOBAL",1) Shout(3) EscapeArea()~ JOURNAL ~We have been successful in helping the druids of Cloakwood, and they have granted us free passage, a magical club, and newfound friendship. Gaining a new ally is important... with all that has been going on, I have a feeling that it is useful to have new allies.~ EXIT
END

END

CHAIN3 SENIYA SEReward1.1
~You have proven to be a good ally, <CHARNAME>. For that you will be rewarded with the allegiance of the druids of the Cloakwood and a free, undisturbed passage through our woods. And let me add something else as well... this enchanted club was found in the possessions of one of the traitors. It will be a powerful tool in Jaheira's hands.~
== JAHEIRAJ ~You have my assurances that it will be put to good use in maintaining the balance and crushing nature's enemies, Seniyad.~
== SENIYA ~Yes, you have once again proven your devotion as a druid, Jaheira. It was good seeing you and your friends again, but now we must part. Farewell, <CHARNAME>, farewell, Jaheira!~
DO ~AddexperienceParty(5000) GiveItemCreate("X#JACLUB",Player1,1,0,0) SetGlobal("SeniyadXP","GLOBAL",1) Shout(3) EscapeArea()~
END
IF ~~ THEN JOURNAL ~We have been successful in helping the druids of Cloakwood, and they have granted us free passage, a magical club, and newfound friendship. Gaining a new ally is important... with all that has been going on, I have a feeling that it is useful to have new allies.~ EXIT

CHAIN3 SENIYA SEReward1.3
~I was merely jesting, <CHARNAME>. Of course, you will be rewarded for this service. This enchanted club was found in the possessions of one of the traitors. It will be a powerful tool in Jaheira's hands.~
== JAHEIRAJ ~You have my assurances that it will be put to good use in maintaining the balance and crushing nature's enemies, Seniyad.~
== SENIYA ~Yes, you have once again proven your devotion as a druid, Jaheira. It was good seeing you and your friends again, but now we must part. Farewell, <CHARNAME>, farewell, Jaheira!~
DO ~AddexperienceParty(5000) GiveItemCreate("X#JACLUB",Player1,1,0,0) SetGlobal("SeniyadXP","GLOBAL",1) Shout(3) EscapeArea()~
END
IF ~~ THEN JOURNAL ~We have been successful in helping the druids of Cloakwood, and they have granted us free passage, a magical club, and newfound friendship. Gaining a new ally is important... with all that has been going on, I have a feeling that it is useful to have new allies.~ EXIT

It is pretty clear that this is meant to happen any time you talk to Seniyad when that global is between 27 and 34, inclusive. You are supposed to wind up with a good deal of experience and a nice, new club.

I notice that you have a mod installed that reduces experience. Is it possible that that mod is messing with the dialogue?

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#8 pro5

pro5
  • Modder
  • 722 posts

Posted 20 January 2007 - 08:50 AM

The wrong state is firing because it has lower WEIGHT and its condition is still true.

Just add WEIGHT #-1 or somesuch to the code above and other places where it's needed.

Edited by pro5, 20 January 2007 - 08:51 AM.


#9 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 20 January 2007 - 10:12 AM

One more thing for the "To Do" list. I'll shoot cmorgan a PM, but he's not expected to have computer access again until Monday.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#10 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 23 January 2007 - 05:03 PM

Searching for the state that is problematic - I suspect that I have made a silly mistake and put an ENDOFBG1 check in the wrong place, because each one of the blocks that set the variable to 8 and then give the 500 points within project are only attained through direct call from another state. Unless the problem is that the original reply is firing... I bet that is what it is!

I will go decompile and troubleshoot :)

#11 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 25 January 2007 - 01:25 PM

Aaaand - no dice. The only states added to SENIYA that set the global to 8 are a set of responses within a larger dialogue chain, like

CHAIN JAHEIRAJ JAQU6.2
@148
== ~SENIYA~ @130
== ~SENIYA~ IF ~Global("X#JaheiraSen","GLOBAL",4)~ THEN @122
== ~ALDETH~ IF ~Global("X#JaheiraSen","GLOBAL",4)~ THEN @123
END
IF ~Global("X#JaheiraSen","GLOBAL",4)~ THEN DO ~SetGlobal("X#SenBeador","GLOBAL",1) SetGlobal("X#JaheiraSen","GLOBAL",5) SetGlobal("AldethMove","GLOBAL",1) AddexperienceParty(500) ActionOverride("aldeth",EscapeArea())~ EXIT
IF ~Global("X#JaheiraSen","GLOBAL",3)~ THEN DO ~SetGlobal("X#SenBeador","GLOBAL",1) SetGlobal("X#JaheiraSen","GLOBAL",8) AddexperienceParty(500)~ EXIT

IF ~~ THEN BEGIN 17 // from:
SAY #100258 /* ~You have made a wise decision. Good luck

IF ~~ THEN BEGIN 22 // from:
SAY #100258 /* ~You have made a wise decision. Good luck to you!~ */

We certainly want the Weights put on, but I am still not sure how this is happening.

Several points reading the posts again to make sure I haven't missed something -

1. You should not be able to talk to Seniyad again, as his dialogue after solving the quest is set up to have him and any friends EscapeArea() immediately. So the first real problem is that you get only the minor xp reward, and then the dialogue fails. It actually cuts off in mid stream, because the flow should be
IF WEIGHT #10 ~!Global("ENDOFBG1","GLOBAL",2)
GlobalGT("X#JaheiraSen","GLOBAL",26)
GlobalLT("X#JaheiraSen","GLOBAL",35)
~ THEN BEGIN 31 // from:
  SAY #100301 /* ~Ah, there you are! I hear that you have administered a fitting punishment for those vile mockers of our true beliefs. Maretha told me everything, as well as the names of two high standing members in our own order, connected with the Shadow Circle. Their punishment was swift and sound. We have dealt a huge blow to the Shadow Druids, and reclaiming our sacred forest shall now be only a matter of time.~ */
  IF ~Class(Player1,DRUID_ALL)
~ THEN REPLY #100302 /* ~I am glad to have helped you and Jaheira, Seniyad.~ */ DO ~SetGlobal("X#JaheiraSen","GLOBAL",35)
~ GOTO 32
  IF ~!Class(Player1,DRUID_ALL)
~ THEN REPLY #100302 /* ~I am glad to have helped you and Jaheira, Seniyad.~ */ DO ~SetGlobal("X#JaheiraSen","GLOBAL",35)
~ GOTO 39
  IF ~~ THEN REPLY #100303 /* ~Yes, yes, that's really wonderful. Jaheira mentioned that you might have a reward for us...~ */ DO ~SetGlobal("X#JaheiraSen","GLOBAL",35)
~ GOTO 34
END

Each of these paths should flow without interuption , all connected with IF ~~ THEN BEGIN statenumber, until you get the club and reward.

2. You should be able to negotiate your way into both the quest and saving the hunter, thus getting both quests.


I will add the weights, and try a playtest this weekend if I can - but I think something else funny is going on here.

Could you folks send me a savegame and a decompiled SENIYA.DLG ? svowles at comcast dot net

Edited by cmorgan, 25 January 2007 - 01:49 PM.


#12 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 26 January 2007 - 12:38 PM

OK, I ran the quest on a vanilla BGT install, and had none of these problems - the savegame you sent definitely has the problem. It might be the fact that I negotiated rather than fought - I bet EscapeArea() does not equal killing (it probably doesn't set SPRITE_IS_DEAD.). So, we have a loop of you kill Aldeth.
IF WEIGHT #4 /* Triggers after states #: 3 5 6 even though they appear after this state */
~Dead("Aldeth")
Global("SeniyadXP","GLOBAL",0)
~ THEN BEGIN 2 // from:
  SAY #84175 /* ~I congratulate your wise decision.  I wish you well for whichever endeavor you now embark.  If your presence in this wood involves those known as the Iron Throne, then I would suggest you head west, then north.  Be careful in your journeys, for there are many foul beasts that have inhabited the wood.  Another danger is a sect of Shadow druids.  Their Order is a dangerous splinter group of the true druid Order.~ */
  IF ~OR(2)
!InParty("jaheira")
Dead("jaheira")
~ THEN DO ~AddexperienceParty(2000)
SetGlobal("SeniyadXP","GLOBAL",1)
EraseJournalEntry(74405)
Shout(3)
EscapeAreaDestroy(90)
~ SOLVED_JOURNAL #74952 /* ~Hunting the druids.

I sided with the druids on the protection of the Cloakwood wildlife and slew Aldeth Sashenstar.  I suspected Aldeth and his band may have hunted shapechanged druids, and it was right that the druids could have their revenge.~ */ EXIT
  IF ~InParty("jaheira")
InMyArea("jaheira")
!StateCheck("jaheira",CD_STATE_NOTVALID)
Dead("aldeth")
~ THEN DO ~SetGlobal("X#JaheiraSen","GLOBAL",1)
~ EXTERN ~JAHEIRAJ~ 784
END

To fix this, I will
1. weight the CHAINs with the solved and still-unsolved-but-going-back-to-Seniyad dialogues placed earlier in the queue (WEIGHT #-2)
2. add a condition to Seniyad's state 2 which should have been done in the first place to make sure everything worked fine:

ADD_STATE_TRIGGER ~SENIYA~ 2 ~Global("X#JaheiraSen","GLOBAL",0)~

so that the default reply for killing Aldeth becomes

IF WEIGHT #4 /* Triggers after states #: 3 5 6 even though they appear after this state */
~Dead("Aldeth")
Global("SeniyadXP","GLOBAL",0)
Global("X#JaheiraSen","GLOBAL",0)
~ THEN BEGIN 2 // from:
  SAY #84175 /* ~I congratulate your wise decision.  I

Thank you for reporting - and PM me for the link to the repaired Beta so we can test it out, please!

/Edit - I just tested it on your save, and it worked perfectly :) I am attaching a new Attached File  X_JAQU.rar   2.82K   144 downloads BGT Jaheira's Quest file to replace the one in your BG1NPC/BGT/DLG subdirectory. If you want to, you can uninstall BG1 NPC and then reinstall it (or just Banters/Quests/Interjections if you want) using the new file and all will be ok. Like I posted before, this is now fixed and integrated into the internal version which anyone can get by PMing me!

Edited by cmorgan, 26 January 2007 - 01:07 PM.


#13 Autar

Autar
  • Member
  • 52 posts

Posted 29 January 2007 - 07:23 AM

Thanks for the support and for the fix. :Bow:

I coudn't test it because something went wrong by uninstalling mods I had installed after BG1 NPC, so I have to make a completly new install :crying:

When I have some hours of free time I will reinstall the whole thing and test it.
My English is very poor. Italian is my mother language and I also know German very good. Be patien with me & sry for my bad English ;)

#14 Belegur

Belegur
  • Member
  • 13 posts

Posted 09 February 2007 - 07:04 AM

Unfortunately, I need to report a bug in the Jaheira/Seniyad quest. I'm running the BG1NPC V12 Pro5.2 beta.
The error is that after Senyad spawns, several dialogs have been skipped. When he spawns, he starts with the "Wait! That is not all, Jaheira. A few days ago..." dialog, not the initial meeting dialog (this repeats endlessly if he is talked to again). Aldeth also becomes nonresponsive at this point. In addition to that, the dialog with Jaheira (when I ask her about Beador) ends with a NO VALID RESPONSES OR LINKS.


A copy of both my Weidu.log file and one of my savegames (rename it back to Baldur.GAM) is attached if anyone has any ideas what is wrong.

Attached Files


Edited by Belegur, 09 February 2007 - 08:02 AM.


#15 OldVeteran

OldVeteran
  • Member
  • 168 posts

Posted 09 February 2007 - 07:46 AM

Erm, patch your BG1NPC? the current version is 12 and you are running 5.2 beta...
--GhostNWN

#16 Kulyok

Kulyok
  • Modder
  • 2450 posts

Posted 09 February 2007 - 08:05 AM

Unfortunately, I need to report a bug in the Jaheira/Seniyad quest. I'm running the BG1NPC V12 Pro5.2 beta.
The error is that after Senyad spawns, several dialogs have been skipped. When he spawns, he starts with the "Wait! That is not all, Jaheira. A few days ago..." dialog, not the initial meeting dialog (this repeats endlessly if he is talked to again). Aldeth also becomes nonresponsive at this point. In addition to that, the dialog with Jaheira (when I ask her about Beador) ends with a NO VALID RESPONSES OR LINKS.


Oh. I had the same on my pro5_2 beta, but I thought my install was screwed! I have TUTU, though - I'll post at G3 about that.

(BG1 NPC v12 pro5_2 is the latest internal release.)

#17 K4thos

K4thos
  • Modder
  • 315 posts

Posted 09 February 2007 - 08:17 AM

Ekhm, Belegur used the newest BG1NPC v.12 Beta 4 pro5-2...

#18 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 09 February 2007 - 11:27 AM

Sorry for the confusion folks. My naming sequesnces are all wonky, 'cause of the joining of Tutu and BGT into one installer. I will grab the materials and find out what I screwed up discover; I will be back with a fix a.s.a.p.

For the record, the latest public download is v12 beta 3. The latest testing version, which has pro5's work repairing the BGT states and has new content out for testing, is v12 Beta 4 pro5-2 (read that as version 12, Beta4 for Tutu, pro5-2 for BGT)

#19 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 09 February 2007 - 11:44 AM

Aaaand - this one is me adding state weights without checking to see what comes up out of order... I will get this fixed up fast. Code to follow. There may not be a hotfix for this one :(