Nuvie - New Ultima VI Engine -  
Welcome! » Log In » Create A New Profile

Forum

I need help with the "Valkadesh" conversation please

Posted by SirJohn 

I need help with the "Valkadesh" conversation please
July 31, 2015 07:40AM
Hi everybody,

as some of may have noticed, I am (still busy) translating the original Ultima 6 into German. While I'm making good progress and hope to finish the translation for ~September (roughly), I just noticed a slight problem with the Valkadesh conversation.

As this is the most lively place for Ultima 6 concerns I hope, I find someone able and willing to help out :-D

The decoding tool for conversations I use is v1.3 of Paul Gilberts tool u6edit. This version fails to decode Valkadesh properly and gives out an error of "unusual block at 0x0324" and cuts the dialogue script after jump mark L1. I was however able to recover the missing dialogue scriptlets and I paste the now complete dialogue below (mayhaps, someone else needs it, too)

The part I need help with, now is (quite expectedly) behind the dialogue of jump mark L1, just above L2. marked in bold red letters: "asm(0xA2); // Invalid instruction"

Can someone here figure out which line is missing here? From my experience this is only one line, probably a "Jump Lx"

Help? Anyone?

Thanks for trying!

John

   num 169;  // npc number
   name "Valkadesh";  // npc name
}
look "a tall, thin, winged gargoyle.\n";

