• 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!

Solved Game crash

Try renaming the savegame file. I had to rename yours for exactly that reason.
Your filename: "-=Kotninja=- Косумель. Косумель shore 23-е Января 1753г"
Renamed to work on my game: "-=Kotninja=- Cozumel. Cozumel shore April 23rd 1753"
I don't know much Russian so I picked a random month name. The important thing is, my version of the game doesn't read Russian filenames so the whole name had to be translated into English - it doesn't matter if the month name is wrong, only that it's in English. While set to Russian language, my game on a non-Russian PC uses odd ASCII characters to represent Russian, which your Russian PC doesn't like in a filename.

Going in the opposite direction then:
My filename: "-=Kotninja=- Îòêðûòîå Ìîðå 27-å ßíâàðÿ 1753ã. 1"
Try renaming it to: "-=Kotninja=- открыть море 27-е Января 1753г"

The messages about "seadogs.c" are common, I get those a lot as well. They seem harmless - the game saves anyway and does not crash, the saves are not corrupt and can be read later.

There might be a problem with the officers, which is why I suggested you try using different officers and see if any of them are more likely to cause the crash. In any case, I was able to load your save (after renaming it), and the Russian names did not cause problems with assigning the officers to prize ships.
View attachment 42961
I tried all cases in this battle - works fine. I load another save and try more and I found the ship that I can't capture. Attach save file (you can capture it fast with ability). Two his companion ships I captured with no problem but this - can't. Try different officers, game crashes anyway. And again - game crashes with no error.log, only compile and system files exist.
 

Attachments

  • -=Kotninja=- Открытое Море 19-е Апреля 1753г.7z
    812.1 KB · Views: 100
  • compile.log
    1.9 KB · Views: 68
  • system.log
    645 bytes · Views: 68
Indeed, the game also crashes for me when I try to capture that ship. The problem would therefore seem to be something to do with the specific ship or its original captain. I'll need to do some digging to see if there's anything unusual about him.

Did you switch off weapon quality before or after you had started the storyline?
 
Indeed, the game also crashes for me when I try to capture that ship. The problem would therefore seem to be something to do with the specific ship or its original captain. I'll need to do some digging to see if there's anything unusual about him.

Did you switch off weapon quality before or after you had started the storyline?
Maybe the problem is with some type of ships?

About setting - nope, the only global settings i've changed in the middle of the game was keyboard settings. When I accidentally delete one of the char in the name of the officer and cannot add it back (because keyboard was EN), I switched it to RU, add a char and then switch keyboard back to EN.

Also find funny BUG in game mechanics - when using opium and game says that "you feel how you lose health" - you actually GAIN health instead. :D
 
Maybe the problem is with some type of ships?
Could you upload your file "PROGRAM\Ships\Ships_init.c"? It should be the same as mine as it is part of the update, but that's the file which controls ship types.

About setting - nope, the only global settings i've changed in the middle of the game was keyboard settings. When I accidentally delete one of the char in the name of the officer and cannot add it back (because keyboard was EN), I switched it to RU, add a char and then switch keyboard back to EN.
Is that your PC's system setting for the keyboard, or the game's keyboard setting?

Also find funny BUG in game mechanics - when using opium and game says that "you feel how you lose health" - you actually GAIN health instead. :D
That's due to the function 'OpiumEffects' in "PROGRAM\smuggling.c":
Code:
        //decrease max health
        float Bonus = -5 + sti(User.rank)/5;
        if(CheckAttribute(User, "HPBonus")) Bonus = Bonus + stf(User.HPBonus);
        User.HPBonus = Bonus;
        Logit(TranslateString("","Opium lose health"));
That will reduce your maximum health by lesser amounts as your level goes up (the "rank" attribute here is your level, not your rank with a nation). At level 25 it will have 0 effect, and at higher levels it will indeed increase your maximum health.

Try changing that line to:
Code:
        float Bonus = -5 - sti(User.rank)/5;
That ought to have more effect as you increase level, since your maximum HP will also have increased with level.
 
