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

Included in Build New PotC Film Navy Characters

Andouce

Sailor Apprentice
Storm Modder
Hello,

So having been playing the new WIP build 14 and enjoying every moment minus the officer switch issue, I thought, I wonder if I can add some new officers to resemble the "James Norrington" character.

So far I have added full characters resembling Lieutenant Commander Groves and Lieutenant Gillette from the movie. You unlock Gillette when you reach Lieutenant and Groves when you are a Captain. All the necessary code is there along with the loadouts and title changes from what I have done and it is all working nicely.

Only one thing is left to make it feel real for me which is to add new portraits. So what I had in mind was to copy the Lieutenant Models that are being used, naming them after Groves and Gillette. And in doing so setting up the necessary code in the Models. The only issue I am having is what is that code?

Especially for the portrait, no idea how to set that up. I know it has to do with the faceID but how is that even worked out and matching whatever picture u have in?

I appreciate any assistance on the matter and thanks! (If only there were slightly better models for them except the standard british lt ones :( (cannot get Gillettes young face haha :D)
 
Having appropriate officers join Norrington as he is promoted is really cool! I'll happily include that in the modpack as well.

Using custom portraits as you suggest is very possible; we've done it before.
The assignments for the face ID is combined with the other model code in program\models\initmodels.c
The textures themselves are in the RESOURCE\textures\interfaces\portraits folder.

If you don't have it already, you'll need this tool:
http://piratesahoy.net/build/tools/Modeling+Texturing/TX Convertor.zip

And the templates for the portrait Borders can be found here:
http://piratesahoy.bowengames.com/potc/OFFICIAL/
 
To make the 128 size work you also have to add something in RESOURCE\INI\INTERFACES\pictures.
see FACE128_566 for an example.
 
Thanks guys. I shall get working on it :p

One thing though. I think I have broke my game lol. The tavern quest after speaking to an officer, the old guy doesn't come in anymore to talk to you about officers. The only files I have changed are NK, which is where the code is for Norrington. Do you know what file has the details of this quest?

I have made a few of my own changes here and there but I do not think any of them touched the quest in anyway. (I have done more than I can recall from below but only minor things....i think...)

P.N - I also note that Gillette's first name is "Andrew" I think, which I could never find out.

Code:
case 3: // Lieutenant
            // Doctor:
            switch(GetMySimpleName(PChar))
            {
                case "Jack Aubrey":
                    ch = CreateOfficer_Cheat(OFFIC_TYPE_DOCTOR, "apothecary", 3, iNation, false);
                    ch.name = TranslateString("","Stephen");
                    ch.lastname = TranslateString("","Maturin");
                break;
                case "Horatio Nelson":
                    ch = CreateOfficer_Cheat(OFFIC_TYPE_DOCTOR, "9S_Nat", 3, iNation, false);
                    ch.name = TranslateString("","Francis");
                    ch.lastname = TranslateString("","Forster");
                break;
                ch = CreateOfficer_Cheat(OFFIC_TYPE_DOCTOR, GetRandomModelForTypeExSubCheck(1, OFFIC_TYPE_DOCTOR, "man", iNation), 3, iNation, false);
            }

            // Midshipman:
            if(GetCurrentPeriod() >= PERIOD_COLONIAL_POWERS)
            {
                switch(iNation)
                {
                    case ENGLAND:    ch = CreateOfficer_Cheat(OFFIC_TYPE_ABORDAGE, "brtmds1_18", 3, iNation, false);        break;
                    case SPAIN:        ch = CreateOfficer_Cheat(OFFIC_TYPE_ABORDAGE, "spa_mds1_18" , 3, iNation, false);    break;
                }
            }
            else
            {
                ch = CreateOfficer_Cheat(OFFIC_TYPE_ABORDAGE, GetRandomModelForTypeExSubCheck(true, "Land_Officers", "man", iNation), 3, iNation, false);
            }
            SetRank(ch, iNation, 1);
            switch(GetMySimpleName(PChar))
            {
                case "Jack Aubrey":
                    ch.name = TranslateString("","Peter");
                    ch.lastname = TranslateString("","Calamy");
                break;
                case "Horatio Nelson":
                    ch.name = TranslateString("","Henry");
                    ch.lastname = TranslateString("","Lee");
                break;
                case "James Norrington":
                    ch.name = TranslateString("","Gillette");
                    ch.lastname = TranslateString("","");
                    ch.model = "brtlut2_18";
                    GiveItem2Character(ch, "blade24+3");
                    GiveItem2Character(ch, "PiratesPistol+2");
                    ch.equip.blade = "blade24+3";
                    ch.equip.gun = "PiratesPistol+2";
                    ch.HPBonus = 100;
                    ch.professionalnavy = ch.nation;
                    SetRank(ch, iNation, 3);
                                    ch.quest.officertype = OFFIC_TYPE_FIRSTMATE;
                break;
            }
        break;

Code:
case 5: // Commander
            // First Mate:
            switch(iNation)
            {
                case ENGLAND:
                    if(GetCurrentPeriod() < PERIOD_COLONIAL_POWERS)
                        ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "9JdEng", 3, iNation, false);
                    else
                        ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "brtlut3_18", 3, iNation, false);
                break;
                case FRANCE:
                    if(GetCurrentPeriod() < PERIOD_COLONIAL_POWERS)
                        ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "9JdFra", 3, iNation, false);
                    else
                        ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "fra_lut3_18", 3, iNation, false);
                break;
                case SPAIN:
                    if(GetCurrentPeriod() < PERIOD_COLONIAL_POWERS)
                        ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "9JdSpa", 3, iNation, false);
                    else
                        ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "spa_lut2_18", 3, iNation, false);
                break;
                case HOLLAND:
                    ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "9JdHol", 3, iNation, false);
                break;
                case PORTUGAL:
                    ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "9JdPor", 3, iNation, false);
                break;
                case AMERICA:
                    ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "USA_lut_18", 3, iNation, false);
                break;
            }
            SetRank(ch, iNation, 3);
            switch(GetMySimpleName(PChar))
            {
                case "Horatio Nelson":
                    ch.name = TranslateString("","Osborne");
                    ch.lastname = TranslateString("","Edwards");
                break;
                case "Jack Aubrey":
                    ch.name = TranslateString("","William");
                    ch.lastname = TranslateString("","Mowett");
                break;
                case "Horatio Hornblower":
                    ch.name = TranslateString("","William");
                    ch.lastname = TranslateString("","Bush");
                break;
                case "James Norrington":
                    ch.name = TranslateString("","Theodore");
                    ch.lastname = TranslateString("","Groves");
                    ch.model = "brtlut1_18";
                    GiveItem2Character(ch, "blade24+3");
                    GiveItem2Character(ch, "PiratesPistol+2");
                    ch.equip.blade = "blade24+3";
                    ch.equip.gun = "PiratesPistol+2";
                    ch.HPBonus = 100;
                    ch.professionalnavy = ch.nation;
                break;
            }
        break;

