Topic: [3.63] URWSSSelector v1.0.2  (Read 1081 times)


Night

  • Member
  • *
  • Posts: 129
    • View Profile
« on: December 05, 2020, 10:20:50 AM »
[3.63] URWSSSelector v1.0.2
(Start Spot Selector)

Simple mod that allows you to select your starting location with ease during character generation, simply start the program while unreal world is running and the starting location will follow your cursor. Map must not be zoomed in in order for co-ordinates to work properly. Right click to stop moving starting location and exit program.

Also make sure the game is in windowed mode while using this, fullscreen will cause issues when overlaying over URW. You can change it back to fullscreen afterwards of course.

Source included at bottom of thread if anyone is interested

Usage:


Instructions:
  • Run program during map generation screen (Make sure map is zoomed out)
  • Move cursor to desired starting location
  • Right click, exits program and leaves starting location at cursor
  • Middle scroll, changes search mode

Modes: (Mouse-Scroll)
  • Closest land - Closest land tile near your cursor
  • Closest village/settlement - Closest village to your cursor
  • Closest cave - Closest cave to your cursor
  • Custom - Closest tiles selected from list
  • High ground - Closest tile considered to be high ground
  • Dense forest - Closest forest tile

Version History:
  • v1.0.2 - Added search modes, starting location tile information and selected mode now displayed in title bar, some performance upgrades.
  • v1.0.1 - Made map detection automatic, Start location is now set to the closest land tile from your cursors location in order to avoid starting in water, game version checking added, overlay is now 'invisible' to the human eye (opacity = 1%), added edge detection for starting location to avoid starting in tiles considered to be non-movable (invisible map wall).
  • v1.0.0 - Initial release

Please report any bugs to me via this thread, my PMs, or contact me directly on steam:
https://steamcommunity.com/id/Nightipoo/

Download attached to thread.

Credits:
   Night - Creator/Programming.
   Enormous Elk - Unreal world.

Requires Microsoft .NET Version 4.6 or later. (Usually already installed)

Source for study: [v1.0.0], [v1.0.1], [v1.0.2]
« Last Edit: December 14, 2020, 02:45:31 PM by Night »
URW Character Menu - Cheating menu by a player, for the players.
URW Character Designer - Design your characters sprite!

Buoidda

  • Member
  • *
  • Posts: 204
    • View Profile
« Reply #1 on: December 05, 2020, 11:36:22 AM »
Wonderful!

But I have technical problems making the drag. The moment I left click, Urw window minimizes and focus changes to URWSSSelector.exe on taskbar.

EDIT: Not using fullscreen mode solved that.

This is great!!!! Thank you so much @Night!!!! You have made a huge contribution to the community.  ;D
« Last Edit: December 06, 2020, 10:28:36 AM by Buoidda »
Sewn with quill it is. X#X#X#  My craft mod 2.3.6 (released 12th of Jan 2021):  https://www.unrealworld.fi/forums/index.php?topic=5865.0

Night

  • Member
  • *
  • Posts: 129
    • View Profile
« Reply #2 on: December 05, 2020, 11:51:59 AM »
Wonderful!

But I have technical problems making the drag. The moment I left click, Urw window minimizes and focus changes to URWSSSelector.exe on taskbar.



The focus should change, as you're actually clicking an overlayed window ontop of the game. I'm not sure why your game is minimizing though, if you're unable to find a solution I'll make a work around for it. I'll do some testing as well and see if I can reproduce it, I run the game in windowed mode if that helps.

If you do manage to get it working, once you've drawn the box and got the location where you want it you can just right click and it'll exit the program and leave the location where your cursor is.

EDIT: Not using fullscreen mode solved that.

This is great!!!! Thank you so much @Night!!!! You have made a huge contribution to the community.  ;D
edit:
Ah yes, as I suspected a window orientation problem :P I'll leave you to it and make a note in the OP ^^
« Last Edit: December 05, 2020, 11:54:39 AM by Night »
URW Character Menu - Cheating menu by a player, for the players.
URW Character Designer - Design your characters sprite!

Brygun

  • Honorary Lifetime Supporter
  • Member
  • *
  • Posts: 1211
    • View Profile
