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

DIRECT SAILIN - BUILD 14

i do mean below decks. if you go below decks, even if the sails are furled, the ship starts moving. if you go to the sea again, the sails will be hoisted, and you will have move the distance you should have moved, except that there is no collision detection. actually, this is better than if there was collision detection, otherwise your ship would immediatly sink if you went back to the sea. now you can still use sail to to get out of there.
 
I noticed one bug with the mod in the Build 14 Alpha version: I sailed around using this mod, but when I finally went to the worldmap, I was right back at the port I first left. I had actually sailed to the other side of the archipelago by that time. It seems to me that sailing done with this mod is not really reflected on the worldmap or something like that. <img src="style_emoticons/<#EMO_DIR#>/wacko.gif" style="vertical-align:middle" emoid=":wacko:" border="0" alt="wacko.gif" />
 
i think that this is the problem: the edge of the map doesn't have a seperate area, so you remain at the island. if you would go to a different direction, it would work. what's happening is: you go past the boundaries of the island, but as there is no area to go to, you are teleported back to the nearest area, in this case the island.
 
Well, this section in cccDirectsail.c
<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->
// this converts the seaview position into map coords
worldMap.playerShipX = stf(worldMap.islands.(toislandname).position.x)+(stf(pchar.directsail.tox)/30); //divisor needs adjusting for final version
worldMap.playerShipZ = stf(worldMap.islands.(toislandname).position.z)+(stf(pchar.directsail.toz)/30); // increase to get closer to the island
Trace("Player map coord set to x: " + worldMap.playerShipX + " , z : " + worldMap.playerShipZ );<!--QuoteEnd--></div><!--QuoteEEnd-->
is supposed to change your worldmap coords everytime you are directly teleported to another island. Though it is not really finetuned yet, so it might not always match.

The last line records every such correction in your compile.log. Could you post that on the bugtracker(if you still have it), that should show if and when something went wrong.
 
However, that correction takes effect immediately after the teleport to another island only. If you sail for some time in 3D shipview the disparity between shipview and map position will increase with every minute because the 3D movement and the map simply do not match. But that is an old problem that already existed before Directsail, only that it wasn't noticed cause you had no reason for longer 3D sailing.

So the best time to switch from Directsail to the worldmap is immediately after an islandtransfer.
 
Hi all and happy new year !!! <img src="style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />
Congratulations to all for the new stuffs in the build !

To CCC: i had a look to your new direct sail mod and i love it ! It makes the game more realistic !
I think it could be improved by using the real map coords and islands positions to test if you have reach the range of an other island on the world map!
So i have test a new code for your GetNeighbourIsland and Sea_ReloadDirect methods and it works for me !

First step : when DirectsailCheck() is called, convert your seaview position in real worldmap coords (as in stock game).
second step : check if you are in the range of another island on the worldmap (by using the radius of the islands)
third step : if you are in the range of another island, load it and convert your new worldmap position in seaview coords by using the new island as a reference (like in stock game when you enter in an island area)
Like that you will appear at the new island at the real position !!!

Could please have a look in this code and give your opinion about it and eventually test if it could work for your mod !


