• 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 Hoist the colors (For the 125431th time)

You're not near Jamaica at this point, you're in Speightstown tavern and Beckett has just walked out of the door.

This triggers when you arrive to Port Royale/redmond on Jamaica, after sailing with Beckett from Speightstown , so i assume it's correct in this case, but it would then trigger when you leave Redmond port, in which case it doesn't make sense to SetCharacterShipLocation(characterFromID("Cutler Beckett"), "Redmond_Port"); or i'm missing something here

Edit: for clarity

Go back to tavern and talk to Cutler Beckett and accept Escort job. – Let Beckett leave tavern – QB Update

Go to Port -- Sail with Cutler Beckett's ship to Port Royale Jamaica

At Port Royale Cutler Beckett talks to you on jetty – QB Update

Go to EITC offices, through port gate, right, 1st building on right
 
Beckett reaching the door triggers "First_run_Jamaica_with_Beckett2", which triggers "Beckett_escort_to_Redmond". That includes:
Code:
            Pchar.quest.Beckett_escort_complete.win_condition.l1 = "ExitFromLocation";
            PChar.quest.Beckett_escort_complete.win_condition.l1.character = Pchar.id;
            Pchar.quest.Beckett_escort_complete.win_condition.l1.location = "Redmond";
            Pchar.quest.Beckett_escort_complete.win_condition = "Beckett_escort_complete";
It's checking when you're not at "Redmond", which is the island, not the town. It should trigger when you're not sailing near Jamaica, which you're not because you've just watched Beckett walk to the door.

The part which triggers when you arrive at Port Royale is:
Code:
            Pchar.quest.Beckett_run_for_Mings2.win_condition.l1 = "location";
            PChar.quest.Beckett_run_for_Mings2.win_condition.l1.character = Pchar.id;
            Pchar.quest.Beckett_run_for_Mings2.win_condition.l1.location = "Redmond_port";
            Pchar.quest.Beckett_run_for_Mings2.win_condition = "Beckett_run_for_Mings2";
And "Beckett_run_for_Mings2" is the part which puts Beckett himself on the dock and makes him talk to you.

I might look into changing a few triggers, particularly this one at case "First_run_Jamaica_with_Beckett":
Code:
LAi_ActorGoToLocation(characterFromID("Cutler Beckett"), "reload", "reload1", "none", "", "", "First_run_Jamaica_with_Beckett2", 10.0);
A player who is in a hurry and who doesn't know what the code is doing might get to the door before Beckett (or fast-travel out of the tavern), which means "First_run_Jamaica_with_Beckett2" won't trigger, neither will "Beckett_escort_to_Redmond", and therefore neither will "Beckett_run_for_Mings2".
 
It's checking when you're not at "Redmond", which is the island, not the town. It should trigger when you're not sailing near Jamaica, which you're not because you've just watched Beckett walk to the door.

This makes sense now, but wouldn't ExitFromLocation be applied only when you "exit" from the specified location, or it's just checking if you are not at Redmond not if you have left from Redmond or not ? This info will most likely be useful later on...
 
From "PROGRAM\QUESTS\quests_check.c":
Code:
    case "ExitFromLocation":
        return refCharacter.location != condition.location;
    break;
It checks that you're not at the specified location.

A useful trick is at case "Chatter_to_smuggler2":
Code:
            PChar.quest.add_smuggler_passenger.win_condition.l1 = "ExitFromLocation";
            PChar.quest.add_smuggler_passenger.win_condition.l1.location = PChar.location;
            PChar.quest.add_smuggler_passenger.win_condition = "add_smuggler_passenger";
That really does check when you leave - that is, it checks that you are not where you are now.
 
@Grey Roger, sorry for the wall of text again dude....xD

I have finished most of sidequests ,Sri Sumbhajee Angria - Saving Askays Brother is left to be played, and i really did like added details in Sao Feng - Missing Bodyguards,

Also i have done Lucas the Admirals Son & Justine Le Moigne yet again, few issues occurred, i have not yet tried to figure any of them...

