NexusWiki talk:NexusRadar

Discussion page of NexusWiki:NexusRadar

Cross Platform Client

I really like this idea, but has any work been done on porting this to linux to work under wine? I realize not many people use Linux or, let alone and play this game, but I'd be willing to head that up, as I wanted to do something along these lines anyway. Is there a good codebase I could look at to marry it into your system? --Dread

Re: Cross Platform Client

Hi Dread. Currently there hasn't been any work done on a multi-platform client. The current implementation has been done in C#/.NET, but has been written in such a way that to allow for most of the core functionality to compile under an alternative .NET implementation such as Mono, which is cross-platform. The problem with that, however, is that the client relies on unmanaged Win32 API calls to extract the coordinate information from the NexusTK client in-memory. These native calls are not supported by Mono. So, the real challenge would be to devise a way to extract the X,Y coordinate values from NexusTK running under Wine. Wine does have an API, but I am very skeptical. I would release the source under a GPL-friendly license, but we had to do some work on a secret key exchange between the client-server to prevent spoofing attacks, so for right now I'd rather keep it private. If you can find a way to extract the X,Y coordinates from NexusTK under Wine, let me know and I can give you access at that point. I'm not even sure NexusRadar is even working on the Windows client right not actually, as every update requires a recalculation of the memory address offsets to look at...

--Zaventh 12:37, 23 September 2008 (UTC)

Re: Re: Cross Platform Client

Hey. I've been looking into it, and because wine runs as a VM, and there are a lot of reasons people using wine would want to examine contents of memory (trying to get software to work) it's fairly easy to access memory transparently through wine's API. We could simply push a small patch every time there is an update that changes the memory offset in NexusRadar, or have it read from a file. (Should only have to change the corresponding variables.) I still have to look at this, but if it looks like someone could actually use it, then I think I may start work on it. --Dread 19:56, 23 September 2008 (UTC)

I received an error

=======================

Specified argument was out of the range of valid values. Parameter name: An error occurred getting the update (NexusRadar Library)


Program Location:

  at h.a(String A_0, String A_1)
  at u.b()
  at u.b(String A_0)
  at af.a(Version A_0)
  at t.a(String A_0)
  at v.h(Object A_0, EventArgs A_1)
  at System.Windows.Forms.Form.OnLoad(EventArgs e)
  at System.Windows.Forms.Form.OnCreateControl()
  at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
  at System.Windows.Forms.Control.CreateControl()
  at System.Windows.Forms.Control.WmShowWindow(Message& m)
  at System.Windows.Forms.Control.WndProc(Message& m)
  at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
  at System.Windows.Forms.ContainerControl.WndProc(Message& m)
  at System.Windows.Forms.Form.WmShowWindow(Message& m)
  at System.Windows.Forms.Form.WndProc(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Is there something I'm doing wrong or could do to make this work?