string GetNeighbourIsland(string Island, string dir)
// returns which neighbour island lies in the DIRection you leave an Island
// could also be done in Islands_init.c, but this way I can leave that file undisturbed
{

if(Island=="FalaiseDeFleur") Island = "FaleDeFler";
if(Island=="SaintMartin") Island = "Sent";
if(Island=="Turks") Island = "Terks";

ref Pchar = GetMaincharacter();

float psX = MakeFloat(pchar.Ship.Pos.x);
float psZ = MakeFloat(pchar.Ship.Pos.z);

float ix = MakeFloat(worldMap.islands.(Island).position.rx);
float iz = MakeFloat(worldMap.islands.(Island).position.rz);


//REAL CONVERTION OF YOUR SEAVIEW COORDS IN WORLD MAP COORDS
worldMap.playerShipX = (psX/WDM_MAP_TO_SEA_SCALE) + ix;
worldMap.playerShipZ = (psZ/WDM_MAP_TO_SEA_SCALE) + iz;

// AFTER THAT YOU CHECK IF YOU ARE IN THE RANGE OF ANOTHER ISLAND ON THE WORLDMAP
if(worldMap.playerShipX >= stf(worldMap.islands.FaleDeFler.position.x) - stf(worldMap.islands.FaleDeFler.radius) && worldMap.playerShipX <= stf(worldMap.islands.FaleDeFler.position.x) + stf(worldMap.islands.FaleDeFler.radius) && worldMap.playerShipZ >= stf(worldMap.islands.FaleDeFler.position.z) - stf(worldMap.islands.FaleDeFler.radius) && worldMap.playerShipZ <= stf(worldMap.islands.FaleDeFler.position.z) + stf(worldMap.islands.FaleDeFler.radius) && Island != "FaleDeFler")
{ return "FaleDeFler"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Redmond.position.x) - stf(worldMap.islands.Redmond.radius) && worldMap.playerShipX <= stf(worldMap.islands.Redmond.position.x) + stf(worldMap.islands.Redmond.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Redmond.position.z) - stf(worldMap.islands.Redmond.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Redmond.position.z) + stf(worldMap.islands.Redmond.radius) && Island != "Redmond")
{ return "Redmond"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Oxbay.position.x) - stf(worldMap.islands.Oxbay.radius) && worldMap.playerShipX <= stf(worldMap.islands.Oxbay.position.x) + stf(worldMap.islands.Oxbay.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Oxbay.position.z) - stf(worldMap.islands.Oxbay.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Oxbay.position.z) + stf(worldMap.islands.Oxbay.radius) && Island != "Oxbay")
{ return "Oxbay"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Douwesen.position.x) - stf(worldMap.islands.Douwesen.radius) && worldMap.playerShipX <= stf(worldMap.islands.Douwesen.position.x) + stf(worldMap.islands.Douwesen.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Douwesen.position.z) - stf(worldMap.islands.Douwesen.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Douwesen.position.z) + stf(worldMap.islands.Douwesen.radius) && Island != "Douwesen")
{ return "Douwesen"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Conceicao.position.x) - stf(worldMap.islands.Conceicao.radius) && worldMap.playerShipX <= stf(worldMap.islands.Conceicao.position.x) + stf(worldMap.islands.Conceicao.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Conceicao.position.z) - stf(worldMap.islands.Conceicao.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Conceicao.position.z) + stf(worldMap.islands.Conceicao.radius) && Island != "Conceicao")
{ return "Conceicao"; }

if(worldMap.playerShipX >= stf(worldMap.islands.IslaMuelle.position.x) - stf(worldMap.islands.IslaMuelle.radius) && worldMap.playerShipX <= stf(worldMap.islands.IslaMuelle.position.x) + stf(worldMap.islands.IslaMuelle.radius) && worldMap.playerShipZ >= stf(worldMap.islands.IslaMuelle.position.z) - stf(worldMap.islands.IslaMuelle.radius) && worldMap.playerShipZ <= stf(worldMap.islands.IslaMuelle.position.z) + stf(worldMap.islands.IslaMuelle.radius) && Island != "IslaMuelle")
{ return "IslaMuelle"; }

if(worldMap.playerShipX >= stf(worldMap.islands.QuebradasCostillas.position.x) - stf(worldMap.islands.QuebradasCostillas.radius) && worldMap.playerShipX <= stf(worldMap.islands.QuebradasCostillas.position.x) + stf(worldMap.islands.QuebradasCostillas.radius) && worldMap.playerShipZ >= stf(worldMap.islands.QuebradasCostillas.position.z) - stf(worldMap.islands.QuebradasCostillas.radius) && worldMap.playerShipZ <= stf(worldMap.islands.QuebradasCostillas.position.z) + stf(worldMap.islands.QuebradasCostillas.radius) && Island != "QuebradasCostillas")
{ return "QuebradasCostillas"; }

