• 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 Updating the Russian Translation

They shouldn't be attacking anyone, and neither should you. This is supposed to be the choice in which you allow the Gombo to kill the slaver. It's the same as if you choose to let Nigel Blythe kill Artois Voysey in the normal sidequest. "Gentleman Jocard", alias Gombo, is playing the part of Nigel here. That is why, in case "saving_artois":
Code:
LAi_group_MoveCharacter(CharacterFromID("Gentleman Jocard"), "nigel_2");
LAi_group_FightGroups("nigel_2", LAI_GROUP_PLAYER, true);
... makes your officers attack Gombo - this is where you have chosen to intervene.

So, in case "killing_artois", see what happens if you remove the line entirely - don't change it to "Slaver" instead of "Gentleman Jocard".
 
They shouldn't be attacking anyone, and neither should you. This is supposed to be the choice in which you allow the Gombo to kill the slaver. It's the same as if you choose to let Nigel Blythe kill Artois Voysey in the normal sidequest. "Gentleman Jocard", alias Gombo, is playing the part of Nigel here. That is why, in case "saving_artois":
Code:
LAi_group_MoveCharacter(CharacterFromID("Gentleman Jocard"), "nigel_2");
LAi_group_FightGroups("nigel_2", LAI_GROUP_PLAYER, true);
... makes your officers attack Gombo - this is where you have chosen to intervene.

So, in case "killing_artois", see what happens if you remove the line entirely - don't change it to "Slaver" instead of "Gentleman Jocard".
I changed my message, but you probably didn't see it. The slave trader becomes immortal because we don't move on to the "nigel_2" case.
 

Attachments

  • 1709576004404.png
    1709576004404.png
    963 KB · Views: 54
I made some small improvements to the quest and tested them:
case "Artois_kill":
A line was added at the very end -
Code:
LAi_SetFightMode(PChar, false);
case "Kill_Slaver":
After LAi_SetPlayerType(pchar); - was added;
Code:
LAi_SetFightMode(pchar, true)
case "slaver_killed":
After LAi_SetPlayerType(PChar); - was added;
Code:
LAi_SetFightMode(PChar, false)
case "saving_artois":
After LAi_SetPlayerType(Pchar); - was added;
Code:
LAi_SetFightMode(PChar, true)
Also, random thugs appear in the location during the quest.
If I remember it right :
Code:
DeleteAttribute(&Locations[FindLocation("Oranjestad_town")],"vcskip");
- remove the attack of thugs.
Code:
Locations[FindLocation("Oranjestad_town")].vcskip = true;
- turn on the attack of thugs.
Then in this case "Install_Voysey_And_Blythe" they are turned on.
I don't know where to add lines of code so as not to disable them completely.
 
Last edited:
Another change. In case "killing_artois", change this:
Code:
LAi_group_MoveCharacter(CharacterFromID("Gentleman Jocard"), "nigel_2");
... to this:
Code:
LAi_group_MoveCharacter(CharacterFromID("Gentleman Jocard"), LAI_GROUP_PLAYER);
Your officers won't attack either character, and the slaver is no longer immortal. For some reason the game sometimes gets confused by AI groups and the officers even continued to attack Gombo when I set LAI_GROUP_PLAYER to be friendly to "nigel_2". Setting Gombo, alias "Gentleman Jocard", to LAI_GROUP_PLAYER puts him in the same AI group as you and your officers, and it shouldn't do any harm because he's going to become an officer and go into that AI group anyway.

Also, random thugs appear in the location during the quest.
If I remember it right :
Code:
DeleteAttribute(&Locations[FindLocation("Oranjestad_town")],"vcskip");
- remove the attack of thugs.
Code:
Locations[FindLocation("Oranjestad_town")].vcskip = true;
- turn on the attack of thugs.
Then in this case "Install_Voysey_And_Blythe" they are turned on.
I don't know where to add lines of code so as not to disable them completely.
Other way round. Adding the "vcskip" attribute to a location blocks random NPC's from appearing. That includes random thugs and random civilians. Deleting the attribute allows those random NPC's to appear, though they won't suddenly spawn while you're there, it just allows them to appear when you next enter that location.

