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

Solved why the quest ship do not shoot the cannons

Calico Jack

Sailor Apprentice
I did a sidequest for my blackbeard I took him from the beach on the isla de muerta and did a side quest for him. but when I went to meet him he did not shoot with the cannos just sailed in circles collecting and dropping the sails

sorry for the bad english
 
That's weird; it should work as far as I'm aware.
Is there enough ammunition on his ship?
 
How do I put ammunition on the ship?

I think he just used everything at the time I got out of a tortuga and went to him
 
let's say I want to create a medium-sized fleet of pirates to stay with the black beard

and another to attack the black beard and its fleet

how could I do this without the damn game crashing:modding

every time I create a random character to stay in the fleets in TempQuestEnemy.c or the character does not work or the game dies

I love doing these crazy quest and I think I'll try to make one for the battle of potc3 malestron.
 
Last edited:
let's say I want to create a medium-sized fleet of pirates to stay with the black beard

and another to attack the black beard and its fleet

how could I do this without the damn game crashing:modding

every time I create a random character to stay in the fleets in TempQuestEnemy.c or the character does not work or the game dies

I love doing these crazy quest and I think I'll try to make one for the battle of potc3 malestron.
It sounds as though you have something wrong in your character definition in "TempQuestEnemy.c". Could you run the game and then post both "TempQuestEnemy.c" and "error.log"?

I'm not sure how to set up a three-way battle. It must be possible because you can have random encounters on the worldmap involving a battle already in progress. In any case, having two pirate fleets fighting each other is going to be tricky because hostility is determined by flag, so if both sides are flying pirate flags then they can't fight each other. Could the fleet attacking Blackbeard belong to a nation instead? Or is the player supposed to be in one of the fleets, so it's only a straight fight between the player and one of the pirate groups?
 
I'm not sure how to set up a three-way battle. It must be possible because you can have random encounters on the worldmap involving a battle already in progress.
I think that should be as easy as spawning multiple ships with different nationalities and in different groups.
Isn't this already done with the Montanez in "Strange Things going on in the Caribbean"?
If I recall, she gets spawned for Spain and then two Always-Hostile Animist Pirates get spawned too to attack her and you.

In any case, having two pirate fleets fighting each other is going to be tricky because hostility is determined by flag, so if both sides are flying pirate flags then they can't fight each other.
Yep, that's a good question. The old system used to support stuff like that, but I got rid of that functionality when I completely overhauled it.
Bit of a shame, because that feature occasionally does come in handy; but the old system was too messed up to keep and re-adding this level of complexity was a bridge too far for me... :oops:
 
I think that should be as easy as spawning multiple ships with different nationalities and in different groups.
Isn't this already done with the Montanez in "Strange Things going on in the Caribbean"?
If I recall, she gets spawned for Spain and then two Always-Hostile Animist Pirates get spawned too to attack her and you.
True. Mergildo Hurtado (captain of the Montanez) has his nation set to SPAIN, so he'll be flying a Spanish flag. The animists ("Mystery_Man_04" and "Mystery_Man_05") are both set to PIRATE, and are also both given the "recognized" attribute so they'll be hostile to you even if you're a pirate as well. They also get the "skipRM" attribute so that your status with the pirates doesn't suffer when you sink them.

@Calico Jack: have a look at "PROGRAM\Characters\init\SideQuest.c", specifically for "Mystery_Man_04" and "Mystery_Man_05", as well as "Mergildo Hurtado", to see how they're set up. Then look at "PROGRAM\QUESTS\quests_side.c", specifically cases "prepare_for_barkue" (sets up the ships for the battle) and "to_greenford_for_montanez_complete" (sets up conditions for winning the battle). There are a lot of commented out lines which are obsolete, so don't copy those when you're writing your own battle!

One way to have rival pirate factions might be to use PRIVATEER_NATION, which is a sort of nation that isn't a nation. It uses Personal flags and can be set to use a different one from that used by the player. I made use of it for the "Smuggling for Thomas O'Reily" sidequest, so that the smuggler's ship at Port Royale will attack you but won't be attacked by the fort. There's a bit of code which checks if you're using a specific Personal flag. The smuggler will use that flag unless you're already using it yourself, in which case the smuggler uses an alternative. See case "thomas_contraband_12_exit_2" in "quests_side.c".
 
