Jump to content

Admin / Trusted Player Tool - Game Save Visualiser


MirageUK

Recommended Posts

it seems like the program gives the wrong cords when viewing structures at least i have a structure on the lost island at 36.8 - 31.4 acording to the GPS and Ark Viewer reports the structures at 36.8 - 29.7 so its off on one of the axies dont know what could be going on i havent seen it on other maps just on Lost island but i havent tested that much on other maps to be honest :) just wanted to give some feedback 
this happens on both the current version and on 4.1.0.6 just for info :)

Ark Viewer read out.png

GPS Ingame.png

Link to comment
Share on other sites

Cheers guys - I've not actually played it since it went official and just swapped out the image used without updating any co ordinate system it uses.

Leave it with me, will hopefully sort in next couple of days.

 

....edit

It seems they made it a little bigger on official sponsor.  Was 16000 x 15500 - now appears to be 16000 x 17000.  Will get a build updated and uploaded this evening.

Edited by MirageUK
Calculated co ords for Lost Island
Link to comment
Share on other sites

31 minutes ago, MirageUK said:

Version 4.1.0.9 now available.

https://drive.google.com/file/d/1hJFPLcaspkeOaxTZS7nOSElehQgHFqnn/view?usp=sharing

Fixes:

  • Lost Island co-ordinates updated to work with map since it went official.

Much appreciated Mirage.
16k x 17k sounds a bit more logical than my calculated figures.

Link to comment
Share on other sites

Just a thought Mirage... Would there be any benefit to moving the settings for the different maps out of the code and into (say) a json file?
I guess you'd need at least the map string, plus the slope and intercept of lat and long.

You wouldn't have to recompile for each new map, and people could contribute their own calculations.

 

Link to comment
Share on other sites

@Larkfields nice suggestion.  Currently the co-ordinate values used are hard coded within ASVPack.ContentContainer as follows:

 Dictionary<string, Tuple<float, float, float, float>> latlonCalcs = new Dictionary<string, Tuple<float, float, float, float>>
        {
            { "theisland", Tuple.Create(50.0f, 8000.0f, 50.0f, 8000.0f) },
            { "hope", Tuple.Create(50f, 6850f, 50f, 6850f) },
            { "thecenter", Tuple.Create(30.34223747253418f, 9584.0f, 55.10416793823242f, 9600.0f) },
            { "scorchedearth_p", Tuple.Create(50.0f, 8000.0f, 50.0f, 8000.0f) },
            { "aberration_p", Tuple.Create(50.0f, 8000.0f, 50.0f, 8000.0f) },
            { "extinction", Tuple.Create(50.0f, 8000.0f, 50.0f, 8000.0f) },
            { "valhalla", Tuple.Create(48.813560485839844f, 14750.0f, 48.813560485839844f, 14750.0f) },
            { "mortemtupiu", Tuple.Create(32.479148864746094f, 20000.0f, 40.59893798828125f, 16000.0f) },
            { "shigoislands", Tuple.Create(50.001777870738339260f, 9562.0f, 50.001777870738339260f, 9562.0f) },
            { "ragnarok", Tuple.Create(50.009388f, 13100f, 50.009388f, 13100f) },
            { "thevolcano", Tuple.Create(50.0f, 9181.0f, 50.0f, 9181.0f) },
            { "pgark", Tuple.Create(0.0f, 6080.0f, 0.0f, 6080.0f) },
            { "crystalisles" , Tuple.Create(48.7f, 16000f, 50.0f, 17000.0f) },
            { "valguero_p" , Tuple.Create(50.0f, 8161.0f, 50.0f, 8161.0f) },
            { "genesis", Tuple.Create(50.0f, 10500.0f, 50.0f, 10500.0f)},
            { "gen2", Tuple.Create(49.6f, 14500.0f, 49.6f, 14500.0f)},
            { "astralark", Tuple.Create(50.0f, 2000.0f, 50.0f, 2000.0f)},
            { "tunguska_p", Tuple.Create(46.8f, 14000.0f,49.29f, 13300.0f) },
            { "caballus_p", Tuple.Create(50.0f, 8125.0f,50.0f, 8125.0f)},
            { "viking_p", Tuple.Create(50.0f, 7140.0f,50.0f, 7140.0f)},
            { "tiamatprime", Tuple.Create(50.0f, 8000.0f,50.0f, 8000.0f)},
            { "glacius_p", Tuple.Create(50.0f, 16250.0f,50.0f, 16250.0f)},
            { "antartika", Tuple.Create(50.0f, 8000.0f,50.0f, 8000.0f)},
            { "lostisland", Tuple.Create(48.7f, 16000.0f,50.0f, 17000.0f)},
            { "amissa", Tuple.Create(49.9f, 10900.0f,49.9f, 10850.0f)},
            { "olympus", Tuple.Create(0f, 8130.0f,0f, 8130.0f)},
            { "ebenusastrum", Tuple.Create(52.9f, 8650.0f,25.0f, 18500.0f)},
            { "arkforum_eventmap", Tuple.Create(50.0f, 1500.0f,50.0f, 1500.0f) }
        };