1. Crewmember npc was standing on deck, seen in the screenshot with Davy Jone's dialogue, i have no idea at what point he spawned in there and didn't get despawned, i assume at this point:

Sail to Cuba – on Land Ho transported to Ship Deck – talk to self Choose

1) Raise Battle flag

2) Raise Spanish Flag

WARNING if Montanez sunk - Mergildo Hurtado & Joaquin de Masse. will not appear in the rest of this quest – But Quest will continue depending on choice made above

From Sao Feng - Missing Bodyguards,


2. All quest records (journal) got messed up at some point, and i did not have a far enough save to track the exact moment :modding I had DMC records for the whole quest (not started), some records from COTBP (Long finished), and the quest that i was doing - Justine Le Moigne’s Disappearance had it's quest header closed.... to be honest i have no idea what caused this mess.

3. When arriving at Martinique and encountering The Flying Dutchman, it did not turn hostile, so we had a nice stroll together, it did attack me when i switched my flag to a french one, i used personal flag before.

4. At the scene where i'm supposed to run away from Davy's crew, after encountering the Dutchman, and talking to governor / returning Justine, after killing the first wave of enemies, i ran out of the left gate, as you are supposed to, and the dialogue with Davy's crewmember didn't trigger.

5. And there is still the issue with writing, as Justine Le Moigne’s Disappearance, is trying it's best to squeeze a lot of important plot info into few dialogues, and it suffers greatly from that in my opinion, and many of Jack Sparrow's dialogues don't feel much "sparrow" like to me, if that makes sense...fot example, when Jack asks Davy "How did you know my name?", i think when a legendary sea devil that he has met before and read about in the book he found etc. appears right on your deck the last thing on Jack's mind should be "How did he learn my name?" :rofl
but as i have mentioned before i won't do anything with it for now.

Some good news are that my continuation started as should, and i ran trough it again with no issues at all.

I'm starting to feel like fixing and improving the storyline is an endless process :D

I will attach my latest questreaction with all the small fixes from my previous posts, and i have changed Sao Feng's dialogue for now as @Grey Roger has suggsted. And some screenshots for the things above.
 

Attachments

  • DMC_Sao_Feng.rar
    63.2 KB · Views: 71
  • ermm.png
    ermm.png
    1.7 MB · Views: 102
  • relationsnoattack.png
    relationsnoattack.png
    1.5 MB · Views: 76
  • notattacking.png
    notattacking.png
    1.3 MB · Views: 92
  • hmmm4.png
    hmmm4.png
    1.1 MB · Views: 66
  • hmmm3.png
    hmmm3.png
    1.2 MB · Views: 86
  • bug12.png
    bug12.png
    2.2 MB · Views: 100
Last edited:
1: Probably doesn't matter - this is supposed to be on your ship so it does no harm if one of your crew is there. However, if you want to remove him, find case "to_greenford_for_montanez_complete2" and add this:
Code:
ChangeCharacterAddress(CharacterFromID("Larry"), "none", "");

2: The text files for quest records should all have a blank line at the end. Without that, random junk can appear at the end of a questbook. It doesn't need to be an empty "text.t*" line, a simple blank line is enough. If that's not what's causing problems for your questbooks then I have no idea. I've played the storyline to the end of CotBP and am about ready to head to Martinique for the encounter with the Flying Dutchman, and so far have seen no problems with any of the sidequests. But that leads to...

3: At case "Contact_NoLuck", add this:
Code:
Characters[GetCharacterIndex("Davy Jones")].recognized = true;
It's in the standard version in "quests_side.c" but hasn't been added to the storyline-specific version in "quests_reaction.c".

4: Odd. There should have been a second wave of enemies, though you don't need to fight them, you should be able to run away. The exit to the left should be locked at case "gotoseedavy", which is triggered when you finish talking to the governor and walk to the door. (You did walk to the door, didn't you? You didn't bypass it with a fast-travel or something?) Then you fight the first wave of enemies, which you have to wipe out to trigger "davy_townfight_run", which sets up the second wave of enemies and also sets up a self-dialog. It also unlocks the exit and sets up Davy's crewmember to meet you.

