• 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

Did you reload your savegame where you're standing in San Juan before killing Sidonio Ogarrio? Case "kill_Ogario_complete" triggers when you kill him, so a save from after you killed him won't do anything - you need to go back to an earlier save and kill him again. I did start again from your savegame in San Juan, killed him again, then went to the pirate tavern, where I found Wilfred sitting where that new code is supposed to put him:
But he stands at the door after he offers the task, and not after you kill Sidonio Ogarrio. If you leave the tavern after the proposed quest and then enter, he will be standing there.
Perhaps it should be here somewhere - "Wifred_give_to_us_ship".
Replace
LAi_SetStayType(CharacterFromID("Wilfred Bythesea"));
on
ChangeCharacterAddressGroup(CharacterFromID("Wilfred Bythesea"), "Pirate_tavern", "sit", "sit7");
LAi_SetSitType(CharacterFromID("Wilfred Bythesea"));
That still does not happen for me. After going to sea near the lighthouse, I can go to the cabin. Both from the cabin and from the deck, if I try to teleport, it's to the lighthouse, not the port.

Your screenshot shows you next to the fort. If I'm there, I can't go to the cabin, nor do I get any icon to moor. Also, you're going to need a bigger boat. Only 18 pounder or bigger guns will harm a fort, and that frigate only has 9 pounder guns.

After killing Sidonio Ogarrio, Wifred repeats "So, you have completed your task?" if you ask him about something a second time.
 
Last edited:
But he stands at the door after he offers the task, and not after you kill Sidonio Ogarrio. If you leave the tavern after the proposed quest and then enter, he will be standing there.
Perhaps it should be here somewhere - "Wifred_give_to_us_ship".
Replace
LAi_SetStayType(CharacterFromID("Wilfred Bythesea"));
on
ChangeCharacterAddressGroup(CharacterFromID("Wilfred Bythesea"), "Pirate_tavern", "sit", "sit7");
LAi_SetSitType(CharacterFromID("Wilfred Bythesea"));
No, because "Wifred_give_to_us_ship" is triggered by his dialog. He'd zap straight from the door to the bench. Instead, perhaps add:
Code:
Characters[GetCharacterIndex("Wilfred Bythesea")].location = "none";
... to the end of "Wifred_give_to_us_ship". He'll stay standing by the door until you leave, then he should be gone if you go back in.

After killing Sidonio Ogarrio, Wifred repeats "So, you have completed your task?" if you ask him about something a second time.
Yes, but only if you stay there. When you leave, so does he - again, if you go back into the tavern, he should have disappeared.

He's not the only character who will repeat the same dialog if you keep talking. Usually it's so that if you weren't paying attention the first time, you can talk again and get a repeat of something important. Wilfred isn't even all that important - if you can't be bothered killing Sidonio Ogarrio, the quest eventually times out and Wilfred disappears without any effect on your reputation. (Originally there wasn't even a quest to kill Sidonio Ogarrio. Wilfred gave you the ship, then you went to San Juan, continued the main story, and never saw him again.)
 
... to the end of "Wifred_give_to_us_ship". He'll stay standing by the door until you leave, then he should be gone if you go back in.
Yes, that's better.

The dialog with the robbers lacks a space between words. The English version will also lack a space and a dot at the end.
Enc_Raiders_dialog.h (58,62,63 lines).
 

Attachments

  • 1722525633842.png
    1722525633842.png
    660.3 KB · Views: 61
The dialog with the robbers lacks a space between words. The English version will also lack a space and a dot at the end.
Enc_Raiders_dialog.h (58,62,63 lines).
Line 58 is complete by itself:
Code:
"You are quite a tough guy. You know what, we will teach you a little trick if you let us go.",
And you should not be seeing that line because, being a woman, you should see line 63 instead:
Code:
"You are quite a tough gal. You know what, we will teach you a little trick if you let us go.",