if(worldMap.playerShipX >= stf(worldMap.islands.KhaelRoa.position.x) - stf(worldMap.islands.KhaelRoa.radius) && worldMap.playerShipX <= stf(worldMap.islands.KhaelRoa.position.x) + stf(worldMap.islands.KhaelRoa.radius) && worldMap.playerShipZ >= stf(worldMap.islands.KhaelRoa.position.z) - stf(worldMap.islands.KhaelRoa.radius) && worldMap.playerShipZ <= stf(worldMap.islands.KhaelRoa.position.z) + stf(worldMap.islands.KhaelRoa.radius) && Island != "KhaelRoa")
{ return "KhaelRoa"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Cayman.position.x) - stf(worldMap.islands.Cayman.radius) && worldMap.playerShipX <= stf(worldMap.islands.Cayman.position.x) + stf(worldMap.islands.Cayman.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Cayman.position.z) - stf(worldMap.islands.Cayman.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Cayman.position.z) + stf(worldMap.islands.Cayman.radius) && Island != "Cayman")
{ return "Cayman"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Cuba.position.x) - stf(worldMap.islands.Cuba.radius) && worldMap.playerShipX <= stf(worldMap.islands.Cuba.position.x) + stf(worldMap.islands.Cuba.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Cuba.position.z) - stf(worldMap.islands.Cuba.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Cuba.position.z) + stf(worldMap.islands.Cuba.radius) && Island != "Cuba")
{ return "Cuba"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Hispaniola.position.x) - stf(worldMap.islands.Hispaniola.radius) && worldMap.playerShipX <= stf(worldMap.islands.Hispaniola.position.x) + stf(worldMap.islands.Hispaniola.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Hispaniola.position.z) - stf(worldMap.islands.Hispaniola.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Hispaniola.position.z) + stf(worldMap.islands.Hispaniola.radius) && Island != "Hispaniola")
{ return "Hispaniola"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Guadeloupe.position.x) - stf(worldMap.islands.Guadeloupe.radius) && worldMap.playerShipX <= stf(worldMap.islands.Guadeloupe.position.x) + stf(worldMap.islands.Guadeloupe.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Guadeloupe.position.z) - stf(worldMap.islands.Guadeloupe.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Guadeloupe.position.z) + stf(worldMap.islands.Guadeloupe.radius) && Island != "Guadeloupe")
{ return "Guadeloupe"; }

if(worldMap.playerShipX >= stf(worldMap.islands.sent.position.x) - stf(worldMap.islands.sent.radius) && worldMap.playerShipX <= stf(worldMap.islands.sent.position.x) + stf(worldMap.islands.sent.radius) && worldMap.playerShipZ >= stf(worldMap.islands.sent.position.z) - stf(worldMap.islands.sent.radius) && worldMap.playerShipZ <= stf(worldMap.islands.sent.position.z) + stf(worldMap.islands.sent.radius) && Island != "sent")
{ return "Sent"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Antigua.position.x) - stf(worldMap.islands.Antigua.radius) && worldMap.playerShipX <= stf(worldMap.islands.Antigua.position.x) + stf(worldMap.islands.Antigua.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Antigua.position.z) - stf(worldMap.islands.Antigua.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Antigua.position.z) + stf(worldMap.islands.Antigua.radius) && Island != "Antigua")
{ return "Antigua"; }

if(worldMap.playerShipX >= stf(worldMap.islands.Terks.position.x) - stf(worldMap.islands.Terks.radius) && worldMap.playerShipX <= stf(worldMap.islands.Terks.position.x) + stf(worldMap.islands.Terks.radius) && worldMap.playerShipZ >= stf(worldMap.islands.Terks.position.z) - stf(worldMap.islands.Terks.radius) && worldMap.playerShipZ <= stf(worldMap.islands.Terks.position.z) + stf(worldMap.islands.Terks.radius) && Island != "Terks")
{ return "Terks"; }

trace("GetNeighbourIsland for" + Island + " direction "+dir+" went wrong")
return ""; // default
}