Along with a couple of miscellaneous changes to the nations. Because i couldn't get the Setranktitle code thing working properly with Groves. Wanted it to change to "Lieutenant Commander Theodore Groves" but instead it said "Senior Lieutenant Lieutenant Commander Groves" when in game haha. So decided to just change Britain's rank 4 from Senior Lieutenant to Lieutenant Commander.

(Could I perhaps add a bit of code that would say if the period is Colonial Powers or more then rank4 would = Lieutenant Commander? That would allow use of senior lieutenant for previous periods)

I also changed the periods so that the Golden age of Piracy, it isn't set as England and is Great Britian, and Queen Anne is changed to of Great Britain. (I know it was formed in 1707 but it is kind of bang in middle so :p
 
@Jack Rackham: There are still some unused portrait slots, so if you use those, no additions to the ini files are needed.

The officer hire quest thing is in program\quests\quests_common.c and I an unfinished feature by @Levis.
It should trigger only the first time and depending on difficulty.

For the custom rank, you should be able to use SetRankTitle instead of SetRank .
 
I see, I literally just finished one portrait hahaha. So now I need to add it to the models file and in each folder am I correct?

So how exactly would I name it? Would It be like face_976?

In regards to the rank thing, could you provide code so that it would do this?

(Could I perhaps add a bit of code that would say if the period is Colonial Powers or more then rank4 would = Lieutenant Commander? That would allow use of senior lieutenant for previous periods)

