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

And in the Tavern of Havanna should be the Rumors: That on In Port Royl life a good Carpenter.
The Havana tavern keeper is Fadrique Castillo, who uses "Fadrique Castillo_dialog.c" and "Fadrique Castillo_dialog.h", but there's a problem. One of the tavern keepers in Cartagena also uses the same files. Unless you want him also to tell you about the carpenter in Port Royale, you'll need to make sure you're in Havana tavern. Here's the "quests" section of "Fadrique Castillo_dialog.c":
Code:
       case "quests":
           itest = 0;
           dialog.snd = "Voice\FRCO\FRCO003";
           dialog.text = DLG_TEXT[13];
           if (!CheckQuestAttribute("generate_convoy_quest_progress", "begin") && npchar.work != lastspeak_date)
           {
               link.l10 = DLG_TEXT[14];
               link.l10.go = "convoy";
           }
           if (PChar.location == "Cartagena_tavern" && CheckQuestAttribute("ardent_convoy", "Cartagena"))
           {
               link.l11 = DLG_TEXT[46];
               link.l11.go = "ardent_convoy";
           }
           link.l99 = DLG_TEXT[15];
           link.l99.go = "second time";
       break;
Again, I've already been here. The code checks if attribute "ardent_convoy" is set to "Cartagena", and if so, sets up link.l11 to let you ask about a convoy. But it also checks if you're in the right tavern. So you can add something like this:
Code:
           if (PChar.location == "Havana_Tavern" && CheckQuestAttribute("talk_about_carpenter", "true"))
           {
               link.l11 = DLG_TEXT[49];
               link.l11.go = "talk_about_carpenter";
           }
Further down, add:
Code:
       case "talk_about_carpenter":
           dialog.text = DLG_TEXT[50];
           link.l1 = DLG_TEXT[51];
           link.l1.go = "Exit";
       break;
Then add three lines to the bottom of "Fadrique Castillo_dialog.h", and add 3 to the 'string DLG_TEXT' line at the top. Also put a line in your "quests_reaction.c" to set that attribute:
Code:
PChar.quest.talk_about_carpenter = "true";

Somewhere you will presumably have code where you meet the carpenter and talk to him. In his "dialog.c" or possibly in "quests_reaction.c" after you have met the carpenter, put this:
Code:
DeleteQuestAttribute("talk_about_carpenter");
That gets rid of the attribute. Next time you talk to the Havana tavern keeper, his dialog code will not find that attribute, so you won't get the line to ask him about the carpenter again.

The same applies to Sanji - somewhere in his "dialog.c" or in "quests_reaction.c", have
Code:
DeleteQuestAttribute("talk_about_Sanji");
So when you have met Sanji, you won't be able to ask the Santo Domingo tavern keeper about him again.
 
