Jump to content

Why did this dialogue break?


jmerry

Recommended Posts

My current playthrough has reached the point that I could actually try out my little new content component (Noober's Game). But when I did, I ran into a "NO VALID REPLIES OR LINKS". Specifically, state 19 in the dialogue did this. The relevant section of the .D file:

Quote

IF ~~ THEN BEGIN 18 // from: 17.0
  SAY #100819 /* ~"Mount Redigar is the home of Fernault, a warlord that recently moved into the area and began terrorizing the people. Aldaron was certain he could talk sense into the tyrant—confident that Lathander would protect him if the worst came—but he has not returned!"~ */
  IF ~~ THEN DO ~SetGlobal("OHBN_KNOWS_FERNAULT","LOCALS",1)
~ GOTO 19
END

IF ~~ THEN BEGIN 19 // from: 18.0
  SAY #100820 /* ~"My mentor—my friend—has been slain by that monster, and now I don't see how the people here will ever be free of him! Please, <PRO_SIRMAAM>, you look to be a great warrior. Rid our town of this tyrant if you can! Oh, I'm sorry, but my emotions overwhelm me. I cannot speak any more of it!" She runs off, leaving you alone in the temple.~ */
  IF ~  !Global("OHBN_SENESCHAL","LOCALS",1)
~ THEN REPLY #100821 /* ~Leave the temple and enter the blacksmith's.~ */ GOTO 20
  IF ~  Global("OHBN_KNOWS_FERNAULT","LOCALS",1)
~ THEN REPLY #100822 /* ~Leave the town and head to Mount Redigar.~ */ GOTO 35
END

When you go to the blacksmith's first (and meet the seneschal), state 19 has no valid replies. When you go to the temple first, you can go to the blacksmith after using state 19's first reply, and the replies at the blacksmith's that use the  Global("OHBN_KNOWS_FERNAULT","LOCALS",1) condition work fine.

The variable clearly gets set. Is there some sort of delay before you can use it in the dialogue?

I can see how to fix the flow; just drop the condition on the second reply to state 19. But I'd like to know how it broke in the first place.

(I'm not posting the full .D file, because it's 172 KB. Also, it's 99% recycled Beamdog material generated by exporting OHBNOOB.DLG and making small edits, and the excerpt I posted here is not one of the parts I made changes to.)

Link to comment
5 hours ago, jmerry said:

The variable clearly gets set. Is there some sort of delay before you can use it in the dialogue?

Yes, there is a delay of one or two transitions between setting and using a variable. In EE games you can enforce immediate script execution (for instant actions only) with a flag.

Quote

IF ~~ THEN BEGIN 18 // from: 17.0
  SAY #100819 /* ~"Mount Redigar is the home of Fernault, a warlord that recently moved into the area and began terrorizing the people. Aldaron was certain he could talk sense into the tyrant—confident that Lathander would protect him if the worst came—but he has not returned!"~ */
  IF ~~ THEN DO ~SetGlobal("OHBN_KNOWS_FERNAULT","LOCALS",1)~ FLAGS 512 GOTO 19
END

 

Link to comment

Good to know, and a better solution than just deleting that particular condition. Now I'll have to look through the rest of that dialogue file to see if there are any other places I need variable changes executed right away.

And ... yes, there are. In the final battle of the fighter path (states 149-173), spending an action point sends you right back to a decision point that needs to know if you have any action points left. 28 instances of that, in replies to 12 states. Then a couple instances of finding out information in the thief path, at states 284 and 287. One edit, applied 31 times.

Since this component is already EE only by virtue of its content - it's based on unused Black Pits 2 material - availability of that flag is not a problem. And I restrict my mods to EE only anyway.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...