• 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 Unique ship

TyDoMaster

Landlubber
Hello all
I know how to add a new ship into the game, however how do you make that ship unique?

I'll explain what I mean: I want to have the black pearl and the flying dutchman sail around at random. there should be just one of each ship, and if I capture one they should not show up on the map anymore. can anyone please help me do that?

thanks in advance!
 
<!--quoteo(post=257315:date=May 16 2008, 09:27 PM:name=TyDoMaster)--><div class='quotetop'>QUOTE (TyDoMaster @ May 16 2008, 09:27 PM) <a href="index.php?act=findpost&pid=257315"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Hello all
I know how to add a new ship into the game, however how do you make that ship unique?

I'll explain what I mean: I want to have the black pearl and the flying dutchman sail around at random. there should be just one of each ship, and if I capture one they should not show up on the map anymore. can anyone please help me do that?

thanks in advance!<!--QuoteEnd--></div><!--QuoteEEnd-->


You can´t make Unique Ships in AoP.
This works only in PotC.
 
<!--quoteo(post=257315:date=May 16 2008, 09:27 PM:name=TyDoMaster)--><div class='quotetop'>QUOTE (TyDoMaster @ May 16 2008, 09:27 PM) <a href="index.php?act=findpost&pid=257315"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Hello all
I know how to add a new ship into the game, however how do you make that ship unique?

I'll explain what I mean: I want to have the black pearl and the flying dutchman sail around at random. there should be just one of each ship, and if I capture one they should not show up on the map anymore. can anyone please help me do that?

thanks in advance!<!--QuoteEnd--></div><!--QuoteEEnd-->

first of all, in ships_init.c file, add this string below the black pearl description

refship.canencounter = false;

this prevents the ai from adding the pearl to sea encounters, otherwise you may happen to find a merchant fleet escorted by two pearls!!


then you have to create a character. for example, in characters/init/islamona.c add the following lines

makeref(ch,Characters[n]);
ch.id = "Barbossa";
ch.name = "Barbossa";
ch.lastname = "";
ch.nation = PIRATE;
ch.model = "pirat_10";
ch.sex = "man";
ch.model.animation = "man";
ch.location = "";
ch.location.group = "";
ch.location.locator = "";
ch.rank = 60;
ch.experience = 1000000;
ch.loyality = 99;
ch.skill.Leadership = "9";
ch.skill.Fencing = "10";
ch.skill.Gun = "10";
ch.skill.Sailing = "10";
ch.skill.Tactic = "10";
ch.skill.Accuracy = "10";
ch.skill.Cannons = "10";
ch.skill.Grappling = "10";
ch.skill.Repair = "8";
ch.skill.Defence = "10";
ch.skill.Commerce = "5";
ch.skill.Sneak = "9";
ch.money = "10000";
ch.ship.type = generateship(SHIP_blackpearl, 1);

n = n + 1;

you may also edit this character's stats adn skills, and make the battle easier ot tougher. this character is the only one in the game who will sail with the pearl.
now you have to place it somewhere. to do so, you may add these lines in quests\story_line.c, below 'case "begin story line"'

Group_CreateGroup("pearl");
Group_AddCharacter("pearl", "barbossa");
Group_SetGroupCommander("pearl", "barbossa");
Group_SetTaskAttack("pearl", PLAYER_GROUP);
Group_SetAddress("pearl", "islamona", "quest_ships","quest_ship_1");
Group_LockTask("pearl");

(you can replace islamona with another island if you like)

now the pearl will be there, and if you sink it or board it, you won't find another one.
the only problem is that the pearl will stay near that island forever, so you can't find it elsewhere. if you want to find it in open sea at random, that would be more complex, i think... maybe you could add a script that shifts the pearl's location at random, by editing the 'time_events.c' file... i'll think about it <img src="style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
 
Thanks! Sorry about the slow response but it's been a rough week.

anyway that worked just fine. One more question if I may though, how do you put them in a place like dominica or granada? I want to put them in an out of the way place so as to make them a kind of optional side quest.
Thanks for the support!
 
