• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Making a New Quest

What do you want to do? The player <i>should</i> have a ship, right? Weird things happen when the player has no ship. Morgan Terror once got a free Manowar that way. <img src="style_emoticons/<#EMO_DIR#>/wacko.gif" style="vertical-align:middle" emoid=":wacko:" border="0" alt="wacko.gif" />
 
The player will explore around the ship, and do quests, and sometimes be sent into port, but he won't actually sail except for a few occasions, until he becomes a Commander, that is.
 
That'll cause some major weirdness, I'm afraid. The game doesn't particularly like the player having no ship. The ship then shows up as "error".
 
could i instantly move the ship to some random other port, where you can't get it? then when you get your own ship, it replaces it? Or something like that...
 
but what about the point in the main quest when you are shipwrecked? that works. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />

it wasn't just a free manowar i got. it came with a bonus package of wierdness. all my stats having been reset not being the least of them.
 
Well, you CAN do that with <i>SetCharacterShipLocation(Pchar, "Redmond_port");</i>. Visiting the shipyard tends to put your ship back in your current port though.
 
oh, so THAT's why the shipyard in douwesen is locked at the shipwrecking scene? makes sense.
 
Could I code the shipyard to tell me that as I'm not a captain I can't use his services?

This is awfully complex.

Should I set up a thread to prevent clogging of this page?
 
You could do that, but then you have to change ALL shipyard dialogs, which would be a lot of work.
 
ah. This is confusing me. I think it probably doesn't help that I'm both tired and ill, so I'll stop for the night now.
 
Just saying that the quest tutorial is out of date with Build 14, it doesn't need big changes (I don't think) just need to say where the quest_reaction.c is located and also where to place the "check to see where player is to start quest code" is now located (eg. StartStoryline.c)

Sorry about posting in a very old post <img src="style_emoticons/<#EMO_DIR#>/biggrin.gif" style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif" />
 
I don't care about posting in old threads when they're relevant.
Press "Reply" on the old post, make your modifications and re-post it and then I'll go and put that in the old post instead. <img src="style_emoticons/<#EMO_DIR#>/doff.gif" style="vertical-align:middle" emoid=":doff" border="0" alt="doff.gif" />
 
<a href="http://forum.piratesahoy.net//index.php?s=&showtopic=11382&view=findpost&p=231923" target="_blank">Click here to see start of quest writing</a>

New tutorial for starting quest writing for Build 14 Alpha 9

We will call the new Quest: �Chris Roupe� (You should be able to remember that <img src="http://forum.piratesahoy.net/public/style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" /> )
Now play the game starting at Oxbay � repair your ship etc. then sail for Tortuga (not forgetting to change your flag to pirate before your arrive). Go to the Tavern and talk to the Tavern Owner.
Remember what happened. Quit game.

Now we will �DO Stuff� - explanations will come later. (as will whippings, if you don't get it right! <img src="style_emoticons/<#EMO_DIR#>/whippa.gif" style="vertical-align:middle" emoid=":whipa" border="0" alt="whippa.gif" /> )

In Notepad++ OPEN: quest_reaction.c (Located in: PROGRAM\Storyline\[Storyline*]\quests)

After the code line <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> switch(sQuestName)
{<!--c2--></div><!--ec2-->
You will notice the code <img src="style_emoticons/<#EMO_DIR#>/biggrin.gif" style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif" />

Notice some lines are blue/black and those beginning with �//� are in green.
The �//� lines are ignored by the computer but are useful for making notes.

Go to the bottom and before the <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> }
}<!--c2--></div><!--ec2-->
and hit enter a couple of times to give room, then add
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->// Chris Roupe Quest -->
case "Chris_Roupe_start":
SetEnterLocationQuest("Tortuga_tavern", "Chris_Roupe_start_check", 0);
break;

case "Chris_Roupe_start_check":
if(makeint(PChar.rank) >= 12)
{
PChar.quest.Chris_Roupe = "Chris_away_we_go";
}
break;

case "Chris_Roupe_start_ship_search":
PChar.quest.Chris_Roupe = "search";
DeleteEnterLocationQuest("Tortuga_tavern", "Chris_Roupe_start_check");
//SetQuestHeader("Chris_Roupe_Quest");
Pchar.quest.Chris_Ship_Search.win_condition.l1 = "location";
Pchar.quest.Chris_Ship_Search.win_condition.l1.location = "QC_town";
PChar.quest.Chris_Ship_Search.win_condition = "Chris_Ship_Search";
break;

case "Chris_Ship_Search":
AddPartyExp(pchar, 2500);

break;<!--c2--></div><!--ec2-->

<b>do a file/save </b>(top left of notepad++)

