GB19xx / ACT.TPMonitor

TPMonitor for FFXIV on ACT
BSD 3-Clause "New" or "Revised" License
22 stars 8 forks source link

Plugin does not load if Windows has decimal point setting of ',' instead of '.' #12

Open Zireael opened 9 years ago

Zireael commented 9 years ago

Hi, in some Windows system languages (for example French and other European languages), the default symbol for drcimal point in numbers is set as ',' instead of '.' This causes your plugin to fail to load and display error:

* 2014-11-08T13:52:23 - Enabling plugin: X:\Dropbox\Dropbox\FFXIV Apps\Advanced Combat Tracker\ACT.TPMonitor.dll * 2014-11-08T13:52:23 - Plugin Initialization Failed System.FormatException: The format of the input string is incorrect.. w System.Number.ParseSingle(String value, NumberStyles options, NumberFormatInfo numfmt) w ACT.TPMonitor.Util.GetPartyListLocation(String path, Single scale) w ACT.TPMonitor.ACTTabpageControl.OnChangeLocation() w ACT.TPMonitor.ACTTabpageControl.InitPlugin(TabPage pluginScreenSpace, Label pluginStatusText) w Advanced_Combat_Tracker.FormActMain.pluginPanelEnabledChecked(Object sender, EventArgs e) w Advanced_Combat_Tracker.FormActMain.WriteExceptionLog(Exception ex, String MoreInfo) w Advanced_Combat_Tracker.FormActMain.pluginPanelEnabledChecked(Object sender, EventArgs e) w System.Windows.Forms.CheckBox.OnCheckedChanged(EventArgs e) w System.Windows.Forms.CheckBox.set_CheckState(CheckState value) w System.Windows.Forms.CheckBox.OnClick(EventArgs e) w System.Windows.Forms.CheckBox.OnMouseUp(MouseEventArgs mevent) w System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) w System.Windows.Forms.Control.WndProc(Message& m) w System.Windows.Forms.ButtonBase.WndProc(Message& m) w System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) w System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) w System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) w System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) w System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) w System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) w System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) w System.Windows.Forms.Application.Run(Form mainForm) w Advanced_Combat_Tracker.ActLoader.Main(String[] args)

Use needs to make following change in Windows settings:

Before you try this MAKE BACKUP for your ACT settings folder:

C:\Users---yourUserName---\AppData\Roaming\Advanced Combat Tracker

Go to Control Panel -> Regional Settings -> Format -> [Additional Settings] and change [Decimal point symbol] from [,] to [.] Please note doing so will break settings in the following file, if you have fonts inside set as 8,25pt for example.

C:\Users---yourUserName---\AppData\Roaming\Advanced Combat Tracker\FFXIV_ACT_Plugin.config.xml

What you can do is open that file in Notepad and change all 8,25pt to 8 to get rid of incorrect decimal point symbol.

Could you make it so that plugin can be used by people with symbol other than '.' set as number decimal point?

GB19xx commented 9 years ago

Did not know. i think so an error in the position infomation acquisition point of the party list.

I tried to corresponding. would you please test?

download here(https://github.com/GB19xx/ACT.TPMonitor/releases/download/1.5.1.2/ACT.TPMonitor_1.5.1.2.zip) or "Check" button of the TPMonitor tab.

henningwold commented 9 years ago

30 Fixes this with english clients where the system decimal separator is ",". Unfortunately I only have an english client and am unable to test on others.