Author Topic: The Dreaded Bugs Thread....  (Read 56980 times)

0 Members and 1 Guest are viewing this topic.

Offline Lord Ernie

  • Level 1
  • *
  • Posts: 472
  • Karma: +0/-0
  • Gender: Male
    • MSN Messenger - Ask for it
    • View Profile
The Dreaded Bugs Thread....
« Reply #30 on: June 15, 2005, 11:19:39 AM »
No problem. And you are right about checking the Imoen variable (I've never left her behind myself, so I didn't actually think about that one). As for the Spellhold variable, the only one I've been able to find that could be it is PirateAsylum.

Offline Lord Ernie

  • Level 1
  • *
  • Posts: 472
  • Karma: +0/-0
  • Gender: Male
    • MSN Messenger - Ask for it
    • View Profile
The Dreaded Bugs Thread....
« Reply #31 on: June 16, 2005, 03:45:37 PM »
I've got another bug for you, I think. I've got a screenshot, but it's not very useful, so I'll explain. I've finished most of the game now, Fade's final quest included. I was doing some cleanup in Athkatla, and started finishing the Priest quest (you know, the Unseeing Eye in the sewers). I whacked the eye, and went up the stairs out of the Beholder lair. Then, Fade tries to talk to me, but initiates a flirt rather than saying anything useful. I finish the flirt, and she stays trying to interact with me, not reacting well to commands and so on. I've taken a look at the script, and I think this is what's causing the problem:

On the one hand, here's her script:
IF
   InParty(Myself)
   See(Player1)
   !StateCheck(Player1,STATE_SLEEPING)
   AreaCheck("AR0202")
   Dead("UnseeingEye")
   GlobalGT("E3FINALQUEST","GLOBAL",3)
   Global("E3SEWERSTALK","LOCALS",0)
THEN
    RESPONSE #100
        StartDialogueNoSet(Player1)
END

This is all in check, so she'll try to start a dialogue. However, if we look at her dialogue file, we see this:

IF ~InParty(Myself)
See(Player1)
!StateCheck(Player1,STATE_SLEEPING)
AreaCheck("AR0202")
Dead("UnseeingEye")
GlobalGT("E3FINALQUEST","GLOBAL",3)
GlobalLT("E3FINALQUEST","GLOBAL",7)
Global("E3SEWERSTALK","LOCALS",0)~ THEN BEGIN finalquest4_sewers
SAY @508
IF ~~ THEN DO ~SetGlobal("E3SEWERSTALK","LOCALS",1)~ EXIT
END

which is, I believe the dialogue that's supposed to trigger. Problem is: E3FINALQUEST is 9 (aka finished), so the state is not correct, and the only dialogue found valid is the flirt. The flirt, of course, does not reset the global E3SEWERTALK to 1, which means she'll keep trying to interact.

I suggest either adding a GlobalLT("E3FINALQUEST","GLOBAL",7) to the script, so this won't trigger if you've finished her quest, or removing the check in the dialogue file (I did the latter to fix the problem locally).

EDIT: Removing the check fixed the problem, but the dialogue seemed to be related to her quest (tracking down her family members). So I suppose adding the check to the script is the way to go.

Offline Silmarien

  • Newbie
  • *
  • Posts: 93
  • Karma: +0/-0
    • View Profile
    • Email
The Dreaded Bugs Thread....
« Reply #32 on: June 16, 2005, 06:00:01 PM »
Yep, it is a bug, but I think someone has reported it before, because I've already added GlobalLT("E3FINALQUEST","GLOBAL",7) to the script in my own working copy of the mod. Thanks for the bug hunting, and also the suggestions on how to fix it... it makes my life a lot easier!  :D
Random Thoughts From My Ivory Tower

Offline Lord Ernie

  • Level 1
  • *
  • Posts: 472
  • Karma: +0/-0
  • Gender: Male
    • MSN Messenger - Ask for it
    • View Profile
The Dreaded Bugs Thread....
« Reply #33 on: June 17, 2005, 11:34:17 AM »
Heh, I wasn't bughunting per se, I just came across this one. And since I wanted to play on, I had little choice but to track it down and eliminate it myself. Still,  you're welcome :D. Believe me, I know how timeconsuming, annoying and generally unsatisfying debugging can be.

Offline ahardi01

  • Newbie
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
treatment conversation
« Reply #34 on: June 20, 2005, 11:22:56 PM »
I've just saved Fade from the slavers and burned the contract setting her free. I know that there is supposed to be some kind of treatment conversation when you rest in an inn. No matter how long I wait before I rest I can't get the conversation to happen. I've tried setting the E3Treatmenttimer to 1 but I still can't get it to work. I don't know if this is a bug or I am doing something wrong. Please help. Thanks in advance