Lines 61 and 62 are where the robber demands money for teaching you:
Code:
"But it will cost you",
"gold coins",
The full stop is indeed missing. The spaces do not need to be there because "Enc_Raiders_dialog.c" should add them:
Code:
if (PChar.sex == "woman") d.Text = PersuasionSuccess + DLG_TEXT[61] + DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60];
else d.Text = PersuasionSuccess + DLG_TEXT[56] + DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60];
Remember, DLG_TEXT numbers are 2 less than line numbers because line 1 of "Enc_Raiders_dialog.h" is the DLG_TEXT declaration and index numbers start at 0, so DLG_TEXT[0] is line 2. Therefore, 'DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60]' is line 61, space, price, space, line 62.
 
Line 58 is complete by itself:
Code:
"You are quite a tough guy. You know what, we will teach you a little trick if you let us go.",
And you should not be seeing that line because, being a woman, you should see line 63 instead:
Code:
"You are quite a tough gal. You know what, we will teach you a little trick if you let us go.",

Lines 61 and 62 are where the robber demands money for teaching you:
Code:
"But it will cost you",
"gold coins",
The full stop is indeed missing. The spaces do not need to be there because "Enc_Raiders_dialog.c" should add them:
Code:
if (PChar.sex == "woman") d.Text = PersuasionSuccess + DLG_TEXT[61] + DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60];
else d.Text = PersuasionSuccess + DLG_TEXT[56] + DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60];
Remember, DLG_TEXT numbers are 2 less than line numbers because line 1 of "Enc_Raiders_dialog.h" is the DLG_TEXT declaration and index numbers start at 0, so DLG_TEXT[0] is line 2. Therefore, 'DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60]' is line 61, space, price, space, line 62.
It should be like this. A space must appear after sentences 58 and 63.
if (PChar.sex == "woman") d.Text = PersuasionSuccess + DLG_TEXT[61] + " " + DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60];
else d.Text = PersuasionSuccess + DLG_TEXT[56] + " " + DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60];
 
It should be like this. A space must appear after sentences 58 and 63.
if (PChar.sex == "woman") d.Text = PersuasionSuccess + DLG_TEXT[61] + " " + DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60];
else d.Text = PersuasionSuccess + DLG_TEXT[56] + " " + DLG_TEXT[59] + " " + pricePerk + " " + DLG_TEXT[60];
True enough. I've made that change in my copy.
 
Update: I finally found that bug about being able to land at Bridgetown. What confused me was that you said:
Found a small bug. After I told Nathaniel that I was starting the assault, I was transported to the sea and if I get to my ship’s cabin after that, the port of Bridgetown is bugged and I can dock as in a regular port. But mooring to the shore does not break anything, only the deck.
In fact, mooring is exactly what you do. When you press "Enter" to get the line of command icons, the one to go straight to deck is towards the right end of the list, whereas the commands to dock and to moor are at the left end. Once I noticed the sound of the anchor splash in your video, I realised that you were mooring. And indeed, when I moored, then went to sea, then zapped to the port, I was able to dock.

My guess is that this is not limited to "Tales of a Sea Hawk", though it is more likely here. The conditions are:
1. Land at a safe place.
2. Go to sea.
3. Immediately moor at the same place but do not dock.
4. Go back to sea.
5. Teleport to a port on the same island which should be friendly because of your flag but the fort recognises you as hostile and attacks anyway.

Generally that can happen if the fort has previously seen you under a hostile flag and remembers you. For example, if you went anywhere near Martinique under a British flag, the fort may remember you as British. Later, you approach under a French flag, land at the beach, go through this whole sequence and teleport to St. Pierre port. The fort will remember you as British and attack but because you're flying a French flag, you might be able to dock anyway.

