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

Need Help Creating New Free-Play Storylines

megaloptus

Landlubber
What is the simplest way to create a new free play storyline? I want to basically set up a template where I can set the date, start model/ship/nation, etc etc and play from there as the character I set up. I tried this with Master & Commander by setting the start model, ship, date, location and nation to what I want in JackAubrey.c in PROGRAM/Storyline, but when I try to start a new game, no load screen comes up and nothing happens after I press the start button. The storyline that I want to make has no story or scripting, as is essentially nothing but free-play.

Any help is much appreciated.
 
Can you show here what you put in JackAubrey.c? That should work just fine. Probably something went wrong... :confused:
Though the starting location needs setting in PROGRAM\Storyline\JackAubrey\StartStoryline.c as well.
 
Can you show here what you put in JackAubrey.c? That should work just fine. Probably something went wrong... :confused:
Though the starting location needs setting in PROGRAM\Storyline\JackAubrey\StartStoryline.c as well.
So i found out what i was doing wrong. The model I chose was misspelled so after I fixed that it worked. I still have questions though. I want to make an entirely new entry to the storyline choosing menu so I don't have to overwrite Master & Commander. I also had problems setting my relations with nations. I chose spain as the nation but when I started the game I was still hostile with Spain and friendly with England. This seemed to be the default relation setting in M&C and I couldn't figure out how to change it from the default. Also it'd be helpful if I could start the new game already with a Letter of Marque with a nation that I choose.

Also, another misc question that I'd rather not make a whole new thread about if it can be answered quickly here; how do I change the default model of my crewmembers? I understand how to set the model of who goes ashore, but in M&C, the crewmembers changed to British soldiers automatically as I gained rep with Britain. I want to know how to set their model from the start.
 
The starting nation doesn't influence your relations (yet), but only the flag you have when you start out.
And since you use a fake flag, that is being overridden in the StartStoryline.c file.
PROGRAM\Storyline\JackAubrey\PROGRAM\Storyline\JackAubrey.c is also where you should set your preferred starting relations:
Code:
    // Modify Default Relations
    SetActualRMRelation(ENGLAND, REP_LEAVEMIN);
    SetActualRMRelation(FRANCE, REL_WAR);    // Same as England
    SetActualRMRelation(HOLLAND, REL_WAR);    // Same as England
    SetActualRMRelation(AMERICA, REL_WAR);    // Same as England
    SetActualRMRelation(SPAIN, REL_WAR);    // Same as England
This will set your boardermodels to soldiers right from the start:
Code:
string BOARDERMODEL = "marine";
And this gives you a starting rank:
Code:
SetRank(pchar, ENGLAND, 1);                        // Midshipman
For some reason, I have been unable to figure out yet how to give you a LoM from the start; I put in the code, but it won't work.
This is the next best thing. :facepalm

The opening QuestBook entry is in RESOURCE\INI\TEXTS\ENGLISH\Storyline\JackAubrey\QUESTBOOK\Beginning.txt

I hope that covers it all. :doff
 
The starting nation doesn't influence your relations (yet), but only the flag you have when you start out.
And since you use a fake flag, that is being overridden in the StartStoryline.c file.
PROGRAM\Storyline\JackAubrey\PROGRAM\Storyline\JackAubrey.c is also where you should set your preferred starting relations:
Code:
    // Modify Default Relations
    SetActualRMRelation(ENGLAND, REP_LEAVEMIN);
    SetActualRMRelation(FRANCE, REL_WAR);    // Same as England
    SetActualRMRelation(HOLLAND, REL_WAR);    // Same as England
    SetActualRMRelation(AMERICA, REL_WAR);    // Same as England
    SetActualRMRelation(SPAIN, REL_WAR);    // Same as England
This will set your boardermodels to soldiers right from the start:
Code:
string BOARDERMODEL = "marine";
And this gives you a starting rank:
Code:
SetRank(pchar, ENGLAND, 1);                        // Midshipman
For some reason, I have been unable to figure out yet how to give you a LoM from the start; I put in the code, but it won't work.
This is the next best thing. :facepalm

The opening QuestBook entry is in RESOURCE\INI\TEXTS\ENGLISH\Storyline\JackAubrey\QUESTBOOK\Beginning.txt

I hope that covers it all. :doff

What are the different relationship levels? As in, what does REL_WAR and REP_LEAVEMIN mean and what is the relation for neutral or allied?

