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

[WIP] Limit special ship type to certain country

051070009

Landlubber
Storm Modder
I believe I have found a way to set special ship type to certain country, such as Ship_Victory only to England, and Ship_Dutchlineship only to Holland. I put the code into "\ships\ships.c", and change the existing function "void SetRandomNameToShip(ref rCharacter)" a little.
The original function:
Code:
void SetRandomNameToShip(ref rCharacter)
{
... 
rCharacter.Ship.Name = GetRandSubString(rMassiveOfNames[rand(iMassiveOfNamesSize-2)]);}
I add the following code before "}":
Code:
	ref rRealShip = GetRealShip(sti(rCharacter.Ship.Type));
switch (rRealShip.BaseName)
{
case "MANOWAR":
if (rCharacter.nation == ENGLAND) rCharacter.Ship.Type = GenerateShip(SHIP_VICTORY, true);
if (rCharacter.nation == FRANCE) rCharacter.Ship.Type = GenerateShip(SHIP_SOLEYRU, true);
break;
case "LINESHIP":
if (rCharacter.nation == HOLLAND) rCharacter.Ship.Type = GenerateShip(SHIP_DUTCHLINESHIP, true);
break;
}
if (rCharacter.nation == PIRATE) 
{	
if (rand(1000) < 750)
{
int PIRATESHIP;
switch (rRealShip.Class)
{
case "2":								
PIRATESHIP = SHIP_SALAMANDER + rand(makeint(SHIP_MERMAIDGRIEF - SHIP_SALAMANDER));
rCharacter.Ship.Type = GenerateShip(PIRATESHIP, true);
break;
case "4":
PIRATESHIP = SHIP_BRIGQEEN + rand(makeint(SHIP_XebekVML - SHIP_BRIGQEEN));
rCharacter.Ship.Type = GenerateShip(PIRATESHIP, true);
break;
}
}	
}
ref rRealShipNew = GetRealShip(sti(rCharacter.Ship.Type));	
rCharacter.Ship.HP = rRealShipNew.HP;    //<-- END
It is an alternate approach anyway, but it seems to work just fine, and so far no known side-effect. The "SetRandomNameToShip()" is used in "\SEA_AI\sea.c", so it works for the worldmap encounter. It also works for Gold Fleet, bountyhunter, island ship(They are all located in "\scripts"). As for siege ship, just move the "SetRandomNameToShip" line below the following "GenerateShip" line.

I am also trying to make the wind direction the same as the world map wind direction when you enter the sea mode. I fail to locate any code which describe the wind in worldmap. Anyone could help?

EDIT: It seems to me that I may have solve the problem that wind directions in world map and sea mode are different. Although I do not understand clearly how this work, so it may have some undiscovered bugs.
In the file "\Weather\WhrWeather.c", there are several lines:
...
fWeatherAngle = stf(Weather.Wind.Angle);
//fWeatherAngle = GetAngleY(stf(worldMap.WindX), stf(worldMap.WindZ));
fWeatherSpeed = stf(Weather.Wind.Speed);
...
I remove the quotation note "//", and tried in game many time, the wind direction in both mode now seems to be the same all the time.
 
excellent! well done. That was one of the more annoying things for me personally.
 
Ok first things first, please use the edit button instead of posting a new post when they are so close together ;)

Now onto the topic, I think it is possible to somehow set it so you can make a ship have a certain probability of being for each nation (so first the probability is of it showing up and then it takes into account what the likehood of it being a certain nation after that)

Having said this your way works as well, I just think it would require more work to keep your way going IMO

EDIT: But doing it your way for special ships shouldnt be to difficult ;)
 
Here's the thread on the similar mod we did for the PotC Build Mod:
http://forum.piratesahoy.net//limiting-ships-to-certain-nations-t11098.html

Although your method would work to a certain extent, I don't think it's the ideal way to handle it. I'll see if I can find some code in CoAS where it's possible to handle it the PotC way.
 
