• 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 Naval/Privateer Promotion Steps

The Nelson start gives you the rank "Commander" (with 22 relation points) and the 6th rate frigate "Blanche" rather than HMS Badger.
We intended to set things up properly as per your original work, but it is quite possible some things ended up differing by now.
The best would be if you can again give the details of how you want these characters set up so that they can be made to work properly with the new system.

The starting ranks are extremely easy to definine in PROGRAM\Models\initModels.c now. The ships have to be manually set to match there,
though in this case the assignment is purely cosmetical for the Select Storyline interface as the actual ship assignment for Naval Officers is handled elsewhere.
See this thread for more details: http://www.piratesahoy.net/threads/custom-pre-defined-character-choices.24995/

The assignments are all in PROGRAM\NK.c where there are defaults set for each nation, period and rank.
There are custom presets included for several characters, including Nelson and Aubrey.

If I recall, I did keep the original officers that you added. The only difference is that you no longer get ALL of them at the start of the game.
Instead you get a few on each promotion until you have all the ones that you originally had defined.

I changed the starting ranks for some characters already in my own game version, but didn't post that yet.
If I remember correctly, that indeed included setting Nelson and Aubrey to start at rank 3 instead of rank 5.

The Aubrey start also gives you the rank "Commander" (also with 22 relation points) and the Unité class frigate "Lively" rather than the HMS Sophie (as you intended).
Starting Aubrey out with the Surprise is quite possible; all that needs to be done is to modify his initModels.c entry. That would be quite a substantial jump-start to the game though.
As you are simulated to have already played a substantial part of the game, there would be less game ahead of you because you skipped on a lot.
Plus you would still have the skills of a level 5 character, but a much larger ship than level 5 characters normally get.
That could be considered an extra challenge.

Alternatively, we could force the player to actually start at a higher rank with extra skills by automatically triggering some extra level-ups.
That works for the cheatmode so we can do that here too.

If you select a generic Admiral model, you will actually start the game as Admiral with the command of an admiral too.
But again, still at rank 5 at the moment. Indeed that code might require some tweaking.

My question now is: What if players DO want to start as Jack Aubrey at an earlier stage in his career?
If we give Aubrey's correct captain model upon promotion, you could start with a generic Midshipman model but name your character Jack Aubrey.
You would then get to play through his whole career and get the correct model, ships and officers during play.
The default Aubrey start can then indeed be with him already as Post Captain in command of HMS Surprise.

Though now I can't seem to replicate the custom naval officer getting Nelson's stuff. Now every time I try (in various time periods) I get no officers and no ship at all...
There is indeed a bug with that in the current Beta 3.5 WIP release.
I did fix it a while back and posted the individual affected file on the forum, but I didn't get around to updating the installer or ZIP yet.
If at all possible, I'll try to post some sort of a new update before Friday with this and several other things corrected and updated.
 
Last edited:
Starting Aubrey out with the Surprise is quite possible; all that needs to be done is to modify his initModels.c entry. That would be quite a substantial jump-start to the game though.
As you are simulated to have already played a substantial part of the game, there would be less game ahead of you because you skipped on a lot.
Plus you would still have the skills of a level 5 character, but a much larger ship than level 5 characters normally get.
I wouldn't recommend that. Aubrey is supposed to be competent. Whereas...

If you select a generic Admiral model, you will actually start the game as Admiral with the command of an admiral too.
But again, still at rank 5 at the moment. Indeed that code might require some tweaking.
... this simulates someone who bought his way to high rank and is the sort of incompetent senior officer who is the bugbear of various fictional heroes. xD

My question now is: What if players DO want to start as Jack Aubrey at an earlier stage in his career?
If we give Aubrey's correct captain model upon promotion, you could start with a generic Midshipman model but name your character Jack Aubrey.
You would then get to play through his whole career and get the correct model, ships and officers during play.
You can probably do that anyway if a generic naval officer is allowed to start as Midshipman. You can presumably give yourself the name of one of the characters, which I'm guessing will then trigger the appropriate case codes when you reach the rank of Lieutenant. "Horatio Nelson", "Horatio Hornblower", "James Norrington" and "Jack Aubrey" all ought to work. So I'd recommend jump starts for Aubrey to Lieutenant with HMS Sophie and to Commander or Captain with HMS Surprise, provided you can start him with sufficient Leadership and Navigation skills to command her properly.

Note that Aubrey gets no new ship at promotion to Post Captain, reflecting the fact that he stayed with HMS Surprise for most of his career, only taking very brief commands of some other ships before returning to Surprise. He even still has Surprise at quite senior rank, which I've handled by giving her back to him as a companion ship at Vice Admiral. (I could give him the 4th rate ship Leopard at Post Captain if you like, but you objected to that ship as it's not very pretty. ;))
 
Ah, thank you for the lengthy answer and for telling me where things are located now.

I think giving them the correct rank should fix the starting ship problem although it is rather weird that Nelson apparently got a ship that shouldn't be given to him at any rank. In any case, I think it should be pretty good once these things are fixed, and I may or may not want to tweak it a bit at some point (perhaps one can add in the specific nation relations as well, if they aren't in there already).

