ark-mod / arksavegametoolkitnet Goto Github PK
View Code? Open in Web Editor NEWLibrary for reading ARK Survival Evolved savegame files using C#.
License: MIT License
Library for reading ARK Survival Evolved savegame files using C#.
License: MIT License
It's not really an issue but the Ragnarok map still doesn't have the desert section. Maybe we could update the jpeg file.
Link to the incomplete map file
Hi Tobias,
ty for the huge amount of work you put into translating qowyns java code to C#.
Have you planned to integrate hibernation entries any time ? It is not used on dedicated servers, but is default for single player and non-dedicated servers (few players).
Pete
Lat 0, Long 0 is at X -850000, Y -780000
Lat 1, Long 1 is at X -833000, Y -764000
X Scale (Longitude Divisor) is 17000
Y Scale (Latitude Divisor) is 16000
X 0, Y 0 is at Lat 48.75, Long 50
Also, using TPCoords to set Lat and Long, then checking X and Y with CopyCoordinatesToClipboard seems to be the most accurate way to map the two coordinate systems. It seems odd to then translate the accurate, integer x and y diffs and scale into derived, floating point latitude and longitude shifts in the source. The X/Y shift is just your ccc output at "TPCoords 0 0 40000"
The X/Y scale is the diff in x and y between 0,0 and 1,1
The Volcano map image: https://i.imgur.com/Q1pHflC.jpg
Add this in ArkLocation.cs:
volcano = MapResources.topo_map_TheVolcano;
.............
{ "TheVolcano", Tuple.Create(volcano.Width, volcano.Height, -1.8f, -1.3f, 99.3f, 100.9f) },
..............
volcano?.Dispose();
I already tried to compile it with these proportions and it works correctly ^^
The dinos stats that are higher than 127 are going back to -128. Happen on servers with a max wild level of 400-500 or more.
I already fixed that issue on my fork
flagoss@17cff56
Its only changing some variables type from sbyte to byte.
hi
im having problem ith arkbot everything is connecting well except for server side
i get 'Update failed after xx ms'
ip 127.0.0.1 port
query port 27018
save location is set C:\Users\Administrator\Desktop\ark\Servers\Server1\ShooterGame\Saved\SavedArks\CrystalIsles.ark
please help this is very importent to me
log
2022-12-20 00:04:09,144 [9] WARN ArkSavegameToolkitNet.Data.ExtraDataCharacterHandler - Expected int after properties to be 1 but found 0 at 338710372 2022-12-20 00:04:09,336 [8] WARN ArkSavegameToolkitNet.Data.ExtraDataCharacterHandler - Expected int after properties to be 1 but found 0 at 348549613 2022-12-20 00:04:09,344 [8] WARN ArkSavegameToolkitNet.Data.ExtraDataCharacterHandler - Expected int after properties to be 1 but found 0 at 348666499 2022-12-20 00:04:09,344 [17] WARN ArkSavegameToolkitNet.Data.ExtraDataCharacterHandler - Expected int after properties to be 1 but found 0 at 348789347 2022-12-20 00:04:09,345 [18] WARN ArkSavegameToolkitNet.Data.ExtraDataCharacterHandler - Expected int after properties to be 1 but found 0 at 348850652 2022-12-20 00:04:10,535 [6] ERROR ArkBot.Ark.ArkServerContext - Failed to update server (season3) System.NullReferenceException: Object reference not set to an instance of an object. at ArkSavegameToolkitNet.Domain.ArkGameData.<>c__DisplayClass13_1.<Update>b__12(GameObject x) in C:\Tobias\Repos\Own\ARK\ArkSavegameToolkitNet\ArkSavegameToolkitNet.Domain\ArkGameData.cs:line 117 at System.Linq.Enumerable.WhereSelectArrayIterator
2.MoveNext()
at System.Linq.Buffer1..ctor(IEnumerable
1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) at ArkSavegameToolkitNet.Domain.ArkGameData.Update(CancellationToken ct, ArkPlayerExternal[] externalPlayerData, Boolean deferApplyNewData, ArkAnonymizeData anonymize) in C:\Tobias\Repos\Own\ARK\ArkSavegameToolkitNet\ArkSavegameToolkitNet.Domain\ArkGameData.cs:line 114 at ArkBot.Ark.ArkServerContext.Update(Boolean manualUpdate, IConfig fullconfig, ISavegameBackupService savegameBackupService, IProgress
1 progress, CancellationToken ct)
2022-12-20 00:04:49,870 [1] DEBUG ArkBot.ViewModel.Workspace - Exception in Workspace::Dispose (WebApi) when closing application
System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: A task may only be disposed if it is in a completion state (RanToCompletion, Faulted or Canceled).
at System.Threading.Tasks.Task.Dispose(Boolean disposing)
at QueryMaster.GameServer.TcpQuery.Dispose(Boolean disposing)
at QueryMaster.QueryMasterBase.Dispose()
at QueryMaster.GameServer.RconSource.Dispose(Boolean disposing)
at QueryMaster.QueryMasterBase.Dispose()
at QueryMaster.GameServer.Server.Dispose(Boolean disposing)
at QueryMaster.QueryMasterBase.Dispose()
at ArkBot.Steam.SteamManager.Dispose(Boolean disposing)
at ArkBot.Ark.ArkServerContext.Dispose(Boolean disposing)
at Autofac.Core.Disposer.Dispose(Boolean disposing)
at Autofac.Util.Disposable.Dispose()
at Autofac.Core.Lifetime.LifetimeScope.Dispose(Boolean disposing)
at Autofac.Util.Disposable.Dispose()
at Autofac.Core.Container.Dispose(Boolean disposing)
at Autofac.Util.Disposable.Dispose()
at Autofac.Integration.WebApi.AutofacWebApiDependencyScope.Dispose(Boolean disposing)
at Autofac.Integration.WebApi.AutofacWebApiDependencyScope.Dispose()
at Autofac.Integration.WebApi.AutofacWebApiDependencyResolver.Dispose(Boolean disposing)
at Autofac.Integration.WebApi.AutofacWebApiDependencyResolver.Dispose()
at System.Web.Http.HttpConfiguration.Dispose(Boolean disposing)
at System.Web.Http.HttpServer.Dispose(Boolean disposing)
at System.Net.Http.HttpMessageInvoker.Dispose(Boolean disposing)
at System.Web.Http.Owin.HttpMessageHandlerAdapter.OnAppDisposing()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.CancellationCallbackInfo.ExecuteCallback()
at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean throwOnFirstException)
--- End of inner exception stack trace ---
at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean throwOnFirstException)
at System.Threading.CancellationTokenSource.NotifyCancellation(Boolean throwOnFirstException)
at Microsoft.Owin.Hosting.Engine.HostingEngine.<>c__DisplayClass6.b__5()
at Microsoft.Owin.Hosting.Engine.HostingEngine.<>c__DisplayClass1.b__0()
at ArkBot.ViewModel.Workspace.Dispose(Boolean disposing)
---> (Inner Exception #0) System.InvalidOperationException: A task may only be disposed if it is in a completion state (RanToCompletion, Faulted or Canceled).
at System.Threading.Tasks.Task.Dispose(Boolean disposing)
at QueryMaster.GameServer.TcpQuery.Dispose(Boolean disposing)
at QueryMaster.QueryMasterBase.Dispose()
at QueryMaster.GameServer.RconSource.Dispose(Boolean disposing)
at QueryMaster.QueryMasterBase.Dispose()
at QueryMaster.GameServer.Server.Dispose(Boolean disposing)
at QueryMaster.QueryMasterBase.Dispose()
at ArkBot.Steam.SteamManager.Dispose(Boolean disposing)
at ArkBot.Ark.ArkServerContext.Dispose(Boolean disposing)
at Autofac.Core.Disposer.Dispose(Boolean disposing)
at Autofac.Util.Disposable.Dispose()
at Autofac.Core.Lifetime.LifetimeScope.Dispose(Boolean disposing)
at Autofac.Util.Disposable.Dispose()
at Autofac.Core.Container.Dispose(Boolean disposing)
at Autofac.Util.Disposable.Dispose()
at Autofac.Integration.WebApi.AutofacWebApiDependencyScope.Dispose(Boolean disposing)
at Autofac.Integration.WebApi.AutofacWebApiDependencyScope.Dispose()
at Autofac.Integration.WebApi.AutofacWebApiDependencyResolver.Dispose(Boolean disposing)
at Autofac.Integration.WebApi.AutofacWebApiDependencyResolver.Dispose()
at System.Web.Http.HttpConfiguration.Dispose(Boolean disposing)
at System.Web.Http.HttpServer.Dispose(Boolean disposing)
at System.Net.Http.HttpMessageInvoker.Dispose(Boolean disposing)
at System.Web.Http.Owin.HttpMessageHandlerAdapter.OnAppDisposing()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.CancellationCallbackInfo.ExecuteCallback()
at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean throwOnFirstException)<---
`
Ark-savegame-toolkit codebase has gone through massive refactoring of over the last six months and now perform much better than previously.
Compare my ark-savegame-toolkit fork (v0.6) to the head of the official repo to see the changes.
Change game and cluster update methods not to depend on game object identification flags that are set based on full or partial class name matching.
Game objects contain little information to tell us what kind they are, guessing based on class name will always be required but should be minimized to improve compatibility with mods.
var statusComponents = objects.Where(x => x.IsDinoStatusComponent).ToDictionary(x => x.ObjectId, x => x);
Should be
var statusComponents = objects.Where(x => x.IsStatusComponent).ToDictionary(x => x.ObjectId, x => x);
// or...
var objectMap = objects.ToDictionary(x => x.ObjectId, x => x);
etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.