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

Fudge Dragon's Changing face of the Caribbean Modifcation

fudge dragon

Landlubber
Storm Modder
Right I have just finished a mod that allows the relations between nations to change over time. These changes have a chance of occurring once a day at about a 1/366 chance. That's an average of one change between each nation per year, which I thought was reasonable. In addition to this due to the tension between England and France in the mainquest their relation won't change until you've stabbed/sunk/locked up sleihard.

Sadly installation is quite complex due to the number of current build versions out their

There's no build 13 update 3 version at the minute as I expect pirate_kk doesn't want to add any new content to that (after all that's why we have the alphas)

If you have alpha 6 you need this version. Changing face of the Caribbean. Build 14a6 version.zip

If you have the alpha 6 additional installed you need this version instead. Changing face of the Caribbean. Build 14a6 additional version.zip

There are 2 files for alpha 7 as you have a different DailyCrewUpdate.c depending on whether you had the alpha 6 additional pack installed before you put alpha 7 on. For non additional versions you need this one. Changing face of the Caribbean. Build 14a7 version.zip
If you had the additional on before alpha 7 you need this one. Changing face of the Caribbean. Build 14a7 with a6 additional version.zip

Due to the number of different build versions including a buildsettings.h file would have been to time consuming and all you lot would have lost your custom settings so the trigger has to be added manually.

Add <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->#define    CHANGING_RELATIONS                1         // INT - Relations between different nations can change over time. 1 = mod enabled.<!--c2--></div><!--ec2--> To either buildsettings.h (or buildsettings.dat if your running alpha 7) or internalsettings.h. I personaly suggest internalsettings.h under DAILY UPDATE CONSTANTS but it works fine wherever you put it.

The mod will of course not run if random relations is switched off.

I have also included a small fix for a harmless but irritating bug. Your tailor will no longer have missing descriptions. If you want the fix but not the mod only copy the RESOURCE\INI\TEXTS\ENGLISH\models_description.txt across


Strings (and the fix) will only be displayed for the English language version of the game as I cant for the life of me speak anything other than English and I don't trust those online translator things to get the grammar right so im sorry to say the non English speakers here are gonna have to translate themselves.
I may not be able to do it myself but for those not in the know to add strings you need open RESOURCE/INI/TEXTS/"YOURLANGUAGE" and open up interface_strings.txt (or models_description.txt if you're doing the fix) you then need to copy the strings from the english versions and change the strings in the brackets. If someone does translate it if you put it on the FTP I'll include it in the next release (oh I have plans) along with credit. (make sure you post on this tread as well or I'll never know who did it)

The file are on the POTC ftp in the fudge dragon's files section (for information on the FTP details see <a href="http://www.piratesahoy.com/forum/index.php?showtopic=10288" target="_blank">this</a> post.

Smooth sailing in a now changing Caribbean. Post back and tell me what you think.

OK my bad. The direct links don't work updating post to reflect that.
 
Thanks,

I merged your work and it'll be included in next B14 Alpha update.

If I could suggest some modification - maybe instead of placing immediate info we could make changes "quietly", so change in relations occurs but player doesn't realize that - until (s)he talk with people in town or is attacked by nation who should be neutral or friendly to his/her current nation?

pirate_kk
 
Hmm that's and idea. There's no way I can keep the relation screen from giving the info but I suppose I could add it to the town peoples dialogues. It would certainly add more use to the "what's our standing with other nations that the governor has".

I'll have to work out how to change that though!

I seem to have encountered what I believe to be a bug. All the nations on my game, except Pirates and Everyone and England and France have allied. It may just be coincidence but just In case I suggest it be turned off as standard. at least until I can confirm.

Still its working better than last night. I spelt ENGLAND wrong!
 
and it's spelled, not spelt. <img src="style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" /> it seems to me like a good idea, but i think having the changes occur without warning could result in all kinds of posts from noobs telling about ships suddenly attacking them. <img src="style_emoticons/<#EMO_DIR#>/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" />

i can see a problem where you could lose a LoM this way because you have raised the now wrong flag. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
 
Ok There was a bug. I'd put ; on my ifs for some reason, so it was skipping them and going straight to else. I got that bug fixed as well as improved mainquest detection. (found a nice function to get the owner of a settlement).

However when its all working right I get
RUNTIME ERROR - file: worldmap\worldmap_events.c; line: 105
process event stack errors In my error log. As I havn't toutched worldmap_events.c I'm a little confused. Anyone got any idea what a process event stack is.
 
<!--quoteo(post=202596:date=Jun 17 2007, 09:36 PM:name=fudge dragon)--><div class='quotetop'>QUOTE(fudge dragon @ Jun 17 2007, 09:36 PM) [snapback]202596[/snapback]</div><div class='quotemain'><!--quotec-->Ok There was a bug. I'd put ; on my ifs for some reason, so it was skipping them and going straight to else. I got that bug fixed as well as improved mainquest detection. (found a nice function to get the owner of a settlement).

However when its all working right I get
RUNTIME ERROR - file: worldmap\worldmap_events.c; line: 105
process event stack errors In my error log. As I havn't toutched worldmap_events.c I'm a little confused. Anyone got any idea what a process event stack is.<!--QuoteEnd--></div><!--QuoteEEnd-->

I don't know what changes you made, but it seems that you called event as a function. When you did it, GetEventData() call in worldmap_events.c didn't find required value, so I think that error comes from that. I can't tell which call was that as I don't have error.log, but most code there are really events. I think you should check what data said function require and invoke it as:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->PostEvent(NameOfEvent, Delay, EventTypeString, EventValuesList);<!--c2--></div><!--ec2-->
where NameOfEvent is a string beeing name for event (usually defined with SetEventHandler or #event_handler clause), Delay is retardation in msec after which event would be executed (you'll probably set it as 0), EventTypeString is a string telling quantity and types of sequential event parameters (i.e. "lsfia" mean that event has five parameters; first is int, second - string, third - float, fourth - ref and fifth - aref) and finally EventValuesList is list of parameters in form <parameter_1>, <parameter_2>, ..., <parameter_3> which types and quantity must match those specified in EventTypeString.

Abstract example:

<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->#event_handler("SomeAction", "DoSomeAction");
void DoSomeAction()
{
  int i = GetEventData();
  string s = GetEventData();
  ref chr = GetEventData();
  ...
}

void SomeFunction()
{
  ...
  int i = 1;
  string s = "Some text";
  ref chr = CharacterFromID("Some character");
  PostEvent("SomeAction", 0, "lsi", i, s, chr);
  ...
}<!--c2--></div><!--ec2-->

I hope I explained it clearly enough...

pirate_kk
 
Hmm I didn't get half of that but I haven't seen that error again!

I have replaced the original version on the FTP with the fixed version. Players will no longer see all nations hitting allied with none at war!

Also as a small feature I had forgotten was in my DailyCrewUpdate.c. Players will no longer get the log messages saying they have been out _ days when they are paying a salary.

Next thing you'll be seeing from me is my fix for the "Strange things in the Archipelago quest" I finally convinced those monks that I'm not hamlet!
 
actually, i like the fact that i can see how many days i've been sailing. <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" /> besides that, that way you can see wether you are on time with a trading mission.
 
Yes If someone could find a way to reset if whenever you go to shore it would be a great. problem is it gets up into the thousands by gameend and I find it easier to keep track of the time using the date. Like I said, It wasn't an intended feature. Ill be sure to edit it out of the next version before release.
 
Back
Top