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

Feature Request Pirate ranks look odd in dialogs

Grey Roger

Sea Dog
Staff member
Administrator
Storm Modder
You get "Art of War", alias "relationbook", as a result of 'GivePromotionReward' in "PROGRAM\NK.c". The mere act of getting the book is supposed to set attribute "PChar.Got_Relation_Book" because getting it ought to trigger case "Got_Relation_Book" in "quests_common.c", which sets the attribute. So I don't know why I keep getting more of them. I'll need to get another promotion, then dump attributes and see if "PChar.Got_Relation_Book" is set. Better yet, I'll see if I can distinguish between pirate and non-pirate, so pirates get "Under the Jolly Roger", alias "piratebook", instead. (Which will then need a corresponding attribute so you don't accumulate piles of those instead...)
 
@Grey Roger: Did you to this on a New Game or an existing save?
If I recall, the quest case to check for the "relationbook" item is set at game start.
So if that hasn't been set, then you would keep the infinite loop. :facepalm

Better yet, I'll see if I can distinguish between pirate and non-pirate, so pirates get "Under the Jolly Roger", alias "piratebook", instead. (Which will then need a corresponding attribute so you don't accumulate piles of those instead...)
That would indeed make far more sense! :onya
 
Pirates don't get ranks like "Lieutenant", "Teniente" etc. They get fame ratings, e.g. "Freebooter". This looks odd in dialogs where "GetMyFullName" is used; someone is liable to call you "Unknown Pirate Jack Sparrow", for example.

Any time when that happens while I've been playing "Hoist The Colours", I've been changing the dialog file to use "GetMySimpleName" instead. What I'm now wondering is, should we change the definition of "GetMyFullName" so that it does not include your rank if your nation is Pirate? Because anyone who is playing any other storyline, including FreePlay, who joins the Brotherhood, is going to face the same problem if any general or sidequest dialog uses "GetMyFullName".

Perhaps only leave out the rank at lower level. The idea of someone calling me "Dread Pirate Jack Sparrow" is appealing. Then again, one promotion later I'd be "Scourge of the Archipelago Jack Sparrow", which could either be awesome or very clumsy.
 
Pirates don't get ranks like "Lieutenant", "Teniente" etc. They get fame ratings, e.g. "Freebooter". This looks odd in dialogs where "GetMyFullName" is used; someone is liable to call you "Unknown Pirate Jack Sparrow", for example.
:rofl :rofl :rofl

That is indeed another unintented side-effect of being able to join the Pirates.
All the "LoM functionality" was never made with the intention to allow that and we are not sort-of "abusing" the system. :wp

What I'm now wondering is, should we change the definition of "GetMyFullName" so that it does not include your rank if your nation is Pirate?
That sounds very sensible indeed. :yes

The idea of someone calling me "Dread Pirate Jack Sparrow" is appealing.
I think anybody playing a pirate character could include any such prefixes in their character name.
You can always change your name in mid-game anyway. It agree with you that, with few exceptions, it does sound very clumsy for pirate ranks.
 
Any progress on this?
 
Yes - the current installer includes a version of "PROGRAM\Dialog_func.c" which has this in the definition of "GetMyFullName":
Code:
    if (CheckAttribute(chr, "nation") && HasRank(chr, sti(chr.nation)) && sti(chr.nation) != PIRATE) {
       name = XI_ConvertString(GetRankName(chr, sti(chr.nation))) + " ";
   }
The check for nation not being PIRATE is new and prevents pirates from having their "rank" included in their full name.
 
'sti(chr.nation)' is your current flag, rather than your Served Nation. Is that OK here?
 
The original version was this:
Code:
    // PB: Include rank -->
   if (CheckAttribute(chr, "nation") && HasRank(chr, sti(chr.nation))) {
       name = XI_ConvertString(GetRankName(chr, sti(chr.nation))) + " ";
   }
   // PB: Include rank <--
'sti(chr.nation)' seemed alright to you at that time. ;) All I did was add the check that you're not PIRATE. It always seemed to work well enough for everyone except pirates, and now it works for them as well by not adding their "ranks".
 