Two options here:
Now open in Notepad++ (no need to close quest_reaction.c that you just saved)

Program\Dialogs: John Adams_dialog.c
Then open:
Programs\Dialogs\ENGLISH: John Adams_dialog.h

or

Program\Storyline\[Storyline*]\Dialogs: John Adams_dialog.c
Then open:
Programs\Storyline\[Storyline*]\Dialogs\ENGLISH: John Adams_dialog.h

(NOTE: Option B is required if John Adams_dialog's are already located in that folder <img src="style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />)

Now you should have three tabs in Notepad++
Quest_reaction.c � John Adams_dialog.c � John Adams_dialog.h
And as you click each tab so that respective file will open and the others close.

Now it will pay you to open the DialogMerge program.
Click on Code file (the one with the icon) click through till you find Program\Dialogs\John Adams.c and open that.
Then click on Headers file (ENGLISH should show up) click that and then open John Adams_dialog.h
Then click the next button MERGE
The program will run, merging the two files. When done, click on Merged File button just below and you will find the program and words spoken by John Adams as they occur.
These we are going to change. BUT in Notepad++ (NOT YET)

Looking in the MERGED file you can follow the dialog, here is the part we are interested in:

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> case "second time":
Dialog.defAni = "dialog_stay1";
Dialog.defCam = "1";
Dialog.defSnd = "dialogs\17";
Dialog.defLinkAni = "dialog_1";
Dialog.defLinkCam = "1";
Dialog.defLinkSnd = "dialogs\woman24";
Dialog.ani = "dialog_stay2";
Dialog.cam = "1";

dialog.snd = "Voice\FADU\FADU003";
dialog.text = "I am all ears. How can I help you?";
link.l1 = pcharrepphrase("I need to hire some sailors.", "I'm looking to add to my crew.");
link.l1.go = "crew";
link.l2 = "Let's talk business.";
link.l2.go = "rumours";
Link.l3 = pcharrepphrase("I'd like a room.", "Do you have a free room in this place?");
Link.l3.go = "room";
link.l4 = "Never mind. I've got to go.";
link.l4.go = "exit";
break;<!--c2--></div><!--ec2-->
Play the game going to the Tavern and you will see how this works: (This is where the small screen comes in handy).
Dialog.text is John Adams speaking and Link.l1, link.l2, link.l3 and link.l4
Are the four possible answers you can give.
Each answer sends you to another part of the program using:
Link.l1.go, Link.l2.go, Link.l3.go and Link.l4.go

We need to change this dialog to get John Adams to work with our quest.

So let�s take the case �rumours� which is you (the player) having asked to talk business::


dialog.snd = "Voice\FADU\FADU004";
dialog.text = "Certainly, " + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + ". What's on your mind?";
link.l99 = "Actually, it's nothing important.";
link.l99.go = "second time";

Go to Notepad++ John Adams_dialog.c change that to:

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> case "rumours":
dialog.snd = "Voice\FADU\FADU004";
dialog.text = DLG_TEXT[13] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[14];
if (PChar.quest.Chris_Roupe == "Chris_away_we_go")
{
link.l1 = DLG_TEXT[35];**
link.l1.go = "and the answer is";
}
link.l99 = DLG_TEXT[16];
link.l99.go = "second time";
break;

case "and the answer is":
dialog.text = DLG_TEXT[36];**
link.l1 = DLG_TEXT[37];**
link.l1.go = "exit_for_Chris";
break;

case "exit_for_Chris":
NextDiag.CurrentNode = NextDiag.TempNode;
NPChar.quest.meeting = NPC_Meeting;
DialogExit();
AddDialogExitQuest("Chris_start_ship_search");
break;<!--c2--></div><!--ec2-->
<b>SAVE</b>

Then Notepad++ John Adams_dialog.h

Change the first line to:
<b>string DLG_TEXT[38**] = {</b>
(the number has changed from 35)
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->"I'm looking to escort a ship or something similar",
"I heard if you go to Quebradas Costillas there is someone there who needs that sort of service.",
"Thanks, I'll pay them a visit.",<!--c2--></div><!--ec2-->

<b>SAVE</b>

The last three lines are the NEW dialog � you can put in what you wish � just be sure to have the correct punctuation: �words words words�,
and ONLY three lines for the moment.

Now open: Program\Storyline\[Storyline*]\StartStoryline.c
And ADD our quest so it looks like this: (I have shown the Tortuga Atmosphere so you can see where to put it:)
Other stuff above this:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->//Tortuga Atmosphere
PChar.quest.Tortuga_atmosphere.win_condition.l1 = "location";
PChar.quest.Tortuga_atmosphere.win_condition.l1.character = PChar.id;
PChar.quest.Tortuga_atmosphere.win_condition.l1.location = "Tortuga_port";
PChar.quest.Tortuga_atmosphere.win_condition = "Tortuga_atmosphere";
//Tortuga Atmosphere

//Chris_Roupe
ch.quest.Chris_Roupe = "";
ch.quest.Chris_Roupe_start.win_condition.l1 = "location";
ch.quest.Chris_Roupe_start.win_condition.l1.character = ch.id;
ch.quest.Chris_Roupe_start.win_condition.l1.location = "Tortuga_tavern";
ch.quest.Chris_Roupe_start.win_condition = "Chris_Roupe_start";
//Chris_Roupe

// KK --><!--c2--></div><!--ec2-->
other stuff below this

<b>SAVE</b>

Now you can start a new game � save when you get to Totuga Port (before you go to the Tavern)
Enter the Tavern, talk, and nothing has changed (he he he!) <img src="style_emoticons/<#EMO_DIR#>/razz.gif" style="vertical-align:middle" emoid=":razz" border="0" alt="razz.gif" /> <img src="style_emoticons/<#EMO_DIR#>/razz.gif" style="vertical-align:middle" emoid=":razz" border="0" alt="razz.gif" />
O.K. � the problem � in quest_reaction.c we have set the players level to be equal to, or above 12
See: if(makeint(PChar.rank) >= 12)
So quit the game � Reload the saved Port Game then press number pad 4 until you see the players level goes above 12.
Then go on to the Tavern and talk again � this time all should work correctly.

Good luck.

* Storyline that you want quest to appear in
** Change the original number in the [] to number + 3 and then check the line the "" is on and -2 and the dialog will appear where it should

Pieter don't worry about updating SJG's post, mine can be tutorial for Build 14 Alpha 9
 
<a href="http://forum.piratesahoy.net//index.php?showtopic=11380" target="_blank">Very well then</a>. Thanks. <img src="style_emoticons/<#EMO_DIR#>/doff.gif" style="vertical-align:middle" emoid=":doff" border="0" alt="doff.gif" />
 
No worries... I want to see more people that have the ability to help us write quests (even if they just use the ability to try and fix bugs <img src="style_emoticons/<#EMO_DIR#>/biggrin.gif" style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif" />)
 
ok i want to make a black smith quest to upgrade my weapons using minerals or other materials, jewels and such, probably every single blade will have a quest witch make the blade unbreakable, better, and it cant be sold,
it's not possible to start the next quest before finishing the first on
i would like first to start making the new items

1- ugh my head gona explode how can i make a new item with different name, same picture, different attribute, it will be a unique item but i cant understand most of this
i want to make a complete uniqe weapon what should i do i read whole item forlders (item.c, item.h,etc...)but couldnt figure out how to make it :S
2-at the end of quest i want to make a new weapon, not animation but there should be a new pic
3- this are all uniqe items so i wonder where can i find their discriptions, it would be enough for now thanks :)
and i am not sure if this make a difference but i am using build 13
no matter i found a tutorial in this site that let me do all this stuff thanks

and what's this link.l99 (in dialog.c) i suppose its the last line in any conversation but i cant use link.l98 right :S so it would be secound last line of any conversation
 
i have what i need in items, i just need to know how different function work in dialog.c, my initial try to make a dialog.c fail and it was strange i couldnt find why this happened at all :S
i can understand
just tell me what is this it seems the most important reason that i cant understand why i failed in my attempt :S
Dialog.defAni = "dialog_stay1";
Dialog.defCam = "1";
Dialog.defSnd = "dialogs\0\017";
Dialog.defLinkAni = "dialog_1";
Dialog.defLinkCam = "1";
Dialog.defLinkSnd = "dialogs\woman\024";
Dialog.ani = "dialog_stay2";
Dialog.cam = "1";
Dialog.snd = "dialogs\0\009";
edit: well also i cant understand the above functions i could start making my own quest so i dont have any problem with dialog making anymore
 
hmm also i am not sure if i get a answer anymore for any of my post i ask something i hope someone help me
where is quest record u know where the game hold its quest entry the texts that show up in quest log
 
Sorry you're not getting replies mate. Captain Maggee is almost never online because of university work, and Pieter is currently away at sea, either too busy to help or without internet access.
I don't have much experience with this myself, and have a lot of work to do elsewhere, so I can't be of much help.

Some members who may be able to give you some advice are Jack Rackham and Short Jack Gold, both of whom have experience with making quests and storylines.
Maybe you could send a message to either of them asking if they could spare some time to help you out a bit. Be aware that they might also be quite busy, though.
 
thanks, in the mean time i try to figure things out with following some quest maybe i can understand what's going on
 
Back
Top