We would need to strip out the map images and extend this to include the disk image filename - then you guys can extend it with any new map data as required without a re-compile.

Will look into when I next get a bit more free time.

Cheers for the suggestion.

Also - you probably calculate these things a little more mathematically than I do as here's my process for new maps:

1. Load up map, enable GCM/Fly -go above ground/mountain level but below the "barrier shield".  Use CCC command to get co-ordinates.  Take the Z co ordinate then use SetPlayerPos 0 0 Z-CoOrd.  Check GPS.  Use this initial GPS value as the Lat and Lon shift values.

2. Go to 50,50 using GPS as reference.  Do CCC command again.  Take the output and feed it into my spreadsheet with expected gps co-ordinates.  Eye-ball the calculated co-ordinates and adjust up/down the Lat and Lon divisors as required.

3. Verify values by doing the same, but at GPS 20,20 and 80,80

Calculation Formula:

  • Lat Shift (a), Lon Shift (b), Lat Divisor (c), Lon Divisor (d), CCC-X (x), CCC-Y (y)
  • Calculated Lon = a + (x / d)
  • Calculated Lat = b + (y / c)

 

Edited by MirageUK
Added calculation used for lat/lon based on map size, offset and in-game CCC co-ordinates.
Link to comment
Share on other sites

Hmmm, I hadn't considered the maps 😞

Excel's SLOPE() and INTERCEPT() functions are good for calculating the values for a, b, c, d (in your post above).  You can hopefully see that in the spreadsheet I posted.

I usually fly to a few locations like 50,50 on the in-game GPS then  travel close to the edge of the map recording a few points as I go.  So I'm definitely less scientific than you in that respect 🙂

 

Link to comment
Share on other sites

At the risk of making more work for you: You could incorporate a ccc/GPS to json conversion dialog box into your GUI 🙂

This python function looks easy enough to convert...
https://moonbooks.org/Articles/How-to-calculate-the-slope-and-the-intercept-of-a-straight-line-with-python-/

def slope_intercept(x1,y1,x2,y2):
    a = (y2 - y1) / (x2 - x1)
    b = y1 - a * x1     
    return a,b

print(slope_intercept(x1,y1,x2,y2))
Link to comment
Share on other sites

I just noticed the oil vein coords are off ~ +4.4 lat on Lost Island with util coords vs in-game GPS which is bizarre as I'd expect the data pulled from the save file to be what is presented to the in-game GPS. I also checked a few map pins I had with some sea loot crates and they are way way off since the recent patch adjusted some scaling.

Link to comment
Share on other sites

@psionprime latest build?  The co ords were off for Lost Island since it went official but should have been fixed in the latest release of ASV.

