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

Need Help Is it possible to add famous ships sail arround the specific islands with accurate captains??

Calico Jack

Sailor Apprentice
I just want the pirates in my game to have better ships and I also want to get the flying Dutchman commanded by davy jones sailing in cozumel and the revenge of the queen anna commanded by the black beard sailing near charlestown but I do not understand how to do

Can you help tell me how to do it in my game?

Sorry for bad english
 
Should be relatively easy with some quest coding.

Note that the Flying Dutchman does already appear during one side quest.
Blackbeard hangs around Isla de Muerta, but indeed the Queen Anne's Revenge does not appear at sea.
 
Look in one of the other storylines for how a sea battle is set up. "Hornblower" is probably the easiest to follow; look at case "At_War_with_France_Again" and see what it triggers.
 
this one ?


French_Battle_Setup":
SetCurrentTime(10.00, 0);
SetNextWeather("Blue Sky");
PlayStereoSound("OBJECTS\SHIPCHARGE\hurrah.wav");

Group_CreateGroup("French_Squadron");
Group_AddCharacter("French_Squadron", "Quest_frigate_captain");
Group_SetGroupCommander("French_Squadron", "Quest_frigate_captain");
Group_SetPursuitGroup("French Squadron", PLAYER_GROUP);
Group_SetTaskAttack("French_Squadron", PLAYER_GROUP, true);
Group_LockTask("French_Squadron");
Group_SetAddress("French_Squadron", "FalaiseDeFleur", "Quest_ships", "Quest_Ship_12");
Sea_LoginGroupNow("French_Squadron");
characters[GetCharacterIndex("Quest_frigate_captain")].nosurrender = 2;
SetCharacterRelationBoth(GetCharacterIndex("Quest_frigate_captain"),GetMainCharacterIndex(),RELATION_ENEMY);
if(GetRMRelation(Pchar, PIRATE) > REL_WAR) SetRMRelation(Pchar, PIRATE, REL_WAR);
Character_SetAbordageEnable(characterFromID("Quest_frigate_captain"), false);

if(GetRMRelation(Pchar, FRANCE) > REL_WAR) SetRMRelation(Pchar, FRANCE, REL_WAR);
UpdateRelations();

Pchar.quest.FrenchShipDestroyed.win_condition.l1 = "NPC_death";
Pchar.quest.FrenchShipDestroyed.win_condition.l1.character = "Quest_frigate_captain";
Pchar.quest.FrenchShipDestroyed.win_condition = "FrenchShipDestroyed";
break

I'm trying to put the ships in free play mode
 
That is indeed the code. You can leave out the first three lines - you probably don't want to fix the time and weather, and you probably don't want the "hurrah" sound effect.

Also leave out the 'GroupSetPursuitGroup' line. That one means the ship will spawn right next to you when you approach the island, either by exiting worldmap in range of the island or by DirectSailing there and getting the "Land Ho" message.

"Quest_frigate_captain" is a character ID. You'd replace that with "Blackbeard" or "Davy Jones", both of which have their ships assigned in their character definitions.

But I'm not sure where you'd put the code to set them in place and ready for a battle in Free Play. You could perhaps set up a side quest in which the player is supposed to learn about these characters and then go looking for them.
 
But I'm not sure where you'd put the code to set them in place and ready for a battle in Free Play. You could perhaps set up a side quest in which the player is supposed to learn about these characters and then go looking for them.
StartStoryline.c?
 
how can i set up a side quest This seems interesting
I'm going to try to create a side quest called the Charleston Blockade
With the black beard and the queen annes revenge
 