void Sea_ReloadDirect() // called by Sea_ReloadStartDirect(), structure like original Sea_Reload
{
DelEventHandler("Sea_ReloadDirect", "Sea_ReloadDirect");

ref rPlayer = GetMainCharacter();

object Login;
Login.PlayerGroup.ay = stf(rPlayer.Ship.Ang.y);
Login.PlayerGroup.x = MakeFloat(rPlayer.ship.pos.x);
Login.PlayerGroup.y = 0.0;
Login.PlayerGroup.z = MakeFloat(rPlayer.ship.pos.z);
Login.Island = Characters[0].location;


// ccc oct06 directsail
if(CheckAttribute(rPlayer,"directsail.toisland"))
// if Directsail() calls islandchange island and playerposition are changed
{
Login.Island = rPlayer.directsail.toisland;
string toislandname = rPlayer.directsail.toisland;

// SECTION TO APPEAR IN THE NEW REAL POSITION AT THE NEW ISLAND
float psX = MakeFloat(worldMap.playerShipX);
float psZ = MakeFloat(worldMap.playerShipZ);

float ix = MakeFloat(worldMap.islands.(toislandname).position.rx);
float iz = MakeFloat(worldMap.islands.(toislandname).position.rz);
Login.playerGroup.x = (psX - ix)*WDM_MAP_TO_SEA_SCALE;
Login.playerGroup.z = (psZ - iz)*WDM_MAP_TO_SEA_SCALE;

Login.PlayerGroup.ay = stf(rPlayer.Ship.Ang.y); // your old heading
}
Trace("Sea_reloadDirect at "+ Login.Island );

SeaLoginDirect(&Login);
}



Of course, you have to outcomment or del this section of code in the DirectIslandCheck() method :

//if(dir=="")return false;

and

//worldMap.playerShipX = stf(worldMap.islands.(toislandname).position.x)+(stf(pchar.directsail.tox)/30); //divisor needs adjusting for final version
//worldMap.playerShipZ = stf(worldMap.islands.(toislandname).position.z)+(stf(pchar.directsail.toz)/30); // increase to get closer to the island

and i think some others sections of code are no more needed too !

Cheers <img src="style_emoticons/<#EMO_DIR#>/keith.gif" style="vertical-align:middle" emoid=":keith" border="0" alt="keith.gif" />
 
<!--quoteo(post=177790:date=Jan 3 2007, 03:03 PM:name=Screwface)--><div class='quotetop'>QUOTE(Screwface @ Jan 3 2007, 03:03 PM) [snapback]177790[/snapback]</div><div class='quotemain'><!--quotec-->
Hi all and happy new year !!! <img src="style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />
Congratulations to all for the new stuffs in the build !
<!--QuoteEnd--></div><!--QuoteEEnd-->
SCREWFACE! WELCOME BACK! <img src="style_emoticons/<#EMO_DIR#>/w00t.gif" style="vertical-align:middle" emoid=":woot" border="0" alt="w00t.gif" />
You have been missed and I am very happy to see you have returned! I hope you'll stay for a bit. You will see that the new island locations have been finished now, thanks to you, CCC and Pirate_KK. <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />

<!--quoteo(post=177762:date=Jan 3 2007, 09:59 AM:name=CouchcaptainCharles)--><div class='quotetop'>QUOTE(CouchcaptainCharles @ Jan 3 2007, 09:59 AM) [snapback]177762[/snapback]</div><div class='quotemain'><!--quotec-->
The last line records every such correction in your compile.log. Could you post that on the bugtracker(if you still have it), that should show if and when something went wrong.
<!--QuoteEnd--></div><!--QuoteEEnd-->
I don't have it anymore, but I can try to replicate it. What happened was this: I start the game at QC, then sailed in Direct Sail mode to another island. I reached that island and docked there. When I sailed away from that island and entered the worldmap, my ship was still at QC.
Note that I am using the Build 14 Alpha version with Maximus' changes. Perhaps that makes a difference.
 
<img src="style_emoticons/<#EMO_DIR#>/hi.gif" style="vertical-align:middle" emoid=":gday" border="0" alt="hi.gif" /> Screwface! Nice to see you around again <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" />