There is also the rumours for random citizens, but I have no access to my game files (and won't do for a while to come), so cannot look up how that worked.
I remember the main relevant file has "rumour" in its filename and is directly in the PROGRAM folder.
Have a look there.
 
The file is "Rumour_Data.c", which presumably feeds function 'SelectRumour', which is called in citizen dialog files. I never did figure out how to make that do exactly what I wanted. So when I needed the citizens of Santiago to provide clues on a couple of occasions, I just put attribute checks and relevant dialog code into "Santiago citizen_dialog.c", along with the relevant text straight into "Santiago citizen_dialog.h". In effect, I handled them the same way I handled tavern keepers.
 
It is certainly possible because I did something similar in my "Ardent" storyline - you can choose to play as Charles or Helen Ardent. You start off with an anonymous cloaked outfit, then someone talks to you and asks you some questions, one of which is who you want to be, and then you get the relevant outfit. You don't get a choice of ship in that storyline, but it could probably be arranged by adding some 'GiveShip2Character' commands to the questioner's dialog code.

To get the anonymous cloaked outfit at the start, put this in "StartStoryline.c":
Code:
SetModelfromArray(PChar, GetModelIndex("Animistse"));
Then have a look at "PROGRAM\Storyline\Ardent\DIALOGS\Inquisitor_dialog.c". Case "unexpected1" is where you get the choice of character, which leads to case "charles" or case "helen" depending on your answer. You'd want three choices (Monkey D. Ruffy, James Flint and Jack Throne), and you could put something like this into each case section to give the appropriate ship:
Code:
GiveShip2Character(PChar,"RN_Interceptor","Thousand Sunny",-1,PIRATE,true,true);
Replace "RN_Interceptor" with the ship type as defined in the 'refShip.Name' line in "Ships_init.c", replace "Thousand Sunny" with whatever name you want each character's ship to be. The "-1" sets the ship's cannons to be whatever is defined for that type in "Ships_init.c". The two "true" bits mean the ship will be automatically given crew and supplies.

Try playing the "Ardent" storyline, at least as far as talking to the Inquisitor at the start, so you can see what happens. Then look through the storyline files to see how it was done.
 
You can't restrict the choice to just a few characters like that. In "PROGRAM\Storyline\NewPirateAge.c", you may have the lines:
Code:
sl.(sn).start.model.lock = true;

sl.(sn).start.name.lock = true;
Those are what force you to use the name and model which are also set in "NewPirateAge.c". If you remove those lines then you can choose your character freely, which means you can play as anyone - Monkey D. Luffy, James Flint, James Norrington, Jack Throne, Jack Sparrow or anyone else.

You could have some code in your "quests_reaction.c", in the first section (case "Start", if you've left it with that name) which checks your name and model, then assigns a different ship if you are playing as James Flint or Jack Throne. If you choose an inappropriate character such as Jack Sparrow then this code will not recognise you and you'll just keep the ship which is set in "NewPirateAge.c".
 
No I mean in the Choice Menue.
Like you did it for the Freeplay.
In the menu, you can choose either from all characters in the game or you can completely lock the character selection.
There is no other option. :no
 
To assign ship based on character name? Probably something like this:
Code:
if (GetMySimpleName(PChar) == "James Flint") GiveShip2Character(PChar,"RN_Interceptor","Ship1",-1,PIRATE,true,true);
if (GetMySimpleName(PChar) == "Jack Throne") GiveShip2Character(PChar,"US_Interceptor","Ship2",-1,PIRATE,true,true);
Replace "RN_Interceptor" and "US_Interceptor" with whichever ship types you want to give these characters, and replace "Ship1" and "Ship2" with the names you want to give those ships.
 
To assign ship based on character name? Probably something like this:
Code:
if (GetMySimpleName(PChar) == "James Flint") GiveShip2Character(PChar,"RN_Interceptor","Ship1",-1,PIRATE,true,true);
if (GetMySimpleName(PChar) == "Jack Throne") GiveShip2Character(PChar,"US_Interceptor","Ship2",-1,PIRATE,true,true);
Replace "RN_Interceptor" and "US_Interceptor" with whichever ship types you want to give these characters, and replace "Ship1" and "Ship2" with the names you want to give those ships.
I'd suggest putting that in StartStoryline.c so that the ship is changed before the main character is loaded into the first scene.
 
@Grey Roger and @Pieter Boelen
First Thanks for the Ship Texture for the Thousands Sunny. But the Ship Model is not the Model that I like to use.
The Ship Type of Thousands Sunny is Brig Sloop, but I think it looks like a Pirat FastGalloen or of a Frigate Ship.
What are thinking??

Cu
 
Last edited:
Try creating a new ship texture yourself, using TX Convertor and Photoshop. Once you can do that, you can use whichever ships you want. If you have the most recent "post_jan7_fixes" update, it includes "FastGalleon3", which has a light brown hull, so you just need to add the red and white bits. However:

This is Thousand Sunny:

It only has two masts. That makes it a brig of some sort. The hull is curved, with what looks like some sort of nozzle on the stern, and the ship does not look remotely like anything in PoTC. Especially not frigates, which are no more curved than "Brigantina1" and which have three masts compared to the two masts of Thousand Sunny. The three masts and the lateen sail on the mizzen mast make any Fast Galleon variant unsuitable for this ship.

You asked for a retexture of "Brigantina1", which I did. The same hull is used for "Brig1", which is basically the same ship as "Brigantina1" but with more square sail on the mainmast. So you could easily make a version of "Brig1" to use the same texture. Copy the entire "Brig1" folder, rename it "Thousand_Sunny", rename all the files inside the folder to match (e.g. rename "brig1.gm" to "Thousand_Sunny.gm"), and then use Hex Editor to edit "Thousand_Sunny.gm" to use "Thous_Sunny1.tga" instead of "bortoutbrig1.tga". The ship would look nearly identical to the Thousand Sunny you now have, but with different sails on the mainmast.

"Brig Sloop" is "HMS_Sophie". It's even flatter than "Brigantina1" and therefore looks even less like Thousand Sunny.
 
Last edited:
Hello @Grey Roger and @Pieter Boelen

I Have two Little Question:
1. Gives anywhere a Manual for how To make Quest and what Is possible to make and what not?

2. Can make the a Character is only on this Day to find on this island? if yes what have to doe?

Cu PK

Ps if Iam finsh with me Homepage will Post here in the Form.
 
1: No idea. I started by tweaking some dialog text files, proceeded on to tweaking dialog code files, then did a bit of debugging, then wrote a short extension to an already existing storyline, and then started my own storyline. One thing which really helped is that I'd played a few storylines already and so I had some idea of what can be done in a quest. A lot of the time, if I want to do something similar to what has already been done in another storyline, I look for the code which does it, then copy and adapt it.

2: Define the character in one of the files in your "PROGRAM\Storyline\NewPirateAge\Characters" file. Then put the character in place using a 'ChangeCharacterAddressGroup' command in "quests_reaction.c". When you want him to disappear, use 'ChangeCharacterAddress(characterFromID("Character Name"), "None", "")'.
 
@pirateking: You can have this in "PROGRAM\Storyline\NewPirateAge.c":
Code:
   sl.(sn).start.nation = PIRATE;
   sl.(sn).start.nation.lock = true;
This forces your character to be Pirate nation.

It does not affect your choice of character model. You can still choose any model you want. You can choose to play as Horatio Hornblower, but you'll be Pirate captain Horatio Hornblower.

The character selection menu allows you to choose a nation. Only characters with that nation as given in "initModels.c" will then appear. If you choose "Pirate" then only Pirate models will appear, though not just those from "New Pirate Age" - you'll also be able to choose Jack Sparrow, for example. But that is your choice when you start the game and choose your character. If I'm playing it, I could just as easily choose "Spain" and get a Spanish character instead.
 
Hello to all!

I have someone Question:
Is it posibel to put a Ship with a Pirate Charakter in Front of a Bay or Beach?
So put i thing that Will Not so ne easy to make, so then it would be nicke if anyone
Can make this work for me. I will make then Postion Print Map where are the
Postion of the ships and Charakter marked is.

After today i have finsh to Placeing of the First Quest Charakter i Start to make the First Quest Dialog readme.txt
File, it would for me very helpful if i get some Worksupport for this Work - What i have to die and which Code i have to use.

Cu The PK
 
Back
Top