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

Are the innkeepers' other news usable?

Fluen

Freebooter
I'm just asking out of curiosity.
I've understood and used, that the inkeepers' news about tailors, shipwrights and smiths needing help are opportunities for cargo missions. But what about the other news? Do they also have consequences for the player?
Does the discovered deposits of gold or silver on an island mean, that the particular metal is cheeper there for a time?
Or does an attack on or a fire in a town mean, that the town is in need of planks, so the prices on planks are higher for a time in that town?
 
These events do indeed do something; though the actual in-game impact is likely very, VERY limited.

Does the discovered deposits of gold or silver on an island mean, that the particular metal is cheeper there for a time?
I think that is this one:
Code:
   RandomTownEvent.id = "GOLDFOUND"                               // Town Economy +2
   RandomTownEvent.chance.starving =        7;                       // Chance of it happening (0-100)
   RandomTownEvent.chance.stuggling =        4;                       // Chance of it happening (0-100)
   RandomTownEvent.chance.surviving =        2;                       // Chance of it happening (0-100)
   RandomTownEvent.chance.prospering =    2;                       // Chance of it happening (0-100)
   RandomTownEvent.chance.wealthy =        1;                       // Chance of it happening (0-100)
   RandomTownEvent.troopmultiplier = 1;
   RandomTownEvent.troopsadd = 100;
   RandomTownEvent.sizemultiplier = 1;
   RandomTownEvent.sizeadd = 300;
   RandomTownEvent.goldmultiplier = 7.0/5.0;
   RandomTownEvent.goldadd = 1;
   RandomTownEvent.economy = 3;
   RandomTownEvent.startquest = "Gold Found";                       // Start a specific quest
   RandomTownEvent.pirate = false;                                   // Pirate towns can also be affected
   AddRandomTownEvent(q, RandomTownEvent);

Or does an attack on or a fire in a town mean, that the town is in need of planks, so the prices on planks are higher for a time in that town?
And here's the fire one:
Code:
   RandomTownEvent.id = "FIRE"                                       // Town Economy -1
   RandomTownEvent.chance.starving =        5;                       // Chance of it happening (0-100)
   RandomTownEvent.chance.stuggling =        2;                       // Chance of it happening (0-100)
   RandomTownEvent.chance.surviving =        10;                       // Chance of it happening (0-100)
   RandomTownEvent.chance.prospering =    6;                       // Chance of it happening (0-100)
   RandomTownEvent.chance.wealthy =        5;                       // Chance of it happening (0-100)
   RandomTownEvent.troopmultiplier = 1;
   RandomTownEvent.troopsadd = 0;
   RandomTownEvent.sizemultiplier = 4.0/5.0;
   RandomTownEvent.sizeadd = 0;
   RandomTownEvent.goldmultiplier = 3.0/4.0;
   RandomTownEvent.goldadd = 0;
   RandomTownEvent.economy = -1;
   RandomTownEvent.startquest = "";                               // Start a specific quest
   RandomTownEvent.pirate = true;                                   // Pirate towns can also be affected
   AddRandomTownEvent(q, RandomTownEvent);

You can find the full list in "PROGRAM\Towns\Events.c" (open with Notepad, Notepad++ or any other plain text editor).

As far as I can tell, this is a pretty decent base that could really do with being expanded upon.
 
So there may be a specifik quest based on "gold found", but mostly a discovery of precious metals mean a wealthier town with more soldiers, while an attacked town is poorer with fewer inhabitants and soldiers. At least in the current build.
 
As far as I know, apart from the fetch quests for various people needing help, there are no quests based on any of these events. They can affect the town's economy, which in turn can affect prices of goods, availability of items from stores and traders, and possibly availability of ships in the shipyard. I don't think the fire event affects planks specifically, rather that it weakens the town economy and affects prices and availability generally.

The other item of news which is significant in FreePlay is changes of relations. You may see things like "England has declared war on Holland" or "Spain and France have broken their alliance". Keep an eye on those - if you're flying a Spanish flag while heading into Martinique, believing that France and Spain are allied, and in fact they've broken their alliance and are now at war, the fort will remind you... It's even more significant if you're a privateer - make sure that the enemy ship which you're about to attack is in fact still an enemy!
 
Thank you for that warning, Grey Roger. It would have been a nasty wake-up call to be met with cannon fire from an expectedly friendly fort.
 
I've done a bit more checking into this. There is "PROGRAM\Towns\Events.c", which contains function "GetRandomTownEvents" which sets up all the events, and function "LaunchRandomTownEvent" which does what it says - picks an event at random and does whatever was set up for that type of event by "GetRandomTownEvents". Some events have associated quests, e.g. malaria should run quest "Malaria Strikes". And that ought to generate an error message because no such quest exists.

Except that there is also a definition of "LaunchRandomTownEvent" in "PROGRAM\Towns\Towntable.c". This one doesn't seem to do anything with the events set up by "GetRandomTownEvents", and in particular, doesn't try to launch any quests. Why the system doesn't get upset by two definitions of the same function when it definitely gets upset by two definitions of the same variable, I don't know. Possibly "Events.c" is never loaded in Build 14 so its version of "LaunchRandomTownEvent" is never loaded either; at the least, the absence of any complaints about non-existent event-related functions indicates that it's never run.
 