This is more likely to happen during the Bridgetown attack because the story requires you to land at a safe place (the lighthouse), then sail to a port where the fort is programmed to recognise you. But it's such a specific sequence that it's not worth trying to block. You've just told Nathaniel that you want to attack at once and the first thing you do is moor again. Anyone that determined to do exactly the opposite of what the story wants will probably find other ways to break this or other stories! And this one isn't even much of a problem. So you managed to sneak into Bridgetown - what are you going to do there? The moment you return to sea, the fort will attack you at very short range.
 
1) Why, after I arrived on the island, do I not see Sailhard’s ship nearby, doesn’t it appear next to me in the normal version of the game? I can't move to his ship, fast travel doesn't work.
2) The pirate frigate "Dud" has no translation.
3) I can easily run into the temple without activating the idol and thereby break the plot. Shouldn't it be closed until the idol is placed? (Attached the save)
4) I couldn't play the video "Idol.wmv". It was located in the RESOURCE\VIDEOS folder. After I moved it to "RESOURCE\VIDEOS\standard" it worked. This is in case "OnUse_Idol".
5) ERROR - Missing Character ID: Location fantom character <17> after entering the temple.
error.log:
RUNTIME ERROR - file: characters\characters_events.c; line: 348
missed attribute: location
RUNTIME ERROR - file: characters\characters_events.c; line: 348
no rAP data
RUNTIME ERROR - file: characters\characterUtilite.c; line: 4179
missed attribute: id
RUNTIME ERROR - file: characters\characterUtilite.c; line: 4179
no rAP data
RUNTIME ERROR - file: characters\characterUtilite.c; line: 4179
missed attribute: id
RUNTIME ERROR - file: characters\characterUtilite.c; line: 4179
no rAP data
6) Before we take the sphere, I wanted to talk with Nathaniel and he tells me that Clement is already at home, and we need to go and sail to Port Royal.
7) The video "Temple.wmv" also did not start. The transfer to "RESOURCE\VIDEOS\standard" helped.
8) After line 139 in researcher_dialog.h there is an extra space before the question mark. Although I don't see any gaps in the code.
d.Text = DLG_TEXT[137] + GetMyFirstNames(PChar, false) + DLG_TEXT[138];
9) I can't move to the Black Pearl in arcade mode, and when I activate the artifact, it generally floats away from me...
 

Attachments

  • 1723055329843.png
    1723055329843.png
    708.3 KB · Views: 58
  • 1723055693234.png
    1723055693234.png
    821.5 KB · Views: 50
  • 1723055801531.png
    1723055801531.png
    1.1 MB · Views: 43
  • -=Тест1=- Косумель.7z
    639.3 KB · Views: 29
  • 1723057473189.png
    1723057473189.png
    695.9 KB · Views: 36
  • 1723057984696.png
    1723057984696.png
    699.4 KB · Views: 40
  • 1723061273883.png
    1723061273883.png
    964.3 KB · Views: 32
  • 1723061955753.png
    1723061955753.png
    550.5 KB · Views: 36
1: As far as I remember, Silehard's ship should be part of the pirate fleet which always appears somewhere near the north side of the island, near the opening to the bay. If you approach Cozumel using the worldmap, move there before exiting to sailing mode.
2: "PROGRAM\Characters\init\QuebradasCostillas.c": find the definition for Isenbrandt Jurcksen, specifically this line:
Code:
ch.Ship.Name = "Dud";
Translate it. You'll need to start a new game for this to do anything. "Dud" should already be translated in "RESOURCE\INI\TEXTS\RUSSIAN\Storyline\storyline_strings.txt".
3: "PROGRAM\Locations\init\KhaelRoa.c": find the definition of "Labirint_3". At the end of the reloads section, in the part for "Locations[n].reload.l28", add:
Code:
Locations[n].reload.l28.disable = 1;
That should lock the door to the alcove. There is already code in quest case "OnUse_Idol_2" to unlock it.
4, 7: Strange. The code lines to play both videos include "standard":
Code:
PostVideoAndQuest("standard\idol", 100, "OnUse_Idol_2");
And yet I've always seen both videos.
5: Did you notice anything odd in the game? If it's straight after entering the temple, it may be one of the random Indians who spawn around the maze.
6: Which line is that in "danielle_dialog.h"? I can't read Russian so I don't know what he is saying there.
8: Probably a bug relating to you having a single name. If you press F2 to get the character interface and click on your name, you'll probably find that the game has added a space there. I've seen that before and can not find where in the game code it happens.
9: Be in a faster ship. Otherwise you might not even get that far - in the battle before you land, if one of the pirate ships runs away then your slow battleship will have trouble chasing it. Previously I'd capture a French frigate, or I'd complete "Strange Things Going On in the Caribbean" and I'd be in the Mefisto. Now I complete "Night Craft" and keep the Barracuda. The only ship of Silehard's fleet at Bridgetown which I keep is the biggest battleship, Vengeance, and I put one of my officers in command of that. After I defeat Silehard, I put another officer in command of the flagship so I keep the frigate or Barracuda.
 
