I will ask my usual question, what about Linux users?
@Tinker Python seems to be the best way to implement these sorts of things for URW on Linux systems.
I have no idea what you have to work with on Linux so I can't give you a clean answer, but the requirements for this are fairly straight forward:
Requirements:
Memory addresses:
URW.exe = Process.MainModule.BaseAddress (whatever the python/Linux equivalent of this is)
XStart = (urw.exe)+0x1B4BA0
YStart = (urw.exe)+0x1B4BA4
Data:
X, Y, Width, Height, of the unrealworld map in map generation. I've used user input as an initial method for getting this via dragging the box over the map, an easier way I've just implemented is calculating the first and last blue pixel co-ordinates from a screenshot of the game (IE top left edge of the map, and bottom right edge of the map).
Mouse cursor X/Y, relative to game window.
after you have the required data you can WriteProcessMemory (Windows version of memory writing) to XStart and YStart after calculating the cursors position relative to the maps x, y, width, and height
X = (int)((Cursor.X - URWMap.X) * (3072m / URWMap.Width));
Y = (int)((Cursor.Y - URWMap.Y) * (2048m / URWMap.Height));
This gives you the co-ordinates of the cursor within the map, 0,0 being the top left most map tile. Once this is implemented you should be able to implement it w/ mouse inputs, I detected movement and constantly changed the XStart and YStart values to the calculated co-ordinates, another way would be to just detect when the mouse clicks and set the XStart and YStart to the click/cursor location.
There are also, probably, additional ways to change your location on the map through save files after you've gone through character creation, if memory read/write isn't an option.