And how can I add a model to the starting inventory so I can immediately change my crew to the models that I want without having to find it at a tailor shop?
 
What are the different relationship levels? As in, what does REL_WAR and REP_LEAVEMIN mean and what is the relation for neutral or allied?
These are the ones:
Code:
#define REL_MIN -119.0
#define REL_WAR -60.0
#define REL_AFTERATTACK -45.0
#define REL_AMNESTY -30.0
#define REL_NEUTRAL 0.0
#define REP_LEAVEMIN 30

And how can I add a model to the starting inventory so I can immediately change my crew to the models that I want without having to find it at a tailor shop?
Use:
Code:
GiveModel2Player("Jack",false);
Replace "Jack" with what you want.
 
I am also tweaking the Jack Aubrey storyline. What I would like to know is, how to change the cargo load of your starting ship. For example, I want to exchange Aubrys' advanced frigate with a tartana. But when I do so, the tartana is fully loaded with cannon balls. Which code do I have to tweak to change that?

Also, if I change the time period by changing the year, will things like ship types, port names, port nationalities, military costumes etc. change automatically with the time period?

And last, Aubrys' Startstoryline.c contains this code: PChar.nation=AMERICA; I don't suppose this code determines Aubrys' nationality, since he is English. Can I leave all code that relates to AMERICA in there, even if I change to a much earlier period?
 
I am also tweaking the Jack Aubrey storyline. What I would like to know is, how to change the cargo load of your starting ship. For example, I want to exchange Aubrys' advanced frigate with a tartana. But when I do so, the tartana is fully loaded with cannon balls. Which code do I have to tweak to change that?
I'm not quite sure where your starting goods are set. Consider using GiveShip2Character . See StartStoryline.c from Jack Sparrow for an example.

Also, if I change the time period by changing the year, will things like ship types, port names, port nationalities, military costumes etc. change automatically with the time period?
Yep. :yes

And last, Aubrys' Startstoryline.c contains this code: PChar.nation=AMERICA; I don't suppose this code determines Aubrys' nationality, since he is English. Can I leave all code that relates to AMERICA in there, even if I change to a much earlier period?
That code is in there to hoist a false flag and prevent you from being killed by the fort as soon as you set sail.
You can safely remove it. It'll be handled slightly different in Beta 3.
 
Ok thx Pieter. I'm not quite sure yet how exactly 'GiveShip2Character' works, but that's fine for now. My modified Aubrey-game works well so far. :doff One more thing though. which nation is at war with the others at the beginning of the game, is controlled by each time period that I choose, or can these settings also be changed somewhere?

Thx again for the quick reply!
 
Ok thx Pieter. I'm not quite sure yet how exactly 'GiveShip2Character' works, but that's fine for now.
Easy peasy. This is the syntax of what it means:
Code:
GiveShip2Character(ref char, string shiptype, string shipname, int cannon_type, int nat, bool hirecrew, bool getsupplies)
This, for example, gives you a fully supplied and crewed English Steamfrigate:
Code:
GiveShip2Character(pchar,"RN_SteamFrigate","HMS Astrea",-1,ENGLAND,true,true);

One more thing though. which nation is at war with the others at the beginning of the game, is controlled by each time period that I choose, or can these settings also be changed somewhere?
It is defined per period, but you CAN override it. See here for an example of the Beta 3 Assassin StartStoryline.c file:
Code:
    LoadMainCharacterInFirstLocation(sTeleportLocName, rldGroup, rldLocator, loadPort); // KK

    // PB: Modify Default Relations
    SetNationRelationBoth(ENGLAND, FRANCE,   RELATION_ENEMY);                                // Bartolomeu: Required for story
    SetNationRelationBoth(ENGLAND, PORTUGAL, RELATION_FRIEND);                                // Bartolomeu: Required for story
    SetNationRelationBoth(FRANCE,  SPAIN,    RELATION_FRIEND);                                // Bartolomeu: Required for story
    SetRelationsAsNation(sti(PChar.nation));                                                // Set nations as per selected flag
    if(sti(PChar.nation) == HOLLAND) SetActualRMRelation(HOLLAND, REL_AFTERATTACK);            // Bartolomeu: Wary because he's smuggler
    if(GetNationRelation2MainCharacter(HOLLAND) == RELATION_ENEMY)    PChar.nation = HOLLAND;    // If necessary, hoist false flag
You need those SetNationRelationBoth lines. You can also use RELATION_NEUTRAL .
 
Back
Top