That workaround with Aubrey might be good, though it's pretty messy and I doubt people would stumble upon that latter option without foreknowledge; you could always have a second, younger Jack in the selection... No matter what, I still think having Jack as a Captain of HMS Surprise is the preferable option. Otherwise we'd have to change the year, his staff, and put HMS Sophie in the Caribbean although Jack only sailed her in the Mediterranean, if I recall correctly.

While I think it is very cool that Nelson and Aubrey get approximately the ships they sailed as they progress, I've always been more keen on getting the initial things right and then let the player diverge from the story as he/she sees fit. Of course, this adds some variation and perhaps replayability to the Naval Officer career...
 
I think giving them the correct rank should fix the starting ship problem although it is rather weird that Nelson apparently got a ship that shouldn't be given to him at any rank. In any case, I think it should be pretty good once these things are fixed, and I may or may not want to tweak it a bit at some point (perhaps one can add in the specific nation relations as well, if they aren't in there already).
That code has been rewritten quite a bit since the latest Beta 3.5 WIP again.
I just tested on my own game version and Nelson now gets Badger again and Aubrey gets Surprise.

You might want to check the GivePromotionOfficers function.
If I did it right, you'll see your original officers there again. Though they are now randomly generated instead of fully pre-defined.
At the moment only their name, model and officer type matches with your original set-up.
But if there are any other things that should be corrected (skills/abilities/weapons), that can be included there as well.
I just noticed some slight errors in there myself, so it would probably be good for someone else to have a look through it too.

That workaround with Aubrey might be good, though it's pretty messy and I doubt people would stumble upon that latter option without foreknowledge; you could always have a second, younger Jack in the selection... No matter what, I still think having Jack as a Captain of HMS Surprise is the preferable option. Otherwise we'd have to change the year, his staff, and put HMS Sophie in the Caribbean although Jack only sailed her in the Mediterranean, if I recall correctly.
Indeed I can imagine players would probably not find out on their own that the character progressions are linked to character name.
But they are and it is possible to make use of that. A generic midshipman model with one of the pre-defined names will still develop correctly for that name.
So you could even start as Midshipman Nelson if you like. You only need to set the starting parameters correctly, but you don't need to edit any code.

The only way to avoid this is by adding more pre-defined characters. At the moment we have Lieutenant Nelson and Commander Aubrey.
Midshipman, Lieutenant and Commander Hornblower are also set up properly and can be chosen from the "named" list.
They don't show up in the default list though, because there is already a separate Hornblower storyline.
I also don't want to have an overkill of English (navy) starting characters while having only a very limited amount of other characters available.

We don't have a "Lieutenant Aubrey" model and everything is of course linked to model.
So we could FAKE this instead like this:
Code:
  model.description =  "A Royal Navy Lieutenant's uniform.  Do you fancy yourself a poet?";
   model.id  =  "brtlut3_18";
   model.FaceId  =  410;
   model.minrank  =  3;
   model.nation  =  ENGLAND;
   model.price  =  4000;
   model.assigned  =  true;
   model.playertype  = PLAYER_TYPE_NAVAL_OFFICER;
   model.period = "" + PERIOD_COLONIAL_POWERS + PERIOD_REVOLUTIONS + PERIOD_NAPOLEONIC;
   model.name = "Jack";
   model.lastname = "Aubrey";
   model.storytext = "Captain John 'Lucky Jack' Aubrey is set to cruise in the Caribbean with his new ship, HMS Sophie. Meet his good friend, naturalist, and ship's physician, Stephen Maturin, and influence the course of the war with France.";
   model.loadingScreen = "Character_JackAubrey.tga";
   model.playertype = PLAYER_TYPE_NAVAL_OFFICER;
   model.Flags.Pirate = 8;
   model.Flags.Personal = 28;
   model.ship = "HMS_Sophie";
   model.shipname = "Sophie";
   model.date.year = 1798;
   AssignModelTypeNation(isstart, model, "navy", 1.0, ENGLAND);   // ccc Feb06
   AddCharacterModel(model);
This will put "Lieutenant Aubrey" under the "Named" characters list for those who want to make use of it.
I'm also making some Select Storyline Interface changes so you'll get to see all pre-defined Navy Officer characters
if you select Group = Navy Officer and Fame Level = Named. Seems to be working.

While I think it is very cool that Nelson and Aubrey get approximately the ships they sailed as they progress, I've always been more keen on getting the initial things right and then let the player diverge from the story as he/she sees fit. Of course, this adds some variation and perhaps replayability to the Naval Officer career...
We have been trying to get the initial things right AND the progression afterwards too.
I want to get the best of both worlds! ;)
 
I wouldn't recommend that. Aubrey is supposed to be competent.
Getting the player leveled up depending on selected character model wasn't so hard.
I repurposed the .minlevel attribute so that for Free Play, the player will be jump-started to at least that number.

