• 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

The storyline has its own versions of Jean Dusac and Cecile Bienbonne who both have 24 hour logins, so they should be able to appear at any time of day.
 
I wanted to ransom the prisoner, but by chance I didn’t have 10,000. After I spoke to him again, my character answered him with the phrase line 87 of the Remy Gatien_dialog file, although this is the phrase of the governor. I think there is a lack of new dialogue here, or line 73 should be used.
 

Attachments

  • 1700676275817.png
    1700676275817.png
    670.1 KB · Views: 83
"PROGRAM\DIALOGS\Remy Gatien_dialog.c", line 59:
Code:
link.l2 = DLG_TEXT[85];
Change the [85] to [83]. That will use line 85 of the "Remy Gatien_dialog.h":
I came to pay the 10000 gold coins for the prisoner.
 
It seems the name of the ship 'Arabella' needs to be added to storyline_strings.txt, it is not there.
 

Attachments

  • 124412.png
    124412.png
    815.8 KB · Views: 48
You'll need this version of "PROGRAM\Characters\init\Officers.c", which adds 'TranslateString' commands to the ship names for both Txiki Pijuan and Claire Larrouse. Claire's ship name "Cheri" is already translated because the old, original character Clair Larrouse, with a ship of the same name, is in "sidequest.c". So "Cheri" is already in "storyline_strings.txt" but "Arabella" is not.

In "storyline_strings.txt", add a translation for "Arabella" just below the last line for "Septentrión", which is the last line translating file "SideQuest.c".
 

Attachments

  • Officers.c
    22.6 KB · Views: 48
In the quest A girl won in a card game, after I leave the room above my character starts walking, is it possible to run after I leave. I know he switches to k, but other people will do that the whole game.
 
I used to have the exact opposite problem - I prefer not to always run, that quest forced me to always run, so I fixed it to not do so.

It seems that there's an earlier piece of quest code which sets you to walk, possibly so that you don't run while you're following the gambler as he walks to the stairs. I've now set an attribute there. The code which is supposed to set you to always run later now only activates if the attribute is set. If it works, that should keep everyone happy. If you aren't set to always run then the earlier code won't activate, the attribute won't be set, and you won't be set to always run when you're in the room. If you are set to always run then the earlier code activates, sets you to walk and sets the attribute; then in the room, the attribute is detected and you're set back to running.

Try this version of "PROGRAM\QUESTS\quests_common.c". It also fixes a couple of bugs in governor ship-hunting quests.

Edit: file attachment deleted as it had a mistake which caused the quest ship to have too much money. A corrected version is posted here:
Mod Release - Build 14 Gamma Version [Last update: 10th October 2023]
 
Last edited:
1)The file Octave Fabre_dialog.h lines 23-24 does not translate the date "September".
2)Do you want to dig as well? With your Лопата??? - The expression is not translated except Shovel.
3)For some reason the prefix "HMS" is still not translated.
4)Should there be so many people from Davy Jones' ship in Elizabeth Shaw's Disappearance? They attacked me 2 times when I left the residence. The first and second have the same names.
5)After killing everyone who was at point 4, for some reason “Grand Cayman Port” stopped being translated.
 

Attachments

  • 1.png
    1.png
    945.1 KB · Views: 52
  • 2.png
    2.png
    631.5 KB · Views: 50
  • 3.png
    3.png
    744.9 KB · Views: 49
  • 4.png
    4.png
    1.1 MB · Views: 46
  • 5.png
    5.png
    1 MB · Views: 60