converse {
   if (#21 == 0) {
      JUMP L3;
   }
   if (flag(SELF,F_MET)) {
      ["Greetings, friend '$P."]
      wait();
      [\n\n]
   } else {
      JUMP L1;
   }
   if (obj_in_party(76,0) == 1) {
      ["To see you have done the honorable thing."]
      wait();
      [\n"To have earned much respect from my people by ]
      [doing this!"]
   } else {
      ["To hope your travels have brought you wisdom?" ]
      askc("yn"winking smiley ;
      answers {
         keywords "y" {
            ["To wish to hear about it!"]
         }
         keywords "n" {
            ["To regret that, and to wish to aid you."]
         }
      }
   }
   JUMP L2;
L1:
   ["To offer greetings, False Prophet."]
   wait();
   [\n\n"To have waited long for you to return to this ]
   [side of the world."]
   wait();
   [\n\n"To believe that the Book of Prophecies is wrong."]
   wait();
   [\n\n"To believe that I can reason with you, persuade ]
   [you to spare my people."]
   wait();
   [\n\n"To wish to address you honorably: To ask your ]
   [name?"\n]
   ask();
   answers {
      keywords "*" {
      }
   }
   $0 = $35;
   ["Noble '$0, to see that you are a being of honor and ]
   [respect."]
   wait();
   [\n\n"To not betray that honor - to return the @Codex!"]
   wait();
   [\n\n"To save my people from the @prophecy!"]
   asm(0xA2);  // Invalid instruction
L2:
   [\n]
   ask();
   answers {
      keywords "name" {
         ["To be called Valkadesh Wis-lem, Valkadesh the ]
         [Scholar."]
         wait();
         [\n\n"To have been given a @partial name. To have ]
         [yet to achieve full honor."]
         JUMP L2;
      }
      keywords "job" {
         ["To be a Scholar. To be seeking a way to avert ]
         [the @prophecy."]
         JUMP L2;
      }
      keywords "part,full,hono" {
         ["To be greatly honored by even a partial name."]
         wait();
         [\n\n"To be customary among my people to give ]
         [names only to those most worthy."]
         JUMP L2;
      }
      keywords "prop" {
         ["To be written in the Book of Prophecies that ]
         [you would destroy our world."]
         wait();
         [\n\n"To also be written that only the @sacrifice ]
         [of the False Prophet would save us."]
         JUMP L2;
      }
      keywords "code" {
         ["To believe that it is not too late."]
         wait();
         [\n\n"To beg you to return the Codex."]
         wait();
         [\n\n"Avert the @prophecy! Save your life, and my ]
         [people's lives as well!"]
         JUMP L2;
      }
      keywords "sacr" {
         ["To be the only alternative to returning the ]
         [Codex."]
         wait();
         [\n\n"Without the Codex, to have no @choice but ]
         [to sacrifice your life!"]
         JUMP L2;
      }
      keywords "choi" {
         ["Wait! To know that sacrifice has three ]
         [meanings: of self, of others and of valuables."]
         wait();
         [\n\n"Perhaps to find a better @answer in one of ]
         [those other meanings."]
         JUMP L2;
      }
      keywords "find,answ" {
         ["To be unable to help more."]
         wait();
         [\n\n"To suggest you seek out @Naxatilor himself ]
         [for further enlightenment."]
         JUMP L2;
      }
      keywords "naxa,seer" {
         ["To learn much from Naxatilor, the wisest ]
         [gargoyle."]
         wait();
         [\n\n"To find his chambers just to the northeast ]
         [of the Hall of Knowledge."]
         wait();
         [\n\n"To suggest you go there and ask him of ]
         [sacrifice."]
         JUMP L2;
      }
      keywords "drax,lead,inqu" {
         ["To go to Draxinusom, the Inquisitor and leader ]
         [of my race."]
         wait();
         [\n\n"To find his chambers just to the northwest ]
         [of the Hall of Knowledge."]
         wait();
         [\n\n"To @surrender to him, that you may travel ]
         [@freely in our land."]
         JUMP L2;
      }
      keywords "free" {
         ["To know that the moons are not properly aligned ]
         [yet for the ritual."]
         wait();
         [\n\n"To assure you that you will not be ]
         [sacrificed for many weeks."]
         wait();
         [\n\n"To assure you further that surrender is the ]
         [only way you can travel among my people."]
         JUMP L2;
      }
      keywords "surr" {
         if (obj_in_party(76,0) == 1) {
            ["To have done the honorable thing and now be ]
            [respected and unfeared by my people."]
         } else {
            ["To travel to the @Inquisitor."]
            wait();
            [\n\n"To tell the Inquisitor that you ]
            [surrender."]
            wait();
            [\n\n"Then to be no longer a threat, and no ]
            [longer be feared."]
         }
         JUMP L2;
      }
      keywords "bye" {
         if (flag(SELF,F_MET)) {
            ["May your precision and persistence lead to ]
            [success!"\n]
            bye();
         } else {
            set_flag(SELF,F_MET);
            [As you turn to leave, the gargoyle stops you.]
            wait();
            [\n\n"Wait," he calls. "To be feared and hated ]
            [by all gargoyles."]
            wait();
            [\n\n"To be unsafe for you right now, False ]
            [Prophet."]
            wait();
            [\n\n"To surrender is only answer."]
            wait();
            [\n\n"To surrender to Inquisitor."]
            wait();
            [\n\n"Then to be no longer a threat, and then ]
            [not to be feared by my people!"]
            wait();
            [\n\n"To surrender to the @Inquisitor, and ]
            [then to be @free to look for the solution."]
            JUMP L2;
         }
      }
      keywords "*" {
         ["To be confused by your accent."]
         wait();
         [\n\n"To ask what $Z means?"]
         JUMP L2;
      }
   }
L3:
   [The gargoyle smiles, but his grin is somehow disturbing]
   [.]
   wait();
   [\n\n"I human @friend. Walk talk you."]
L4:
   [\n]
   ask();
   answers {
      keywords "bye" {
         ["Want much to talk."]
         wait();
         [\n\n"@Captain John speak; Captain John go!"\n]
         bye();
      }
      keywords "frie" {
         ["@Captain John gargoyle friend. Captain John ]
         [speak."]
         JUMP L4;
      }
      keywords "capt,john" {
         ["Must Captain John go. Only he speak. Must go!"]
         JUMP L4;
      }
      keywords "*" {
         [In a thick accent, the gargoyle croaks, "I bad ]
         [with human language."]
         wait();
         [\n\n"With @Captain John must to speak."]
         JUMP L4;
      }
   }
}

[/code]
Re: I need help with the "Valkadesh" conversation please
August 04, 2015 08:34PM
Can you just leave in
asm(0xA2);  // Invalid instruction
and see if it still works.
Re: I need help with the "Valkadesh" conversation please
August 05, 2015 06:49AM
Hi Malignant Manor,

thanks for taking the time to read and answer my post. Much appreciated.

Much to my regret it is not too easy for me to play this convo as I have no savegame other than one at the very beginning of the game at the moment.

That said: from reading and verifying the code, the convo WILL work: all parenthesis needed are there and no obvious flaws are visible. The question is, if it works as it was intended.

To be honest, I had hoped the Nuvie team had a complete version of the convo script as I would have imagined these were needed at some point in development. But if no help is available I'll first finish the translation and then check in game, if the Valkadesh convo at least lets you play and finish the game without obvious hickups.

I'll make sure report back, although that may take awhile until I come round actually playing the game ;-)

John
Re: I need help with the "Valkadesh" conversation please
August 05, 2015 03:05PM
I think that that line is was an unknown, for the tool developer, conversation command U6OP_ENDIF which form a quick look doesn't seem to do anything different than U6OP_ENDANSWER (viewed ConverseInterpret.cpp). I think if it is left, it will just tell it to do that operation like the original script, but I don't know any of the code for the conversation tool. I'll try asking other developers.
Re: I need help with the "Valkadesh" conversation please
August 07, 2015 06:02AM
Sounds like I should go with "leave it out" for the time being.

But if indeed one of the other developers comes up with something else, please do let me know

But foremost: Thanks heaps for your effort and kind support!
Re: I need help with the "Valkadesh" conversation please
August 11, 2015 06:18PM
Hi SirJohn,
I loaded the original U6 (not Nuvie) and used cheat codes to get the scroll from Captain John (any relation?) and teleport to Valkadesh. The conversation that you listed is exactly what he says. So like Malignant was hinting, there's nothing missing in it. As far as Nuvie goes, we didn't reference any conversation scripts for development.
Hope that helps.
Re: I need help with the "Valkadesh" conversation please
August 13, 2015 10:20AM
Hi Zabeus,

this helps heaps. Thank you so much. Even more so as you seem to have bothered to register just to share this info. Highly appreciated!!

John

P.S. no relation to Captain John nor Johne ;-) But if you ever come round to visit Sir John at the Lycaeum in Ultima 6 project you may spot a vague resemblance ...or not ;-)

Sorry, only registered users may post in this forum.

Click here to login