cheers guys :p
 
I'm not near my game until tonight, so can't post an example yet.
Will do tonight or tomorrow though.
 
Well so far I have the portraits added now,

I am thinking whether or not to set up a proper story now. I was thinking of having them set up like James on the interceptor, but adding a new check in place so if you are playing as one of the three you will receive them on promotion.

So as Norrington you have seen the above code which will be tweaked slightly.

If playing as Gillette or Groves you would unlock the corresponding "mates" at these ranks.

Lieutenant Gillette unlocked > at Lieutenant in place of the master at arms but acts as a first mate
Lieutenant Commander Groves unlocked > at Commander in place of the first mate acting as a first mate
Commodore Norrington unlocked > at Rear Admiral also acting as first mate.

(If there were more Officer classes in that regard, like second mate and third mate? I would have them assigned to those classes but struggling to find a role for them all that would match what they did. They were basically second and third in command of the ship (Interceptor, dauntless, endevour). )

EDIT:

I have everything working now, except one thing.

The images for the selection of character in the new game section isn't there (probs cause doesn't exist). The image in the character screen when talking to them at the top left showing the model pretty much speaking is not there.

How would I rectify this?

EDIT2:

I now have the images working correctly in the new game menu. Now all that is left is the one for when you are speaking as described above and getting the text to show when you select the character in the interface menu of new game.

Also, if the EITC merchant plan goes ahead, I was planning to tie in the EITC Groves character to it so that they would be attached to the EITC officially as opposed to the navy. I noticed in the NK there was a section for promotions which isn't working as of yet. That is where the code for the model in question would be placed so for now I shall leave that out.

EDIT3:

Okay now everything is working bar the speaking image. Also how does one go about adding in a check.

So instead of in NK it checking for the name of a character to determine what is added, it checks the model of the character?

I want it to check if the model of the character is the EITC version of groves then the rank will not be a Lieutenant (3) but a Lieutenant Commander (4).

EDIT4:

Still need to find out how to get those images working for the portraits when talking to the character.