Will you look what I just found in PROGRAM\SEA_AI\AIFantom.c:
Code:
int Fantom_GetShipType(int iClassMin, int iClassMax, string sShipType)
{
int iShips[50];
int i, iShipsNum;
iShipsNum = 0;

for (i=SHIP_TARTANE; i<=SHIP_MANOWAR; i++)  //ýíêàóíòåðû òîëüêî äî ìàíîâàðà, êâåñòîâûå êîðàáëè îòäåëüíî
{
object rShip = GetShipByType(i);
if (!checkAttribute(rship, "class"))
{
trace ("bad ship is: " + rship.name);
}
int iClass = MakeInt(rShip.Class);

if (iClass > iClassMin) { continue; }
if (iClass < iClassMax) { continue; }
if (sti(rShip.CanEncounter) != true) { continue; }
if (sti(rShip.Type.(sShipType)) != true) { continue; }

iShips[iShipsNum] = i;
iShipsNum++;
}
if (iShipsNum==0) 
{
Trace("Can't find ship type '" + sShipType + "' with ClassMin = " + iClassMin + " and ClassMax = " + iClassMax);
return INVALID_SHIP_TYPE;
}

int iBaseShipType = iShips[rand(iShipsNum - 1)];
//trace(ShipsTypes[iBaseShipType].name);
int iRealShipType = GenerateShip(iBaseShipType, 0);
return iRealShipType;
}
Looks like the perfect place to stick some nation limitation code like in PotC!
The only problem is that in CoAS, the function doesn't use a nation at all, so we'd need to add that somewhere.
 
And there is this in Program\scripts == MerchantOnMap"