Offline Mistress Elysia

  • Level 3
  • ***
  • Posts: 1185
  • Karma: +0/-0
  • Gender: Female
    • View Profile
    • http://mistresselysia.deviantart.com/
The Dreaded Bugs Thread....
« Reply #35 on: June 20, 2005, 11:51:44 PM »
The TreatmentTalk can be notoriously hard to trigger if the timer has run out - basically if too much time has elapsed towards the next LT, it won't trigger. The only really guaranteed way to see it at the moment is as soon as she is kidnapped, go to her rescue and immediately take her off to an Inn (in V1 is has been added to the roster of 'proper' LTs so won't be missed - it just means you have to rest in an Inn in order for it to trigger!) - so it's not a bug per se.

As for the concole command... I'm sure that should work (however, its early and very hot here and my brain is frazzled... :rolleyes: )... if it isn't it's probably because the timer cut off it preventing it. Sil knows more about that side of things than I do!! :oops:

Offline ahardi01

  • Newbie
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
The Dreaded Bugs Thread....
« Reply #36 on: June 21, 2005, 03:17:39 PM »
I tried everything to get the treatment talk to trigger but nothing works. I made sure that I was right next to the slave compound when Fade is kidnapped and I go in and rescue her right away. I then go straight to an inn before I do anything else but it still won't trigger. Is there something I'm missing. Please help.

Offline Lord Ernie

  • Level 1
  • *
  • Posts: 472
  • Karma: +0/-0
  • Gender: Male
    • MSN Messenger - Ask for it
    • View Profile
The Dreaded Bugs Thread....
« Reply #37 on: June 21, 2005, 05:06:23 PM »
Actually, I was unable to get the Treatment talk this time as well. Normally, I can figure out what timer does what precisely easily enough, but it seems to me I'm missing some links, so I"m not sure what's going on. If I find the time, I'll look at it again tomorrow.

Offline Silmarien

  • Newbie
  • *
  • Posts: 93
  • Karma: +0/-0
    • View Profile
    • Email
The Dreaded Bugs Thread....
« Reply #38 on: June 21, 2005, 08:26:21 PM »
This is what happens with the treatment conversation. When you rescue Fade from the slaver compound, E3TREATMENTTIMER is set for one game day. If the timer hasn't expired, the next time you rest in an inn in Athkatla, the treatment talk will fire. However, that is only if the E3LOVETALK variable hasn't reached 32 (the feet dialogue) yet.

This is why the treatment talk can be hard to trigger. Mallon is scheduled to appear after E3LOVETALK 30, and only if you're outdoors in a city environment. So if you happen to be adventuring somewhere in the forest, LTs 30, 32, 34 and so forth will trigger without any incident, and Mallon will only show up to abduct Fade after you return to the city. Basically, once you're past LT 32, there will be no treatment talk.

For v1 we're removing the LT 32 check, meaning that as long as you rest in an inn within one game day of rescuing Fade, you should get the treatment talk. In the meantime, if you want to see the talk, you could try setting E3TREATMENTTIMER to a larger number (make sure it hasn't expired), set E3LOVETALK to 31 and rest at an inn.
Random Thoughts From My Ivory Tower

Offline ahardi01

  • Newbie
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
The Dreaded Bugs Thread....
« Reply #39 on: June 21, 2005, 09:38:27 PM »
Thanks for the help. Mallon showed up after the feet conversation so that must be why it didn't trigger. I guess I'll wait until version 1 comes out.

Offline f9th-underdog

  • Level 1
  • *
  • Posts: 107
  • Karma: +0/-0
  • Gender: Male
    • View Profile
The Dreaded Bugs Thread....
« Reply #40 on: July 21, 2005, 08:07:48 AM »
Quote from: "Silmarien"

This is why the treatment talk can be hard to trigger. Mallon is scheduled to appear after E3LOVETALK 30, and only if you're outdoors in a city environment. .


I'll go check again, but I'm certain that Mallon appeared for me at the De Arnese keep.

Offline seanas

  • Newbie
  • *
  • Posts: 38
  • Karma: +0/-0
    • View Profile
love talk 24?
« Reply #41 on: July 29, 2005, 07:08:54 AM »
after having recently sent ms e a msg about how much i was enjoying fade and how it was basically bug-free for me (other than the one lord ernie identified here), i've come across a fatal one. where is love talk 24? i've been stuck on E3LOVETALK = 25 for some hours now, and a search of the decompiled E3FADE.BCS finds no mention or reference to it. the relevant blocks of code in E3FADE.BCS jump from 23 to 27; the block of code that increments the global from 24 to 25 is there, but there's no condition of  Global("E3LOVETALK","GLOBAL",25) in the block that calls the Interact(Player1).

