• 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 Quest-Dependent Nicknames for Characters

Pieter Boelen

Navigation Officer
Administrator
Storm Modder
Hearts of Oak Donator
Originally posted here: http://www.piratesahoy.net/threads/a-story-to-unfold.24827/
Oh, and by the way, i thought of an idea.
How about we get nicknames due to certain actions in the game? For example: Nathaniel Hawk is our character, and we lose an eye due to a side quest. After the quest the character's name changes to Nathaniel 'One Eyed' Hawk. Or we attack a ship of the nation that we have a Letter of Marque of. It changes into Nathaniel "The Betrayer" Hawk. Anyway, just an idea.
 
@WeekendWarrior: I think I saw some code somewhere that deals with nicknames, but it isn't used much so far.
If I recall, there is one example for captain "Dreadnaught" Foster in the Hornblower storyline.
Not entirely sure how or when it displays, but I think it does show up somewhere.
So your suggestion sounds like it might be possible, though it would probably be a fair bit of work.

Also, what if different things give you different nicknames? Which one do you keep?
Only the first? Or instead the most recent one? Or should you nickname keep expanding into ridiculousness?
Nathaniel "The One Eyed Betrayer" Hawk? :rofl

I won't be doing any work on this myself, since I have too many other larger and more important projects to work on.
But if you are interested in making this happen, of course I'll be happy to point you in the right direction. :doff
 
I don't know for sure but I think "Dreadnought" Foster handles the nickname by the simple trick of making it his first name. That's certainly how the dialog file name handles it, being "Dreadnought Foster_dialog.h". You first meet him at the end of the "Tunnel of Trouble" episode; you've been ordered to take Sir Arthur Wellesley to Kingston, you meet "Dreadnought" Foster on the beach, he wants to commandeer your ship so that he can get to Kingston, hilarity ensues. Foster apparently gets his nickname from his ship; he initially introduces himself to you as "Captain Foster of the Dreadnought".

Other characters with built-in nicknames include "Black" Charlie Hammond, also in "Hornblower"; and "Bootstrap" Bill Turner in "Hoist the Colours". There are probably more...

I'd suggest keeping the most recent nickname only. It's going to get silly if you get one for noble deeds and another for ignoble deeds, ending up as Nathaniel "Honourable Betrayer" Hawk. xD Perhaps also have a way to clear the nickname, e.g. by paying lots of money to the church, a tavern keeper, or pick some other suitable candidate.
 
I don't know for sure but I think "Dreadnought" Foster handles the nickname by the simple trick of making it his first name. That's certainly how the dialog file name handles it, being "Dreadnought Foster_dialog.h". You first meet him at the end of the "Tunnel of Trouble" episode; you've been ordered to take Sir Arthur Wellesley to Kingston, you meet "Dreadnought" Foster on the beach, he wants to commandeer your ship so that he can get to Kingston, hilarity ensues. Foster apparently gets his nickname from his ship; he initially introduces himself to you as "Captain Foster of the Dreadnought".
The name of the dialog file doesn't have any impact in the game at all.
Check the PROGRAM\Storyline\Hornblower\Characters\init files to be sure; I seem to remember some characters getting a real nickname set there.
I know I saw some of @konradk's code related to that, but never looked into it very much.
 
It's his first name, then. "Story.c" includes this:
Code:
   ch.old.name = "Dreadnought";
   ch.old.lastname = "Foster";
   ch.name = TranslateString("","Dreadnought");
   ch.lastname = TranslateString("","Foster");
   ch.id     = "Dreadnought Foster";
And one section up:
Code:
   ch.old.name = "Edward";
   ch.old.lastname = "Pellew";
   ch.name = TranslateString("","Edward");
   ch.lastname = TranslateString("","Pellew");
   ch.id     = "Sir Edward Pellew";

Black Charlie Hammond is handled the same way. So is Bootstrap Bill Turner. Both of them have two-word ch.name, "Black Charlie" and "Bootstrap Bill" respectively.
 
Yup, looks like the nickname thingey just isn't used.

Hmm.... I'm trying to remember now. Perhaps that was an unfinished feature that I removed because it didn't work quite right anyway.
I know I've seen it, but it could very well be that I saw it, found it didn't work entirely as desired, figured it wasn't important enough to try and fix, then removed the code.
 
Back
Top