Could you upload your file "PROGRAM\Ships\Ships_init.c"? It should be the same as mine as it is part of the update, but that's the file which controls ship types.
Attached. Also, just in case - as i said before, now i playing on the EN version of the game (only difference is that i copied voice sounds from RU version of the game to this copy(and now i have mixed voices sometimes some phrases is on Ru sometimes is on EN:D)).
Is that your PC's system setting for the keyboard, or the game's keyboard setting?
In this case i mean game settings. (if this matters - my system language is set to EN by default, because for me it's more comfortable than RU).
(That will reduce your maximum health by lesser amounts as your level goes up (the "rank" attribute here is your level, not your rank with a nation). At level 25 it will have 0 effect, and at higher levels it will indeed increase your maximum health.
Looks like cheating to me:D
Try changing that line to:
Code:
        float Bonus = -5 - sti(User.rank)/5;
That ought to have more effect as you increase level, since your maximum HP will also have increased with level.
Thanks, but can I just change the "hardcoded" value? Will it work?
 

Attachments

  • Ships_init.c
    943.7 KB · Views: 99
Attached. Also, just in case - as i said before, now i playing on the EN version of the game (only difference is that i copied voice sounds from RU version of the game to this copy(and now i have mixed voices sometimes some phrases is on Ru sometimes is on EN:D)).
That "Ships_init.c" is indeed exactly the same as mine.

In this case i mean game settings. (if this matters - my system language is set to EN by default, because for me it's more comfortable than RU).
Fair enough, if you're playing in English then set the keyboard to be English as well. If you're playing in Russian then the game keyboard setting should also be Russian. There are functions 'toupper' which converts a letter to upper case, and 'tolower' which converts a letter to lower case. Both check the keyboard setting, not the language setting. So if you're playing in Russian but have keyboard set to English, they'll probably put the wrong character at the start of some words.

Thanks, but can I just change the "hardcoded" value? Will it work?
I'm not sure if there is a hardcoded value. There's a base starting max HP, 'LAI_DEFAULT_HP_MAX', which is in "PROGRAM\Loc_ai\Lai_defines.c". After that, there's an increase at each level, and there's a bonus to allow different characters to have more or less HP than the basic amount. That calculation in 'OpiumEffects' changes the bonus, which in turn changes the character's maximum HP.
 
That "Ships_init.c" is indeed exactly the same as mine.


Fair enough, if you're playing in English then set the keyboard to be English as well. If you're playing in Russian then the game keyboard setting should also be Russian. There are functions 'toupper' which converts a letter to upper case, and 'tolower' which converts a letter to lower case. Both check the keyboard setting, not the language setting. So if you're playing in Russian but have keyboard set to English, they'll probably put the wrong character at the start of some words.
Funny thing. I checked my game lang settings - it was RU-RU. Okay. Load save, try to capture the ship - done, try to assign an officer - crash. Then i launched the game again - change game lang setting to EN-EN (before loading savegame), load savegame, pause, change settings to EN-EN again (as instruction says) - game works BUT when i try to board the ship - game is stucks (not responding) at the boarding load screen. Sounds playing but game is still. Try this again - the same. And again - there is no error file. F11 didn't help (dunno should it?).
 
Funny thing. I checked my game lang settings - it was RU-RU. Okay. Load save, try to capture the ship - done, try to assign an officer - crash. Then i launched the game again - change game lang setting to EN-EN (before loading savegame)...
That's fine. But this...
load savegame, pause, change settings to EN-EN again (as instruction says)
... is not. Once you've loaded the savegame (or started a new storyline), you can't change language. You must pick your language before you start to play.
game works BUT when i try to board the ship - game is stucks (not responding) at the boarding load screen. Sounds playing but game is still. Try this again - the same. And again - there is no error file. F11 didn't help (dunno should it?).
I'm surprised it even got that far. Possibly the fact that you were changing but not changing, from English to English, made a difference. If you load a savegame or start a new story, and then change language from Russian to English or the other way round, the game will probably crash right away. Changing keyboard shouldn't cause this problem, changing language certainly does.
 
There is some strange things. In English, instructions says: (first screenshot) "Switching language can only be done immediately after launch, BEFORE loading or starting a game. Otherwise the game will crash to desktop."

BUT....

In Russian it says(second screenshot, quote): "Если вы хотите загрузить игру, сохраненную с другими языковыми параметрами, Вам нужно переключиться на нужный язык ещё раз после загрузки." In translation it sounds like: "If you want to load a game saved with different language settings, you need to switch to the desired language again after downloading".

Anyway, so is the problem with save or in the game itself? Maybe you have late-game save that i can test for the crash with capturing ships?
 

Attachments

  • enLang.png
    enLang.png
    1.3 MB · Views: 88
  • ruLang.png
    ruLang.png
    1.6 MB · Views: 78
There is some strange things. In English, instructions says: (first screenshot) "Switching language can only be done immediately after launch, BEFORE loading or starting a game. Otherwise the game will crash to desktop."

BUT....

In Russian it says(second screenshot, quote): "Если вы хотите загрузить игру, сохраненную с другими языковыми параметрами, Вам нужно переключиться на нужный язык ещё раз после загрузки." In translation it sounds like: "If you want to load a game saved with different language settings, you need to switch to the desired language again after downloading".

Anyway, so is the problem with save or in the game itself? Maybe you have late-game save that i can test for the crash with capturing ships?
The first message is the correct one, I wrote it myself some years ago precisely when I experienced crashes switching between English and Spanish mid-game. The other message that you still get in Russian is outdated and probably belongs to a much older version of multilanguage that possibly was never fully implemented (multilanguage support was mostly abandoned and unfinished when I started the Spanish translation back in 2016).
 
There is some strange things. In English, instructions says: (first screenshot) "Switching language can only be done immediately after launch, BEFORE loading or starting a game. Otherwise the game will crash to desktop."

BUT....

In Russian it says(second screenshot, quote): "Если вы хотите загрузить игру, сохраненную с другими языковыми параметрами, Вам нужно переключиться на нужный язык ещё раз после загрузки." In translation it sounds like: "If you want to load a game saved with different language settings, you need to switch to the desired language again after downloading".
The English version is correct. You can correct the Russian version if you like. Look in "RESOURCE\INI\TEXTS\RUSSIAN\common.ini" and find the translation for "Reinit_Language".

Anyway, so is the problem with save or in the game itself? Maybe you have late-game save that i can test for the crash with capturing ships?
It has to be a problem with the save because I capture a lot of ships during my games and have not seen this problem. But I always play in English, except when I'm testing someone's savegame in Russian! I've still to check the details of the commander of that ship.
 
The English version is correct. You can correct the Russian version if you like. Look in "RESOURCE\INI\TEXTS\RUSSIAN\common.ini" and find the translation for "Reinit_Language".


It has to be a problem with the save because I capture a lot of ships during my games and have not seen this problem. But I always play in English, except when I'm testing someone's savegame in Russian! I've still to check the details of the commander of that ship.
Well. I've tested some thing. Here what I found.
My actions:
1. launched the game
2. change lang settings to EN-EN
3. load savegame
4. pause, change lang settings to EN-EN again
5. press F11.
6. renamed main char to Nataniel Hawk and all of my officers (except Daniel (she somehow renamed from RU to EN by herself)) to Bob1, Bob2 etc. Also renamed the ship to En.
7. Captured about 12 ships and assigned officers to it

With this case - all works fine, no crashes. (Despite there is "symbols" instead of normal letters in islands names and the quest book.)

Then I try this scenario:
1. Launched the game
2. change lang settings to RU(interface)-EN(keyboard)
3-5 as above
6. DO NOT rename main char and officers (except Daniel (she translated to RU by herself))
7. Captured ship (name of the officer of the captured ship was on RU as well as the name of the ship), try to assign an officer - crash.

So i think the conflict must be connected with RU name either of the captain of the captured ship, either of the ship by itself.
 
Well. I've tested some thing. Here what I found.
My actions:
1. launched the game
2. change lang settings to EN-EN
3. load savegame
4. pause, change lang settings to EN-EN again
5. press F11.
6. renamed main char to Nataniel Hawk and all of my officers (except Daniel (she somehow renamed from RU to EN by herself)) to Bob1, Bob2 etc. Also renamed the ship to En.
7. Captured about 12 ships and assigned officers to it

With this case - all works fine, no crashes. (Despite there is "symbols" instead of normal letters in islands names and the quest book.)
Step 4 is unnecessary. Were you able to capture the ship in your savegame after doing this?

The symbols are the way the game represents Russian letters. They're "translated" by a texture file containing images of all Russian letters, and a font file which maps each symbol onto an area of that texture. If you're playing in Russian, the game uses that font file. If you're playing in English, it uses a different font file and a different texture file which don't show Russian letters.

Then I try this scenario:
1. Launched the game
2. change lang settings to RU(interface)-EN(keyboard)
3-5 as above
6. DO NOT rename main char and officers (except Daniel (she translated to RU by herself))
7. Captured ship (name of the officer of the captured ship was on RU as well as the name of the ship), try to assign an officer - crash.

So i think the conflict must be connected with RU name either of the captain of the captured ship, either of the ship by itself.
Try the attached "PROGRAM\console.c". Copy it into place, load your savegame, then press F12. Then see if you can capture the ship.
 

Attachments

  • console.c
    35.4 KB · Views: 69
Step 4 is unnecessary. Were you able to capture the ship in your savegame after doing this?

The symbols are the way the game represents Russian letters. They're "translated" by a texture file containing images of all Russian letters, and a font file which maps each symbol onto an area of that texture. If you're playing in Russian, the game uses that font file. If you're playing in English, it uses a different font file and a different texture file which don't show Russian letters.


Try the attached "PROGRAM\console.c". Copy it into place, load your savegame, then press F12. Then see if you can capture the ship.
I tried...I captured 6 ships and start to think YES! THAT'S IT. But decide to test some more and the game crashed again:(. And again with no error log.
Also, there is some bug with dialog window with captain of boarded ship (No, when I did this screenshot, the game didn't crash, I successfully captured that ship).
 

Attachments

  • interface.png
    interface.png
    2.3 MB · Views: 78
That console.c was only to try to fix the problem with the one ship which you could board in your savegame. It won't work for anything else and certainly was never going to be a general fix for the boarding problem.

I'm going to try starting a new game in Russian on my system, use cheatmode to go up a lot of levels, then try capturing ships and see if that crashes regularly as well.
 
Update: I'm now running a FreePlay in Russian, used cheatmode to give myself an Advanced Warship, zapped myself up to level 50, then recruited a load of officers and zapped them all up to level 50. And after a few battles and successful captures, the game eventually crashed for me as well. So it's something to do with the mod, and as it only seems to happen when playing in Russian, it's probably something to do with the Russian translation.

The first thing I'm going to try is reversing a fix which allows random ship names to appear in Russian. You can try it as well. Put the attached file into "PROGRAM\Ships". You may need to press F11 for it to take effect. If ship names still appear in Russian, try starting a new game - if you start in a different storyline or if you use a different profile name, you won't lose your existing game.

Another thought - before you copy this file into place, try your existing game again, and note which nationality of ship causes the crash when you try to capture it.
 

Attachments

  • Ships.c
    37.3 KB · Views: 74
Update: I'm now running a FreePlay in Russian, used cheatmode to give myself an Advanced Warship, zapped myself up to level 50, then recruited a load of officers and zapped them all up to level 50. And after a few battles and successful captures, the game eventually crashed for me as well. So it's something to do with the mod, and as it only seems to happen when playing in Russian, it's probably something to do with the Russian translation.

The first thing I'm going to try is reversing a fix which allows random ship names to appear in Russian. You can try it as well. Put the attached file into "PROGRAM\Ships". You may need to press F11 for it to take effect. If ship names still appear in Russian, try starting a new game - if you start in a different storyline or if you use a different profile name, you won't lose your existing game.

Another thought - before you copy this file into place, try your existing game again, and note which nationality of ship causes the crash when you try to capture it.
The worst thing is that when game crashes - it didn't even make an error.log file. Is there any possible way to trace this moment(moment of crash) in another way?
 
The worst thing is that when game crashes - it didn't even make an error.log file. Is there any possible way to trace this moment(moment of crash) in another way?
Possibly. I'll try adding 'trace' commands at various places to see how far it gets, though it's going to take a lot of experimenting before I can leave just one of them shortly before a crash may happen.
 
I'll be away for a couple of weeks. Try that version of "Ships.c" - if you put it in place and then press F11, ships will have names in western alphabet instead of Russian. I've tried it and can confirm that it works for that, and I've captured several ships without crashes since, but not enough to be sure that it's cured the problem. Your turn. :rpirate
 
Back
Top