I have now set up the checks on the models. So you receive additional outfits. Also I am now working on adding further uniforms for Gillette and Groves when they climb the ranks. Basically it will be another portrait and the default models used for the British unless someone can do the below......:(

One thing, is it possible for someone other than me because I am crap with models. But would it be possible to change the head model on a character ? I need a young face on Gillette you see. Basically faces that would match them as close as possible (Which i know isn't gonna happen).

Also anyway that the wigs could be changed from brown/black to white? I have no idea how the modelling works in the build mod and what is and isn't possible hence why I am asking. Would really appreciate this. Everything is working great right now except the image as described above.

If this is possible what I would need would be:

Lieutenant > Captain > Commodore > Admiral - Royal Navy Models with white wigs and young face for Gillette. Slightly older, average for Groves.

Lieutenant > Captain - EITC models with white wigs, which would have slightly older, average for Groves. (Not sure if there are any models already which reflect Higher ranks for the EITC. A Captain is highest as far as I am aware model wise.)


Thanks guys
 
Last edited:
For the animated head in the dialog, you need the head model in RESOURCE\MODELS\Heads and an animation file in RESOURCE\animation\Heads too.

Editing models is certainly possible, but only @Jack Rackham and maybe @Bartolomeu o Portugues are proficient with that.
So you'd have to try to convince one of them.

To give a custom title to a character, you can use a line like this:
Code:
SetRankTitle(ch, ENGLAND, TranslateString("", "Sir"));
I should actually change that so that the nation isn't included there anymore because that doesn't actually do anything anyway. :cheeky

You can certainly check on specific model too. Here's an example that checks on all models that contain "JRMM" in their name:
Code:
              if (HasSubStr(pchar.model, "JRMM"))
               {
                 PlayerModel = "47_JRMMCpt";
               }
But this works too:
Code:
              if (pchar.model == "47Blaze_Eitc_lt")
               {
                 PlayerModel = "47Blaze_Eitc_cpt";
               }

Was there anything you needed help in sorting out?
 
I managed to figure all the above by myself except the animated head :D So thank you very much sir! :)

In regards to the animated heads that should be good to go then and the models, I will use standard ones for now however If the above names were interested that would be absolutely epic :p

I shall also upload or send the modified files so you can see what I have changed and what hasn't in regards to my "tweaks" so to speak.

Not that much if i remember correctly. In total it should be like this:

- Added 2 new characters - Theodore Groves and Andrew Gillette each with own models for corresponding ranks in nation. They also start with corresponding ships and national outfits for soldiers etc.
- Each of the three characters - James Norrington and the above can be recruited as Naval Officers with corresponding uniforms, portraits and ranks at these ranks only by one of these 3 characters!!

Starting off player character:

Gillette - Lieutenant, Captain, Commodore or Rear Admiral
Groves - Lieutenant Commander, Captain, Commodore or Rear Admiral or EITC Lieutenant/Captain

Ship wise from promotion AND start depending on character choice from above ranks:

Lieutenant Gillette - Interceptor
Commodore Gillette - Dauntless
Rear Admiral Gillette - Dauntless

Lieutenant Commander Groves - Interceptor
Commodore Groves - Dauntless
Rear Admiral Groves - Dauntless

EITC start with standard navy assignment as do Captains of Groves and Gillette

Companions:

at Lieutenant - Gillette - Lieutenant
at Commander - Groves - Lieutenant Commander
at Rear Admiral - Norrington - Commodore


- For future usage, if you play as Groves as a East India Company Lieutenant on promotion to Captain you will receive a Captain uniform also, portraits too.
- Due to the EITC Groves, I decided not to allow any of the above characters as promotion rewards to this particular model since it is kind of separate due to being in the EITC.
- Not sure what is implemented in terms of EITC but would appreciate if the model could be tied to the EITC affiliation that seems to be a WIP.

- Changed Queen Anne of England to Queen Anne of Great Britain and Nation of England to Great Britain during the 1680ish-1740 period since GB was formed half way through and makes sense imo :p
- Added a check in the freeplay story to add uniforms to each of the 3 characters above.

-All 3 will recieve all naval officer uniforms from Lt below and 2 british royal marine uniforms and Royal marine officer.
- If you are playing as the EITC Groves you will recieve EITC lt uniforms as opposed to Royal navy ones.

- Changed the Senior Lieutenant rank for Britain to Lieutenant Commander. (Need the piece of code to make it so if period is Colonial Powers + then rank 4 will = Lieutenant Commander and below Colonial Powers it is just Senior Lieutenant) - preferably.

I hope to do more once I complete this set and love doing it too. Thanks for all the assistance! :)
 
- Not sure what is implemented in terms of EITC...
Basically nothing.... :wp

- Changed the Senior Lieutenant rank for Britain to Lieutenant Commander. (Need the piece of code to make it so if period is Colonial Powers + then rank 4 will = Lieutenant Commander and below Colonial Powers it is just Senior Lieutenant) - preferably.
I'd like to hear from @Grey Roger on that for historical accuracy.
Otherwise the custom titles can be assigned to those specific officers.
 
Basically nothing.... :wp


I'd like to hear from @Grey Roger on that for historical accuracy.
Otherwise the custom titles can be assigned to those specific officers.

Yeah I would agree with you on that too. I am all for historical accuracy but not too sure as to when the rank of Lieutenant Commander was introduced as prior to it it was split by seniority basically how it is now I suppose. In which case it would not really bother me. Lieutenant Groves in the film anyway remained a lieutenant until he joined Barbossa in Strangers Tides where he was promoted to Lieutenant Commander of H.M.S Providence.

So whenever the time frame of that movie was, wonder if it was even accurate :p

As for the EITC, that is fine then at the moment. The way I have him set up for that should suffice for now :D
 
What I do know is that the PotC films aren't very high on historical accuracy.
They aren't set in any specific year, but in some sort of mishmash fantasy pirate period.
 
Well since I've done the above listed changes, I'll upload the changes I've made. I'll probably revert the Lieutenant Commander back to senior Lieutenant and use the set rank title instead for groves non eitc.

Much appreciated

