Yes, those look correct now.
For the "dialog.c" files, you can start with "PROGRAM\Storyline\Ardent\DIALOGS\blank_dialog.c". Copy it to "PROGRAM\Storyline\NewPirateAge\DIALOGS" and rename it to match one of your "dialog.h" files.
Leave most of the file alone. The only bits you need to change or add are the "case" sections. Case "exit" is a special one which closes down the dialog and returns the game to normal play - leave that alone as well.
Case "First time" has a lot of lines whose purpose I'm not entirely sure about myself, so I generally leave them in there. The important ones are these:
dialog.text = DLG_TEXT[0]; This is what the character says to you. "DLG_TEXT" is a direct reference to the text in the "dialog.h" file. The code starts counting at 0, so "DLG_TEXT[0]" is the first line of text. If this is "Dark_Assassin_dialog.c" then "DLG_TEXT[0]" is the first text line of "Dark_Assassin_dialog.h", which is:
Code:
". What are you looking for here? You do not have nix here!",
The line starts with a ".", so I'm guessing you want Dark Assassin to call you by name. So, in "Dark_Assassin_dialog.c", replace that "dialog.text" line with this:
Code:
dialog.text = GetMySimpleName(PChar) + DLG_TEXT[0];
"GetMySimpleName" is a function which gives a character's name. "PChar" is you. So that line puts your name in front of the text from "Dark_Asssassin_dialog.h".
link.l1 = DLG_TEXT[1]; This is what you say back to the character. Remember, it's counting from 0, so "DLG_TEXT[1]" is the
second line of text. In "Dark_Assassin_dialog.h", that's "I'm looking for the owner of the Black Katana sword!".
"link.l1.go = "Exit"; This is where the dialog goes next. At the moment, it's sending the dialog to case "Exit", which is the one that closes the dialog. But you probably want the dialog to continue for a few more lines. Change it to:
Code:
link.l1.go = "What_do_you_want";
Actually, you can call it anything you like. Some people just use basic names like "node1", "node2", etc. If you use a name which means something to the dialog, it will help you understand what is happening when you read the code again in a month's time. The important thing is that it must not be the same as any name which has already been used.
So now you need to add case "What_do_you_want" (or whatever you chose to call it). You don't need to copy all the odd stuff which is at the beginning of case "First time". All you need are the same basic lines:
Code:
case "What_do_you_want":
dialog.text = GetMySimpleName(PChar) + DLG_TEXT[2];
link.l1 = DLG_TEXT[3];
link.l1.go = "Challenge_accepted";
break;
Again, I'm assuming that because the player's line starts with ".", you want Dark Assassin to call the player by name. If not, you can just removed the "." from the start of the text line and leave out the "GetMySimpleName(PChar) + " part.
It looks as though you want the player to have a choice at this point. He can either say "I will take you and take away the dark katana sword and give it to my best swordsman!" and go to the fight, or he can say "I've changed my mind." and back out. To give the player a choice, add this:
Code:
link.l2 = DLG_TEXT[4];
link.l2.go = "exit";
And so on. Always,
dialog.text points to a line which the character says,
link.l1 points to a line which you say back, and
link.l1.go points to the next case which will control the next pair of lines - or, if the dialog is to finish,
link.l1.go = "exit"; will close it. If you want to give the player a choice, add
link.l2 and
link.l2.go lines.