You probably know more about worldmap and islands than I, so you may be just the man to find a good method to match map and 3D coords.

Thanks a lot for that code, I'll check it this weekend.
 
After read-checking your code I am pretty sure that it is just the conversion code that I couldn't come up with. Thanks a lot again <img src="style_emoticons/<#EMO_DIR#>/me.gif" style="vertical-align:middle" emoid=":onya" border="0" alt="me.gif" />

Two questions though:

1. You said it works for you. Does that mean you already sailed from island to island with your code?

2. If yes, how much (game)time does it take?
 
Hi Pieter, Hi CCC, thanks for your welcome !!

Now, i'm more busy with real life but i will try to stay for a bit even if i couldn't come on the forum every day. You have, all the modders and coders, realized an amazing work on the game !!!!!! New islands are finished and all the new stuffs who have appeared since i left have increase the gameplay and the realism of POTC. <img src="style_emoticons/<#EMO_DIR#>/par-ty.gif" style="vertical-align:middle" emoid=":cheers" border="0" alt="par-ty.gif" />

To answer your questions CCC, i have already sailed from island to island with this code. For the game(time), i can't answer to you with precision because with this code, the length of the trip is based on the real distance between two islands on the worldmap. the code use the real position of the islands and the next island is only loaded if you are in his range (the radius). I think the method is the same as when you sail on the worldmap.
The code don't use ISLANDSWITCHDISTANCE anymore so if two islands are closed, the trip can be short (by using time acceleration) but if you want to sail from douwesen to hispaniola without step for example, i think the trip could become very long <img src="style_emoticons/<#EMO_DIR#>/sailr.gif" style="vertical-align:middle" emoid=":sail" border="0" alt="sailr.gif" />

The problem is for the "open sea" (without island). It seems that in stock game the conversion between the world map coords and the seaview coords is not the same for the "open sea" so if you are in "open sea" and you sail to an island, you will never reach it by the 3d sailing. that's because when you enter an island area and you go on 3d sailing from the worldmap, the rx and the rz of the island become the reference point of the system of coords so when you return to the worldmap, you can easily know your new postion on the worldmap compared to this point and the scale between the worldmap and the seaview (WDM_MAP_TO_SEA_SCALE). But in "open sea" mod, you haven't this point so actually, i don't know how the game do to calculate your new position when you return on the worldmap...

On the other hand, in the GetNeighbourIsland method, i used the .x and the .z of the islands (not the .rx and the .rz) simply because that's the central point of the range (radius) and in fact, on the worldmap, that's also the central point of the label (logicaly the center of the island).

I hope it was clear ! <img src="style_emoticons/<#EMO_DIR#>/whistling.gif" style="vertical-align:middle" emoid=":wp" border="0" alt="whistling.gif" /> <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
 
<!--quoteo(post=178149:date=Jan 6 2007, 12:41 AM:name=Screwface)--><div class='quotetop'>QUOTE(Screwface @ Jan 6 2007, 12:41 AM) [snapback]178149[/snapback]</div><div class='quotemain'><!--quotec-->
.... so if you are in "open sea" and you sail to an island, you will never reach it by the 3d sailing. ....<!--QuoteEnd--></div><!--QuoteEEnd-->
Well, my current code has the same problem. I will include your solution in the next update, as your accurate coord conversion is certainly more "proper" than my rough mapcell method. If the traveltimes suit my idea of a sailing experience yours will become the default. Otherwise I'll include BOTH versions as options.
 
Congratulations, Screwface: your code works perfectly. Island transitions take place exactly at the place where your course intersects with some island radius. So people who like exact navigation will be able to use your method.

However, I'll leave my inaccurate "islandcell" method in the mod as an option, cause for my taste the sailingtimes with the "mapcoord" method are to short: e.g. you can sail from Redmond to Hispaniola in only five hours, and after the transfer you appear already close to the coast. That spoils a bit the sailing experience that I hope for: seeing one island disapper behind me, sailing some time out of sight of the land and hoping that some day later my destination will appear at the horizon.