The hard work was to subsequently reassign this attribute to all models.
Now all character models with a minrank (navy) have got a minlevel of 2x minrank. So a rear admiral (rank 8) would start the game at level 16 (instead of 5).

Additionally, I removed the minlevel attribute from all models that didn't need it.
Plus I added minrank of 1 to all soldiers and land officers so that they won't show up at the tailor's until you've got a navy/privateer promotion.
Should save a bit of clutter there for non-navy/privateer players.

All of this can of course be tweaked later, but at least the system is now in place.

I also found all sorts of other issues related to this mod, so have been fixing those too.
There was an extra break; in some nation ship blocks, preventing any ships from being given for those nations.
Also, if you would start the game as generic midshipman, you would be ship-less. Plus some other things here and there.
 
Quite a lot of changes included in here: http://www.piratesahoy.net/threads/build-14-beta-3-5-internal-wip-for-testing.24817

Everyone please check this out! See if the Select Storyline Interface behaves the way you would expect.
And whether it can be used well or still needs further tweaking.

Additionally, please check the various navy starts:
- Pre-defined characters: Lieutenant Nelson, Commander Aubrey, Michiel de Ruyter and Lieutenant James Norrington
- Extra named characters, such as Lieutenant Aubrey and Midshipman Hornblower (doesn't show in the initial list, but can be found with a few extra clicks)
- Specific navy models (you may need to change the date to Colonial Powers for these to show up); note that even an "admiral" starting character should work correctly
- Generic characters selected as Naval Officer; special case here for Brave Black Flag default, but switched to Naval Officer

Keep an eye on your starting ship: Do you have any at all? And if so, does it match with the one shown in Select Storyline (if any)?
Also check if your starting level and skills matches with your rank and the ship(s) you're in charge of.

Do you get the correct uniforms and officers upon promotion?
Note that there are special cases for Jack Sparrow and Nathaniel Hawk as those have separate officer uniforms, some even for France and Spain.

I am hoping this comes pretty close to "finished" state.
 
By the way, executing this code through console allows you to get yourself promoted with a single press on F12:
Code:
        switch(sti(PChar.nation))
         {
           case ENGLAND:
             ch = CharacterFromID("John Clifford Brin");
           break;
           case FRANCE:
             ch = CharacterFromID("Joseph Claude Le Moigne");
           break;
           case SPAIN:
             ch = CharacterFromID("Christofor Manuel De Alencar");
           break;
           case HOLLAND:
             ch = CharacterFromID("Reynard Grueneveldt");
           break;
           case PORTUGAL:
             ch = CharacterFromID("Jacinto Arcibaldo Barreto");
           break;
           case AMERICA:
             ch = CharacterFromID("Cole Arkwright");
           break;
         }
         Promote(PChar, ch, sti(PChar.nation));
That allows you to check the WHOLE ship/officer/uniform progression within a few minutes, instead of having to play for days. ;)

@FlyingGhost: If you're not quite familiar with how the console works, have a look at this thread:
http://www.piratesahoy.net/threads/modding-tips-tricks.24942/
That's a good idea in any case if you haven't seen it already. ;)
 
I have now played "Commander Aubrey" to rank "Admiral". Havent seen any thing odd
or wrong. I think the game runs good now.
 
Just now I tried to play as Naval Officer. I choose naval officer, change the Nation flag,
started the game and NO START SHIP. This is for all Nations. You Will have the "promotion
ships","Uniforms" and so. I promoted me self via the console, and all the other stuff except
the START SHIP, are working fine.
PS. There are no flag for the American Nation.
 

Attachments

  • error.log
    182 bytes · Views: 176
  • compile.log
    10.3 KB · Views: 187
  • system.log
    7.1 KB · Views: 189
Last edited:
Exactly what starting settings did you use? I'll need to replicate that problem to fix it.
 
I just start whit changing the profession to Naval Officer, then I change the Nation flag and start the game.
 
PS. There are no flag for the American Nation.
Which year are you trying to play? Remember that the American nation did not exist before 1776. ;)

If you advance the year to 1776 or beyond, so that you're playing in "Revolutions" or "Napoleonic" periods, and there's still no American flag, then we have a problem.
 
Which year are you trying to play? Remember that the American nation did not exist before 1776. ;)

If you advance the year to 1776 or beyond, so that you're playing in "Revolutions" or "Napoleonic" periods, and there's still no American flag, then we have a problem.
You are absolute right!:yes
 
Just now I tried to play as Naval Officer. I choose naval officer, change the Nation flag,
started the game and NO START SHIP. This is for all Nations. You Will have the "promotion
ships","Uniforms" and so. I promoted me self via the console, and all the other stuff except
the START SHIP, are working fine.
PS. There are no flag for the American Nation.
Are you sure you have the latest ZIP installed? I just tested this and it works fine.
We did have that problem before, but I fixed it last week. :confused:
 
So how are we doing on this feature? Any recent problems? I think we might consider this "Included in Build" for now.
 
Back
Top