1. Dismiss Notice
  2. GOG.com logo

    Thanks to YOUR votes, GOG.com now sells:
    - Sea Dogs - Sea Dogs: Caribbean Tales
    - Sea Dogs: City of Abandoned Ships

    Vote now to add Pirates of the Caribbean to the list!

    Dismiss Notice
  3. Under the Crossbones Podcast

    A Pirate Podcast with Interviews
    Music, Comedy and all things Pirate!

    - Episode Guide - About - Subscribe -
    - Twitter - Facebook - iTunes - Android -
    - Youtube - Fill the Coffers -

    Dismiss Notice
  4. New Horizons logo

    Quick links for PotC: New Horizons
    - Download latest version
    - Wiki - FAQ - Report bugs here
    - ModDB profile

  5. GOF logo

    Quick links for AoP2: Gentlemen of Fortune 2
    - Downloads and info
    - Historical Immersion Supermod
    - ModDB Profile

Dismiss Notice
New to the forum?
Please take a moment to read our Welcome Message and Forum Rules.

Need Help Is it possible to add famous ships sail arround the specific islands with accurate captains??

Discussion in 'Build Beta and Brainstorming' started by Calico Jack, Jul 3, 2017.

  1. Calico Jack

    Calico Jack Powder Monkey

    Joined:
    Jul 15, 2016
    Messages:
    44
    Gender:
    Male
    Barbossa gave a fucking fight
    Both at sea and on the deck
    It was the most epic battle I ever had in the game
    In the captain's cabin I and will ended up against the barbossa and the guy almost kills me and will
    But it was fucking epic.
    I doubt that davy jones and the black beard will give half the fight he gave
     
  2. Ivanusiker

    Ivanusiker Powder Monkey

    Joined:
    Jul 23, 2017
    Messages:
    27
    Gender:
    Male
    Hello Guys I am new here ... and i want to ask Is it possible to add famous ships sail arround the specific islands with accurate captains?? For example Jack Sparrow and his Black Pearl.
     
  3. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,593
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Very possible. Not too difficult either.

    Wasn't someone already doing that for himself not too long ago?
    @Grey Roger, do you remember?
     
  4. Ivanusiker

    Ivanusiker Powder Monkey

    Joined:
    Jul 23, 2017
    Messages:
    27
    Gender:
    Male
    Ok so if it´s not difficult Where to start???
     
  5. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,593
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Character init files.
    Find an entry for a character with a ship.
     
  6. Ivanusiker

    Ivanusiker Powder Monkey

    Joined:
    Jul 23, 2017
    Messages:
    27
    Gender:
    Male
    is it this???
    //Tutorial

    ch.old.name = "Blackbeard";
    ch.old.lastname = "";
    ch.name = TranslateString("","Blackbeard");
    ch.lastname = TranslateString("","");
    ch.id = "Blackbeard";
    ch.model = "Blackbeard";
    ch.sex = "man";
    ch.location = "IslaDeMuerte_shore_03";
    ch.location.group = "goto";
    ch.location.locator = "goto2";
    ch.Dialog.Filename = "Blackbeard_dialog.c";
    ch.nation = PIRATE;
    ch.Ship.Name = "Queen Anne's Revenge";
    ch.Ship.Type = "QueenAnnesRevenge";
    ch.Ship.Stopped = true;
    ch.Flags.Pirate = 5;
    ch.Flags.Pirate.texture = 0;
    ch.Flags.Personal = 2;
    ch.Flags.Personal.texture = 0;
    ch.Dialog.Filename = "Blackbeard_dialog.c";
    ch.nation = PIRATE;
    GiveItem2Character(ch, "Blade_Triton");
    ch.equip.blade = "Blade_Triton";
    ch.rank = 100;
    ch.HPBonus = 500;
    ch.reputation = "10";
    ch.experience = "0";
    ch.skill.Leadership = "10";
    ch.skill.Fencing = "10";
    ch.skill.Sailing = "10";
    ch.skill.Accuracy = "10";
    ch.skill.Cannons = "10";
    ch.skill.Grappling = "10";
    ch.skill.Repair = "10";
    ch.skill.Defence = "10";
    ch.skill.Commerce = "10";
    ch.skill.Sneak = "10";
    ch.perks.list.BasicDefence = true;
    ch.perks.list.AdvancedDefence = true;
    ch.perks.list.SwordplayProfessional = true;
    ch.perks.list.CriticalHit = true;
    ch.perks.list.Rush = true;
    ch.money = "1";
    ch.quest.meeting = "0";
    LAi_SetImmortal(ch, true); // PB
    LAi_SetCivilianPatrolType(ch); // KK
    LAi_NoRebirthEnable(ch);
    LAi_SetLoginTime(ch, 0.0, 24.0);
    AddGameCharacter(n, ch);

    and then??
     
    Last edited: Jul 23, 2017
  7. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,593
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    That's indeed very close.
    I think you just need to add some "location" attributes for the ship as well.
    See if you can figure that out; if not, hopefully @Grey Roger can find some time tomorrow to explain it in more detail.
     
  8. Ivanusiker

    Ivanusiker Powder Monkey

    Joined:
    Jul 23, 2017
    Messages:
    27
    Gender:
    Male
    Ok I will rather wait for explanation
     
  9. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,593
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
  10. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,393
    I don't know how to add a ship so that it always appears. Normally I set up encounters for specific quests at the time that the ship is needed.

    Presumably you'd add some attributes in the character's definition to give the ship's location. You'll need to familiarise yourself with TOOL so you can find a valid sea location for the ship.
     
  11. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,593
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    I think if you set ch.location = "[*INSERT ISLAND ID*]"; , that may be enough.
    If it isn't that, then it is something very similar.
     
  12. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,393
    Would you not need a specific locator at the island? Especially if you want to have to look for the ship, rather than have it automatically spawn next to you as soon as you approach the island.
     
  13. Jack Rackham

    Jack Rackham HoO Team Member Quest Writer Storm Modder

    Joined:
    Jul 5, 2004
    Messages:
    3,288
    Gender:
    Male
    Occupation:
    math teacher
    Location:
    Sund, Ramsjö, Sweden
    I use
    SetCharacterShipLocation(characterFromID("gm_crew15"), "Kristiania_port");
    in StartStoryline.c
    The ship ends up on the first free loctor of the "ships_other" type. Not sure how to get it on a specific loctor though.
     
  14. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,593
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    That is indeed the way to do it when you want a ship visible from shore. :onya

    I think @Ivanusiker wanted the ship to sail around in 3D Sailing Mode, though.
     
  15. Ivanusiker

    Ivanusiker Powder Monkey

    Joined:
    Jul 23, 2017
    Messages:
    27
    Gender:
    Male

    Yes I wanted it in 3d sailing
     
  16. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,393
    Have a look at "PROGRAM\Storyline\Assassin\quests\quests_reaction.c", specifically at case "rocheship". At this point in the storyline, Roche Brasiliano's ship is placed near a random island and the player's job is to search the whole Caribbean to find it. You'll presumably be placing your ship at a specific island, not a random one, but the various cases for the various islands should give you some valid locators on which to place your ship, as well as the code structure needed to put the ship there.
     
    Pieter Boelen likes this.
  17. Ivanusiker

    Ivanusiker Powder Monkey

    Joined:
    Jul 23, 2017
    Messages:
    27
    Gender:
    Male
    Is it this???

    case "rocheship":
    switch(rand(15))
    {
    case 0:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "QuebradasCostillas", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 1:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "FalaiseDeFleur", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 2:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Aruba", "Quest_Ships","Quest_Ship_8");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 3:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Eleuthera", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 4:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Turks", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 5:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Antigua", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 6:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "SaintMartin", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 7:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Guadeloupe", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 8:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Hispaniola", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 9:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Cayman", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 10:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "KhaelRoa", "Quest_Ships","Quest_Ship_8");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 11:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Douwesen", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 12:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Conceicao", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 13:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Oxbay", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 14:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "IslaMuelle", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;

    case 15:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "Redmond", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;
    }
    break;
     
  18. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,393
    That's the one. You'll note how each case has the 'Group_CreateGroup', 'Group_AddCharacter', 'Group_SetGroupCommander' and 'Group_SetAddress' lines. The difference is that 'Group_SetAddress' line; that's where the ship is placed. If the island where you want your character is not one of these, you'll need to use TOOL to find a suitable locator. For that matter, even if the island you want to use is one of these, you may want to use TOOL to find where the ship is being placed, in case you want your ship to be somewhere else.
     
  19. Ivanusiker

    Ivanusiker Powder Monkey

    Joined:
    Jul 23, 2017
    Messages:
    27
    Gender:
    Male
    And where to place for example this lines ??

    case "rocheship":
    switch(rand(15))
    {
    case 0:
    Group_CreateGroup("Roche_Ship");
    Group_AddCharacter("Roche_Ship", "Roche Brasiliano");
    Group_SetGroupCommander("Roche_Ship", "Roche Brasiliano");
    Group_SetAddress("Roche_Ship", "QuebradasCostillas", "Quest_Ships","Quest_Ship_9");

    Pchar.quest.Meet_Rocheship.win_condition.l1 = "NPC_Death";
    Pchar.quest.Meet_Rocheship.win_condition.l1.character = "Roche Brasiliano";
    Pchar.quest.Meet_Rocheship.win_condition = "capture_roche";
    break;
     
  20. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,393
    For one thing, you won't need the switch unless your ship also is to be placed at a random choice of island. Also, rename everything! The case names, ship group name and character name all refer to Roche Brasiliano, a character in the "Assassin" storyline.

    As to where this piece of code goes - I can not answer that as I know nothing of the rest of your code. If you want the ship to be placed right at the start of the game then you could add something like this into "StartStoryline.c":
    Code:
    Group_CreateGroup("Pearl");
    Group_AddCharacter("Pearl", "Jack Sparrow");
    Group_SetGroupCommander("Pearl", "Jack Sparrow");
    Group_SetAddress("Pearl", "QuebradasCostillas", "Quest_Ships","Quest_Ship_9");
    That should put the Black Pearl somewhere near Nevis. If you want something specific to happen after you've sunk or captured the Black Pearl then you can add:
    Code:
    Pchar.quest.Defeated_Pearl.win_condition.l1 = "NPC_Death";
    Pchar.quest.Defeated_Pearl.win_condition.l1.character = "Jack Sparrow";
    Pchar.quest.Defeated_Pearl.win_condition = "Defeated_Pearl";
    And then, in "quests_reaction.c", or in "PROGRAM\QUESTS\quests_side.c" if this is a sidequest in a FreePlay game, define case "Defeated_Pearl" to do whatever you want to happen as a result.
     

Share This Page