Which means random thugs should not appear because there's already 'Locations[FindLocation("Oranjestad_town")].vcskip = true' in case "Install_Voysey_And_Blythe", and 'DeleteAttribute(&Locations[FindLocation("Oranjestad_town")],"vcskip")' in case "Story_Artois". (Similar lines are in the same places in "quests_side.c" to prevent random NPC's from appearing in Pirate Settlement for the normal sidequest.)

But if you choose to intervene to save either the slaver in "Hoist the Colours", or Artois in other storylines, it's possible for one of your officers to shoot at Gombo or Nigel, miss, hit one of the normal inhabitants of the town instead, and provoke them into fighting you.
 
LAi_group_MoveCharacter(CharacterFromID("Gentleman Jocard"), LAI_GROUP_PLAYER);
Yes it works.

The only thing I don’t like now is that Jack runs into his officer at the reload1_1 locator and can’t go left for a long time. But there’s probably no way to fix this, just make a new locator.
 

Attachments

  • 32141.png
    32141.png
    961.7 KB · Views: 52
There are some random NPC's in that screenshot and I've just figured out why. Case "Install_Voysey_And_Blythe" is triggered when you enter Oranjestad town, so it's too late to set the 'vcskip' attribute there. Add it in "quests_reaction", near the bottom of case "storm_complete", which is where the trigger for "Install_Voysey_And_Blythe" is set. It won't do any good in your current game unless you reload all the way back to before Cutler Beckett burns the Wicked Wench and Davy Jones resurrects it as the Black Pearl. But it should prevent random NPC's from appearing there next time you play the storyline.
 
In the file Friend_dialog.c
link.l1 = DLG_TEXT[3]+ Pchar.name + " " +DLG_TEXT[4];
you need to remove the " " so that there is no space.
 

Attachments

  • 1709738580366.png
    1709738580366.png
    815.1 KB · Views: 37
Check your current version of "PROGRAM\Storyline\JackSparrow\dialogs\RUSSIAN\Friend_dialog.h". The English version I have has lines 5 and 6:
Code:
"I am ",
"and my friend here is Captaine Chevalle.",
Your screenshot shows a comma and space after your name. That comma and space are not in the English or Spanish versions of "Friend_dialog.h", nor in my current copy of the Russian version. Removing that space from "Friend_dialog.c" will therefore break other translations.

Also, "Friend_dialog.c" is in "PROGRAM\DIALOGS", not in the storyline folder, so the same file is used with "PROGRAM\DIALOGS\ENGLISH\Friend_dialog.h" (and the Spanish and Russian versions) for the "Peter Blood's Crew" sidequest in other stories. Removing the space from "Friend_dialog.c" will also break those.
 
1) Thomas Tipman continues to stand in the Tortuga tavern after I completed the quest to find the admiral's son.
2) What should I do after taking Chevalier to the team? The walkthrough says that I must sail to Tortuga and on the pier either I will talk to myself, or the Chevalier will tell me: Talk to someone else Captain. But nothing happens and Barbossa is not in the tavern. Quest: Villanueva - Help Two Pirates.
 

Attachments

  • 1412.png
    1412.png
    775.3 KB · Views: 37
1: In "quests_reaction.c", case "Luc_start_check", add this inside the 'if' block so that it only happens if you're level 4 or higher:
Code:
ChangeCharacterAddress(CharacterFromID("Thomas Tipman"), "none", "");
Thomas should then disappear when you enter Santo Domingo town hall and see Joaquin Da Saldanha. If you are not at least level 4, Joaquin Da Saldanha will not appear and Thomas Tipman should not disappear. He should stay in Tortuga tavern to remind you about the quest until you are high enough level to see Joaquin Da Saldanha.

2: When did you complete "Rescue Captaine Chevalle's crew"? Before or after you went with Barbossa to Isla de Muerte?
 
2: When did you complete "Rescue Captaine Chevalle's crew"? Before or after you went with Barbossa to Isla de Muerte?
I don't know for sure... I used fast travel on the quests in the Tortuga tavern and went to Legend of Jack Sparrow - Dead man's chest and completed the side quest chains with the Admiral's son, Sao Feng, etc.
 