I'm starting to feel like fixing and improving the storyline is an endless process :D
Indeed. Players are still finding bugs in other storylines, which is why there are fixes for several of them in the current update, and the next update is going to have a few more. Wait until "DMC" has its first encounter with other players...
 
1: Probably doesn't matter - this is supposed to be on your ship so it does no harm if one of your crew is there. However, if you want to remove him, find case "to_greenford_for_montanez_complete2" and add this:
As shown in the screenshots, he gets in the way of quest related characters later on... ill try to see where he gets added for sure, as his display name is "Crewmember"

2: The text files for quest records should all have a blank line at the end. Without that, random junk can appear at the end of a questbook.

The more you know :) indeed my file for dmc did not have this empty line, let's hope that was the problem indeed.

4. You did walk to the door, didn't you? You didn't bypass it with a fast-travel or something?

Nope, walked to the door and got teleported out, everything went fine with the first wave, then self dialogue, spawned the second wave, and i ran to the gate, but on the other side npc did not talk to me, just followed around, i didn't have my blade drawn..
 

Attachments

  • Dead mans chest.txt
    1.8 KB · Views: 57
As shown in the screenshots, he gets in the way of quest related characters later on... ill try to see where he gets added for sure, as his display name is "Crewmember"
His ID is "Larry", he's defined for some reason in "TempQuestEnemy.c", and he's placed at case "To_Do_or_Not_To_Do". You have a self-dialog in which you decide whether to raise a Spanish flag, and this triggers "To_Do_or_Not_To_Do2". Larry answers and depending on whether you chose to raise the Spanish flag, his dialog triggers either "To_Do" or "Not_to_Do". Both of these send you back to sea, triggering "to_greenford_for_montanez_complete2"; the only difference is that "To_Do" also hoists the Spanish flag. So the two choices converge at "to_greenford_for_montanez_complete2", at which point you're back in sailing mode and "Larry" has finished his job, so that's a good place to remove him.

Nope, walked to the door and got teleported out, everything went fine with the first wave, then self dialogue, spawned the second wave, and i ran to the gate, but on the other side npc did not talk to me, just followed around, i didn't have my blade drawn..
I should be at that point fairly soon, so I'll see if the same happens again. But I've played the storyline before, including "Justine le Moigne's Disappearance", and never had a problem here.

For comparison, do you have a savegame from before you went to the townhall to talk to the governor?
 
@Sebrian About Singapore, there's a lot to do with it but I'm making progress.

Could you please upload your latest version of TempQuest.c please.
 
Last edited:
For comparison, do you have a savegame from before you went to the townhall to talk to the governor?

I do, but i cold not repliacete this bug, i wonder what i did to make the dialogue not trigger there...

@Jack Rackham yes, of course.

And a bit more regarding Singapore, player will start on the jetty/port enterence, and i'm planning to make it a fully functional town with traders, tavern, store, blacksmith etc. and make some of my own sidequests in this location, and it will be a part of the main "At the world's end" questline.

Player will be able to access it via a dialogue which teleports him to Singapore and back to Carribean at any time, So moving Sao Feng there won't cause any issues with the sidequest, only make it lore friendly

I will try to make it fancier than that of course, it's just a short concept for now,
 

Attachments

  • -=Player=- Martinique.rar
    776.9 KB · Views: 77
  • TempQuest.c
    158.5 KB · Views: 62
Maybe any of you know/have tried if we can add HP to an object make object an npc ?

The whole idea is to make tentacles that attack you when kraken is summoned into npcs with hp, so i can check if tentacle is killed in the quest...

And the last idea, is it possible to turn sea into sand/make ship sail sand/ground ? :wp And the ground must be walkable by the player...i know that sounds a bit much

I almost have it figured out, for some reason i didn't think of using this right away:

setCharacterShipLocation(characterFromID("NPC"), "LOC");
characters[GetCharacterIndex("NPC")].sailaway = true;

I tried to mess around with the locator but i couldn't make the ship sail above ground level, so all we need right now is a location with a completely even surface and a sand texture all over it, as far as the player can see, so the ship sails above ground as much as possible :D

Youtube video of my test

