• 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!

Getting food options ingame

ok ive just had a look at some files and i need a really good tutorial to get me going...1st : how to create dialogs
2nd: how to create quests
3rd: how to set up characters at locations and to set them dialogue
4th how to create quest book entries
5th : how to put a woman in cargo hold
6th : how to add money when she is ransomed at the governoers house...

lol alot i know but i catch on quick (when something works that is)
 
Okay, the dialog I just whipped up allows the player to sit down with someone, they say things like:

"care to join me?"

"Waiter!, this calls for some more wine!"

and "feel like coffee and dessert?..."

I think a more complex story/conversation should be made around that....
 
Quest entries I have seen in the "INI" part of the resource file,

I put people in the cargo hold by going to the already existing dialog.c for captains that you capture, then extracting the code from that. I then put it in another dialog that happens when you knock someone out.
 
For characters, like the eleuthera plantation I just did, :


<a href="http://forum.piratesahoy.net//index.php?showtopic=12992&st=180&gopid=323969&#entry323969" target="_blank">http://forum.piratesahoy.net//index.php?sh...mp;#entry323969</a>
 
Ok so we have an idea, if ur eating with a governor, you have a quest where you kidnap his daughter afterwards.....But why would you dine with him if ur about to steal his daughter lol!?


At the mo, its probably the best idea to stick to dining with crew or officers. A crewmember already asks you for a drink in their quarters, it would take only a couple of adjustments to make the character sit down if he accepts...
 
Agreed; it's not a good idea to make things complicated straight away. <img src="style_emoticons/<#EMO_DIR#>/no.gif" style="vertical-align:middle" emoid=":no" border="0" alt="no.gif" />
 
lol no thats not what i meant...hahaha
what i actually meant was the conversation at the table leads to a rumour from ur officer who says something about kidknapping the daughter...
 
Crew quarters is my suggestion. It's already there on all ships that have a cabin and there are already sit locators.
 
fine, crew's quarters it is, for now....

So we have a location. Anyone have any ideas for conversation, don't think at this stage it should be very complex (i.e.not involving mini-quests).

The dialog I made I think should be more varied, so someone should come up with another, probably someone who's better at .c dialog files.
 
Right, I've edited the crew dialog so you now sit down to eat with them. An idea: Being boarded whilst in the middle of a meal! lol...bit much!
 
<i>AddDialogExitQuest("exit_sit");</i> I think. Check the <i>Habitue_dialog.c</i> file.
 
He sits when the conversation closes, then once he sits, the conversation is supposed to start again automatically.
 
//#include "DIALOGS\Crewmember_alc_dialog.h"