Using jumpstarts like that can cause trouble. In this case, it's because attribute "PChar.chevalle" has not been set.

Download the attached "console.c". Load a savegame from before you took Capitaine Chevalle to Nevis Pirate Settlement. Press F12 to run the console. That should set "PChar.chevalle" to "0". That's what is checked when Capitaine Chevalle joins you as an officer. The trigger to start the "Helping Two Pirates" quest is only set if "PChar.chevalle"is "0"
 

Attachments

  • console.c
    35.3 KB · Views: 33
1) Indian - not translated.
2) Soldier - not translated.
3) Spanish Camp - not translated.
4) Battle Rocks port - not translated.
5) Killing a person in a location with silver breaks the quest, can it make him immortal?
6) I added a few improvements to the quest and tested them:
1.
case "dispute_3": at the beginning
LAi_SetFightMode(PChar, true);
2.
case "findefin": at the end
LAi_SetFightMode(PChar, false);
3.
We need to block the cave and jungle locations, otherwise if we just leave, the quest characters will disappear and the quest will break.
case "minefight": at the end
Locations[FindLocation("Battle_Rocks_Jungle_01")].reload.l2.disable = true;
Locations[FindLocation("Battle_Rocks_Jungle_01")].reload.l3.disable = true;
4.
case "entrermine": at the end
Locations[FindLocation("Battle_Rocks_Jungle_01")].reload.l3.disable = false;
Locations[FindLocation("Battle_Rocks_Mine")].reload.l2.disable = true;
5.
case "talktofriends": at the end
Locations[FindLocation("Battle_Rocks_Jungle_01")].reload.l2.disable = false;
6.
case "allerport": at the end
Locations[FindLocation("Battle_Rocks_Mine")].reload.l2.disable = false;
7.
case "joinsilvertrain3": at the end
LAi_SetFightMode(PChar, false);
 

Attachments

  • 1710168736250.png
    1710168736250.png
    1.1 MB · Views: 30
  • 1710168917675.png
    1710168917675.png
    1.1 MB · Views: 37
  • 1710169011129.png
    1710169011129.png
    1,005.4 KB · Views: 27
  • 1710169265760.png
    1710169265760.png
    971.3 KB · Views: 29
  • 1710169567260.png
    1710169567260.png
    1 MB · Views: 27
1: In "PROGRAM\Storyline\JackSparrow\quests\both_reaction.c", case "fightindians", replace all...
Code:
sld.name = "Indian";
...with...
Code:
sld.name = TranslateString("","Indian");
"Indian" is already translated in "RESOURCE\INI\TEXTS\RUSSIAN\characters_names.txt".

2: In case "fightspaniards2", replace all...
Code:
sld.name = "Soldier";
... with...
Code:
sld.name = TranslateString("","Soldier");
"Soldier" is translated in "common.ini".

Also, in case "minefight", replace...
Code:
sld.name = "Soldier";
... with...
Code:
sld.name = FirstLetterUp(TranslateString("","Soldier"));
The translation in "common.ini" is all lower case "soldier", which is alright for soldiers who are only going to appear as "Body of soldier" but not for one who will be talking to you. The 'FirstLetterUp' should give him an upper case "S".

3, 4: Add translations for "Spanish Camp" and "Battle Rocks port" to "interface_strings.txt". A good place might be directly under the line for "Will Turner's House".

5: At case "joinsilvertrain", directly above this line...
Code:
sld.id = "convoyami";
... add:
Code:
LAi_SetImmortal(sld, true);

6: Any player who doesn't know to draw his sword when he's being attacked deserves what he gets! The rest look alright, and I'll do the same to "quests_side.c" for the regular sidequest with Will Turner and Elizabeth Swann in other storylines.
 
Add more to case "joinsilvertrain2":
sld.name = TranslateString("","Soldier"); - to translate the names of these soldiers.

I discovered that "Devil Creek" on Petit Tabac is not in interface_strings.txt

Also, there’s probably no point in making this person immortal, because if you hit him, his icon will turn into a dead man and you won’t be able to talk to him.
 