EDIT: Well I am working until 2000 hours :( But I shall try.

In regards to what would be nice as extras, this is what remains to be done in future versions:

- New Models or similar ones with as close to, heads and White wigs.

Lieutenant > Captain > Commodore > Admiral - Royal Navy Models with white wigs and young face for Gillette. Slightly older, average for Groves.

Lieutenant > Captain - EITC models with white wigs, which would have slightly older, average for Groves. (Not sure if there are any models already which reflect Higher ranks for the EITC. A Captain is highest as far as I am aware model wise.)

- A New Admiral Model for James Norrington, matching head as other models and white wig.

- If the EITC is expanded in future, make the appropriate EITC models of Groves linked to it.
 
Last edited:
Well since I've done the above listed changes, I'll upload the changes I've made.
Cheers! If you get the files posted before this evening, I might be able to include it in the update I intend to work on later today. :doff
 
I'd like to hear from @Grey Roger on that for historical accuracy.
Otherwise the custom titles can be assigned to those specific officers.
Here's the Wikipedia article on current Royal Navy ranks:
https://en.wikipedia.org/wiki/Royal_Navy_officer_rank_insignia

And here's one on ranks and insignia of the 18th and 19th centuries:
https://en.wikipedia.org/wiki/Royal_Navy_ranks,_rates,_and_uniforms_of_the_18th_and_19th_centuries

In particular:
Once commissioned, lieutenants would be rated on board based on seniority, such as "1st lieutenant", "2nd lieutenant", "3rd lieutenant", etc. with the 1st lieutenant filling the modern day role of executive officer and second-in-command. Lieutenants, like ordinary sailors, were required to be signed on to various vessels due to manpower needs. If a lieutenant could not find a billet, the officer was said to be on "half pay" until a sea billet could be obtained.

The title of commander was a temporary position for lieutenants placed in charge of smaller vessels. Successful commanders (who were known by courtesy on board their own ship's as "captain") could aspire for promotion to captain which was known as "making post". Such post captains were then assigned to rated vessels in the rating system of the Royal Navy.

If you have the books about Hornblower and Aubrey, they may also be useful references for this. The rating system for lieutenants (1st lieutenant, 2nd lieutenant, 3rd lieutenant) also makes an appearance in our "Hornblower" storyline.
 
Here's the Wikipedia article on current Royal Navy ranks:
https://en.wikipedia.org/wiki/Royal_Navy_officer_rank_insignia

And here's one on ranks and insignia of the 18th and 19th centuries:
https://en.wikipedia.org/wiki/Royal_Navy_ranks,_rates,_and_uniforms_of_the_18th_and_19th_centuries

In particular:

If you have the books about Hornblower and Aubrey, they may also be useful references for this. The rating system for lieutenants (1st lieutenant, 2nd lieutenant, 3rd lieutenant) also makes an appearance in our "Hornblower" storyline.

Yes the British as far as I was aware used the system of 1st, 2nd and 3rd lieutenant in place of "junior" and "Senior" respectively but it works I suppose for now.

I am just finialising the code for each of the new models now. Now all that remains is to add the models and that is it all done and dusted. (But i would prefer new models or changes to existing ones to resemble each new character :D As described above but idk limitations of build mod :( )

P.S Also if things with the EITC took off as above previous post I would probs add in James Norrington EITC side of things like I did with Groves too
 
If you have the books about Hornblower and Aubrey, they may also be useful references for this. The rating system for lieutenants (1st lieutenant, 2nd lieutenant, 3rd lieutenant) also makes an appearance in our "Hornblower" storyline.
So "Lieutenant Commander" is not actually a different/newer name for First/Second/Third Lieutenant, but rather applies to any Lieutenant in temporary command of a (prize?) ship.
That makes sense, I suppose.

With that being the case, if that title is to be used anywhere, it should be for a lieutenant in command of a companion ship.
That could be applied to the promotion reward ships you get at various points using a SetRankTitle line.

But i would prefer new models or changes to existing ones to resemble each new character :D As described above but idk limitations of build mod :(
The engine allows retextures and new models just fine. The problem there is actually getting them made. I could come up with quite a huge wish-list of characters I'd like as well.
@Jack Rackham was kind enough to make some of them, but of course he also has his own projects, so he can't do full-time requests.
He probably wouldn't want to either and who can blame him....? :cheeky
 
Last edited:
Pieter, when I have finished my storyline I can think of doing some general things for a while. :shrug
Still have an unfinished 'Ammand' folder on my desktop...
 
Back
Top