1: Try this version of "PROGRAM\DIALOGS\Octave Fabre_dialog.c". Instead of displaying the day, month and year directly, it uses function 'GetHumanDate', which should also arrange the date more correctly in Russian. (If it doesn't, have a look at "PROGRAM\utils.c, where 'GetHumanDate' is defined, and change the section "case ILANG_RUS:" to show the date the way you want it.)
Edit: file updated because I got the year and day the wrong way round.

2: The attached "PROGRAM\ITEMS\itemLogic.c" removes a space from the translatable phrase "Do you want to dig as well? With your". And "interface_strings.txt" has a new line 698 which is a copy of line 697 ("Do you want to dig as well? With your SWORD") with the last word removed - I'm hoping that was Russian for "sword", if not then you can correct line 698 properly.

3: Try the attached "PROGRAM\SHIPS\Ships.c".

4: Yes, there are supposed to be two waves of attackers. Someone provided some nice models of Davy Jones' real crew from the film, so we used them here.

5: That's because you are now in a clone of the town which is used by the quest. That is easier than removing all the town's usual inhabitants and then putting them back after the quest. The attached "PROGRAM\Locations\init\SideQuestLocations.c" should use the normal, translated labels, but you'll need to start a new game for it to take effect.
 

Attachments

  • Ships.c
    37.5 KB · Views: 69
  • SideQuestLocations.c
    36.4 KB · Views: 52
  • interface_strings.txt
    142.7 KB · Views: 38
  • itemLogic.c
    116.1 KB · Views: 38
  • Octave Fabre_dialog.c
    3.3 KB · Views: 40
Last edited:
1: Try this version of "PROGRAM\DIALOGS\Octave Fabre_dialog.c". Instead of displaying the day, month and year directly, it uses function 'GetHumanDate', which should also arrange the date more correctly in Russian. (If it doesn't, have a look at "PROGRAM\utils.c, where 'GetHumanDate' is defined, and change the section "case ILANG_RUS:" to show the date the way you want it.)
Initially, with the Octave Fabre_dialog.c file for the Russian language, the date was incorrect, the year and day were confused (this can be seen in 1 screenshot). I had to swap them in utils.c. Although it is very strange why the variable "day" actually means "year" (screenshot 2 is correct).
 

Attachments

  • 1.png
    1.png
    684.1 KB · Views: 51
  • 2.png
    2.png
    914.2 KB · Views: 45
  • utils.c
    67.8 KB · Views: 38
Variable "day" is the day, variable "year" is the year, otherwise English and Spanish dates would not work! The English layout is the default:
Code:
string formatted = XI_ConvertString("g_month_" + month) + " " + day + XI_ConvertString(sufix) + ", " + year;

The problem is that in "Octave Fabre_dialog.c", I'd put:
Code:
Link.l1 = GetHumanDate(GetDataDay(), GetDataMonth(), GetDataYear()) + DLG_TEXT[22];
Whereas it should be:
Code:
Link.l1 = GetHumanDate(GetDataYear(), GetDataMonth(), GetDataDay()) + DLG_TEXT[22];
Because the function is defined in "utils.c":
Code:
string GetHumanDate(int year, int month, int day)
I've re-uploaded the file in my earlier post.

Download the newer version of "Octave Fabre_dialog.c", put the Russian section of 'GetHumanDate' back the way it was, and see if that works.

@Homo eructus: Spanish "common.ini" translates all the day suffixes and the code "yr" as blank, so presumably Spanish does not use them. English has no suffix for year either, so "yr" does not appear in the default English layout. So I'll simply remove "sufix" and "yr" from the Spanish line:
Code:
formatted =  day + " de " + XI_ConvertString("g_month_" + month) + " de " + year;
 
Variable "day" is the day, variable "year" is the year, otherwise English and Spanish dates would not work! The English layout is the default:
Code:
string formatted = XI_ConvertString("g_month_" + month) + " " + day + XI_ConvertString(sufix) + ", " + year;

The problem is that in "Octave Fabre_dialog.c", I'd put:
Code:
Link.l1 = GetHumanDate(GetDataDay(), GetDataMonth(), GetDataYear()) + DLG_TEXT[22];
Whereas it should be:
Code:
Link.l1 = GetHumanDate(GetDataYear(), GetDataMonth(), GetDataDay()) + DLG_TEXT[22];
Because the function is defined in "utils.c":
Code:
string GetHumanDate(int year, int month, int day)
I've re-uploaded the file in my earlier post.

Download the newer version of "Octave Fabre_dialog.c", put the Russian section of 'GetHumanDate' back the way it was, and see if that works.

@Homo eructus: Spanish "common.ini" translates all the day suffixes and the code "yr" as blank, so presumably Spanish does not use them. English has no suffix for year either, so "yr" does not appear in the default English layout. So I'll simply remove "sufix" and "yr" from the Spanish line:
Code:
formatted =  day + " de " + XI_ConvertString("g_month_" + month) + " de " + year;
Yes, everything works!
 
@Grey Roger In discord, user Natzrim discovered in the code that if the luck and level of the player is higher, then there is a greater chance of getting an albatross. This is right? It seems to me that it should be: the less luck, the greater the chance of getting it. He says that every 5th boarding he is given 1 albatross.
n = InitItem(n,"albatross", "", 7, 4, 0.05, 1, 25, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 1);// Albatross
 
That is probably a result of the way items are spawned in boxes. Higher luck skill can increase the number of items in the box, therefore the chances of any particular item such as an albatross appearing. Higher luck skill also improves the chances that the items are something other than medicaments.

It might be possible to reduce the chance of an albatross appearing when you have higher luck - but then, since it's unlikely to appear if you have lower luck due to the lower number of items and the likelihood that they're all bandages, you won't have much chance of finding it with lower luck either.

Edit "InternalSettings.h". Find the line for "CURSES_DISABLED". Set it to 2. Now the albatross won't automatically jump into your inventory, and if you pick it up by accident, you can put it back down again.
 
1) For some reason, in the Saga of the Blacque Family quest, the second option doesn’t work for me: talk to Orable so that he doesn’t beat the girl. The only option available is to pay her money. There's just no dialogue... I've attached the save.
2)The code does not have a period at the end of the sentence. The file rachel blacque_dialog.h is most likely line 86.
 