similarly, there's no LT=24, in either the compiled, decompiled, installation or freshly extracted BE3FADE.DLG or E3FADEJ.DLG - so the romance is stopped, obviously, whilst it waits for a state that doesn't exist. all other variables - E3FADEROMANCEACTIVE, in particular - appear correct.

Offline Silmarien

  • Newbie
  • *
  • Posts: 93
  • Karma: +0/-0
    • View Profile
    • Email
The Dreaded Bugs Thread....
« Reply #42 on: July 30, 2005, 07:04:08 AM »
Quote
after having recently sent ms e a msg about how much i was enjoying fade and how it was basically bug-free for me (other than the one lord ernie identified here), i've come across a fatal one. where is love talk 24? i've been stuck on E3LOVETALK = 25 for some hours now, and a search of the decompiled E3FADE.BCS finds no mention or reference to it. the relevant blocks of code in E3FADE.BCS jump from 23 to 27; the block of code that increments the global from 24 to 25 is there, but there's no condition of Global("E3LOVETALK","GLOBAL",25) in the block that calls the Interact(Player1).


Do you mean LT 26? I mean, since you're stuck on 25 and all. LT 26 triggers on rest. The triggers are in E3FADED.BCS.

Interesting... now that you mention it, I can't find LT 24! Highly embarrassing.  :oops:  But in the long run, does it really do anything to harm to running of the LTs? Most people don't seem to find this a particular problem.

Code: [Select]
IF
       ...
       Global("E3LOVETALK","GLOBAL",23)
       ...
THEN
    RESPONSE #100
        PlaySong(0)
        MoveViewObject("E3Fade",INSTANT)
        IncrementGlobal("E3LOVETALK","GLOBAL",1)
        PlaySound("E3THEME")
        Interact(Player1)
END


Code: [Select]
IF
       ...
       Global("E3LOVETALK","GLOBAL",24)
       ...
THEN
     RESPONSE #100
        IncrementGlobal("E3LOVETALK","GLOBAL",1)
        RealSetGlobalTimer("E3FADEROMANCE","GLOBAL",2600)
END


Let's see... when LT is 23 and the timer expires, two things are supposed to happen: LT is incremented to 24 and Fade interacts with PC. Since there's currently no banter that demands LT be set to 24, what will probably show up is a random banter. But LT still gets set to 24, which is the main thing, since the next block of script means it will get incremented to 25 and the timer will get reset, which means the next LTs will still take place...

Or so I think, anyway. It's been a long week and my brain's pretty fried. Feel free to correct me, anyone... and thanks seanas for pointing this out.  :-D
Random Thoughts From My Ivory Tower

Offline seanas

  • Newbie
  • *
  • Posts: 38
  • Karma: +0/-0
    • View Profile
The Dreaded Bugs Thread....
« Reply #43 on: July 31, 2005, 05:27:19 AM »
Quote from: "Silmarien"

Do you mean LT 26? I mean, since you're stuck on 25 and all. LT 26 triggers on rest. The triggers are in E3FADED.BCS.


LT=26 tirggered fine as soon as i incremented LT from 25 to 26. the problem is as you describe:

Quote from: "Silmarien"
Let's see... when LT is 23 and the timer expires, two things are supposed to happen: LT is incremented to 24 and Fade interacts with PC. Since there's currently no banter that demands LT be set to 24, what will probably show up is a random banter. But LT still gets set to 24, which is the main thing, since the next block of script means it will get incremented to 25 and the timer will get reset, which means the next LTs will still take place...

Or so I think, anyway. It's been a long week and my brain's pretty fried. Feel free to correct me, anyone... and thanks seanas for pointing this out.  :-D


however: the block of script in E3FADE.BCS that increments the odd numbered LTs lacks  Global("E3LOVETALK","GLOBAL",25) so it never increments: LT=24 increments normally, even tho there's no actual dialogue state; but nothing happens at LT=25, as it is missing as a trigger in the relevant script block.

Offline seanas

  • Newbie
  • *
  • Posts: 38
  • Karma: +0/-0
    • View Profile
The Dreaded Bugs Thread....
« Reply #44 on: August 01, 2005, 02:12:00 AM »
same problem, later lovetalk. LT=50 didn't fire as condition

Gobal("E3LOVETALK","GLOBAL",49)

missing in the script block that increments the LT global.  

FWIW, when i incremented the global manually to LT=50, it skipped immediately to LT=53, as the script block that increments LT=50 seems to lack a condition - ie, it only checks for GlobalTimerExpired("E3FADEROMANCE","GLOBAL) and Global("E3FADELOVETALK","GLOBAL",50).

this might be due to me manually setting E3FADEROMANCE=1 prior to setting the LT=50, however - and i added my own check (which worked) to the block that increments LT=50 (!Global("E3FADENOOKIE","GLOBAL",0)) before trying a second time so i don't know if the LT=52 would fire correctly under circumstances where LT=50 had already fired correctly.