Of course I would prefer to combine those longer sailing times with your exact mapcoord navigation, but currently I don't know how. The map is simply too small. Increasing the radius of the islandzones would mean that you appear farther away from the coast, but then some of the zones would overlap, and that will probably cause problems (you can see those zones if you set worldMap.debug to "true" at the begining of worldmap_init.c)
One could also let the gameclock run faster so that you would get more day/night changes, but I'm not sure if that would match with the speed of the shipmovements and battles.

So unless you or someone else finds a way to combine the accuracy of "mapcoord" with the longer voyages of "islandcell" I'll put both methods as options into the mod, so that everybody can choose what he likes best <img src="style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" />
 
increasing the timescalar to ten gives a reasonable balance. the passing of time in comparison to the world map that is. it is still way off, but it comes closer, but not to close to spoil the game playing experience.
 
hey all, sorry f this is off topic, but I'm curious for when update 3 for build 13 will come out.

thx

oops, I'm sorry, I posted this in the wrong section <img src="style_emoticons/<#EMO_DIR#>/modding.gif" style="vertical-align:middle" emoid=":modding" border="0" alt="modding.gif" /> <img src="style_emoticons/<#EMO_DIR#>/mybad.gif" style="vertical-align:middle" emoid=":facepalm" border="0" alt="mybad.gif" /> sorry again, I can't seem to delete it.
 
What I would like with this mod is if the time spent sailing in 3D to another island would be the same as the time spent on the worldmap. It's a bit odd that on the worldmap it takes days to sail to another island, while in 3D sailing mode it takes hours. However, currently there is a Direct Sail update* every hour. This means that if you sail to another island, you encounter about 50 Direct Sail updates before you'd get there for a 2 day trip, which is a bit too much of a good thing. So I had the following idea: As long as you are within the island radius, the Direct Sail updates occur every hour. Once you are outside any island radius and not near any hostile ships, the Direct Sail updates will only occur once every DAY. However, the actual time period between the updates would remain the same. Simply put: This way one game hour would be one game day instead. This would greatly increase the length of the voyage without increasing the time period the player has to spend sailing the distance.

It would be especially nice if the duration of the voyage would depend on two factors: The distance to the next island AND the speed of your ship. The distance to the next island can be calculated using the islands' coordinates. Then this distance should be multiplied with a scalar to get to a good average distance is miles. Then you can devide this distance in miles by the player's ship speed in knots to calculate how many hours the voyage should take. That way the length of the voyage could be more accurately calculated. Joined with my suggestion above to make one game hour be one game day instead when far from land AND not near any hostile ships, the duration will be the same for the player, but the voyage length will be more accurate.

Another idea I really like is too add more possible events during a Direct Sail update than just ships appearing. How about hurricanes (like storms on the worldmap), no wind (increases the voyage length), unhappy crewmembers (needs to be dealt with by the player), diseases aboard the ships, etc. This would add a lot of interest to sailing around in Direct Sail mode.

I'll try to write up a clearer and shorter summary of my ideas later.

* Ships possibly being generated

<!--quoteo(post=178282:date=Jan 6 2007, 11:43 PM:name=Black Bart Roberts)--><div class='quotetop'>QUOTE(Black Bart Roberts @ Jan 6 2007, 11:43 PM) [snapback]178282[/snapback]</div><div class='quotemain'><!--quotec-->
hey all, sorry f this is off topic, but I'm curious for when update 3 for build 13 will come out.
<!--QuoteEnd--></div><!--QuoteEEnd-->
Before I leave to sea in February. I don't actually have that many fixes for Build 13. So perhaps I won't make a Build 13 Update 3 at all, but instead a Build 13.1 that contains the new fixes AND all Build 14 Alpha features that are confirmed working.
 
no build 14 alpha 5 before you leave? <img src="style_emoticons/<#EMO_DIR#>/sad.gif" style="vertical-align:middle" emoid=":(" border="0" alt="sad.gif" />

i tried making the passing of time equal at bith places, but it is impossible with the current way the game works. you would have very short successive wind changes, and surrendered ships would dissapear before you could board them most of the time. believe me, i've tried. it doesn't work. the time at which changes occur needs to be changed, otherwise it will be impossible.