Locations[n].reload.l28.disable = 1;
Does this require a new game? I can also go to the temple after the changes without inserting the idol.
That should lock the door to the alcove. There is already code in quest case "OnUse_Idol_2" to unlock it.
4, 7: Strange. The code lines to play both videos include "standard":
You can try it on my Russian save. If the videos are not in the "RESOURCE\VIDEOS\standard" folder, but are simply in the "RESOURCE\VIDEOS" folder, then instead of the video there will be a black screen.
Did you notice anything odd in the game? If it's straight after entering the temple, it may be one of the random Indians who spawn around the maze.
Nothing strange, just this inscription. The red portal is working fine and the Indians are attacking me. Green teleports upstairs.
Which line is that in "danielle_dialog.h"? I can't read Russian so I don't know what he is saying there.
Lines 458-460 danielle_dialog.h
9: Be in a faster ship. Otherwise you might not even get that far - in the battle before you land, if one of the pirate ships runs away then your slow battleship will have trouble chasing it. Previously I'd capture a French frigate, or I'd complete "Strange Things Going On in the Caribbean" and I'd be in the Mefisto. Now I complete "Night Craft" and keep the Barracuda. The only ship of Silehard's fleet at Bridgetown which I keep is the biggest battleship, Vengeance, and I put one of my officers in command of that. After I defeat Silehard, I put another officer in command of the flagship so I keep the frigate or Barracuda.
But according to the plot of the game, the Black Pearl is a punishment that must be overtaken after the theft of the artifact. It should sink us, not float away. I was on Sailhard's manovar and it seems to me that 60% of the players will also be on it.
 
Does this require a new game? I can also go to the temple after the changes without inserting the idol.
Yes. Try the attached "console.c" which includes various commands that need to go into files for permanent effect, and which can be run to correct a game in progress:
Code:
    Characters[GetCharacterIndex("Danielle")].Dialog.TempNode = "first time";
    Characters[GetCharacterIndex("Danielle")].Dialog.CurrentNode = "first time";
    Characters[GetCharacterIndex("Isenbrandt Jurcksen")].Ship.Name = TranslateString("","Dud");
    Locations[FindLocation("Labirint_3")].reload.l28.disable = 1;
Change Nathaniel to use the basic default dialog. Make "Dud" translatable. Lock the door to the alcove.

You can try it on my Russian save. If the videos are not in the "RESOURCE\VIDEOS\standard" folder, but are simply in the "RESOURCE\VIDEOS" folder, then instead of the video there will be a black screen.
Alternatively, see what happens if you change this in "quests_reaction.c". case "OnUse_Idol":
Code:
PostVideoAndQuest("standard\idol", 100, "OnUse_Idol_2");
to:
Code:
PostVideoAndQuest("idol", 100, "OnUse_Idol_2");

Do the same to case "Story_PlayTheFirstPartVideo".