And i have yet to figure out the best way to make kraken's tentacles into npc's for the last fight, and make them surround players quarterdeck.

Everything is shaping up quite nicely!
 
Last edited:
Finally at Martinique, I was able to confirm that if I approach under a Personal flag, the Flying Dutchman does not attack. Battle group "FlyingDutchman" is created at case "Contact_NoLuck", which is triggered by talking to the Havana Port Admiral, so I edited "quests_reaction.c" to add 'Characters[GetCharacterIndex("Davy Jones")].recognized = true;' there, loaded a savegame from before I went to Havana, and then replayed from there until arrival at Martinique. This time the Flying Dutchman did attack even when I was under a Personal flag.

There was no problem with the fight outside the town hall and events afterwards. After talking to the governor and going to the door to teleport outside, I fought the first wave, had the self dialog, and exited stage left, where one of Davy Jones' crew (now using one of the nice new models) invited me to the port. I gave Jones a shove into the sea, he gave me a headache, next thing I know I'm in the tavern room with Justine le Moigne. After visiting her dad to collect the reward, I went outside, met Captain Maggee, got Tia Dalma, and sailed off for the next encounter with Davy Jones.

And so I'm finally in a position to try DMC.

First minor problem in "Tia Dalma_dialog.h": it should be "Jones' locker", not "Jone's" locker. ;)

More serious problem: after meeting a sailor on the dock of Grand Turk, I had a questbook entry which said I'd met him at Cozumel. Line "text.t4" should probably have "#sGrand Turk#", not "#sisland_Khael Roa#".

The prison guard captain looks suspiciously like Barbossa! In "PROGRAM\Storyline\JackSparrow\characters\init\TempQuest.c", he's given model "50grey1". There are several character models which are variations on a theme of Barbossa with differently coloured clothes and "50grey1" is one of them. Also:
Code:
ch.old.name = "Guard";
ch.old.lastname = "Captain";
ch.name = TranslateString("", "Guard");
ch.lastname = TranslateString("","Captain");
That won't work for translation, partly because there's no entry in "RESOURCE\INI\TEXTS\ENGLISH\Storyline\JackSparrow\characters_names.txt" for "Guard", but mainly because Spanish, for example, won't translate "Guard Captain" as Spanish for "Guard Captain", it will probably be Spanish for "Captain of the Guard". We had the same problem with "Street" and "Merchant", and we solved it like this:
Code:
ch.name = TranslateString("Street","Merchant");
ch.lastname = "";
If 'TranslateString' is given two words at once, it first tries to translate the pair as a single phrase. So "RESOURCE\INI\TEXTS\ENGLISH\characters_names.txt" contains "Street Merchant{Street Merchant}", and the Spanish version contains "Street Merchant{Mercader callejero}". So what you'll want is:
Code:
ch.old.name = "Guard";
ch.old.lastname = "Captain";
ch.name = TranslateString("Guard","Captain");
ch.lastname = "";
And likewise for "turks_prison_guard1":
Code:
ch.old.name = "Prison";
ch.old.lastname = "Guard";
ch.name = TranslateString("Prison","Guard");
ch.lastname = "";
Then, in "RESOURCE\INI\TEXTS\ENGLISH\Storyline\JackSparrow\characters_names.txt", add entries for "Prison Guard" and "Guard Captain". Our Spanish, Russian and Polish translators can then translate them into whatever works in their respective languages.
 
Last edited:
First minor problem in "Tia Dalma_dialog.h": it should be "Jones' locker", not "Jone's" locker. ;)

Aye, fixed.

More serious problem: after meeting a sailor on the dock of Grand Turk, I had a questbook entry which said I'd met him at Cozumel. Line "text.t4" should probably have "#sGrand Turk#", not "#sisland_Khael Roa#".
ch.old.name = "Prison"; // Not "Pirison"!

Geez, how did i miss these when testing :facepalm

Ill fix Guard Captain and will add all the new names to characters_names this evening, thanks! :cheers
 
@Grey Roger i have fixed what you have found above, and i have added few more fixes for similar names in my quest, like Cannibal Chief... and fixed few more typos, but i bet you will find some other small mistakes at some point.

