Guest Mimic Posted October 14, 2006 Share Posted October 14, 2006 So I am back at Candlekeep and Imoen just mentioned memories and a half-eaten pie and she has asked it six times in a row so far. I think I have to kill her to get rid of the loop. Suggestions? Link to comment
Guest Mimic Posted October 14, 2006 Share Posted October 14, 2006 Sorry for the double post, but I needed to add this. Instead of choosing the pie answer I chose the Hull answer and that seemed to solve the problem. However, there is an error in the grammar. Imoen says"...let's drink his memory". Should it not be drink to his memory? Link to comment
berelinde Posted October 14, 2006 Share Posted October 14, 2006 Don't kill her yet! I'm looking it up as fast as I can. Link to comment
berelinde Posted October 14, 2006 Share Posted October 14, 2006 So, let me get this right. Imoen says: ~Candlekeep... never thought I'd be back here again, and especially this early on. Brings back all sorts of memories, doesn't it?~ And you choose: ~Yes, like the time you pilfered that pie from Mr. Winthrop and gave it to me half-eaten, just before he arrived to yell at me.~ After that, she's supposed to say: ~Hey, I was just trying to share. How was I supposed to know Mr. Winthrop was coming by just then? Hmm?~ You have a choice of 4 responses, all of which are supposed to end the conversation. But one does not, because there is no global being set. But I know why it repeats: /* 3: Return to Candlekeep */ IF WEIGHT #-2 ~Global("X#IMinCK","GLOBAL",1) AreaCheck("FW2626")~ THEN BEGIN IMINT3 SAY @322 ++ @323 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.1 ++ @324 GOTO IMINT3.2 ++ @325 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.3 ++ @326 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.4 END There is nothing telling the game that banter is done. Without checking the script to be certain, that is supposed to trigger when you return to Candlekeep. That sets the global variable at 1. The banter happens, and all responses except the pie one set it to 2, So it never happens again. But if you choose the pie one, it never gets set, so it repeats, since the conditions (still in Candlekeep) are still true. Guess it needs a DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ before the global. Now, on to the second problem. Starting with the "here we are back at Candlekeep, etc." You say: ~Yes, it does.~ She says: ~Yep. Why, there's Hull! Let's go say hi to him!~ That's supposed to end it. Or are you talking about Hull's dialog? Anyway, yes, there should be a "to" in there, but I'm going to have to dig for it in a bit. I've got to do some housework. Link to comment
Guest Mimic Posted October 14, 2006 Share Posted October 14, 2006 So, let me get this right. Imoen says: ~Candlekeep... never thought I'd be back here again, and especially this early on. Brings back all sorts of memories, doesn't it?~ And you choose: ~Yes, like the time you pilfered that pie from Mr. Winthrop and gave it to me half-eaten, just before he arrived to yell at me.~ After that, she's supposed to say: ~Hey, I was just trying to share. How was I supposed to know Mr. Winthrop was coming by just then? Hmm?~ You have a choice of 4 responses, all of which are supposed to end the conversation. But one does not, because there is no global being set. Correct. But I know why it repeats: /* 3: Return to Candlekeep */ IF WEIGHT #-2 ~Global("X#IMinCK","GLOBAL",1) AreaCheck("FW2626")~ THEN BEGIN IMINT3 SAY @322 ++ @323 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.1 ++ @324 GOTO IMINT3.2 ++ @325 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.3 ++ @326 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.4 END There is nothing telling the game that banter is done. Without checking the script to be certain, that is supposed to trigger when you return to Candlekeep. That sets the global variable at 1. The banter happens, and all responses except the pie one set it to 2, So it never happens again. But if you choose the pie one, it never gets set, so it repeats, since the conditions (still in Candlekeep) are still true. Guess it needs a DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ before the global. Well, fine. I just thought I would let the coders know. Now, on to the second problem. Starting with the "here we are back at Candlekeep, etc." You say: ~Yes, it does.~ She says: ~Yep. Why, there's Hull! Let's go say hi to him!~ That's supposed to end it. Or are you talking about Hull's dialog? Yeah, you have it right. And no, I was not talking about Hull's dialogue. *points to title of thread* Has nothing to do with him. Just Imoen. Link to comment
berelinde Posted October 14, 2006 Share Posted October 14, 2006 'K. If none of the coders get to this first, I'll check it when I get back. I've got to run an errand for BF's mother. Link to comment
berelinde Posted October 15, 2006 Share Posted October 15, 2006 Well, you couldn't have known, but Imoen actually has a couple of different dialog files. They might appear to be connected, but sometimes, they just happen that way. If you are paraphrasing Imoen, anyone who wants to find your specific paraphrase might have to dig through all of them. That is why supplying specific quotes is useful, because whomever is hunting for your quote can do a search using it. But you couldn't have known that! She has her joining dialog file (the one where she says "Hiya! It's me, Imoen!" and she has her banter file, the one where she chitchats with various other NPCs and sometimes the pc. These banters are usually just random things. She also has an interjection file, where she says specific things in reaction to specific in-game events. These things are scripted, and occur at points that are relevant to Imoen's story: burying Gorion, returning to Candlekeep, walking into the Elfsong for the first time. There may even be a "dream" file, where stuff that happens at or after rest go. I'm going to start with the interjection file, and do a search for "memory." BTW: the Hull dialog should have ended there. Anyway, I'll post the whole sequence in a few minutes. Link to comment
berelinde Posted October 15, 2006 Share Posted October 15, 2006 OK. I have the sequence that happens if you go over and talk to Hull, and it looks like the omission has already been corrected, unless you mean something else. I'll do a quick sweep of the rest of the file just to make sure she isn't drinking to too many people's memories. Imoen: Returning to Candlekeep. Imoen: ~Candlekeep... never thought I'd be back here again, and especially this early on. Brings back all sorts of memories, doesn't it?~ Your selected response: ~Yes, it does.~ Imoen: ~Yep. Why, there's Hull! Let's go say hi to him!~ And that's it for this dialog. Really, it is. It's got IF ~~ THEN EXIT END at the end of it, which means that when you hit continue, the dialog box will close. But that isn't the point. Something might actually happen there, so I'm going to go backwards from the "drink to his memory" bit and see where it starts. OK, I see a reference to drinking to Gorion's memory, but that version has been proofread and is correct in the newest build, which is just waiting on a couple minor bugs and BGT revisions. Here is what I believe you are referring to, once you talk to Hull: Hull: ~Now there's a face I never thought I'd see again in a million years. When we heard about Gorion's passing, Fuller and I went out to gather his body but you were nowhere to be seen. I don't know what you two came across that night but Gorion died a noble death saving you from it.~ Imoen: ~Oh, Hull, so many things have happened since... both good and bad... but nothin' was worse than ol' Gorion's being killed. <CHARNAME>, I think we should drink to his memory, while we're here in Candlekeep with our friends.~ Player choices: 1 ~That night's all a blur. We were ambushed and he told me to run, so I did.~ Hull replies: ~It's good that you did, kid, or you wouldn't be here to talk to me right now. There's never been any shame in running every now and again.~ And then the dialog ends. 2 ~I need your help, Hull.~ Hull replies: ~What kind of help?~ PC has a couple choices, but let's move on. 3 ~Thanks for taking care of his remains, Hull. I didn't have the means. Someday we'll sit down over a mug of ale and I'll tell you about it.~ Hull replies: ~I look forward to it, kid.~ And that ends the dialog. And, after checking the entire file, Gorion is the only person Imoen wants to drink to while in Candlekeep, and the grammar is corrected in the upcoming version. Although, I must admit, the idea of memory being liquid enough to drink is kind of... different. Link to comment
berelinde Posted October 15, 2006 Share Posted October 15, 2006 OK, now this is getting really weird. I was digging through the X#IMINT2.baf, looking for the script that triggers that interjection when I came across the following: IF InParty(Myself) CombatCounter(0) !See([ENEMY]) AreaCheck("FW2626") Global("X#IMinCK","GLOBAL",1) THEN RESPONSE #100 SetGlobalTimer("X#IMinCKtimer","GLOBAL",1) PlaySong(0) PlaySound("imoen99") StartDialogNoSet(Player1) END IF InParty(Myself) AreaCheck("FW2626") Global("X#IMinCK","GLOBAL",1) GlobalTimerExpired("X#IMinCKtimer","GLOBAL") THEN RESPONSE #100 SetGlobal("X#IMinCK","GLOBAL",3) END The first script block sets the timer (to one second real time!) and the second one advances the X#IMinCK global to 3. So why is this interjection still repeating? The interjection should start immediately, but I don't see why it would repeat. Maybe that timer needs to be longer? Link to comment
Gorilym Posted October 15, 2006 Share Posted October 15, 2006 Are you sure that the interjection still loops in the latest beta? In other words, which version is that code from? Link to comment
berelinde Posted October 15, 2006 Share Posted October 15, 2006 Good point. She can't be, because the latest (unreleased, don't forget!) beta is corrected for the typo mentioned. Unfortunately, I don't have a game at the point where I can go to Candlekeep without using the console. The code and quotes I posted are from chev7. Link to comment
cmorgan Posted October 15, 2006 Share Posted October 15, 2006 I checked... the currently released Beta also has this code as you describe, berelinde - I think the last version to not have this set up was v11 (or 10). There seems to be some oddities with Imoen and two areas: Firewine and Candlekeep. I am going through back threads to see, but I remember fixing this and the Imoen in Firewine with the AreaCheck trigger... I will have to ask around and see how we can test the second block and see if we can figure out why it isn't firing. Perhaps I forgot a timer set? I repaired the next internal version to /* 3: Return to Candlekeep */ IF WEIGHT #-2 ~Global("X#IMinCK","GLOBAL",1) AreaCheck("FW2626")~ THEN BEGIN IMINT3 SAY @322 ++ @323 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.1 ++ @324 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.2 ++ @325 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.3 ++ @326 DO ~SetGlobal("X#IMinCK","GLOBAL",2)~ GOTO IMINT3.4 END mimic, I apologise for the sloppiness, as this is one where my repairs took us back a step; I am glad you were able to continure. Until the full release version comes out, the workaround is either "Doctor, it hurts when I do this! ..Doctor: So, don't do that!" or use CLUAConsloleSetGlobal("X#IMinCK","GLOBAL",2) to advance. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.