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

The Captain's Challenge mods

Yes, that has been my thought all along, define a group of characters to be boarding crew - heh, imagine a whole bunch of those WOMEN swarming over a ship! Those superstitious pirates would leap overboard immediately! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />
 
I made the group "girls" especially for you, Cat <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/flower.gif" style="vertical-align:middle" emoid=":ty" border="0" alt="flower.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/oops3.gif" style="vertical-align:middle" emoid=":eek:ops2" border="0" alt="oops3.gif" />

Though there are only the usual towngirls in it, cause it was easy to assign modelnames like towngirl1,2,3 etc. in a loop.

But it is a very good idea idea to make customizable groups <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" /> Can be done by

1. adding defines for additional models to Buildsettings.h

#define BOARDERMODEL "corsair2" // charactermodel for your boarders, choose filename from resourcemodelscharacters
// OR select one of these groups: "marine", "corsair", "masked", "skeleton", "girl"
// set to "" to toggle
#define BOARDERMODEL2 "will"
#define BOARDERMODEL3 "admiral"
#define BOARDERMODEL4 "nobleman"


2. Adding a section to Loc_AILAi_boarding.c that assigns those models to your boarders randomly:


case "girl":
chr = LAi_CreateFantomCharacterEx(0, true, true, 0.25, "towngirl" + (1 + rand(3.4)), "woman", "rld", "loc1");
chr.sex = "woman";
break;

model = BOARDERMODEL;

// addition start
switch(rand(3)) // switch to 3 leaves first model unchanged
{
case 0: if (BOARDERMODEL2 !="") model = BOARDERMODEL2; break;
case 1: if (BOARDERMODEL3 !="") model = BOARDERMODEL3; break;
case 2: if (BOARDERMODEL4 !="") model = BOARDERMODEL4; break;
}
// addition end

chr = LAi_CreateFantomCharacterEx(0, true, true, 0.25, model, "man", "rld", "loc1"); //ccc position of own crw
// change modelvariablename to "model" from the original "BOARDERMODEL"

Though you would have to change the "man" to "woman" for females manually. Is that allright or shall I make another buildsetting tweak

#define BOARDERSEX "man"

Might lead to misunderstandings <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/rolleyes.gif" style="vertical-align:middle" emoid=":rolleyes:" border="0" alt="rolleyes.gif" />



The weaponchest idea is another good one, but I can offer no ready solution for that. Does anyone know a bit about chests and how they are being filled and emptied? E.g. if we put spareweapons into the chest in the cabin, would they stay there or do items put in there disappear? If they stay it might be possible to turn the cabinchest into a weaponslocker for your boarders.
Come to think of it, that might be a much better solution than my awkward presetting of a boarderweapon in buildsettings.h . Instead you could select the weapons that you want your boarders to use in the game: by putting them in the locker. And with Inez tool one could make a special "weaponslocker" box in the cabinlocation... And maybe this works for skillenhancing items as well...

Thanks for setting my mind spinning, Cat <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" /> Sorry, Thiefmod, I'm afraid I must put you back again. Yet another tempting idea steals my attention <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/bounce.gif" style="vertical-align:middle" emoid=":b:" border="0" alt="bounce.gif" /> <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/type_1.gif" style="vertical-align:middle" emoid=":nk" border="0" alt="type_1.gif" />


Alan, <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /> the number of boarders etc. remains unchanged. The mod changes only model and weapons and reloadposition.
 
<!--`QuoteBegin-v_Grimmelshausen`+--><div class='quotetop'>QUOTE(v_Grimmelshausen)</div><div class='quotemain'><!--QuoteEBegin-->Thank you.  
By the way, what´s your next project, if you´ve got one? I´d love to overwork the international relations a bit, so the political situation changes over time instead of remaining the same all the time. I thought about using rumors for that, similar to some quests, just now you hear a rumor "Nation X is at war/ has made peace with Nation Y", and the nation relations are adjusted accordingly. I just don´t know how to put it into code.[/quote]
Yes, that would add a lot of depth and change to the gameworld. It would be great if you could tackle that <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" />
I have harboured ideas for a "nation.strength" attribute for some time which might be useful for you. I put them in a seperate thread.
 
<!--`QuoteBegin-CouchcaptainCharles`+--><div class='quotetop'>QUOTE(CouchcaptainCharles)</div><div class='quotemain'><!--QuoteEBegin-->I made the group "girls" especially for you, Cat  :ty  :eek:ops2 [/quote]