'sti(chr.nation)' seemed alright to you at that time. ;)
Apparently so.... :confused:

For NPC's, of course it doesn't matter much. Only perhaps companions, who have an "original nation" independent of their flag.
But I don't think they ever get ranks, except perhaps some Hornblower/navy officers.
What happens with the displayed rank if you have a ranked NPC companion and you change flags?
You can talk to them in their ship's cabin.

Otherwise, the only potential issue I see is for the player.
But I suppose, if you fly a fake flag for which you have no rank, you'll end up using your regular name.
Only when you have a rank to match your flag, is your rank appended to your name.
Does make some sense; you wouldn't want to increase the lie of a false flag by adding a pretend rank to it.

Long story short: Probably OK.
 
Another point, if you have multiple LoM's, your served nation is PERSONAL. I'm not sure what "GetMyFullName" would do if it checked served nation rather than flag, but it probably wouldn't be pretty... On the other hand, if it goes by flag, and you have ranks with different nations, you can choose which one to use.

NPC nationality is determined by their "chr.nation" attribute. That, in fact, is probably why it checks "chr.nation" rather than served nation, as served nation only applies to the player. As it is, NPC's do display their own ranks correctly. Exhibit A, which is what's going to happen when Hornblower receives his promotion to Post Captain:
governor_briefing.jpg
The governor has just used 'GetMyFullName(CharacterFromID("Sir Edward Pellew"))' to tell you who is going to give you your orders.
 
Another point, if you have multiple LoM's, your served nation is PERSONAL. I'm not sure what "GetMyFullName" would do if it checked served nation rather than flag, but it probably wouldn't be pretty...
Since we saw you can't get a rank with your served nation (yet?), it would do nothing at all.
Not ideal.

On the other hand, if it goes by flag, and you have ranks with different nations, you can choose which one to use.
Agreed. :onya

NPC nationality is determined by their "chr.nation" attribute. That, in fact, is probably why it checks "chr.nation" rather than served nation, as served nation only applies to the player. As it is, NPC's do display their own ranks correctly.
Indeed I remember that from when we set it up too. So it's fine. :woot
 
Not sure if I've mentioned this anywhere else:

When you get a promotion, normally you say "I've heard I'm up for promotion" and the governor replies "You are indeed! Excellent work. Your new rank is " plus your rank. A bit too formal for pirates, perhaps? Pirate "ranks" don't sound much like ranks, more like another form of reputation. So now:
pirate_promotion1.jpg pirate_promotion2.jpg
 
When you get a promotion, normally you say "I've heard I'm up for promotion" and the governor replies "You are indeed! Excellent work. Your new rank is " plus your rank. A bit too formal for pirates, perhaps? Pirate "ranks" don't sound much like ranks, more like another form of reputation. So now:
Cool! Makes sense, I reckon. :cheers
 
For pirates the line could be "Arr, I hearing they be callin' me by new name in these seas" or something (sorry, I'm very bad at pirateal).
 
For pirates the line could be "Arr, I hearing they be callin' me by new name in these seas" or something (sorry, I'm very bad at pirateal).
As long as we stay away from the "arrr" and "yarrr" business. Pirates never said anything like that. It was popularised by the actor Robert Newton when he played Long John Silver in Disney's "Treasure Island", an independent sequel, and a short-lived TV series. He started using those noises to vamp, as he was drunk during his scenes and couldn't immediately remember his lines.
 
I think removing all refernces to rank for those serving as pirates is the best idea as this was not a formal military organization in any way. Indeed, since there are no real benefits to rank as a pirate (like new, free ships) removing it (the rank structure for The Brotherhood) would be best.
 
It is there as a bit of a hack anyway.
Mainly give people who officially join the pirates something to do.

There are some slight rewards for higher ranks.
 
It is there as a bit of a hack anyway.
Mainly give people who officially join the pirates something to do.

There are some slight rewards for higher ranks.

Yeah, I think I'm the one who put it in with Brave Black Flag, lol.

Is there a way to make the ranks invisible or just give them all a single, generic name like "Brother of the Coast" so it seems less silly?
 
Back
Top