UnReal World > Mod Releases

[Tool] WhereIsMyRobber - a "Homeland Robbers" tedium remedy

(1/3) > >>

aat:
WhereIsMyRobber

Have you haver got bored to death by looking for the robbers in the "Homeland Robbers" quest? Do you have some better use for your time, rather than exploring 20x20 tiles one by one? Then this is for you.

If you never had the pleasure the excruciating experience of this quest, you need to kill a group of robbers which are troubling some villagers. Yet, the real challenge of this quest is not the fight, but actually finding these robbers, for which you are given just a indicative area of their location.

But, despite being 4 robbers with a shelter, the robbers do not appear on the zoomed-out map; looking for trails on the zoomed-out map won't work either. Even standing on their actual location tile won't prompt the encounter on the zoom-in map, like instead occurs when you meet a squirrel or other animals.
How are we supposed to spot a squirrel hiding on a tree but miss a roaming squad of robbers I have no idea. Especially because the robbers are supposedly looking for victims to assault. Yet, you could spend days in the area without never being approached.

So, the only way to find them is zooming into every single individual tile of the area, hoping to be lucky. Obviously, it is not the most time-efficient way, given that there could be about 400 tiles to look into. 

In conclusion, I think this quest is too broken to be enjoyable, and I looked for some solution by digging into the game files.

Here I make available a simple Python script to find the nearest robbers, and give instructions on how to reach them.

Instructions


* Install Python 3.8 or later versions from here. This is required to run the script
* Copy the script into the folder of your savegame. This is the folder with the same name as your character that is located in the game folder
* Save your game with your character near the area where the robbers are supposed to be found
* Run the script by double clicking on it. On Windows, a Python window will open with a text prompt
* Press enter in the text prompt, and the script will look for the nearest robber and give you instructions on how to reach it on the zoomed-out map
I have tested this on Linux. Please let me know if it works also on other platforms. There are no reasons it shouldn't but I am ready to fix it if there is some quirk

Visual example
The robber quest area
Spoiler: show

Where are they hiding?!
Spoiler: show

They were so close!!
Spoiler: show

On the specified tile, no tracks. Is it really the correct one?
Spoiler: show

Zooming-in reveals the robbers' shelter! The robbers must not be far
Spoiler: show

And there they are
Spoiler: show

Notes

* The script does not know which robbers belong to the quest. It will simply show you the location of the robbers closest to you. That's why it's better you run it after you are near the quest area
* If you keep pressing enter in the prompt, the script will display farther and farther robbers.
Technical details
For this script I have partially decoded the CRS and URS savegame files.
While it is not within the scope of this script, it is possible to use this script to reveal the location of any creature/human near the player. I have already decoded the "id" bytes for other entities different than robbers, like wolves, bears, njerpez, elks etc. But that would be cheating, and it would make exploring meaningless and the game boring.   

If you want to contribute to "decoding" the creature files, you can find the script repository here:
https://github.com/pietralbi/urw-data-scripts

I might make a small modification to make this work also for the "wounded adventurer quest", by locating the assaulting bear, since that quest is just as broken as this one. But at least the "wounded adventurer" gives you a hint on the terrain-neighbouring terrain where the shelter is, which limits a lot the tiles to explore.

Night:
Fantastic work, glad to see you're back ^^.

Took a look at the code, overall very good work.
notes:
Spoiler: show
I noticed you we're documenting the data for entities on the github page, maybe ill write something up for scraping purposes.

Uploading a txt file w/ what I've documented for the struct, I'll look into the github page later and see if I can add it there later.

Heres some notes on the file, for readability purposes.

aat:
Hi Night, thanks for the feedback, and for sharing your documentation on the CRS file!

I'd like to cross check the entity struct with the OBJ file, maybe we can identify the inventory, with the possibility of injecting modded items on creatures and characters. Or even spawning new entities!

One thing I couldn't find is how the game knows that those are the robbers associated to the quest. Maybe their position on the entity array is stored somewhere?

Night:

--- Quote from: aat on December 06, 2020, 05:48:02 AM ---Hi Night, thanks for the feedback, and for sharing your documentation on the CRS file!

I'd like to cross check the entity struct with the OBJ file, maybe we can identify the inventory, with the possibility of injecting modded items on creatures and characters. Or even spawning new entities!

One thing I couldn't find is how the game knows that those are the robbers associated to the quest. Maybe their position on the entity array is stored somewhere?

--- End quote ---

It's possible they're marked somehow in the entity struct, a better way to identify them is maybe cross referencing their position with any new data related to the shelter/items generated around them, I'm not sure if it's generated fully when the quest begins but, I suspect if it is then the map tile with the items on ground+shelter is likely saved into ZOOMMAPS. then its just a matter of referencing that locations x/y to your robber's x/y.

There are a lot of steps needed in order to create new objects/entities and place them, etc. Entities item ID's seem to be located at 0x1B4, extending as far as 0x1CC. I have not yet found the quantity with certainty.

for item ID's, the ID (50042 for example) - 50000 = the index of the item in the Character.OBJ file, I believe the item struct is 172 bytes long, and I may or may not have posted some information on it elseware around here, but I have a majority of the struct mapped, with the exception of a few unknown values I have yet to identify, and some values I have not fully tested yet to determine their full scope.

As for cross referencing stuff, might edit one of the wiki's with struct information, as my experience so far using the fandom wiki has been pleasant and easy to share/edit.

Also I'm still around on discord if you want to chat directly of course ^^.

rudy:
Thank you so much! This quest was super unfun without this :(

Navigation

[0] Message Index

[#] Next page

Go to full version