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

Fixed Governor Dialog Error: Incorrect "In Service" text

HellSailor

Privateer
Storm Modder
This from Beta 4 WIP; It has happened before Levis' new stuff, so even after installing that, the problem still remained there.

I selected my character to be a "class merchant" type, with an EITC passport with my nation being England. When I recently started the new and free campaign, here there was my relations with other countries:

Bug Relaciones 1.jpg

As you see, I'm friendly with England and France. It is supossed that when you are friendly with a nation, you get points after sinking or capturing ships of the nations which are hostile to them, although at a reduced scale: you only get one point for each ship (I think).

But because I have the EITC passport, I can't board or sunk any ship that it's not pirate, because then I will lose it. So I decided to go to Nevis in order to get a LoM and not lose the EITC passport. Went to the townhall and here is the conversation which I first had with him:

Bug relaciones 2.jpg

As you see, the governor thinks I'm serving now England and because of that, I have to lose my privileges in order to get a properly LoM.
"But hey, if you are friendly to England, then you SHOULD be gaining points even when sinking pirate ships!"

Well, yeah... that's what I thought, but the relations' system was broken and even after boarding or sinking 3 pirate ships, the number didn't go up. So that's why I went to talk to the governor: To restart my relations with him from zero.

After losing 5 points of personal reputation, I talked to him again, and then it happened this to me:

Bug relaciones 3.jpg

WTH?? It hasn't worked? I checked my relations with other countries and... nothing happened, except losing that personal reputation.

Bug relaciones 4.jpg

I tried again with that but nothing happened, except losing more personal reputation points. I hope this bug is clearly explained. Below you have the .logs archives.

Strangely, there are no error logs for this problem.
 

Attachments

  • compile.log
    47.2 KB · Views: 77
  • system.log
    2.7 KB · Views: 102
Do you have a savegame for that too? You should not be having any LoM at all so that Governor dialog is definitely wrong.

It is, however, quite normal with the rewritten system that you don't gain any points at all, not even for sinking pirate ships.
You now only gain points with a nation if you are actually officially in its service.

As long as you have no LoM, you have no legal reason to capture or sink non-pirate ships.
Doing so anyway is considered a minor act of Piracy and enough of those will make you friendly with the Pirates, but also mark you as a traitor.
As you noticed, you lose the Merchant Passport upon any act of Piracy. However, even if you would not have such a Passport, those same actions would still be considered a minor act of Piracy.

Sinking or capturing pirate ships is not considered an act of Piracy though, so you don't lose your Merchant Passport for that either.
But you're still not in the service of any nation, so don't gain points either.

Does that make sense?
If you ask a Governor about nation relations, you should get a book that explains how the system is now is now intended to work.
If anything is unclear or if anything doesn't seem right to you, please say so; all this behaviour is quite new and different.

But whatever is happening with that particular governor's dialog is definitely wrong.
I'll check that early next week as long as I've got a save with which to replicate the issue.
 
Thread renamed for accuracy.

@Pieter Boelen , here you have the save. It's in Charlestown townhall, Nevis.
Thanks! Confirmed and hopefully fixed too:

This was quite a silly problem! See this section of code in PROGRAM\DIALOGS\governor.c:
Code:
          if (GetRMRelation(PChar,iNation) < REL_NEUTRAL) {
             if(ProfessionalNavyNation() == UNKNOWN_NATION)
             {
               Link.l4 = DLG_TEXT[28];
               Link.l4.go = "LoM";
             }
           } else {
             if (SetupMR(&PChar, &NPChar)) {
               dialog.text = GenerateMR(PChar, NPChar);
             }
             if (PromoteCanBe(PChar, iNation) && GetRMRelation(PChar, iNation) > RequiredNextRank(PChar, iNation)) {
               if (GetMusicScheme() == "PGMUS") SetMusicNoPause("music_govreward"); // PG // KK
               Link.l4 = DLG_TEXT[29];
               Link.l4.go = "promote";
             }
             Link.l6 = PCharRepPhrase(DLG_TEXT[30] + XI_ConvertString(GetNationNameByType(iNation)) + DLG_TEXT[31], DLG_TEXT[32] + XI_ConvertString(GetNationNameByType(iNation)) + ".");
             Link.l6.go = "leave";
           }
That code assumes that if you're friendly to a nation (e.g. relation of 0 or higher), you are also in the service of that nation.
That might have been the case once, but is no longer true. It might just be your own nationality at game start.
This used to show as "Neutral", but I figured that didn't make sense for your own country so I allowed you to be Friendly without officially being in service.

I propose changing the offending line to:
Code:
if (!IsInServiceOf(iNation)) { // PB: was GetRMRelation(PChar,iNation) < REL_NEUTRAL
That should prevent the "in service" dialog unless you're actually in that nation's service.

Thanks a lot for catching this one! It is definitely a really tiny error with the potential to be really annoying and confusing.
Better have it behave itself a tad more sensibly.... :wp
 
Thanks for looking at it! So I put this line:
[...]
And then it will work? Also, do I have to press F11 or something?
Nope, it'll work directly. You don't even need to close the game for it.

I am including it in the new EXE update that I am uploading now.
 
I think we can call this fixed. @HellSailor did you test it already?
 
Did you get the chance to confirm this one yet?
Yes, sorry to be late to inform about it.

Anyway, this fix has properly work. No more problems with relations and LoM while being merchant. Take a look at these two screenshots:

Relations working good.jpg
This happened when talking to the governor of San Juan, in Puerto Rico. I can get a LoM without any problem.
After talking to him, I checked my relations and with Spain I had a LoM activated.

Relations working good 2.jpg

Thanks for the fix ;)
 
Anyway, this fix has properly work. No more problems with relations and LoM while being merchant.
Excellent! Thanks for confirming. :doff
This problem could have applied to any player type, excepting those who already start with a LoM.
So thanks for catching! Would have been a weird effect to have in a public release! :shock
 
Back
Top