<!--quoteo(post=257820:date=May 20 2008, 06:04 AM:name=TyDoMaster)--><div class='quotetop'>QUOTE (TyDoMaster @ May 20 2008, 06:04 AM) <a href="index.php?act=findpost&pid=257820"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Thanks! Sorry about the slow response but it's been a rough week.

anyway that worked just fine. One more question if I may though, how do you put them in a place like dominica or granada? I want to put them in an out of the way place so as to make them a kind of optional side quest.
Thanks for the support!<!--QuoteEnd--></div><!--QuoteEEnd-->

just replace this line:

Group_SetAddress("pearl", "islamona", "quest_ships","quest_ship_1");

with this one:

Group_SetAddress("pearl", "grenada", "quest_ships","quest_ship_1");
 
Is it possible to modify the game in a way, that only one nation uses a certain shiptype?
 
If it can be done for PotC, it can probably also be done for AoP. Can't tell you how though. I really don't know. <img src="style_emoticons/<#EMO_DIR#>/dunno.gif" style="vertical-align:middle" emoid=":shrug" border="0" alt="dunno.gif" />
 
@ Pieter > Would you tell us, how it was done in PotC? Maybe the files/file-entries are the same, like it worked in case of editing the waterline level!
 
in program\scripts\utils, find this function: CalculateShipForShipYard(aref chr)

you must edit these lines:

if (iShipYardLevel == 1)
{
iEndPoint = SHIP_CARAVEL;
}

if (iShipYardLevel == 2)
{
iEndPoint = SHIP_GALEON_L;
}

if (iShipYardLevel == 3)
{
iEndPoint = SHIP_PINNACE;
}

if (iShipYardLevel == 4)
{
iEndPoint = SHIP_FRIGATE;
}

check out the list of ships in ships\ships.h ... depending on the shipyard level, you can find any ship smaller than those you set in this script. for istance, in small shipyards you can get lugger, sloop, shooner, barque and caravel.
so, you can replace:

iEndPoint = SHIP_FRIGATE;

with

iEndPoint = SHIP_newship;

(newship is the name you set to your ship)
 
Damn, no name-entry in the yardmenu <img src="style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=":?" border="0" alt="unsure.gif" />
 
well, you have to define new strings...
open resource\ini\texts\english\common.ini (replace english with another language if you're using a different language). you will find a list of strings for ships:

string = Boat,"Boat"
string = Fort,"Fort"
string = Tartane,"Tartane"
...

add a new one:

string = newship,"newship name"

'newship' is the model of your new ship...
 
I did exactly what you said, why when I look through my spyglass, the captain of the Pearl isn't Barbossa, but a random name? :s
 
What exactly are you trying to do? If you have the Black Pearl encounter-able at sea, that doesn't mean Barbossa is involved.
It'll just be a random ship with a random name that happens to look like the Black Pearl.
 
I succed in putting a name on the boat. But.. doesn't this function suggest that Barbossa will be the captain of the boat?

makeref(ch,Characters[n]);
ch.id = "Barbossa";
ch.name = "Barbossa";
ch.lastname = "";
ch.nation = PIRATE;
ch.model = "pirat_10";
ch.sex = "man";
ch.model.animation = "man";
ch.location = "";
ch.location.group = "";
ch.location.locator = "";
ch.rank = 60;
ch.experience = 1000000;
ch.loyality = 99;
ch.skill.Leadership = "9";
ch.skill.Fencing = "10";
ch.skill.Gun = "10";
ch.skill.Sailing = "10";
ch.skill.Tactic = "10";
ch.skill.Accuracy = "10";
ch.skill.Cannons = "10";
ch.skill.Grappling = "10";
ch.skill.Repair = "8";
ch.skill.Defence = "10";
ch.skill.Commerce = "5";
ch.skill.Sneak = "9";
ch.money = "10000";
ch.ship.type = generateship(SHIP_blackpearl, 1);
 
It does, yes. When you board her, do you get to fight the captain? Does he use the "captain_10" model like he's programmed to?
 
Does his name need to be in a file in RESOURCE\TEXTS or something?
 
Back
Top