Code:
ch.old.name = "Cannibal";
ch.old.lastname = "Chief";
ch.name = TranslateString("Cannibal","Chief");
ch.lastname = "";


And hopefully correctly added names to character_names, but please do check...

And now pirates that appear in the final prison dialogue change their model, so it's not the same guys that player might have killed on his way there ;)

Code:
SetModelFromID(CharacterFromID("Pirates_1"), "Corsair3");
SetModelFromID(CharacterFromID("Pirates_4"), "Pirat2");

My plan was to make text.t6 appear in the questbook after some time, so the player sails around tryig to figure out the next location, but most players might get confused and read the guide anyways, so i scrapped that idea.

Edit:

1: Probably doesn't matter - this is supposed to be on your ship so it does no harm if one of your crew is there. However, if you want to remove him, find case "to_greenford_for_montanez_complete2" and add this:
Added to both_reaction
 

Attachments

  • characters_names.txt
    4.2 KB · Views: 53
  • TempQuest.c
    158.5 KB · Views: 66
  • quests_reaction.c
    557.8 KB · Views: 64
  • Dead mans chest.txt
    1.8 KB · Views: 48
  • Tia Dalma_dialog.h
    7.4 KB · Views: 61
  • both_reaction.c
    191.3 KB · Views: 59
Last edited:
@Jack Rackham

I couldn't find a good footage of the "bathhouse" where player first meets Sao Feng in the story, but here is a nice soundtrack that we could use as the theme for this city, and another video about this location, i will try to find more stuff aboit it...

Soundtrack

Video

Thank you for working on it, it's indeed a ton of work and takes a lot of time, you have all of my respect!
 
I like that soundtrack. Can you find it as a file and upload it?

Yes there's a lot to do and it'll take some time.

This is done:
new walk_path
4 work arounds for bad spots in the walk path
a little joke added where you can get headache
cannons added
bell (from the graveyard) added
flagpole added
the location had some boats at sea, they were just 3D models not floating ships, deleted
bars added at the entrance to upper town
changing of sound type upper/lower town

This is started:
when removing the boats some on land got lost too. No big issue but the thwarts remained so I have to
cover them with .... things
night lights

Left to do:
smoke chimneys
reload locators doors
more market stalls (many)
 
I like that soundtrack. Can you find it as a file and upload it?

I did not convert it for the game, it's just an mp.3 :)

the location had some boats at sea, they were just 3D models not floating ships, deleted
I assume the boats looked pretty bad ?
 

Attachments

  • Singapore.rar
    5.8 MB · Views: 74
@Sebrian: here's my version of "quests_reaction.c". It includes several fixes for the storyline from the "Brock/Brinkley" start up to the escape from the fort to the Black Pearl and the revised code for disabling all island reloads during the Kraken attack.

And also one small tweak to DMC. In the cannibal village, Will Turner appears, you fight a batch of cannibals, then he joins you as an officer. If you talk to him again at that point, he repeats his dialog from the fort escape. There are two ways to direct a character's dialog. One way is to set the character's "dialog.currentnode" to point to the correct case in his "dialog.c" file. The other is to set an attribute on either the player or the character which is then checked in dialog case "First Time". "Will Turner_dialog.c" uses several 'CheckQuestAttribute' checks on "PChar.quest.Turner", which was last set to "rescue_Jack" at quest case "prepare_execution_escape". I've added a line at "cannibals_will_fight" to set it to "Cannibal_village", which is not a value recognised by any of the 'CheckQuestAttribute' checks in "Will Turner_dialog.c", so case "First Time" will just use its default lines of "--".

This is character model "JGod". It's been in the mod for some time. I'm sure you can find a use for it. ;)
JGod.jpg JGod_head.jpg
 

Attachments

  • quests_reaction.c
    558.9 KB · Views: 65
@Grey Roger, this might sound silly but i never tried to talk with Will for second time in that scene xD

This is character model "JGod". It's been in the mod for some time. I'm sure you can find a use for it. ;)
Nice! I will now use it for sure ;) Ill add it to the scene today, thanks!
 
Back
Top