Attachments

  • -=Тест=- Мартиника. Сен-Пьер 22-е Октября 1738г.7z
    633.6 KB · Views: 63
  • error.log
    2 KB · Views: 34
  • compile.log
    49.3 KB · Views: 27
  • 1.png
    1.png
    752.4 KB · Views: 50
Last edited:
1: Did you talk to Turpin Cabanel? You can only get the line "Is that a bruise on your face? Has someone beaten you?" if you have first asked Turpin about the Blacque family.
2: What has Rachel just said to you and what are you saying in reply?

It can't be line 86 because that is used in "rachel blacque_dialog.c", case "letter_4":
Code:
Dialog.text = DLG_TEXT[84] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[85];
Remember that the 'DLG_TEXT' number is usually 2 less than the text line number because the first line of dialog text is the second line in the file and 'DLG_TEXT' counts from 0, so line 2 of the file is 'DLG_TEXT[0]'. And line 86 is 'DLG_TEXT[84]'. So that line in "rachel blacque_dialog.c" combines line 86, your title and line 87; and all you say in reply is a single word from line 88.
 
2: What has Rachel just said to you and what are you saying in reply?

It can't be line 86 because that is used in "rachel blacque_dialog.c", case "letter_4":
Code:
Dialog.text = DLG_TEXT[84] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[85];
Remember that the 'DLG_TEXT' number is usually 2 less than the text line number because the first line of dialog text is the second line in the file and 'DLG_TEXT' counts from 0, so line 2 of the file is 'DLG_TEXT[0]'. And line 86 is 'DLG_TEXT[84]'. So that line in "rachel blacque_dialog.c" combines line 86, your title and line 87; and all you say in reply is a single word from line 88.
I looked and it's lines 74-76. Where 76 is what I'm saying.
1: Did you talk to Turpin Cabanel? You can only get the line "Is that a bruise on your face? Has someone beaten you?" if you have first asked Turpin about the Blacque family.
Yes, I talked to him and he said that the girl had problems. She had 2 dialogue options with a bruise and where you need to pay. When I chose the option with the bruise, Orable did not say anything about the task, but only about the pirates and the boatswain, as was usually the case.
Also, some errors related to this Oracle appeared in error.log.
 
1: After asking Rachel about the bruise, you need to talk to Orable twice. The first time, he just has the usual stuff. Talk to him again and you should get the line about Rachel.

2: "PROGRAM\DIALOGS\rachel blacque_dialog.c", case "money":
Code:
Dialog.text = DLG_TEXT[72] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) DLG_TEXT[73];
I'm surprised that didn't break the dialog. It should be:
Code:
Dialog.text = DLG_TEXT[72] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[73];
DLG_TEXT[73] is line 75 which is just a period. That is to help you! If Russian (or any other language) grammar would look better with something after the player's title, it can be added to line 75.
 
1: After asking Rachel about the bruise, you need to talk to Orable twice. The first time, he just has the usual stuff. Talk to him again and you should get the line about Rachel.
I talked to him a second time, and apparently the dialogue was broken. I can scroll down a line, but there's nothing there.
Here he says line 75 and I have to answer either 77 (which is visible) or 78-80 (which is not). (orable caron_dialog.h)
Also if I select the bottom option, which is not visible, it will say line 75 again.
 

Attachments

  • 1701689960702.png
    1701689960702.png
    790.6 KB · Views: 52
Back
Top