So there may be a specifik quest based on "gold found", but mostly a discovery of precious metals mean a wealthier town with more soldiers, while an attacked town is poorer with fewer inhabitants and soldiers. At least in the current build.
Pretty much.

And the "number of soldiers" is only noticed when you attack the fort; while the number of "inhabitants" is probably the number of hireable crew.
It doesn't really affect the character you see while walking around in any way.

As far as I know, apart from the fetch quests for various people needing help, there are no quests based on any of these events.
Looks to me like that's a feature someone (@Sulan? @Levis?) once intended to add, but never finished.

Except that there is also a definition of "LaunchRandomTownEvent" in "PROGRAM\Towns\Towntable.c". This one doesn't seem to do anything with the events set up by "GetRandomTownEvents", and in particular, doesn't try to launch any quests. Why the system doesn't get upset by two definitions of the same function when it definitely gets upset by two definitions of the same variable, I don't know. Possibly "Events.c" is never loaded in Build 14 so its version of "LaunchRandomTownEvent" is never loaded either; at the least, the absence of any complaints about non-existent event-related functions indicates that it's never run.
Checking a bit further, indeed I haven't been able to find an "#include" line for "Events.c" .
And looking at that file now, it looks like something @Levis worked on at some point in the past.

Shame it's currently not functional.
Having these Events actually MEAN something for the gameplay would be pretty darn cool, if you ask me. :woot
 
Checking a bit further, indeed I haven't been able to find an "#include" line for "Events.c" .
And looking at that file now, it looks like something @Levis worked on at some point in the past.

Shame it's currently not functional.
Having these Events actually MEAN something for the gameplay would be pretty darn cool, if you ask me. :woot

I do have memories of this but it is a very very long time ago :p .
Could look into it later, seems to be mostly functioning but just disabled.

And I think the idea was to have the quests do some more stuff. I do see a problem with this setup now where the quest entry would need figure out which town is actually affected, but that is solvable.
 
Could look into it later, seems to be mostly functioning but just disabled.
Your choice.

By the number of threads I've seen from you, you already have a few other things brewing on the fire.
Probably wise to finish those first?
 
More interesting might be to go the other way - rather than have tavern news affect quests, perhaps have quests affect tavern news? Perhaps create a function which inserts an item of news. Then use it when, for example, the player raids or captures a town. It could also be used in storylines - off-hand I can think of at least one use in each of "Ardent" and "Assassin", and there may be more uses in those or other storylines.
 
Perhaps create a function which inserts an item of news.
If I'm not mistaken, you should be able to do that with this function from PROGRAM\sulan_shipslog:
Code:
void WriteNewLogEntry(string logTitle, string logEntry, string logCategory, bool bVisible)
With 'bVisible = false', whatever entry you put in there should become known to the player only after reading the Tavern News.

Then use it when, for example, the player raids or captures a town.
Should already happen; see use of the above function in PROGRAM\Dialog_func.c .
That's with 'true', of course, because you don't need the tavern owner to tell you that you yourself just raided a town.

More interesting might be to go the other way - rather than have tavern news affect quests, perhaps have quests affect tavern news?
Especially more interesting if that news is added as a sort of rumour/hint during the quest.
Would be nice if there's an actual incentive to make use of that feature regularly, because it actually tells you stuff you really kind-of need to know.
 
If I'm not mistaken, you should be able to do that with this function from PROGRAM\sulan_shipslog:
Code:
void WriteNewLogEntry(string logTitle, string logEntry, string logCategory, bool bVisible)
That's not the tavern news. It's the ship's log. ;)
Especially more interesting if that news is added as a sort of rumour/hint during the quest.
Exactly. The example in "Ardent" I had in mind is where you've learned of a French plot to invade Port Royale with the help of the villain, which you can prevent if you go to Port Royale in time to warn the governor. If you don't get to Port Royale in time, the plot succeeds, and that's when I'd put an article in the news that the French have captured Port Royale.
 
That's not the tavern news. It's the ship's log. ;)
It's both. At least partly.
Technically they're both part of the same system.

That's why I specified 'bVisible = FALSE'; I think that's what makes the difference.
And according to PROGRAM\INTERFACE\news.c, only the "General" stuff shows up at the tavern:
Code:
      if(myCh.shiplog.Category.(tmp) == "General")
      {
        SendMessage(&GameInterface, "lsle", MSG_INTERFACE_MSG_TO_NODE, "SHIPSLOG_WINDOW", 0, &tmpLogTitle);
      }

Exactly. The example in "Ardent" I had in mind is where you've learned of a French plot to invade Port Royale with the help of the villain, which you can prevent if you go to Port Royale in time to warn the governor. If you don't get to Port Royale in time, the plot succeeds, and that's when I'd put an article in the news that the French have captured Port Royale.
Sounds easy enough to me.
 
Back
Top