« Reply #3 on: December 05, 2020, 03:56:31 PM »
My efforts to die survive in the island challenge are greatly enhanced!


Frostbit

  • Member
  • *
  • Posts: 33
    • View Profile
« Reply #4 on: December 05, 2020, 05:45:14 PM »
Looks great! I'll try it out next time I boot into Windows.

Sure will beat the hack around way I've been having to use.

Tinker

  • Member
  • *
  • Posts: 35
    • View Profile
« Reply #5 on: December 06, 2020, 10:03:52 AM »
I will ask my usual question, what about Linux users?

Night

  • Member
  • *
  • Posts: 129
    • View Profile
« Reply #6 on: December 06, 2020, 11:30:10 AM »
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

Code: [Select]
                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.
« Last Edit: December 06, 2020, 11:34:57 AM by Night »
URW Character Menu - Cheating menu by a player, for the players.
URW Character Designer - Design your characters sprite!

Night

  • Member
  • *
  • Posts: 129
    • View Profile
« Reply #7 on: December 07, 2020, 10:56:24 AM »
~Update @Brygun @Frostbit @Buoidda

v1.0.1 -
  • Made map detection automatic
  • Start location is now set to the closest land tile from your cursors location in order to avoid starting in water
  • Game version checking added
  • Overlay is now 'invisible' to the human eye (opacity = 1%)
  • Added edge detection for starting location to avoid starting in tiles considered to be non-movable (invisible map wall).
URW Character Menu - Cheating menu by a player, for the players.
URW Character Designer - Design your characters sprite!

trowftd

  • Member
  • *
  • Posts: 54
    • View Profile
« Reply #8 on: December 07, 2020, 12:02:03 PM »
Wow v1.0.1 features are awesome. I have to add this program too in my playthroughs. Thank you for making these amazing programs you rock! :D

Buoidda

  • Member
  • *
  • Posts: 204
    • View Profile
« Reply #9 on: December 07, 2020, 03:15:07 PM »
Wow it gets even better! Tiny specks await 8)
Sewn with quill it is. X#X#X#  My craft mod 2.3.6 (released 12th of Jan 2021):  https://www.unrealworld.fi/forums/index.php?topic=5865.0

Frostbit

  • Member
  • *
  • Posts: 33
    • View Profile
« Reply #10 on: December 07, 2020, 05:31:38 PM »
Fantastic! I think I'll go ahead and boot into Windows today and create a few dozen starts. Great work!

Update: Made more than a dozen starts. Worked like a charm!
I especially love being able to start in the heart of Njerpez territory. They won't know what hit 'em! ...I hope.
« Last Edit: December 07, 2020, 09:18:28 PM by Frostbit »

ineedcords

  • Member
  • *
  • Posts: 55
    • View Profile
« Reply #11 on: December 09, 2020, 09:46:01 PM »
[3.63] URWSSSelector v1.0.1
(Start Spot Selector)
<snip>
Just a quick one to say thanks for the tool and the source code & freely sharing your knowledge.

Did you consider using Lazarus/FreePascal for your utilities? That would be write-once, compile & use everywhere (win+lin+mac).

Night

  • Member
  • *
  • Posts: 129
    • View Profile
« Reply #12 on: December 14, 2020, 02:35:43 PM »
~Update

v1.0.2 -
  • Added search modes.
  • Starting location tile information and selected mode now displayed in title bar.
  • Some performance upgrades.

Left v1.0.1 attached just incase people prefer the minimal version.

Just a quick one to say thanks for the tool and the source code & freely sharing your knowledge.

Did you consider using Lazarus/FreePascal for your utilities? That would be write-once, compile & use everywhere (win+lin+mac).

I took a look at it briefly after reading your post. Seems like it would work, but not something I want to invest a serious amount of time in currently, as I'd have to translate a lot of my work/learn the language before getting a decent foundation built. It's a good idea though for compatibility sake.
« Last Edit: December 14, 2020, 02:37:15 PM by Night »
URW Character Menu - Cheating menu by a player, for the players.
URW Character Designer - Design your characters sprite!

TheyCallMeSibs

  • Member
  • *
  • Posts: 3
    • View Profile
« Reply #13 on: December 21, 2020, 02:46:31 PM »
Note to guests searching for the mod here, you need to be logged in to see the download.