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

Capsizing Ships

Or, if you'd rather see one in-game, for example...

Add this line in PROGRAM/console.c
Code:
GiveShip2Character(pchar,"Victory1","HMS Victory",-1,ENGLAND,true,true);
and press F12 in-game while on land. (the ship appears without rigging, but it shows up at sea)

That way you can get a close-up on foot. ;) You can do the same for any of the ships.

@Pieter, it's been AGES since I've done anything to the capsize mod, so I decided to tweak a couple of sound and particle effects again.
As of yet, I haven't been able to test them, BUT I did try that code you gave me about making crew fly overboard each time the crew takes damage... and the results were... not quite as expected. It seems that code alone makes crew fly EVERY time the ship takes damage... and in storms, that meant crew were flying EVERYWHERE! It was as if the ship was constantly spawning crew and throwing them overboard! :rofl
 
[quote name='A Drop O' Rum' timestamp='1283285883' post='377993']
Haha.. that sound cool... maybe we could even add that to a cursed ship or somthing :nk
[/quote]
LOL! That could be an... interesting twist to a cursed ship!
I should really get a screenshot- it looks so stupid but it's hilarious! :rofl
 
SCREENSHOT! :woot

Can you show me what you did for the code? Probably it didn't end up in the right place.
That IS quite hilarious though! :rofl
 
Oh... and crew already DOES fall overboard. I didn't (yet) add the option to pick them up again though.
Should be possible to do that though. Sounds like fun.
 
Ah! Suddenly I can see details! All of the lineships have bad masts except lineship5, which is one of my favorite large ships. :keith
 
Right, I tried my best to get a good screenshot; it's a bit hard to capture lots of flying crew, so here it is anyway (linking in with the cursed ship idea :walkplank)...

Flying_crew.jpg

Ideally it you'd see it better if you tried it yourself.
Here's what I did with the code:

Code:
int RollDamageValue;
int i;
string sshiproll;
float fX = stf(rCharacter.Ship.pos.x);
float fY = stf(rCharacter.Ship.pos.y);
float fZ = stf(rCharacter.Ship.pos.z);
float RollAngle = makeint(-Radian2Degree(stf(GetAttribute(rCharacter, "ship.ang.z"))));
if(RollAngle < -180) RollAngle = RollAngle + 360;

for(i=0;i<RollDamageValue;i++)
{
if(rand(1) == 0)    	CreateParticleSystem("flyers",  	fX+4-rand(8), fY+4-rand(8), fZ+4-rand(8), 0.0, 0.0, 0.0, 0);
else                	CreateParticleSystem("flyers2", 	fX+4-rand(8), fY+4-rand(8), fZ+4-rand(8), 0.0, 0.0, 0.0, 0);
}

if(RollAngle > 0 )	sshiproll = "Roll angle is " + abs(makeint(RollAngle)) + " degrees to starboard";
else				sshiproll = "Roll angle is " + abs(makeint(RollAngle)) + " degrees to port";
if(RollAngle == 0)	sshiproll = "Roll angle is " + abs(makeint(RollAngle)) + " degrees";
I put the lines you gave me before the warnings, and got the flying crew effect. I then tried it within the crew falling overboard warning; same effect.
I think this is because the 'RollDamageValue' refers not the number of crew which go overboard, but the hull damage, maybe?.
Also, there isn't yet way of keeping it unique to storms/capsizing, since it also happens with cannon ball damage etc. But I only know that because, upon leaving port, a fort gun accidentally hit my mast while trying to hit an enemy ship (behind a cliff :no), and as well as splinters, a crew member was thrown overboard from the mast. xD:
 
Right, I tried my best to get a good screenshot; it's a bit hard to capture lots of flying crew, so here it is anyway (linking in with the cursed ship idea :walkplank)..
I put the lines you gave me before the warnings, and got the flying crew effect. I then tried it within the crew falling overboard warning; same effect.
I think this is because the 'RollDamageValue' refers not the number of crew which go overboard, but the hull damage, maybe?.
Also, there isn't yet way of keeping it unique to storms/capsizing, since it also happens with cannon ball damage etc. But I only know that because, upon leaving port, a fort gun accidentally hit my mast while trying to hit an enemy ship (behind a cliff :no), and as well as splinters, a crew member was thrown overboard from the mast. xD:


Well that is just, plain awsome!
The problem with "flying crewmen when hit with a big hot cannon ball", I don't think its really a problem because... well... you can guess it... they are cursed :?

So I think it should be added to The Flying Dutchman or The Black Pearl, or, we could save it somewhere then, when we are done with the "real" storylines, we could make a new storyline, totally invented by the forum, no historicall names and such, just a plain cersed Flying people ship :piratesahoy! :trio
 
Having crew fly overboard during battle is a historical fact. One Captains log stated that after one battle he had 10 crew lost, 14 killed, and a similar number wounded. To me that sounds like 14 or so wounded and taken below, 14 dead found aboard the ship, and 10 not found and either blown overboard or blown to little pieces.

In that screenie I counted 6 crewmen running around on deck and 7 flying through the air. That is a goodly number.
 
Having crew fly overboard during battle is a historical fact.
Of course, and I think, on occasions, crew can fly off the ship due to damage. But only 1 or 2 at a time, though!
I doubt highly that 7 crew will fly off a ship all at once under normal circumstances, unless something explodes and causes such force to launch them off the ship. :shock
But believe me, what I've seen certainly ISN'T a historical fact. :rofl
 
Having crew fly overboard during battle is a historical fact.
Of course, and I think, on occasions, crew can fly off the ship due to damage. But only 1 or 2 at a time, though!
I doubt highly that 7 crew will fly off a ship all at once under normal circumstances, unless something explodes and causes such force to launch them off the ship. :shock
But believe me, what I've seen certainly ISN'T a historical fact. :rofl

Haha..
So, maybe, we could somehow make the crew fly only when taking very high damage, like:
If a lightning hit's the ship.
If a Tornado in, well, going through the ship or, a high damage critical hit, or, a normal critical hit but from the little bomb cannon ammo.. I don't know if its in the mod, but it certenatly was in stock PotC.
 
[quote name='A Drop O' Rum' timestamp='1283367896' post='378061']
Haha..
So, maybe, we could somehow make the crew fly only when taking very high damage, like:
If a lightning hit's the ship.
If a Tornado in, well, going through the ship or, a high damage critical hit, or, a normal critical hit but from the little bomb cannon ammo.. I don't know if its in the mod, but it certenatly was in stock PotC.
[/quote]
I'm pretty sure a load of stuff (including crew) does fly when a tornado rips through a ship, and lightning does a similar thing. :yes
For the bombs, they were removed from Realistic Mode, and only left in Arcade Mode, but I've no idea what effect they already have on ships now, since I haven't tried Arcade Mode. :? But I guess they should cause small explosions and make crew fly overboard.
 
WHAHAHAHA! That's hilarious! I think I know what happened though: The UpdateShipRoll() function is continuously executed while at sea.
You must then add the flying crew code in the spot that is only executed when there's crew being washed overboard, like this:
Code:
			case ROLL_ANGLE_DAMAGE: // Fourth Warning
IShipRoll.Log.color = COLOR_YELLOW;
if(abs(RollAngle) >  ROLL_ANGLE_DAMAGE ) IShipRoll.Log.color = COLOR_RED_LIGHT;
if(abs(RollAngle) >  ROLL_ANGLE_CAPSIZE) IShipRoll.Log.color = COLOR_RED;
if(GetSeaTime() - sti(rCharacter.Capsize.Time) > 10 && abs(RollAngle) > ROLL_ANGLE_DAMAGE)
{
switch(rand(1))
{
case 0:
RollDamageValue = makeint(0.1*sti(rCharacter.Ship.HP));
PlaySound("objects\abordage\abordage_loosing.wav"); // EC: crew shout out
PlaySound("objects\shipcharge\ship_explosion.wav")
CreateParticleSystemX("gunfire",    fX+4-rand(8), fY+4-rand(8), fZ+4-rand(8), 6.0, 4.0, 0.0, 0); // EC: not yet working
LogIt("Captain, shifting cargo did " + RollDamageValue + " damage to the hull");
Ship_ApplyHullHitpoints(rCharacter, RollDamageValue, KILL_BY_TOUCH, -1); // 10% hull damage
break;

case 1:
RollDamageValue = makeint(0.1*GetCrewQuantity(rCharacter));
PlaySound("objects\abordage\abordage_loosing.wav"); // EC: crew shout out
for(i=0;i<RollDamageValue;i++)
{
if(rand(1) == 0)	CreateParticleSystem("flyers",      fX+4-rand(8), fY+4-rand(8), fZ+4-rand(8), 0.0, 0.0, 0.0, 0);
else				CreateParticleSystem("flyers2",     fX+4-rand(8), fY+4-rand(8), fZ+4-rand(8), 0.0, 0.0, 0.0, 0);
}
I reckon this should work properly.

Then as far as crewmembers that you can pick up again is concerned, try adding this code after the above:
Code:
							AISeaGoods.ModelsPath = "LowCharacters";   //path to the crewmodels
switch(rand(4)) // Put a crewmember in the sea behind the ship
{
case 0:
Direct_AddGood(pchar, "Oil", "Lo_Man",  100.0, RollDamageValue, 800, Degree2Radian(180.0));
break;
case 1:
Direct_AddGood(pchar, "Oil", "Lo_Man2", 100.0, RollDamageValue, 800, Degree2Radian(180.0));
break;
case 2:
Direct_AddGood(pchar, "Oil", "Lo_Man3", 100.0, RollDamageValue, 800, Degree2Radian(180.0));
break;
case 3:
Direct_AddGood(pchar, "Oil", "Lo_Man4", 100.0, RollDamageValue, 800, Degree2Radian(180.0));
break;
case 4:
Direct_AddGood(pchar, "Oil", "Lo_Man5", 100.0, RollDamageValue, 800, Degree2Radian(180.0));
break;
}
AISeaGoods.ModelsPath = "SwimGoods";   //reset path to the salvagemodels
I think that'll put one crewmember in the sea behind you, which you can pick up to get all of the shipmates that were washed overboard back again.
We could also put one crewmember in the sea for each one that washed overboard, but that'd be a bit trickier to code,
because we'd need some bearing and distance randomization to prevent them from all appearing in the same spot. :wp

Even without this modification, you can get crewmembers flying around when being hit by cannon fire.
This has been added even in Build 13 Final, if I recall, and is not related to the above. :no
 
See this file, which already has the above changes and some more included:
http://forum.piratesahoy.net/topic/16529-nations-ranks-new-ideas/page__view__findpost__p__378074
 
Tryade, what do you mean? Are you getting too many crewmen killed during boarding battles? Switching to grapeshot when closing in on the other ship helps there. :sail


One can only get the bombs when in a certain fort and extorting, err persuading a certain civilian. :wp Then I keep forgetting I have them and don't use them. :eek:ops2


I was planning on holding off on that NK.c file for a bit. Now it looks like I'd better go get it. :cheers
 
Yes, there are some very nice changes there.
Now we need to keep persuading our original ideas and it will be plain awsome.
 
Until yesterday I had only capsized one ship, and that was on purpose. Then I spent some time with a Caravel. It is generally a nice little moneymaker that is able to defends itself adequately. On a side note, how do you get 32 cannons and 61 crewmen? Anyway, it doesn't do well in storms. It nearly capsized once and did capsize in another storm. Not sure if it's a good idea, but it got traded for a class 5 Pinnace.
 
Sorry for not reading through... I'm a little short on time at the moment... What were the final criteria for capsizing? The angles I saw early on in the thread were a bit low, (ships could safely heel in excess of 50 degrees while under sail) so I was wondering where things ended up.
 
Back
Top