void ProcessDialogEvent()
{
ref NPChar;
aref Link, Diag;

DeleteAttribute(&Dialog,"Links");

makeref(NPChar,CharacterRef);
makearef(Link, Dialog.Links);
makearef(Diag, NPChar.Dialog);

ref PChar;
PChar = GetMainCharacter();
int con, maxcrew;

switch(Dialog.CurrentNode)
{
// -----------------------------------Äèàëîã ïåðâûé - ïåðâàÿ âñòðå÷à
case "First time":
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 = "voice\PADI\PADI001";

Dialog.text = DLG_TEXT[0];
link.l1 = DLG_TEXT[1];
link.l1.go = "food";
link.l2 = DLG_TEXT[2];
link.l2.go = "Howmany";
Link.l3 = DLG_TEXT[3];
Link.l3.go = "clothesyou";
Diag.TempNode = "first time";
break;

case "Howmany":
Dialog.Text = DLG_TEXT[4];
if(sti(PChar.Ship.Crew.Quantity) >0) // KK
{
maxcrew=1;
// KK -->
if(sti(PChar.Ship.Crew.Quantity) >=5) maxcrew=2;
if(sti(PChar.Ship.Crew.Quantity) >=15) maxcrew=3;
if(sti(PChar.Ship.Crew.Quantity) >=30) maxcrew=4;
if(sti(PChar.Ship.Crew.Quantity) >=50) maxcrew=5;
if(sti(PChar.Ship.Crew.Quantity) >=80) maxcrew=6;
if(sti(PChar.Ship.Crew.Quantity) >=150) maxcrew=7;
if(sti(PChar.Ship.Crew.Quantity) >=200) maxcrew=8;
if(sti(PChar.Ship.Crew.Quantity) >=300) maxcrew=9;
if(sti(PChar.Ship.Crew.Quantity) >=500) maxcrew=10;
// <-- KK

link.l1 = DLG_TEXT[5];
link.l1.go ="one";
if(maxcrew>=2)
{
link.l2 = DLG_TEXT[6];
link.l2.go = "two";
}
if(maxcrew>=3)
{
link.l3 = DLG_TEXT[7];
link.l3.go = "three";
}
if(maxcrew>=4)
{
link.l4 = DLG_TEXT[8];
link.l4.go = "four";
}
if(maxcrew>=5)
{
link.l5 = DLG_TEXT[9];
link.l5.go = "five";
}
if(maxcrew>=6)
{
link.l6 = DLG_TEXT[10];
link.l6.go = "six";
}
if(maxcrew>=7)
{
link.l7 = DLG_TEXT[11];
link.l7.go = "seven";
}
if(maxcrew>=<img src="style_emoticons/<#EMO_DIR#>/cool.gif" style="vertical-align:middle" emoid="8)" border="0" alt="cool.gif" />
{
link.l8 = DLG_TEXT[12];
link.l8.go = "eight";
}
if(maxcrew>=9)
{
link.l9 = DLG_TEXT[13];
link.l9.go = "nine";
}
if(maxcrew>=10)
{
link.l10 = DLG_TEXT[14];
link.l10.go = "ten";
}
}
link.l11 = DLG_TEXT[26];
link.l11.go = "exit";
break;

case "one":
Dialog.Text = DLG_TEXT[15];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 1;
break;

case "two":
Dialog.Text = DLG_TEXT[16];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 2;
break;

case "three":
Dialog.Text = DLG_TEXT[17];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 3;
break;

case "four":
Dialog.Text = DLG_TEXT[18];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 4;
break;

case "five":
Dialog.Text = DLG_TEXT[19];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 5;
break;

case "six":
Dialog.Text = DLG_TEXT[20];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 6;
break;

case "seven":
Dialog.Text = DLG_TEXT[21];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 7;
break;

case "eight":
Dialog.Text = DLG_TEXT[22];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 8;
break;

case "nine":
Dialog.Text = DLG_TEXT[23];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 9;
break;

case "ten":
Dialog.Text = DLG_TEXT[24];
Link.l1 = DLG_TEXT[25];
Link.l1.go = "exit";
LANDCREWMEMBERS = true;
MAX_CREWMEMBERS = 10;
break;

case "clothesyou":
DialogExit();
LaunchKAMSelectOfficerModel(sti(NPChar.index)); // KK
break;

case "food":
AddDialogExitQuest("alc");
Dialog.Text = DLG_TEXT[27];
Link.l1 = DLG_TEXT[28];
Link.l1.go = "food_2";
break;

case "food_2":
Dialog.Text = DLG_TEXT[29];
Link.l1 = DLG_TEXT[30];
Link.l1.go = "exit";
break;

case "Exit":
DialogExit();
Diag.CurrentNode = Diag.TempNode;
AddDialogExitQuest("exit_sit");
break;
}
}





So where do I put the AddDialogExitQuest("alc"); and the AddDialogExitQuest("exit_sit"); then?
 
Also,

"He sits when the conversation closes, then once he sits, the conversation is supposed to start again automatically."

The conversation doesn't start again. Maybe that's cos you are not looking at him. Anyway...wouldn't that sound a bit wiered?
 
Back
Top