About the error "Missing Character ID: Location fantom character <17>": that wasn't right after entering the temple, it was when you had been through most of the temple and then went into the alcove. Using the idol plays the video and reloads the location, causing all the Indians to spawn again - including the four surrounding the idol place. When an Indian (or anyone else, for that matter) shoots an arrow, a quest case activates to reload the arrow. If one of them has just shot at you and you then run into the alcove, the arrow tries to reload while you're in the alcove. Indians, and any other random enemies, are fantoms - special characters created for the scene which don't exist when you move to another location. So "Location fantom character <17>" tries to reload an arrow and fails because you're in a new location and he doesn't exist any more. I suspect this can happen if you are attacked by Indians anywhere else, such as a jungle at night, and run away to another location just after one of them has shot an arrow.

Lines 458-460 danielle_dialog.h
That's case "Clement_home". For some reason, the dialog is set to use that at case "Split_exit", the dialog used when you have just entered the temple and Nathaniel suggests that everyone follows a different passage. Change "Split_exit" - replace "Clement_home" with "first time".

But according to the plot of the game, the Black Pearl is a punishment that must be overtaken after the theft of the artifact. It should sink us, not float away. I was on Sailhard's manovar and it seems to me that 60% of the players will also be on it.
You are forgetting what Gordon Carpenter said earlier in the game when you were finding out about the cursed chest:
Gordon Carpenter said:
There's one thing that even its captain fears as you and I fear death... Some enchanted artefact, supposedly found in the savage Incan jungle. They say it makes its owner unstoppable.
You've been to the temple, so you are either carrying the artefact or have just used it. You're also in the biggest warship in the game, easily capable of sinking the Black Pearl once the artefact has stripped it of its protection.
 

Attachments

  • console.c
    35.6 KB · Views: 23
Last edited:
Alternatively, see what happens if you change this in "quests_reaction.c". case "OnUse_Idol":
Code:
PostVideoAndQuest("standard\idol", 100, "OnUse_Idol_2");
to:
Code:
PostVideoAndQuest("idol", 100, "OnUse_Idol_2");
Do the same to case "Story_PlayTheFirstPartVideo".
Yes, the videos are working now.
Characters[GetCharacterIndex("Danielle")].Dialog.TempNode = "first time"; Characters[GetCharacterIndex("Danielle")].Dialog.CurrentNode = "first time"; Characters[GetCharacterIndex("Isenbrandt Jurcksen")].Ship.Name = TranslateString("","Dud"); Locations[FindLocation("Labirint_3")].reload.l28.disable = 1;
Everything works.
 
Yes, the videos are working now.
Good, because that means I don't need to put copies of them into the next update. A couple of changed lines in a file which is already in there are much easier and don't take up as much space.

Here are some files which need some translation work. The final part of "Night Craft" requires you to fight a group of fake pirate ships which are really the Portuguese governor's attempt to attack Beltrop. Fighting them makes Portugal turn hostile to you. You don't know this is going to happen when you first agree to work for Beltrop and you don't have the choice to quit the quest before taking this job. So if you already had a Portuguese letter of marque and a few promotions, you lose them. I've added a quest in which you can do something for the governor to get your rank back. If you killed Beltrop then he wants you to arrest some smugglers on the shore and then arrest the agent in the tavern. If you ended the quest as Beltrop's assistant then the governor wants to make a deal with him and you carry messages between them.
 

Attachments

  • rank_restoration.txt
    2.1 KB · Views: 20
  • Desmond Ray Beltrop_dialog.h
    21 KB · Views: 27
  • quest_smuggler_02_dialog.h
    2.5 KB · Views: 22
  • Jacinto Arcibaldo Barreto_dialog.h
    20.6 KB · Views: 23
I looked at the English files of the latest patch and updated mine.
I noticed that you moved some lines from “interface_strings.txt” to “Storyline\Ardent\storyline_strings.txt” and, apparently, for some other stories. These lines that you moved should also remain in "interface_strings.txt"?
I translated the files that you attached to me and most likely tomorrow I will upload all my changes in the translation. Unfortunately, I was unable to test “Night craft” and will have to play it again.
Also, please tell me where the file "rank_restoration.txt" should be located in "Storyline\standard\QUESTBOOK" or in "Storyline\FreePlay\QUESTBOOK"?
 