Attachments

  • 1710184468020.png
    1710184468020.png
    1 MB · Views: 29
  • 1710184700897.png
    1710184700897.png
    912.4 KB · Views: 24
  • 1710186944147.png
    1710186944147.png
    458.4 KB · Views: 29
Last edited:
Add more to case "joinsilvertrain2":
sld.name = TranslateString("","Soldier"); - to translate the names of these soldiers.
Yes, I'd spotted that one as well.

I discovered that "Devil Creek" on Petit Tabac is not in interface_strings.txt
Add a line for it just below the lines for "Petit Tabac" and "Battle_Rocks".

Also, there’s probably no point in making this person immortal, because if you hit him, his icon will turn into a dead man and you won’t be able to talk to him.
Try adding:
Code:
LAi_LocationFightDisable(&locations[FindLocation("Battle_Rocks_Jungle_03")], true);
... to the top of cases "joinsilvertrain" and "joinsilvertrain3", then add:
Code:
LAi_LocationFightDisable(&locations[FindLocation("Battle_Rocks_Jungle_03")], false);
... to the top of cases "joinsilvertrain2" and "leavedevilcreek". That should prevent you from drawing your sword until the fight with the Spanish soldiers begins, then prevent you from drawing your sword again after the fight.
 
1) Why is Askai standing at the top of the walkway even though the final dialogue implies that Jack is standing near the table stealing the gun?
2) Why is the room in a Havana tavern always open, as it should be?
3) There is no fast travel to prison in Havana.
4) Line 10 of the Bernardo Gamboa_dialog.h file does not display the name.
Perhaps this should also happen on line 3 of the Corentin Lucay_dialog.h file.
5) After the murder of the prison commandant, I went to the prison and talked to the new one there. He again tells me lines 15-16 Spanish Prison_dialog.h and after that he dies. Entering the prison one more time after this, the commandant is already standing on a chair and you cannot talk to him.
Quest name kill_Commendant FOUND in BothQuestComplete
Quest name fight_with_Spanish_Guards FOUND in BothQuestComplete
Quest name fight_with_Spanish_Guards2 FOUND in BothQuestComplete
6) This ship has no crew on deck.
 

Attachments

  • 1710495845206.png
    1710495845206.png
    864.3 KB · Views: 31
  • 1710495953451.png
    1710495953451.png
    814.3 KB · Views: 24
  • 1710496046488.png
    1710496046488.png
    789.7 KB · Views: 28
  • 1710496263607.png
    1710496263607.png
    867.5 KB · Views: 26
  • 1710496513514.png
    1710496513514.png
    778.4 KB · Views: 31
  • 1710496658702.png
    1710496658702.png
    838.7 KB · Views: 25
1: Since you have visible locators enabled, find a locator where you think Askay should be. Then put this into "both_reaction.c", case "back_to_the_port":
Code:
ChangeCharacterAddressGroup(CharacterFromID("Sumbhajee Aid1"), "Havana_Tavern", "goto", "goto7");
Replace "goto7" with whichever locator you prefer.

2: I'm not sure. That is, it's always open because this line:
Code:
Locations[n].reload.l2.disable = true;
... is missing from the definition of "Havana_tavern" in "PROGRAM\Locations\init\Cuba.c". What I don't know is whether that was simply a mistake by whoever wrote the definition of "Havana_tavern", or whether it needs to be permanently open for some quest reason. I'll try adding that line in the next update, then see if anyone complains that they can't get into the upstairs room during a quest.

3: Try the attached "PROGRAM\BATTLE_INTERFACE\fast_reload_table.c". You'll probably need to press F11 to make it work, or you might need to start a new game to try it.

4: That's because Corentin Lucay, in this storyline, used to have first name "Spanish", last name "Midshipman". That doesn't work in Spanish when he should show up as "Guardiamarina español", with the rank first. So the name was changed to 'TranslateString("Spanish", "Midshipman")', then "Spanish Midshipman" can be translated as a single phrase. It also meant that the last name was changed to "".

