jmerry Posted July 24, 2022 Share Posted July 24, 2022 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.) Quote Link to comment
argent77 Posted July 24, 2022 Share Posted July 24, 2022 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 Quote Link to comment
jmerry Posted July 24, 2022 Author Share Posted July 24, 2022 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. Quote Link to comment
Recommended Posts
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.