I looked at the English files of the latest patch and updated mine.
I noticed that you moved some lines from “interface_strings.txt” to “Storyline\Ardent\storyline_strings.txt” and, apparently, for some other stories. These lines that you moved should also remain in "interface_strings.txt"?
No, take them out of "interface_strings.txt". The idea is to move storyline-specific text into the storyline file and tidy up the general file.

@Jack Rackham: have you any objection to me doing the same for "Woodes Rogers" and "Goldbug"?

Also, please tell me where the file "rank_restoration.txt" should be located in "Storyline\standard\QUESTBOOK" or in "Storyline\FreePlay\QUESTBOOK"?
Neither, it should go into "RESOURCE\INI\TEXTS\RUSSIAN\QUESTBOOK" so that both Freeplay and "Tales of a Sea Hawk" can find it. The final part of "Night Craft" turns Portugal against you. If you had a Portuguese LoM and a few levels of rank, you lose them, and this quest allows you to do something for the govrrnor to get them back.
 
@Jack Rackham: have you any objection to me doing the same for "Woodes Rogers" and "Goldbug"?
No, not at all. But it can be tricky to decide which strings go to which storyline?
 
Added a few question marks where there were none. There was nothing there at all. (Enc_Officer_dialog.c)
I also moved the text from the code "B_HOUSE.H". Here are the new versions. If I need to do this for Spanish as well, I can do it.
Log_SetStringToLog(TranslateString("","You chat on for hours and learn a lot."));
There is a dot in this line, but in interface_strings it says "You chat on for hours and learn a lot".
You need to either remove the dot in the code, or add another similar line with a dot.
Another problem:
#include "DIALOGS\English\B_resident_text.h" - takes text only from the English version. Maybe you need to add these lines to B_HOUSE.H?
Also "my landlord" and "house" are not translated.
 

Attachments

  • Enc_Officer_dialog.c
    56.5 KB · Views: 16
  • B_HOUSE.7z
    16.6 KB · Views: 23
  • 1724099964800.png
    1724099964800.png
    804 KB · Views: 44
I don't know what happened, but my game always crashes after leaving the room in the tavern. I killed the escort captain, then the innkeeper talked to me and left, but I couldn't get back into the tavern. This happens all the time, loading a save doesn't help.
 

Attachments

  • -=Player14224=- Мартиника.7z
    550 KB · Views: 58
  • compile.log
    4 KB · Views: 22
Added a few question marks where there were none. There was nothing there at all. (Enc_Officer_dialog.c)
I also moved the text from the code "B_HOUSE.H". Here are the new versions. If I need to do this for Spanish as well, I can do it.
Log_SetStringToLog(TranslateString("","You chat on for hours and learn a lot."));
There is a dot in this line, but in interface_strings it says "You chat on for hours and learn a lot".
You need to either remove the dot in the code, or add another similar line with a dot.
It's probably best to add the dot in "B_HOUSE.C". The phrase without the dot is certainly used in at least one file, "Enc_resident_dialog.c":
Code:
Log_SetStringToLog(LanguageConvertString(tmpLangFileID,"You chat on for hours and learn a lot") + " " + LanguageConvertString(tmpLangFileID,"about the town."));
"about the town" is already in "interface_strings.txt".

Yes, please do the same for Spanish. The Portuguese and French translators haven't translated the text in their versions of "B_HOUSE.H" so you won't be able to fix those.