If you stil experience problems please provide me with the GPS co ords of the veins in question and I will investigate further.  

@c0mical I thought that I already exported that information.  Will look to add it in the next build.

Link to comment
Share on other sites

Another change to the map design by the looks of it. 

Previously SetPlayerPos 0 0 12000 gave gps co-ords of 48.7 / 50.  Doing the same command now sets me at 51.6 / 49.0 on the in game GPS.  

Leave it with me, currently working on code to implement the new externally configiured map definition as recommended by @Larkfields and I will include new co-ord calculations for Lost Islands in that build.

 

  • Thanks 1
Link to comment
Share on other sites

Version 4.2.0.0 now available.

https://drive.google.com/file/d/1R1EE9SzNk5gY7vl6u5GHMs7cEBEqzXXj/view?usp=sharing

Features

  • Moved definition of maps into an external "maps.json" file.  This will allow you guys to add your own maps or adjust map co-ordinate calculations without me having to do a re-compile.  Thanks for the suggestion @Larkfields
  • Added "created" field to command line structure export. @c0mical
  • Removed map images from the compile and included them in a new "Maps" sub folder for use with the new maps.json configuration file.
  • Adjusted map co-ordinate calculation values for Lost Island - again.

Maps.json

{"maps": [
	{
        "MapName": "The Island",
        "Filename": "theisland.ark",
        "ImageFile": "map_theisland.png",
        "LatShift": 50.0,
        "LatDiv": 8000.0,
        "LonShift": 50.0,
        "LonDiv": 8000.0
    },
	{
        "MapName": "The Center",
        "Filename": "thecenter.ark",
        "ImageFile": "map_thecenter.png",
        "LatShift": 30.34223747253418,
        "LatDiv": 9584.0,
        "LonShift": 55.10416793823242,
        "LonDiv": 9600.0 
    }	....
]
}

As always - although not as regular these days - if you have any issues let me know and I'll see what I can do to resolve them.

Cheers

Mirage

Edited by MirageUK
  • Like 1
  • Thanks 2
Link to comment
Share on other sites

thanks,

Ive copied the ASVExport files in the 4-2-0-0 pack but Im getting an error trying to do a structures export. am I just missing something?

thanks

stderr: Unhandled exception. System.MissingMethodException: Method not found: 'Void ASVPack.Models.ContentContainer.LoadSaveGame(System.String, System.String)'.
   at ASVExport.Program.ExportWithCommandLineOptions(String[] commandArguments)
   at ASVExport.Program.Main() in C:\Dev\ASV\ASVExport\Program.cs:line 30

Link to comment
Share on other sites

9 minutes ago, c0mical said:

thank you :)

I've found that exporting via the gui gives me the created date, but using ASVExport doesnt give them, is there something I need to add to the config file for it to output that

 

You are too fast for me.  I did notice that and fixed it and re-uploaded it again but I'm guessing you got the 2nd release rather than the 3rd. Try again and let me know :)

 

edit.. my bad. I didn't include the change to the dll that went with it.  Give me a couple of minutes.

Edited by MirageUK
Link to comment
Share on other sites

Awesome with the updates - quick question:

On occasion this tool is handy to run on a server, however it "locks" the  last save  (<mapname>.ARK) whilst the tool is running (even after loading the save).  Is it possible that the tool can release the file-lock after it has completed loading all the data so that it can be used on a live server environment without preventing new saves being generated?

Link to comment
Share on other sites

5 hours ago, ANewHome said:

Awesome with the updates - quick question:

On occasion this tool is handy to run on a server, however it "locks" the  last save  (<mapname>.ARK) whilst the tool is running (even after loading the save).  Is it possible that the tool can release the file-lock after it has completed loading all the data so that it can be used on a live server environment without preventing new saves being generated?

I copy the ".ark" savefile before running Mirage's utility - and run the util on the copy.
You'll need to edit maps.json so it knows the name of the copied file.

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...