Last edited by a moderator:
The easiest way is probably to set up someone to talk to the player. And the easiest way to do that is probably to have him stand somewhere (or sit somewhere, if he's in a tavern). Set up his dialog so that, when the player talks to him, it starts the quest. Preferably have an option for the player to decline, either because this particular player isn't interested in your quest, or because he's busy with something else at the moment - he can return to your character, talk to him again, and start your quest later.

As an example, look in "PROGRAM\Characters\init\Douwesen.c". One of the characters defined there is Toff Oremans. It puts him in "Douwesen_Tavern", locator "sit\sit4", and when you talk to him (and if you have a suitable reputation), you can trigger his side quest. (The game code refers to both the town Kralendijk and the island Bonaire as Douwesen. This is because the stock game had a much smaller map on which the only Dutch colony was Douwesen. The Build Mod renames the town and island so you see different names, but the game code still uses the original names. And on that note, Nevis island is Quebradas Costillas.) Another example is in "PROGRAM\Characters\init\SideQuest.c", in which a lot of characters used in side quests are defined - among them, several women located in "Douwesen_town". These are the ladies you'll see standing outside Kralendijk town hall and talking to them triggers the "Strange Things Going On in the Archipelago" side quest.

So, edit one of the character files and add someone. Create his dialog files. There are several ways to have a dialog trigger a quest but the easiest is probably to have a line like this just before the dialog exits:
Code:
AddDialogExitQuest("insert_your_quest_name_here");
And then, in "PROGRAM\QUESTS\quests_side.c", add:
Code:
case "insert_your_quest_name_here":
And now your quest starts. Your character could tell the player that Blackbeard's ship has been sighted near Charleston. Then case "insert_your_quest_name_here" can contain the code to put Blackbeard near Charleston.

One more thing. Please don't put your character in Philipsburg tavern. Because what I've just told you to do, I'm already doing, and my guy will be sitting in Philipsburg tavern - we don't want our introductory characters sitting on each other's laps. xD
 
How do I specify where the ship is going to appear?
And just put blackbeard in place of Quest_frigate_captain will put revenge on the spot?
 
Last edited by a moderator:
RUN VENGEANCE IS EXACTLY WHERE I WANTED

Now I'll do the same with the black pearl cursed so he'll stay on Dead Island

And the honlandes in cozumel like i said

thanks for helping
 
Everything works out right but after a few hours of gameplay the game just frozen and crashed now it always does it
 
Everything works out right but after a few hours of gameplay the game just frozen and crashed now it always does it
Try to remove the file named "options" from your main game menu?
You'll have to restore whatever options you set within the interface, but it might help clean things up.
 
can i just let blackbeard there whitout kiling him? because he defeated me the 3 times i started the quest :facepalm
and is cool to se the queen annes revenge sailing around the island like a boss
have a problem that can happen if i let him there ?
 
Did you use the existing Blackbeard character? If so, he's probably immortal because that character was made for something else.

Not sure what you mean with "let blackbeard there whitout kiling him", though... :unsure
 
Google translator Miss sometimes

I'm talking about starting the quest but letting revenge sail around the island until I get stronger because for a pirate fan like me it's incredible to see the ship sailing relentlessly around the island
 
I'm talking about starting the quest but letting revenge sail around the island until I get stronger because for a pirate fan like me it's incredible to see the ship sailing relentlessly around the island
I think that should be fine. Quest ships should remain around the island. Try it, I'd say. :doff

Just stay out of its way! :cheeky
 
Did you use the existing Blackbeard character? If so, he's probably immortal because that character was made for something else.
Add this somewhere in the code where you are setting up Blackbeard's ship:
Code:
LAi_SetImmortal(characterFromID("Blackbeard"), false);
The Queen Anne's Revenge is still a reasonably tough ship, but that ought to make sure it's not invincible, and neither is Blackbeard if you manage to board the ship and fight your way to the cabin.

Incidentally, if you do want to be able to board and capture the ship, do not have this line in the code to set up Blackbeard's ship:
Code:
Character_SetAbordageEnable(characterFromID("Blackbeard"), false);
That line prevents boarding. (In the "Hornblower" storyline, you are specifically ordered not to board the enemy ship, and that line also means it won't try to board you if you get too close.)
 
The Queen Anne's Revenge is still a reasonably tough ship, but that ought to make sure it's not invincible, and neither is Blackbeard if you manage to board the ship and fight your way to the cabin.
I wonder... if MY copy of Blackbeard is taken, is his immortality also ended by using a Borgiablade?
 
Back
Top