1+ using ArkSavegameToolkitNet . Arrays ;
2+ using ArkSavegameToolkitNet . Property ;
3+ using ArkSavegameToolkitNet . Structs ;
4+ using ArkSavegameToolkitNet . Types ;
5+ using Newtonsoft . Json ;
6+ using Newtonsoft . Json . Converters ;
7+ using System ;
8+ using System . Collections . Generic ;
9+ using System . Linq ;
10+ using System . Text ;
11+ using System . Text . RegularExpressions ;
12+ using System . Threading . Tasks ;
13+
14+ namespace ArkSavegameToolkitNet . Domain
15+ {
16+ public class ArkCloudInventoryCharacter : ArkClusterDataContainerBase
17+ {
18+ private static readonly ArkName _myArkData = ArkName . Create ( "MyArkData" ) ;
19+ private static readonly ArkName _arkPlayerData = ArkName . Create ( "ArkPlayerData" ) ;
20+
21+ private static readonly ArkName _playerName = ArkName . Create ( "PlayerName" ) ;
22+
23+ private Regex _r_nameLevel = new Regex ( @"^(?<name>.+) - Lvl (?<level>\d+)$" , RegexOptions . IgnoreCase | RegexOptions . Singleline | RegexOptions . ExplicitCapture ) ;
24+
25+ internal IPropertyContainer _character ;
26+
27+ internal void Decouple ( )
28+ {
29+ _character = null ;
30+ }
31+
32+ public ArkCloudInventoryCharacter ( )
33+ {
34+ }
35+
36+ internal static readonly ArkNameTree _dependencies = new ArkNameTree
37+ {
38+ {
39+ _myArkData ,
40+ new ArkNameTree
41+ {
42+ {
43+ _arkPlayerData ,
44+ new ArkNameTree
45+ {
46+ { _playerName , null }
47+ }
48+ }
49+ }
50+ }
51+ } ;
52+
53+ public ArkCloudInventoryCharacter ( IPropertyContainer character ) : this ( )
54+ {
55+ _character = character ;
56+
57+ //todo: add more properties for cloud characters
58+ //todo: read the player data from byte array
59+ var playerName = _character . GetPropertyValue < string > ( _playerName ) ;
60+ if ( playerName != null )
61+ {
62+ var m = _r_nameLevel . Match ( playerName ) ;
63+ if ( m . Success )
64+ {
65+ Name = m . Groups [ "name" ] . Value ;
66+ Level = int . Parse ( m . Groups [ "level" ] . Value ) ;
67+ }
68+ }
69+ }
70+
71+ public string Name { get ; set ; }
72+ public int ? Level { get ; set ; }
73+ }
74+ }
75+
76+ //"MyArkData->ArkPlayerData->bForServerTransfer (Boolean)",
77+ //"MyArkData->ArkPlayerData->bWithItems (Boolean)",
78+ //"MyArkData->ArkPlayerData->ItemCount (Int32)",
79+ //"MyArkData->ArkPlayerData->PlayerDataBytes (ArkArrayByte)",
80+ //"MyArkData->ArkPlayerData->PlayerDataID (Int64)",
81+ //"MyArkData->ArkPlayerData->PlayerName (String)",
82+ //"MyArkData->ArkPlayerData->PlayerStats (String)",
83+ //"MyArkData->ArkPlayerData->PlayerStats_1 (String)",
84+ //"MyArkData->ArkPlayerData->PlayerStats_10 (String)",
85+ //"MyArkData->ArkPlayerData->PlayerStats_11 (String)",
86+ //"MyArkData->ArkPlayerData->PlayerStats_2 (String)",
87+ //"MyArkData->ArkPlayerData->PlayerStats_3 (String)",
88+ //"MyArkData->ArkPlayerData->PlayerStats_4 (String)",
89+ //"MyArkData->ArkPlayerData->PlayerStats_5 (String)",
90+ //"MyArkData->ArkPlayerData->PlayerStats_6 (String)",
91+ //"MyArkData->ArkPlayerData->PlayerStats_7 (String)",
92+ //"MyArkData->ArkPlayerData->PlayerStats_8 (String)",
93+ //"MyArkData->ArkPlayerData->PlayerStats_9 (String)",
94+ //"MyArkData->ArkPlayerData->UploadingServerMapName (String)",
95+ //"MyArkData->ArkPlayerData->UploadTime (Int32)",
96+ //"MyArkData->ArkPlayerData->Version (Single)",
0 commit comments