Hey, <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_eek.gif" style="vertical-align:middle" emoid=":shock:" border="0" alt="icon_eek.gif" /> and I being the one who travels up and down the Spanish Main with all female officers. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile2.gif" style="vertical-align:middle" emoid=":))" border="0" alt="smile2.gif" />

<!--`QuoteBegin-CouchcaptainCharles`+--><div class='quotetop'>QUOTE(CouchcaptainCharles)</div><div class='quotemain'><!--QuoteEBegin-->
Though there are only the usual towngirls in it, cause it was easy to assign modelnames like towngirl1,2,3 etc. in a loop.[/quote]

Hmmm, that might put in some that don't show swords, Towngirl5 and 6 if memory serves me.
They fight well, but look strange.

If only someone could add sword and pistol locators to the female gm's ...
 
<!--`QuoteBegin-CouchcaptainCharles`+--><div class='quotetop'>QUOTE(CouchcaptainCharles)</div><div class='quotemain'><!--QuoteEBegin-->      
#define BOARDERSEX   "man"

Might lead to misunderstandings  :rolleyes: .[/quote]

Right on dude... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" /> , man ... like ... the FCC might like ....

call you to testify man ... and like ... to "#define BOARDERSEX "man""

<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile2.gif" style="vertical-align:middle" emoid=":))" border="0" alt="smile2.gif" />
 
<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" /> ROTFL!!! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" /> Like ...Wow, man! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />

No, my ship is generally filled with all the beefy boys... My officers usually are bocman1, 3, & 4, fawn (I love Ralph!), and FRED BOB! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />

But think on it... You could actually play as Barbossa, and have a crew of Skellies, if you wish! I love that! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />

A Build Setting tweak is always best, CCC... <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" />
 
<!--`QuoteBegin-CouchcaptainCharles`+--><div class='quotetop'>QUOTE(CouchcaptainCharles)</div><div class='quotemain'><!--QuoteEBegin-->
Yes, that would add a lot of depth and change to the gameworld. It would be great if you could tackle that <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/william.gif" style="vertical-align:middle" emoid=":will" border="0" alt="william.gif" />  
I have harboured ideas for a "nation.strength" attribute for some time which might be useful for you. I put them in a seperate thread.[/quote]

<img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/oops3.gif" style="vertical-align:middle" emoid=":eek:ops2" border="0" alt="oops3.gif" /> Actually, I was hoping for a bit of coding help for this, as I´m not completely sure how to handle this. Adding rumors is easy enough, and there´s atutorial for that, as well, so, getting them shouldn´t be the main problem. About what I´m very unsure are the functions with which to change the nation relations, and how to implement them into the rumor codes. So far, rumors only relate to quests without actually causing them to START, or do they?
 
Thanks again, Cat, <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" /> your feedback (in another post) has made this mod better:

-The amount of firedamage can now be tweaked

-The firalarm is being raised by the ship's bell instead of the whining yell

-ONE firedrill douses all current fires, and charges are also dumped only once

Though casualties among the firefighters still increase with the number of fires.


