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

Information aboute The New Pirate Age - Update! [WIP]

In "Hornigold_dialog.c"? The error is that, in case "First time", you have:
Code:
link.l1.go = "Hornigold1";
What you don't have is case "Hornigold1". So that link.l1.go can't go anywhere.

If Skullface's dialog is starting with the wrong lines then either you've changed "Skullface_dialog.c", specifically case "First time", so that 'dialog.text' and 'link.l1' are pointing at the wrong lines; or somewhere you have told the dialog to start at a different case.
 
Ok i See.

One question:
In the first Quest:
Hornigold Stays in The QC Tavern and later
He stays at the Port of Grand Turks. Later he sit in the Turks Tavern. So have tow stays and one Sit Postion.

Have I something to add? In the Character File i have put the Stay code.
 
Where are you supposed to meet Hornigold first? Are you supposed to talk to someone else before meeting Hornigold, or is he always supposed to be in place?
 
@Grey Roger
I meet him First on Nevis/QC_Tavern (Stay) - is from the start on there -
After talk with him is or Grand Turks Port(Stay) after this talk he goes to the Tavern and sit there and Drink rum. After I talk to him again he joins me crew.
 
In "quests_reaction.c", case "Start", you have:
Code:
ChangeCharacterAddress(characterFromID("Hornigold"), "None", "");
That removes him entirely. He isn't anywhere. If you have lines in Hornigold's entry in a file in "Characters" which put him into QC_Tavern then all you need to do is remove this line.

In case "Meet_Hornigold", you have:
Code:
ChangeCharacterAddressGroup(characterFromID("Hornigold"), "QC_tavern", "sit", "sit4");
That puts him into QC_Tavern. But "Meet_Hornigold" is triggered from dialog with Hornigold, so that line will only happen after you have talked to him. If you have lines in Hornigold's entry in "Characters" to put him into QC_Tavern then remove this line, it's not needed. Otherwise move this line up into case "Start".
 
To remove a ship from your fleet, e.g. the one belonging to Trafalgar D. Law:
Code:
RemoveCharacterCompanion(Pchar, CharacterFromID("Trafalgar_Law"));
To remove a passenger, see post #518.
 
@Grey Roger

SOS !! Pleace help me...
What is the Error in with the Dialoags.
I dont unterstand the Error File. I can't find the Error.

Pleace chat the Error File in the error Folder and the Dialogs in Dialog Folder.

Ps. @Grey Roger pleace help me to find the Error in the Code file.!!

Thanks.

:(
 
Last edited:
The first line of "error.log" indicates a problem with "Hornigold_dialog.h". For one thing, that file declares 'string DLG_TEXT[37]' but in fact there are 38 lines, so change the number. Also, these lines:
Code:
"Have nothing else before. How so?"
"Well then good luck. But you will not live long. Take care!"
each need a comma on the end.
 
@Grey Roger

I have now test it, and the dialog works.

But I have a code Question:
1. give a Code if play with Character x start on Havana Port? This is only for this Character!
2. Gives a Code where Hornigold walks away or Hornigold is Away if I Leave the Tavern?

Cu PK
 
Last edited:
But I have a code Question:
1. give a Code if play with Character x start on Havana Port? This is only for this Character!
2. Gives a Code where Hornigold walks away or Hornigold is Away if I Leave the Tavern?

1: I think this will work, but am not sure. See attached version of "StartStoryline.c". I've added this near the top:
Code:
    if (GetMySimpleName(PChar) == "insert Spanish character name here")
   {
       loadPort = "Muelle_port";
       sTeleportLocName = "Muelle_port";
       rldLocator = "reload3";
   }
Replace "insert Spanish character name here" with the name of your character x.

2: Case "Meet_Hornigold" is triggered from dialog with Hornigold, who starts the game in Nevis pirate settlement tavern. So, in "Meet_Hornigold", add this:
Code:
           Pchar.quest.Hornigold_Quest2.win_condition.l1 = "ExitFromLocation";
           PChar.quest.Hornigold_Quest2.win_condition.l1.location = PChar.location;
           Pchar.quest.Hornigold_Quest2.win_condition = "Hornigold_Quest2";
The effect should be that you talk to Hornigold while he's in Nevis pirate tavern. That triggers "Meet_Hornigold", which puts a lot of characters into place. When you leave the tavern, it triggers "Hornigold_Quest2" which moves him to Turks Island.

Delete this line from "Hornigold_Quest2" as it serves no purpose:
Code:
ChangeCharacterAddress(characterFromID("Hornigold"), "None", "");
There's no point in sending him to "None" when the next line puts him into Turks Island port.

What is "Hornigold_Quest1" supposed to do? It appears to set up a trigger so that, when you arrive at Charlestown, it activates case "Meet_Hornigold2", which doesn't exist. Besides, if I read the dialog correctly, Hornigold is supposed to go to Turks Island next. If you trigger a case involving Hornigold when you're in Charlestown, but he's on Turks Island, it won't work.
 

Attachments

  • StartStoryline.c
    2.6 KB · Views: 133
'LAi_SetActorType' makes the character stand still but is ready for other commands. Then:

LAi_ActorTurnToLocator(characterFromID("Hornigold"), "reload", "reload1"); // Makes him turn to face locator "reload/reload1".

LAi_ActorGoToLocator(characterfromID("Hornigold"), "reload", "reload12", "Quest", 30.0); // Makes him walk to "reload/reload12". He has 30 seconds to get there, otherwise he just teleports there. When he gets there, quest case "Quest" triggers. If you don't want a quest case to trigger, leave that bit as "".

LAi_ActorGoToLocation(characterFromID("Hornigold"), "reload", "reload2_back", "none", "", "", "Quest", 120.0); // Makes him walk to "reload/reload2_back", then disappear. Useful if you want to make him walk to a door because it looks as though he's just left through that door. He has 120 seconds to get to the locator, otherwise he teleports there. When he reaches the locator, quest case "Quest" triggers - again, if you don't want to trigger a quest case, leave it as "".

Characters[GetCharacterIndex("Hornigold")].dialog.CurrentNode = "dialog case name"; // Replace "dialog case name" with the name of a dialog case in "Hornigold_dialog.c"
LAi_ActorDialog(characterFromID("Hornigold"),PChar,"",10.0,10.0); // He will walk up to you and start the dialog himself. He has 10 seconds to get to you, otherwise he'll start the dialog from wherever he is standing when the 10 seconds are up.
 
He's not going to be able to walk from Turks Port to any location inside Turks Tavern. But you'll see from that list that one of the commands can make him walk to a locator and disappear, and when he gets there, it can trigger a quest case. So, find the locator which is the door to the tavern. Use that command to make Hornigold walk there, and have it trigger a quest case where you put Hornigold inside the tavern onto "sit7".

There's also:
Code:
LAi_ActorRunToLocation(characterFromID("Hornigold"), "reload", "reload1", "none", "", "", "Quest", 120.0);
That works exactly the same as 'LAi_ActorGoToLocator' except that he runs, so he gets there sooner. Replace "reload" and "reload1" with the locator for Turks tavern outside door. Replace "Quest" with the name of the quest case where you put Hornigold onto "sit7" inside the tavern, as well as put him into sit mode.
 
Back
Top