Code:
int SetShipTypeMerchant(ref Cap)
{
int iShip, hcrew, irank;

if(makeint(pchar.rank) > 10)
{
irank = rand(2) + 3;
}

if(makeint(pchar.rank) > 6 && makeint(pchar.rank) < 11)
{
irank = rand(2);
}

switch (sti(Cap.nation))
{
case ENGLAND:
switch (irank)
{
case 0: iShip = SHIP_BRIG;     break;
case 1: iShip = SHIP_EDINBURG; break;
case 2: iShip = SHIP_ENTERPRISE; break;
case 3: iShip = SHIP_PACKET_BRIG;    break;
case 4: iShip = SHIP_BOUNTY; break;
case 5: iShip = SHIP_CONSTITUTION;  break;	    
case 6: iShip = SHIP_LINESHIP; break;

}
break;

case FRANCE:
switch (irank)
{
case 0: iShip = SHIP_FLEUT;     break;
case 1: iShip = SHIP_BOUSSOLE;  break;
case 2: iShip = SHIP_PINNACE;   break;
case 3: iShip = SHIP_INTERCEPTOR;   break;
case 4: iShip = SHIP_LINESHIP;   break;
case 5: iShip = SHIP_SOLEILROYAL;  break;

}
break;

case SPAIN:
switch (irank)
{
case 0: iShip = SHIP_CARAVEL;     break;
case 1: iShip = SHIP_GALEON_L;    break;
case 2: iShip = SHIP_PINNACE;     break;
case 3: iShip = SHIP_GALEON_H;    break;
case 4: iShip = SHIP_LINESHIP;    break;
case 5: iShip = SHIP_WARSHIP;     break;
case 6: iShip = SHIP_MANOWAR;     break;
}
break;

case HOLLAND:
switch (irank)
{
case 0: iShip = SHIP_BRIG     break;
case 1: iShip = SHIP_FLEUT    break;
case 2: iShip = SHIP_SURPRISE    break;
case 3: iShip = SHIP_GALEON_L break;
case 4: iShip = SHIP_PINNACE  break;
case 5: iShip = SHIP_DUTCHLINESHIP;     break;

}
break;

case PIRATE:
switch (irank)
{
case 0: iShip = SHIP_BRIG     break;
case 1: iShip = SHIP_FLEUT    break;
case 2: iShip = SHIP_GALEON_L break;
case 3: iShip = SHIP_PINNACE  break;
case 4: iShip = SHIP_CORVETTE break;
case 5: iShip = SHIP_BLACKPEARL break;
case 6: iShip = SHIP_THEBLACKPEARL break;
}
break;
}
 
In PROGRAM\SEA_AI\sea.c find this code:
Code:
		int iNumFantomShips = Fantom_GenerateEncounter(sGName, &oResult, iEncounterType, iNumWarShips, iNumMerchantShips);
Replace it with:
Code:
int iNation = sti(rEncounter.Nation);
int iNumFantomShips = Fantom_GenerateEncounter(sGName, &oResult, iEncounterType, iNumWarShips, iNumMerchantShips, iNation); // NK
Now open PROGRAM\SEA_AI\AIFantom.c and find this code:
Code:
int Fantom_GenerateEncounter(string sGroupName, object oResult, int iEType, int iNumWarShips, int iNumMerchantShips)
Replace it with:
Code:
int Fantom_GenerateEncounter(string sGroupName, object oResult, int iEType, int iNumWarShips, int iNumMerchantShips, int iNation) // NK
Then find this code in the same file:
Code:
iShipType = Fantom_GetShipType(iMerchantClassMin, iMerchantClassMax, "Merchant");
Replace with:
Code:
iShipType = Fantom_GetShipType(iMerchantClassMin, iMerchantClassMax, "Merchant", iNation); // NK
Then find this code in the same file:
Code:
iShipType = Fantom_GetShipType(iWarClassMin, iWarClassMax, "War");
Replace with:
Code:
iShipType = Fantom_GetShipType(iWarClassMin, iWarClassMax, "War", iNation); // NK
And at last find:
Code:
int Fantom_GetShipType(int iClassMin, int iClassMax, string sShipType)
And replace it with:
Code:
int Fantom_GetShipType(int iClassMin, int iClassMax, string sShipType, int iNation) // NK
We have now enabled ourselves to code in nation-specific ship type encounters!
Now it's time to add in the nation-specific code to the Fantom_GetShipType function:
Code:
int Fantom_GetShipType(int iClassMin, int iClassMax, string sShipType)
{
int iShips[50];
int i, iShipsNum;
iShipsNum = 0;

for (i=SHIP_TARTANE; i<=SHIP_MANOWAR; i++)  //ýíêàóíòåðû òîëüêî äî ìàíîâàðà, êâåñòîâûå êîðàáëè îòäåëüíî
{
object rShip = GetShipByType(i);
if (!checkAttribute(rship, "class"))
{
trace ("bad ship is: " + rship.name);
}
int iClass = MakeInt(rShip.Class);

if (iClass > iClassMin) { continue; }
if (iClass < iClassMax) { continue; }
if (sti(rShip.CanEncounter) != true) { continue; }
if (sti(rShip.Type.(sShipType)) != true) { continue; }
if (CheckAttribute(rShip, "nation") && sti(rShip.nation) != iNation) { continue; } // PB: Limiting Ships to Certain Nations

iShips[iShipsNum] = i;
iShipsNum++;
}
if (iShipsNum==0) 
{
Trace("Can't find ship type '" + sShipType + "' with ClassMin = " + iClassMin + " and ClassMax = " + iClassMax);
return INVALID_SHIP_TYPE;
}

int iBaseShipType = iShips[rand(iShipsNum - 1)];
//trace(ShipsTypes[iBaseShipType].name);
int iRealShipType = GenerateShip(iBaseShipType, 0);
return iRealShipType;
}
Now you can add code lines in PROGRAM\SHIPS\ships_init.c for nation-specific ships, for example refShip.nation = ENGLAND; will make the ship appear only in English squadrons.

The above code is adjusted for CoAS, but is not tested. It is adapted from the PotC Build Mod simple version (we've got more advanced code in place for this now), where it works perfectly fine.
 
I saw a file, can't remember its name or which folder it was in now but when i was going through some files looking for something i noticed code that seemed to have some reference to what ships would be generated by nations, i will try to find it again.

UPDATE:

Its in "Program\SEA_AI == AIFantom"

Code:
void SetShipToFantom(ref _chr, string _type, bool _setgoods)
{
int ShipType;
int Nation = sti(_chr.nation)
int Rank = sti(pchar.rank);
switch (_type)
{
case "trade":
if (Rank < 11)
{
ShipType = RandFromThreeDight(SHIP_SLOOP, SHIP_SCHOONER, SHIP_LUGGER);
}
if (Rank >= 11 && Rank <= 20)
{
if (Nation == SPAIN) ShipType = RandFromThreeDight(SHIP_CARAVEL, SHIP_BARKENTINE, SHIP_BARQUE);
else ShipType = RandFromThreeDight(SHIP_FLEUT, SHIP_BARQUE, SHIP_GALEON_L);
}
if (Rank > 20)
{
if (Nation == SPAIN) ShipType = SHIP_GALEON_H;
else ShipType = SHIP_PINNACE;
}
break;
case "pirate":
if (Rank < 4)
{
ShipType = SHIP_LUGGER;
}			
if (Rank >= 4 && Rank < 11)
{
ShipType = RandFromThreeDight(SHIP_SLOOP, SHIP_SCHOONER, SHIP_BRIG);
}
if (Rank >= 11 && Rank <= 20)
{
ShipType = RandFromThreeDight(SHIP_GALEON_L, SHIP_GALEON_H, SHIP_CORVETTE);
}
if (Rank > 20)
{
ShipType = SHIP_FRIGATE;
}
break;

/*case "war":
if (Rank < 11)
{
ShipType = RandFromThreeDight(SHIP_SLOOP, SHIP_SCHOONER, SHIP_LUGGER);
}
if (Rank >= 11 && Rank <= 20)
{
if (Nation == SPAIN) ShipType = RandFromThreeDight(SHIP_CARAVEL, SHIP_BRIG, SHIP_PINNACE);
else ShipType = RandFromThreeDight(SHIP_BRIG, SHIP_GALEON_L, SHIP_PINNACE);
}
if (Rank > 20)
{
if (Nation == SPAIN) RandFromFiveDight(SHIP_GALEON_H, SHIP_LINESHIP, SHIP_WARSHIP, SHIP_BATTLESHIP, SHIP_MANOWAR);
if (Nation == HOLLAND) ShipType = SHIP_GALEON_H;
if (Nation == ENGLAND || Nation == FRANCE) ShipType = SHIP_PINNACE;
}
break;*/
}
 
I noticed "AIFantom.c" before. I knew that the function "int Fantom_GenerateEncounter(.....)" is the most resonable place to add those codes. However, as this function does not involve the "nation" parameter, and frankly, I am not a skill modder. I thought that if I change the function, such as adding a new parameter, things may have be too complicated for me, and lots of other files need to be modified to make it work properly. So I find the easy way. And fortunately, "SetRandomNameToShip" is used most of the time when a new ship/fleet/ is generated.

To Luke159, the last part of code in "AIFantom.c" seems useless to me. I tried it before, remove the whole "Void SetShipToFantom(.....)" function, and the game runs just fine.

Another question to all the advanced modders, I see that you guys are try to make the "sail mode", or play the entire game with even enter the world map. And how can you engage the random encounter, or "world map encounter" in original game, without the participate of world map? I think it is an even tougher question than reloading other island in sea mode.
 
However, as this function does not involve the "nation" parameter, and frankly, I am not a skill modder. I thought that if I change the function, such as adding a new parameter, things may have be too complicated for me, and lots of other files need to be modified to make it work properly.
You're absolutely right, but this post of mine tells you exactly how to do it:
http://forum.piratesahoy.net//limit-special-ship-type-to-certain-country-t16064.html/page__view__findpost__p__370007

Another question to all the advanced modders, I see that you guys are try to make the "sail mode", or play the entire game with even enter the world map. And how can you engage the random encounter, or "world map encounter" in original game, without the participate of world map? I think it is an even tougher question than reloading other island in sea mode.
We did it in the PotC Build Mod.

I saw a file, can't remember its name or which folder it was in now but when i was going through some files looking for something i noticed code that seemed to have some reference to what ships would be generated by nations, i will try to find it again.
I saw that too, but I don't quite understand what it's for. Why is "war" outcommented? My recommendation: Try the suggestion I posted above. Chances are it will work, since it does in PotC also.
 
I had hoped somebody might try my suggestion. I've got high hopes it'll work... :rolleyes:
 
Sorry bud i'm busy at the moment. I will try it as soon as i get some free time. I have made not of everything you said so i'm ready just need the time to do it in.
 
I have managed to get the code changes in place ready for testing, i hope to have at least 1 hour free to night. I would like more time for testing really because i have only set a few ships to be generated by spacific nations.

Pieter, does this mean we can have a seperate entery for ships so pirates can have more cannons mounted? refShip.nation = ENGLAND;

Example: To be generated by all nations
Code:
///////////////////////////////////////////////////////////////////////////
//// Sloop 
///////////////////////////////////////////////////////////////////////////
makeref(refShip,ShipsTypes[SHIP_SLOOP]);
refShip.Name            			= "Sloop";
refship.Soundtype			= "lugger";
refShip.Class			= 6;
refShip.Cannon          			= CANNON_TYPE_CANNON_LBS4;
refShip.MaxCaliber      			= 6;
refShip.Weight			= Tonnes2CWT(170);
refShip.Capacity        			= 960;
refShip.CannonsQuantity		= 16;
refShip.rcannon 					= 6;
refShip.lcannon 					= 6;
refShip.fcannon 					= 2;
refShip.bcannon 					= 2;
refShip.MaxCrew         		= 110;
refShip.MinCrew         			= 20;
refShip.BoardingCrew				= 37;
refShip.GunnerCrew					= 16;
refShip.CannonerCrew				= 32;
refShip.SailorCrew					= 94;
refShip.SpeedRate					= 13.2;
refShip.TurnRate        			= 49.0;
refShip.Price           			= 58000;
refShip.HP              			= 3900;
refShip.SP              			= 100;
//refShip.AbordageLocation			= "Boarding Deck_02";
refship.Type.Merchant					= true;
refship.Type.War						= true;
refShip.fWindAgainstSpeed				= 7;
refShip.sea_enchantment					= 3.0;
refShip.lowpolycrew = 8;
refShip.buildtime = 20;

refship.Rocking.y = 0.45;
refship.Rocking.az = 0.02;

refship.WaterLine							= 1.0;

refship.SpeedDependWeight			= 0.2;
refship.SubSeaDependWeight			= 0.5;
refship.TurnDependWeight			= 0.3;
refship.WindAgainstSpeed   = 8.0;//boal

refship.InertiaAccelerationX	= 0.2;	refship.InertiaBrakingX		= 2.0;
refship.InertiaAccelerationY	= 10;	refship.InertiaBrakingY		= 6;
refship.InertiaAccelerationZ	= 4.0;	refship.InertiaBrakingZ		= 3.0;

refship.Track.Enable	= true;
refship.Track1.ZStart	= 0.20;
refship.Track1.LifeTime = 9;
refship.Track1.Width	= "2.0, 2.5";
refship.Track1.Speed	= "5.2, 6.2";

refship.Track2.ZStart	= -0.05;
refship.Track2.LifeTime = 7;
refship.Track2.Width	= "3.0, 4.0";
refship.Track2.Speed	= "0.15, 0.25";

To be generated by pirates only, with 4 extra guns mounted, extra cargo space, better moneuverablility and faster.
Code:
///////////////////////////////////////////////////////////////////////////
//// Sloop 
///////////////////////////////////////////////////////////////////////////
makeref(refShip,ShipsTypes[SHIP_SLOOP]);
refShip.Name            			= "Sloop";
refship.Soundtype			= "lugger";
refShip.Class			= 6;
refShip.Cannon          			= CANNON_TYPE_CANNON_LBS4;
refShip.MaxCaliber      			= 6;
refShip.Weight			= Tonnes2CWT(170);
refShip.Capacity        			= 1200;
refShip.CannonsQuantity		= 20;
refShip.rcannon 					= 8;
refShip.lcannon 					= 8;
refShip.fcannon 					= 2;
refShip.bcannon 					= 2;
refShip.MaxCrew         		= 110;
refShip.MinCrew         			= 20;
refShip.BoardingCrew				= 37;
refShip.GunnerCrew					= 16;
refShip.CannonerCrew				= 32;
refShip.SailorCrew					= 94;
refShip.SpeedRate					= 14.0;
refShip.TurnRate        			= 53.0;
refShip.Price           			= 58000;
refShip.HP              			= 3900;
refShip.SP              			= 100;
//refShip.AbordageLocation			= "Boarding Deck_02";
refship.Type.Merchant					= true;
refship.Type.War						= true;
refShip.fWindAgainstSpeed				= 7;
refShip.sea_enchantment					= 3.0;
refShip.lowpolycrew = 8;
refShip.buildtime = 20;

refship.Rocking.y = 0.45;
refship.Rocking.az = 0.02;

refship.WaterLine							= 1.0;

refship.SpeedDependWeight			= 0.2;
refship.SubSeaDependWeight			= 0.5;
refship.TurnDependWeight			= 0.3;
refship.WindAgainstSpeed   = 8.0;//boal

refship.InertiaAccelerationX	= 0.2;	refship.InertiaBrakingX		= 2.0;
refship.InertiaAccelerationY	= 10;	refship.InertiaBrakingY		= 6;
refship.InertiaAccelerationZ	= 4.0;	refship.InertiaBrakingZ		= 3.0;

refship.Track.Enable	= true;
refship.Track1.ZStart	= 0.20;
refship.Track1.LifeTime = 9;
refship.Track1.Width	= "2.0, 2.5";
refship.Track1.Speed	= "5.2, 6.2";

refship.Track2.ZStart	= -0.05;
refship.Track2.LifeTime = 7;
refship.Track2.Width	= "3.0, 4.0";
refship.Track2.Speed	= "0.15, 0.25";

I can't see why we couldn't have it to be generated like that. Pirates as we know would strip the ships down to allow for more cargo, to be able to sail faster and mount more guns.
 
With the simple code that I posted above, all you can do is to make a ship turn up as one nationality only. For example, refShip.nation = PIRATE; would make the "extra cannon sloop" show up only as a pirate ship. However, that doesn't prevent the other ordinary sloop from also showing up as a pirate ship. It's quite possible to change the code to make sure that the ordinary sloop doesn't show up as a pirate ship though.

I'd suggest putting that code in place, adding refShip.nation lines to all ships that should be one nation only, then check if you still see ships under the wrong flags. If the code works, that shouldn't happen. If it's confirmed working, we can modify the code to do more advanced things like what you want. It IS quite possible and in PotC we've got a system in place that fully supports such things. :yes
 
For your information, in the PotC Build Mod we've got this code in place:
Code:
		// KK: Periods -->
if (iNation >= 0 && iNation < NATIONS_QUANTITY) {
string sNation = GetNationNameByType(iNation);
if (sNation == "britain") {sNation = "england";} // Screwface : Fix for other nations type under English flag
if (CheckAttribute(rShip, sNation) == true && stf(rShip.(sNation)) < FRAND(1.0)) continue;
}
string sPeriod = GetCurrentPeriod();
if (CheckAttribute(rShip, "period."+sPeriod) && stf(rShip.period.(sPeriod)) < FRAND(1.0)) continue;
// KK: Periods <--
Instead of this code that I am proposing for CoAS at the moment:
Code:
                if (CheckAttribute(rShip, "nation") && sti(rShip.nation) != iNation) { continue; } // PB: Limiting Ships to Certain Nations
The PotC Build Mod allows us to put code like this in ships_init.c:
Code:
	//Period
refShip.period.0 = 0.0; //
refShip.period.1 = 0.2; //
refShip.period.2 = 0.3; //
refShip.period.3 = 0.4; //
refShip.period.4 = 0.7; //
refShip.period.5 = 0.8; //
//Nation
refShip.england = 0.0; //
refShip.france = 1.0; //
refShip.holland = 0.0; //
refShip.portugal = 0.0; //
refShip.pirate = 0.0; //
refShip.spain = 0.0; //
refShip.america = 0.0; //
The Period code is to prevent wrong-period ships from appearing in the game, depending on the Period in which the storyline takes place. This is something that you probably can't add into CoAS just yet.

The rest of the code allows you to set chance values for each nation. For each nation that you set the chance to 0.0, the ship will not show up under that nations' colours. For each nation that you set it between 0.0 and 1.0, the ship can show up, with the bigger the value, the higher the chance. This additionally enables you to make certain ships rarer than others.

For example, the code for the Pirate Sloop could be this:
Code:
	//Nation
refShip.england = 0.0; //
refShip.france = 0.0; //
refShip.holland = 0.0; //
refShip.portugal = 0.0; //
refShip.pirate = 1.0; //
refShip.spain = 0.0; //
refShip.america = 0.0; //
While the ordinary sloop could get this:
Code:
	//Nation
refShip.england = 1.0; //
refShip.france = 1.0; //
refShip.holland = 1.0; //
refShip.portugal = 1.0; //
refShip.pirate = 0.0; //
refShip.spain = 1.0; //
refShip.america = 1.0; //
This will make this ship show up as everything except a pirate ship.

Note that in the PotC Build Mod, we've added the United States of America as a nation. This is something you don't have in CoAS, so don't need to care about. :no
 
Thanks Pieter. :onya

I will test that tonight. I will make every ship so they can be generated by what ever nations and add a few enteries for pirate ships and see what happens. Hopefully it works out and thats one more thing sorted.
 
Sorry still haven't tested this, i haven't done anything for the last 2 day's other than make what i'm working on compatable with the simple mod released by Ugeen, i will test this out very soon though. :onya

Update:
Bad news i'm affraid Pieter, the game doesn't load with the code changes for the AIFantom and sea.C files. :modding
 
True, a shame it didn't work but hopefully it will be added soon. I'm no coder so i don't know where to begin when making my own codes but i have sites i want to study so i can learn how it all works, its just finding the time to do it. I think when the second patch is released i will try to learn how to code things and practise with a few things.
 
Back
Top