For all who are interested in coding (all others: Do not read on <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" /> ), here are the changes (marked with // MAR18 )

1. in Seadogs.c

{
mch.firedrill = 1; // adds attribute to player as "marker" that firedrill is ordered
PlaySound("clear_for_action"); // just soundeffect
PlaySound("objectsabordageabordage_loosing.wav");
Ship_SetSailState(mch, 0.0); // smoldering sails jettisoned MAR18
Ship_ChangeCharge(mch, sti(mch.Ship.Cannons.Charge.Type)); // cartridges jettisoned MAR18
Log_SetStringToLog("Sails and cartridges jettisoned."); // MAR18
}


2. in Sea_AIAIShip.c

// ccc firedrill
if(sti(arCharacter.Index) == GetMainCharacterIndex()) // so this runs only for the player
{
// MAR18
DeleteAttribute(arCharacter,"firedrill"); // deletes the markerattribute that starts firedrill
if(FIREDAMAGE>1) // MAR18
{
Log_SetStringToLog("Fire! Press C to order firedrill to all hands!"); // infomessage MAR18
PlaySound("interfacenotebook.wav");} // soundeffect MAR18
} // MAR18
// ccc firedrill end


3. also in Sea_AIAIShip.c

int iSClass = GetCharacterShipClass(rOurCharacter);

float fHP = (8 - iSClass) * (0.5 + frnd() * 0.5) * FIREDAMAGE; // ccc firedrill MAR18

int iTime = 1000 + rand(500);


4. also in Sea_AIAIShip.c

// ccc firedrill
//get ship coords for graphic effects
float fX, fY, fZ;
fX = 0; fY = 0; fZ = 0;
fX=stf(rOurCharacter.Ship.pos.x);
fY=stf(rOurCharacter.Ship.pos.y);
fZ=stf(rOurCharacter.Ship.pos.z);

if(CheckAttribute(rOurCharacter,"firedrill") && fTotalFireTime > 0.0) // MAR18
{
// MAR18// DeleteAttribute(rOurCharacter,"firedrill");
// MAR18// Ship_SetSailState(iOurCharacterIndex, 0.0);
// MAR18// Ship_ChangeCharge(rOurCharacter, sti(rOurCharacter.Ship.Cannons.Charge.Type));
int casualties = makeint(sti(rOurCharacter.Ship.Crew.Quantity)* rand(3)/100 ); // a few firefighters may die


5. and of course the additional tweak in Buildsettings.h

#define FIREDAMAGE 2 // Stock firedamage is multiplied by this. 1 = original value, 0 = no fires.
 
Grimm, I think I have somthing on my other PC that might help you. I'll post it tomorrow in the Nationstrenght thread.
 
It seems to me whatever you put in your chest stays there forever, even if you change ships 100 times. Or at least... nothing new ever shows up there with a new ship, after you've opened the locker in your cabin once and taken everything out, so I assume the obverse is true. That'd be a great feature, a weaponslocker. I was hoping for such a thing back when I was tooling with my "fully explorable ship" mod (doused for now because I've no idea how to get to it from your cabin), because I'd added a larder/armoury location.

CCC: Could the number of boarders be changed? I know if one of the ships' crews has terrible moral or only a few crewmen, the game only gives you a few to fight... but suppose I wanted men totally spilling off the `blood-washed` deck?
 
First: as--always, I think may be fairly said!--excellent ideas and excellent job!

I dunno if this has been done yet, but:
You could I believe do a loop through the chest's item attributes via GetAttribute functions to form an array of all held blades (do this whenever you add an item to the chest) to sort them, and then pull from that (in order) on creating boarding fantoms.

Regarding boarding model choices. What about doing it as a function which sets a string array?
(I.e. like SetDefaultShip or whatever func is above) except in this case do it as:
string boardingmodels[x];
void setboardingmodelsarray()
{
boardingmodels[0]="first model";
....[1]="second"
}

But also allow:
boardingmodels[0]="modelbase_*";
boardingmodels[1]="min_number_to_use";
boardingmodels[2]="max_number_to_use";

and detect the presence of the character "*" in the first string to check which form it will be in; if the former use GetArraySize() to determine how many models we're dealing with (and the latter by makeint(max)-makeint(min) ).
 
I have to admit that I do not completely understand the tons of code that Akella, StoneD and Nathan have put into LAi_boarding.c [Edit: great that Nathan is back to enlighten us <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/bounce.gif" style="vertical-align:middle" emoid=":b:" border="0" alt="bounce.gif" /> ]. All those sophisticated calculations were done to reflect the true strenght of the two shipcrews, morale etc. They limited the number of bordercharacters at several points, and I assume they had a reason for that.

But higher numbers of boarders would certainly be nice. You could try to increase these two limits at the top of the file:

#define BRDLT_MAXCREW 32

....

#define MAX_GROUP_SIZE 6


BRDLT_MAXCREW is probably the max number of chr for the whole boardingprocess, i.e. all decks together, while MAX_GROUP_SIZE is max size of one party per deck.

If increasing those limits doesn't have the effect you want (because the sophisticated calculations apply lower limits) you could try a jackhammer method to get mass boardings:
This is the header of the loop that finally creates the boarders:


// NK -->
for(i = LAi_numloginedcharacters; i < limit; i++)
{
....

It loops and creates boarders till the number "limit" is reached. So if you want always 10 boarders you could overrule all the preceeding calculations like this:

// NK -->
limit = 10;
for(i = LAi_numloginedcharacters; i < limit; i++)
{
....

Much success with this experiment <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />

BTW, a language question: has the word "sophisticated" a negative ring in English, a touch of sneaky or oversmart? That's not what I mean if I say "sophisticated calculations", I mean very detailed and clever, albeit complicated.
 
is it possible to completly disable the firedrill changes? I already set the fire duration = 0 but the fire bell still rings and the text "press C..." still appears.
Thanks <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
 
Well, I think "sophisticated" is good. It does not, to me, have a negative connotation at all, it means to me that it is smart and clever and `well-crafted` but not over the top or crass.

In coding I think to me it would mean the same thing as "elegant" which I use a lot to mean something sleekly and sparingly styled and not overblown or full of unnecessary or redundant items. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/onya.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="onya.gif" />

This is such a great addition to the game! Well done, CCC! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />
 
Once again a place where text lacks the emotive content of aural language and thus the subletly one can give to saying "sophisticated" aloud is lacking in text
(Until someone invents Emotive Punctuation or something...)

Yep, sophisticated when not describing people is I would say 99% of the time meant entirely positively; it's with people that, depending on the speaker's attitudes and thus intonation, it may be a euphemism for many things (though even then I'd say most times it's meant positively). So the negative is probably the fourth or fifth definition...

So I would say that you are correct that it _could_, but needn't worry at all using it (as usual, context clears most things).

Sorry, English teacher for a mother gives one a love of language. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />
----

Gotta tell you, I don't entirely get LAI_Boarding either. It is indeed a mishmash. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />

It's generally a way to try to do as you say, reflect crew size in small groups of boarders (originally 4 each, then with `Stone-D` 6 each), and then me with crew morale.

I think your method for this is far better, because then we can use purely size->size, i.e. crew size determines number of boarders, and leave other factors to determine only other stats, i.e. and then use health and fencing skill to reflect morale.

If you're placing all chars at single locators, then we can simply do away with the boarding fantom number limits, and hurrah for that.
Not least because it will make the code far more, er, elegant. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" /> With none of the tons of mismash required trying to determine what decks have how many locators, etc.
 
<!--`QuoteBegin-evil_parrot`+--><div class='quotetop'>QUOTE(evil_parrot)</div><div class='quotemain'><!--QuoteEBegin-->is it possible to completly disable the firedrill changes? I already set the fire duration = 0 but the fire bell still rings and the text "press C..." still appears.  
Thanks  :)[/quote]I tried putting a firedrill disable toggle in the code. If it works, it will be added in this afternoon's PotCMods.zip compilation.
 
This will take care of that:

// ccc firedrill
if(sti(arCharacter.Index) == GetMainCharacterIndex()) // so this runs only for the player
{
// MAR18
DeleteAttribute(arCharacter,"firedrill"); // deletes the markerattribute that starts firedrill
if(FIREDAMAGE>1) // MAR18
{
Log_SetStringToLog("Fire! Press C to order firedrill to all hands!"); // infomessage MAR18
PlaySound("interfacenotebook.wav");} // soundeffect MAR18
} // MAR18
// ccc firedrill end

If you set firedamage to 1 or 0 nothing will appear any more.
As I said (somewhere) I am currently rewriting CC to incorporate all the great proposals here, but I must ask you for a little patience till next weekend <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
 
<!--`QuoteBegin-NathanKell`+--><div class='quotetop'>QUOTE(NathanKell)</div><div class='quotemain'><!--QuoteEBegin-->Sorry, English teacher for a mother gives one a love of language. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="wink.gif" />
[/quote]
Ah, so you are just the man I need <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/icon_wink.gif" style="vertical-align:middle" emoid=";)" border="0" alt="icon_wink.gif" /> Speaking a foreign language moderetely well is kind of dangerous: people assume that you know what you are saying, so if you use a term in the wrong meaning they assume an intention you may not have had.
So please DO correct me if something sounds odd <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/bookish.gif" style="vertical-align:middle" emoid=":mm" border="0" alt="bookish.gif" />
 
<!--`QuoteBegin-CouchcaptainCharles`+--><div class='quotetop'>QUOTE(CouchcaptainCharles)</div><div class='quotemain'><!--QuoteEBegin-->Grimm, I think I have somthing on my other PC that might help you. I'll post it tomorrow in the Nationstrenght thread.[/quote]

Read it, thanks a bunch for it.
 
CCC, when something sounds odd, that's when you _know_ you're speaking English correctly. More idioms than real language, our fair tongue. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/laugh.gif" style="vertical-align:middle" emoid="xD:" border="0" alt="laugh.gif" />
 
Back
Top