In "PROGRAM\Storyline\JackSparrow\dialogs\Bernardo Gamboa_dialog.c", find this line:
Code:
dialog.text = DLG_TEXT[8] + GetMyLastName(&Characters[GetCharacterIndex(DLG_TEXT[9])]) + DLG_TEXT[10];
Change that to:
Code:
dialog.text = DLG_TEXT[8] + DLG_TEXT[10];
Then, in "Bernardo Gamboa_dialog.h", add the translation for "Midshipman" to the end of line 10.

5: Put the attached "Spanish Prison_dialog.c" into "PROGRAM\Storyline\JackSparrow\dialogs\". Edit "both_reaction.c", find case "sri_reset_prison_commendant", and add this:
Code:
Characters[GetCharacterIndex("Havana Prison Commendant")].quest.Sumbhajee = "dead";
That should set an attribute which will be checked by the new version of "Spanish Prison_dialog.c" so that he does not use any of the quest dialog after he has been killed and resurrected.

6: That's "BrigRoyal" which has no walk file, so crew can not appear. You're most likely to notice that if you're playing FreePlay as that is the default starting ship.
 

Attachments

  • fast_reload_table.c
    41.6 KB · Views: 26
  • Spanish Prison_dialog.c
    3.3 KB · Views: 28
Replace "goto7" with whichever locator you prefer.
ChangeCharacterAddressGroup(CharacterFromID("Sumbhajee Aid1"), "Havana_Tavern", "goto", "goto12");
But it seems to me that we need to make sure that it is there from the very beginning of the quest. And he didn’t run up to me going down the stairs.
3: Try the attached "PROGRAM\BATTLE_INTERFACE\fast_reload_table.c". You'll probably need to press F11 to make it work, or you might need to start a new game to try it.
For some reason, the prison icon looks like a store and has no name. When I started a new game, I didn't find this fast travel at all.
That should set an attribute which will be checked by the new version of "Spanish Prison_dialog.c" so that he does not use any of the quest dialog after he has been killed and resurrected.
Yes it works, his dialogue is now standard, but now the name has become untranslatable into Russian.

For some reason not translated: "You found a silver treasure!"
 

Attachments

  • 1710510612738.png
    1710510612738.png
    805.1 KB · Views: 31
  • 1710511043935.png
    1710511043935.png
    920 KB · Views: 29
  • 1710511218724.png
    1710511218724.png
    827.9 KB · Views: 28
  • 1710516284293.png
    1710516284293.png
    640.6 KB · Views: 24
Last edited:
ChangeCharacterAddressGroup(CharacterFromID("Sumbhajee Aid1"), "Havana_Tavern", "goto", "goto12");
But it seems to me that we need to make sure that it is there from the very beginning of the quest. And he didn’t run up to me going down the stairs.
"PROGRAM\Storyline\JackSparrow\quests\quests_reaction.c", case "storm_complete", find this line:
Code:
ChangeCharacterAddressGroup(CharacterFromID("Sumbhajee Aid1"), "Havana_Tavern", "goto", "goto7");
You'll need to load a savegame from just before Davy Jones resurrects you and gives you the Black Pearl for that to have any effect.

For some reason, the prison icon looks like a store and has no name. When I started a new game, I didn't find this fast travel at all.
A copying error on my part. Find this line in "fast_reload_table.c":
Code:
curTable.l9.location = "Havana_prison";
Change the 9 into 10.

Yes it works, his dialogue is now standard, but now the name has become untranslatable into Russian.
Odd. Try loading a savegame from before you pressed F11 for the prison fast travel and see if his name is translated there.

For some reason not translated: "You found a silver treasure!"
"PROGRAM\Storyline\JackSparrow\quests\both_reaction.c", case "treasure_found", find this line:
Code:
Log_SetStringToLog(QUEST_MESSAGE4);
That should be:
Code:
Log_SetStringToLog(GlobalStringConvert("QUEST_MESSAGE4"));
The line is already translated in "globals.txt" and the correct line appears in "PROGRAM\QUESTS\quests_side.c", case "treasure_found", which means the same line should already appear in Russian if you play the normal "Artois Voysey" quest in any other storyline.
 
Back
Top