if you want to try, change the timescalar in the internalsettings to 25. i think that it should be something like that. maybe higher, but it shoudl come close. i did calculate it mostly on guesswork, looking at how long it took at a setting of ten to sail to another island with directail and with the worldmap.
 
<!--quoteo(post=178353:date=Jan 7 2007, 02:01 PM:name=morgan terror)--><div class='quotetop'>QUOTE(morgan terror @ Jan 7 2007, 02:01 PM) [snapback]178353[/snapback]</div><div class='quotemain'><!--quotec-->
no build 14 alpha 5 before you leave? <img src="style_emoticons/<#EMO_DIR#>/sad.gif" style="vertical-align:middle" emoid=":(" border="0" alt="sad.gif" />
<!--QuoteEnd--></div><!--QuoteEEnd-->
I hope there WILL be a Build 14 Alpha 5 before I leave. I never said anything to contradict that. I was just talking about Build 13 updates in above post.

<!--quoteo(post=178353:date=Jan 7 2007, 02:01 PM:name=morgan terror)--><div class='quotetop'>QUOTE(morgan terror @ Jan 7 2007, 02:01 PM) [snapback]178353[/snapback]</div><div class='quotemain'><!--quotec-->
i tried making the passing of time equal at bith places, but it is impossible with the current way the game works. you would have very short successive wind changes, and surrendered ships would dissapear before you could board them most of the time. believe me, i've tried. it doesn't work. the time at which changes occur needs to be changed, otherwise it will be impossible.
<!--QuoteEnd--></div><!--QuoteEEnd-->
That would be a problem, yes. That is why I had the idea to make every Direct Sail update at sea count as one DAY rather than one hour. That way you have the weather updates as frequently as you have them now, with the difference that the time passes much quicker.
 
that would likely make it go to fast. making it go slower would probably make the transitions way to long, causing you to end up in an island or something. but it might work. there would be no day and night transition though, which would be a bit wierd.
 
Well, the time adjustment will probably always be a problem. While it is nice to sail in 3D to another island if it takes a few hours it will probably be boring if it takes too long. Too few encounters are boring, too many are too repetetive, which is another form of boring.

I agree with Morgan that a time scalar of ten is probably the best setting.

What I could do in the short run is a variant of Pieters idea: when the teleport to another island takes place I'll add some days depending on shipspeed and distance. That would sort of diminish the illusion of "continuous sailing", but that wasn't such a grand illusion anyway <img src="style_emoticons/<#EMO_DIR#>/icon_mrgreen1.gif" style="vertical-align:middle" emoid=":cheeky" border="0" alt="icon_mrgreen1.gif" />

Another thing I could add is a tweakable counter so that not EVERY weatherchange triggers a directsail event. That way timespeed/weatherchanges and encouterfrequency can be tweaked independent of each other.

<!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->Another idea I really like is too add more possible events during a Direct Sail update than just ships appearing. How about hurricanes (like storms on the worldmap), no wind (increases the voyage length), unhappy crewmembers (needs to be dealt with by the player), diseases aboard the ships, etc. This would add a lot of interest to sailing around in Direct Sail mode.
<!--QuoteEnd--></div><!--QuoteEEnd-->
The upcoming update will already have some variation in the events: instead of ships you'll sometimes sight salvage (a maritime variant of bonus items <img src="style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" /> ), lifeboats and mines. The mines can sink your ship, but you'll also be able to use mines against other ships. (great weapon if you are chased by superior forces) The lifeboats contain for the time being only the usual survivors, whose rescue increases your crew and reputation.
For the future I plan to add special lifeboat passengers who trigger events or quests, and also shiplife events like Pieter suggested.
Storms can possibly be triggered like normal weather changes, but so far i have no idea how the weather updates work.

EDIT: discussion continued in the original <a href="http://www.piratesahoy.com/forum/index.php?showtopic=9121&st=80" target="_blank">Directsail thread.</a>
 
Back
Top