Another problem:
#include "DIALOGS\English\B_resident_text.h" - takes text only from the English version. Maybe you need to add these lines to B_HOUSE.H?
See what happens if you change that to:
Code:
if (FindFile("DIALOGS\" + LanguageGetLanguage() + "\", "*.h", "B_resident_text.h") != "") #include "DIALOGS\" + LanguageGetLanguage() + "\B_resident_text.h"
else #include "DIALOGS\English\B_resident_text.h"
If I've understood how 'FindFile' and 'LanguageGetLanguage' are used in some other places, that should check if the version of "B_Resident_text.h" exists in your chosen language. If it does, that code should load it, otherwise it will load the English version.

Also "my landlord" and "house" are not translated.
"my landlord" comes from variable "adress", defined here:
Code:
if(NPChar.chr_ai.group==LAI_GROUP_PLAYER ){adress = "my landlord";}else{adress = GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false);}
Change "my landlord" there to "TranslateString("", "my landlord"), then add a line for it in "interface_strings.txt". Or add "my landlord" to the end of "B_HOUSE.H", then replace "my landlord" in "B_HOUSE.C" with a suitable "DLG_TEXT".

"house" comes from variable 'buildingref', defined and used here:
Code:
    string buildingstr = NPChar.equip.blade;
    aref buildingref;
    Items_FindItem(buildingstr,&buildingref);
As 'buildingstr' is used for other things, perhaps define a new variable, set it to 'TranslateString("", buildingstr)', then use that instead of 'buildingstr' in all dialog code.

There's also this:
Code:
    string interiorstr = "simple furniture";
    if(CheckAttribute(Npchar,"equip.gun"))
    {
    interiorstr = NPChar.equip.gun;
    aref interiorref;
    Items_FindItem(interiorstr,&interiorref);
    }
Again, 'interiorstr' is used for other things, including some dialog at case "interior". So you'll want to define another variable, set it to 'TranslateString("", interiorstr)', then use that for case "interior".

I don't know what happened, but my game always crashes after leaving the room in the tavern. I killed the escort captain, then the innkeeper talked to me and left, but I couldn't get back into the tavern. This happens all the time, loading a save doesn't help.
That "compile.log" is missing the beginning where it should show which version of the game you're playing. Also, is there an "error.log" after the crash?

See what happens if you delete the file "options". This sometimes becomes corrupted and can cause odd crashes. Certainly I've played the storyline, sometimes killed the captain and then threatened the innkeeper, and had no such trouble.
 
Yes, please do the same for Spanish. The Portuguese and French translators haven't translated the text in their versions of "B_HOUSE.H" so you won't be able to fix those.
Attached is the Spanish version.
if (FindFile("DIALOGS\" + LanguageGetLanguage() + "\", "*.h", "B_resident_text.h") != "") #include "DIALOGS\" + LanguageGetLanguage() + "\B_resident_text.h" else #include "DIALOGS\English\B_resident_text.h"
COMPILE ERROR - file: dialogs\b_house.c; line: 3
can't load file: DIALOGS\
Change "my landlord" there to "TranslateString("", "my landlord"), then add a line for it in "interface_strings.txt". Or add "my landlord" to the end of "B_HOUSE.H", then replace "my landlord" in "B_HOUSE.C" with a suitable "DLG_TEXT".
It seems to me that it would be better to do this:
if(NPChar.chr_ai.group==LAI_GROUP_PLAYER ){adress = XI_ConvertString("my landlord");}else{adress = GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false);}
And also add
string = my landlord, "my landlord" in common.ini
before string = my Squire, "my Squire"
As 'buildingstr' is used for other things, perhaps define a new variable, set it to 'TranslateString("", buildingstr)', then use that instead of 'buildingstr' in all dialog code.
Either I'm doing something wrong, or it still isn't being translated.
See what happens if you delete the file "options". This sometimes becomes corrupted and can cause odd crashes. Certainly I've played the storyline, sometimes killed the captain and then threatened the innkeeper, and had no such trouble.
No, nothing helps, there is no error.log file.
 

Attachments

  • B_HOUSE.H
    14.9 KB · Views: 18
  • 3241.png
    3241.png
    728.7 KB · Views: 40
Back
Top