From RogueBasin
Revision as of 01:17, 27 September 2006 by Crypt (Talk | contribs)

Jump to: navigation, search

Paprika v 0.1.5 bug report = it tends to crash very often and randomly, mainly when using the window's menu. (Runtime error 13: Type mismatch)

My pc: Windows XP. .NET Framework 2.0

- Crypt -

Hi Crypt, thanks for the bug report. Could you try out some things and answer some questions for me? Thanks in advance.
1. Could you take a look at your region settings (Control Panel > Regional and Language options) and let me know what language it's set to. I've had problems in the past where people use a different system and it causes type mismatch errors. For example, if their decimal system is like 56,99 (French) and mine is 56.99 (United Kingdom). I need to figure out a way to make my application work universally.
2. I've uploaded a new version (0.1.6) which has a few differences:
  • Increased debugging. If you click the debug menu item and then type "debug" at the prompt, debug mode will be enabled. It'll be a bit slower.
  • The new character window is no longer loaded in the background when clicking the "Windows" menu.
  • Removed the windows.ini file, which stores the position and size of windows.
  • Some other unrelated updates.
3. If you could try that out and let me know where it crashes, that would be very useful to me. It would be best if you extract everything to a new folder. When it crashes you can see the last messages in the log.txt file either in the same directory as the application or the /Save/Character Name/ directory if you were playing a game.
Paprika is written in Visual Basic 6, so doesn't use the .NET FrameWork. Thanks again. Icey 20:14, 26 Sep 2006 (CEST)
I've done some testing and I'm fairly convinced it's due to the language settings. For example, the experience rate of Monks in Paprika is a multiplier of 0.7 (for example, 20 xp would be converted to 14 xp), which in my language is equivilant to 0,7 in yours (I think). If I set my computers language to French, Paprika loads in 0.7 and can't converted that to a double variable, because it doesn't understand the ".".
If you temporarily set your language to English (United Kingdom) and see if Paprika still crashes, that would be very useful to me.
Possible solutions:
  • A) I can get the language of the computer, so a little message could be shown if a user tries to open Paprika and they aren't using English (United Kingdom) or English (United States). But that's a rubbish solution because it alienates a lot of people and forces them to change their language to use the application. Most people would probably just delete it.
  • B) Set the computer language to English. This is also a terrible solution. If an application did that to my computer I'd be very annoyed and uninstall it straight away.
  • C) Set the language of Paprika to English. This is a good solution. It doesn't interfere with the users computer and they will never know it's happened, because it doesn't affect the user in anyway. So I tried this using SetThreadLocale, but I can't get it working yet.
  • D) Write a few custom functions that understand numbers like 0.7, regardless of the language of the computer. This is a bit tricky, lots of work and some parts could easily be missed. I'm not sure it would solve the problem either.
So I'll try to get C to work. Icey 21:34, 26 Sep 2006 (CEST)
I've gone for option D instead. I just need to fix a bug that keeps freezing some parts of the code and then I'll upload a new version. Although I need to go to sleep now and then work tomorrow, so it'll be 18+ hours before I can do that :( Icey 22:56, 26 Sep 2006 (CEST)

I think the bug doesn't come from the '.' / ',' problem because this has nothing to do with binaries. This is a compiler question and IMO it has nothing to do with computer setted language. (unless you use text formated files the game refer to in order to make calculations.)

EDIT: ok, i see what '.' you spoke about (i have a look into class.ini) What don't set, for instance, Monk xp modifier to 7 instead of 0.7 and Fighter's one to 10 instead of 1 (and make the needed and simple inside your code) ?

I did not make language switching in order to test it, but i think it's a bit weird. IMO the way you read the ini files is the guilty one. You should check this before doing any x.y to x,y or whatever weird conversion.

Another thing : If i were you i would convert Paprika to .NET. It would make future developement easier and i think the conversion will be easy. If you want you can send me your VB6 source project,i would try to convert it to .NET, just to see if it works. (


Personal tools