the fleet of the black beard is made

but I'm not sure how I put the English fleet to attack the black beard

and I'm going to give extra ammunition to all ships just to ensure

The quest is this way until now.
case "The_Pirate_All_Pirates_Fear":
Group_CreateGroup("Blackbeard_ship");
Group_AddCharacter("Blackbeard_ship", "BlackBeard");
Group_AddCharacter("Blackbeard_ship", "Pirate1");
Group_AddCharacter("Blackbeard_ship", "Pirate20")
Group_AddCharacter("Blackbeard_ship", "Pirate3")
Group_SetGroupCommander("Blackbeard_ship", "BlackBeard");
Group_LockTask("Blackbeard_ship");
Group_SetAddress("Blackbeard_ship", "QuebradasCostillas", "Quest_ships", "Quest_Ship_12");
Sea_LoginGroupNow("Blackbeard_ship");
characters[GetCharacterIndex("BlackBeard")].nosurrender = 2;
Character_SetAbordageEnable(characterFromID("BlackBeard"), true);
characters[GetCharacterIndex("Pirate1")].nosurrender = 2;
Character_SetAbordageEnable(characterFromID("Pirate1"), true);
characters[GetCharacterIndex("Pirate20")].nosurrender = 2;
Character_SetAbordageEnable(characterFromID("Pirate20"), true);
characters[GetCharacterIndex("Pirate3")].nosurrender = 2;
Character_SetAbordageEnable(characterFromID("Pirate3"), true);
UpdateRelations();

Pchar.quest.BlackbeardDestroyed.win_condition.l1 = "NPC_death";
Pchar.quest.BlackbeardDestroyed.win_condition.l1.character = "BlackBeard";
Pchar.quest.BlackbeardDestroyed.win_condition = "BlackbeardDestroyed";
break;

the final quest will not be in nevis I put there just to test
I started from 0 I used my backup files so the game does not die anymore
 
Last edited:
but I'm not sure how I put the English fleet to attack the black beard
Set the characters in the English and Pirate fleets to their correct nations.
The nation relations system should then automatically make them hostile to each other.
Additionally, I think there is something like 'Group_SetTaskAttack' so you can specifically tell them to fight each other.
 
You'll presumably need another piece of code to create the English fleet. After that, normal flag relations should make the English fleet hostile to Blackbeard, assuming that the English ship commanders are all set to be nation England and Blackbeard is set to be nation Pirate.

What are Blackbeard's fleet, and for that matter the English fleet, supposed to do to the player? Are you supposed to be allied to one side or the other?

It might be a good idea to add this to the end:
Code:
Pchar.quest.BlackbeardDestroyed.win_condition.l2 = "SeaEnter";
That means the next bit can't trigger until you're at sea. This is significant because you've allowed Blackbeard's ship to be boarded and captured, and the game may get stuck if your next quest case triggers while you're still in his cabin. Adding that line means you can board Blackbeard's ship and the next quest case won't trigger until you've gone through the ransack screen to capture or loot the ship, and are back to sailing your ship.

What about the other pirates? Do you want to trigger "BlackbeardDestroyed" even if they're still alive and fighting? If not, you can add some more win conditions, e.g.:
Code:
Pchar.quest.BlackbeardDestroyed.win_condition.l1 = "NPC_death";
Pchar.quest.BlackbeardDestroyed.win_condition.l1.character = "BlackBeard";

Pchar.quest.BlackbeardDestroyed.win_condition.l2 = "NPC_death";
Pchar.quest.BlackbeardDestroyed.win_condition.l2.character = "Pirate1";

Pchar.quest.BlackbeardDestroyed.win_condition.l3 = "NPC_death";
Pchar.quest.BlackbeardDestroyed.win_condition.l3.character = "Pirate20";

Pchar.quest.BlackbeardDestroyed.win_condition.l4 = "NPC_death";
Pchar.quest.BlackbeardDestroyed.win_condition.l4.character = "Pirate3";

Pchar.quest.BlackbeardDestroyed.win_condition.l5 = "SeaEnter";
Pchar.quest.BlackbeardDestroyed.win_condition = "BlackbeardDestroyed";
That won't trigger "BlackbeardDestroyed" until all four pirates are defeated and you're sailing your ship.
 
Back
Top