From 1cee93d63f19fd4e961b47f23cfa7621833e7d7f Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 05 十一月 2018 13:49:26 +0800
Subject: [PATCH] Merge branch 'master' into leonard
---
Assets/Plugins/iOS/bitcode.meta | 9
Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip | 0
Assets/Plugins/iOS/liblzma.a.aggresive.zip.meta | 6
Assets/Plugins/x86_64/liblzma.so.meta | 78 ++
Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma | 0
Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so | 0
Assets/Editor/Actor/ModelResourcesBuilder.cs | 7
Assets/Plugins/liblzma.bundle/Contents.meta | 7
Assets/Plugins/Android/libs/x86/liblzma.so | 0
Assets/Plugins/SevenZip/lzma.cs.meta | 8
Assets/Resources/Config/PriorBundle.txt | 234 +++---
Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip.meta | 8
Assets/Plugins/iOS/liblzma.a | 0
Assets/Plugins/Android/libs/x86_64/liblzma.zip.meta | 4
Assets/Plugins/x86_64.meta | 4
Assets/Plugins/x86/liblzma.dll.meta | 78 ++
Assets/Plugins/iOS/bitcode/libbrotli.meta | 9
Assets/Plugins/iOS/bitcode/liblz4.meta | 9
Assets/Plugins/iOS/liblzma.a.aggresive.zip | 0
Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip | 0
Assets/Plugins/x86/liblzma.dll | 0
Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta | 4
Assets/Plugins/iOS/bitcode/liblzma.meta | 9
Assets/Plugins/iOS/liblzma.a.fastest.zip | 0
Assets/Plugins/SevenZip/lzma.cs | 839 ++++++++++++++++++++++++++
Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip | 0
Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip.meta | 8
Assets/Plugins/iOS/liblzma.smallest.zip | 0
Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip.meta | 8
Assets/Plugins/liblzma.bundle/Contents/MacOS.meta | 7
Assets/Plugins/iOS/liblzma.a.fastest.zip.meta | 6
Assets/Plugins/x86/liblzma.so | 0
Assets/Editor/Tool/ClientPackageExtension.cs | 1
Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma.meta | 8
Assets/Plugins/x86.meta | 6
Assets/Plugins/x86_64/liblzma.dll | 0
Assets/Plugins/x86/liblzma.so.meta | 78 ++
Assets/Editor/Tool/InGameDownTestWindow.cs | 1
Assets/Plugins/SevenZip.meta | 9
Assets/Plugins/Android/libs/x86_64/liblzma.zip | 0
Assets/Plugins/Android/libs/x86/liblzma.so.meta | 4
Assets/Plugins/iOS/liblzma.a-simulator.zip | 0
Assets/Plugins/liblzma.bundle.meta | 105 +++
Assets/Plugins/iOS/liblzma.a-simulator.zip.meta | 6
Assets/Plugins/iOS/liblzma.smallest.zip.meta | 6
Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip.meta | 8
Assets/Editor/Actor/ResourcesBuilder.cs | 40
Assets/Plugins/x86_64/liblzma.so | 0
Assets/Plugins/liblzma.bundle/Contents/Info.plist.meta | 8
Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip | 0
Assets/Plugins/Android/libs/x86_64.meta | 7
Assets/Plugins/iOS/liblzma.a.meta | 21
Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip.meta | 6
Assets/Plugins/liblzma.bundle/Contents/Info.plist | 46 +
Assets/Editor/Tool/ClientPackage.cs | 108 ++
Assets/Plugins/x86_64/liblzma.dll.meta | 78 ++
Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip | 0
Assets/Plugins/iOS/bitcode/libzipw.meta | 9
Assets/Plugins/iOS/bitcode/libfastlz.meta | 9
59 files changed, 1,736 insertions(+), 170 deletions(-)
diff --git a/Assets/Editor/Actor/ModelResourcesBuilder.cs b/Assets/Editor/Actor/ModelResourcesBuilder.cs
index 32566df..5527d01 100644
--- a/Assets/Editor/Actor/ModelResourcesBuilder.cs
+++ b/Assets/Editor/Actor/ModelResourcesBuilder.cs
@@ -130,7 +130,12 @@
}
protected override void OnSetupRenderer(string path, string resName, ref Renderer renderer)
- {
+ {//Assets/ART/Role/A_Zs_Sb/Materials/A_Zs05_Sb.mat
+ if (path.EndsWith("_Sb"))
+ {
+ path = path.Replace("_Sb", "");
+ resName = resName.Replace("_Sb", "");
+ }
string _materialPath = string.Format("Assets/ART/Role/{0}/Materials/{1}.mat", path, resName);
Material _material = AssetDatabase.LoadAssetAtPath<Material>(_materialPath);
diff --git a/Assets/Editor/Actor/ResourcesBuilder.cs b/Assets/Editor/Actor/ResourcesBuilder.cs
index ec3d84e..bf671ba 100644
--- a/Assets/Editor/Actor/ResourcesBuilder.cs
+++ b/Assets/Editor/Actor/ResourcesBuilder.cs
@@ -140,7 +140,7 @@
if ((resName.StartsWith("A_Zs") || resName.StartsWith("A_Fs"))
&& !isHighMesh
- && suffix.Equals(InstanceResourcesLoader.raceSuffix))
+ && (suffix.Equals(InstanceResourcesLoader.raceSuffix) || suffix.Equals(InstanceResourcesLoader.handSuffix)))
{
_absOriginalePath = string.Format("{0}/ART/Role/{1}/{2}_Dm.FBX", Application.dataPath, path, resName);
_originalAssetPath = string.Format("Assets/ART/Role/{0}/{1}_Dm.FBX", path, resName);
@@ -149,8 +149,8 @@
string _tempPrefabName = outName;
if (isHighMesh
- && ((!resName.StartsWith("A_Zs") && !resName.StartsWith("A_Fs"))
- || !suffix.Equals(InstanceResourcesLoader.raceSuffix)))
+ && ((resName.StartsWith("A_Zs") || resName.StartsWith("A_Fs"))
+ && (suffix.Equals(InstanceResourcesLoader.raceSuffix) || suffix.Equals(InstanceResourcesLoader.handSuffix))))
{
_tempPrefabName += "_UI";
@@ -317,7 +317,9 @@
string _tempName = resName;
if ((resName.StartsWith("A_Zs") || resName.StartsWith("A_Fs"))
- && suffix.Equals(InstanceResourcesLoader.raceSuffix) && !isHighMesh)
+ && (suffix.Equals(InstanceResourcesLoader.raceSuffix)
+ || suffix.Equals(InstanceResourcesLoader.handSuffix))
+ && !isHighMesh)
{
_tempName += "_Dm";
}
@@ -331,7 +333,7 @@
Renderer _renderer = _rendererNode.GetComponent<Renderer>();
if (_renderer)
{
- OnSetupRenderer(path, resName, ref _renderer);
+ OnSetupRenderer(path, _tempName, ref _renderer);
}
Animation _animation = _prefab.GetComponent<Animation>();
@@ -340,18 +342,26 @@
Object.DestroyImmediate(_animation);
}
- Animator _animator = _prefab.GetComponent<Animator>();
-
- if (!_animator)
+ if (suffix.Equals(InstanceResourcesLoader.raceSuffix)
+ || suffix.Equals(InstanceResourcesLoader.horseSuffix)
+ || suffix.Equals(InstanceResourcesLoader.wingSuffix))
{
- _animator = _prefab.AddComponent<Animator>();
- }
+ Animator _animator = _prefab.GetComponent<Animator>();
- // 缁戝畾鍔ㄧ敾鎺у埗鍣�
- RuntimeAnimatorController _runtimeAnimatorContorller = AssetDatabase.LoadAssetAtPath<RuntimeAnimatorController>(_acAssetPath);
- if (_runtimeAnimatorContorller)
- {
- _animator.runtimeAnimatorController = _runtimeAnimatorContorller;
+ if (!_animator)
+ {
+ _animator = _prefab.AddComponent<Animator>();
+ }
+
+ if (suffix.Equals(InstanceResourcesLoader.wingSuffix))
+ {
+ // 缁戝畾鍔ㄧ敾鎺у埗鍣�
+ RuntimeAnimatorController _runtimeAnimatorContorller = AssetDatabase.LoadAssetAtPath<RuntimeAnimatorController>(_acAssetPath);
+ if (_runtimeAnimatorContorller)
+ {
+ _animator.runtimeAnimatorController = _runtimeAnimatorContorller;
+ }
+ }
}
PrefabUtility.CreatePrefab(_assetPath, _prefab, ReplacePrefabOptions.Default);
diff --git a/Assets/Editor/Tool/ClientPackage.cs b/Assets/Editor/Tool/ClientPackage.cs
index 520d04b..3c1b59a 100644
--- a/Assets/Editor/Tool/ClientPackage.cs
+++ b/Assets/Editor/Tool/ClientPackage.cs
@@ -22,8 +22,13 @@
}
public static bool obfuscatorEnabled {
- get { return LocalSave.GetBool("obfuscatorEnabled",false); }
+ get { return LocalSave.GetBool("obfuscatorEnabled", false); }
set { LocalSave.SetBool("obfuscatorEnabled", value); }
+ }
+
+ public static int AssetPrior {
+ get { return LocalSave.GetInt("HalfAssetPrior", 1); }
+ set { LocalSave.SetInt("HalfAssetPrior", value); }
}
static string ANDROID_PLUGIN_PATH = Application.dataPath + "/Plugins/Android";
@@ -130,11 +135,14 @@
if (halfPackages.Count > 0)
{
Config.Instance.LoadPriorBundleConfig();
- FileExtersion.DirectoryCopy(_assetBundlePath, ResourcesPath.Instance.StreamingAssetPath);
- var files = new List<FileInfo>();
- FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "mob"), files);
- foreach (var file in files)
+ var fromFiles = new List<FileInfo>();
+ FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles);
+
+ var excludeFileFullNames = new List<string>();
+ var tempFiles = new List<FileInfo>();
+ FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/mob"), tempFiles);
+ foreach (var file in tempFiles)
{
var extersion = Path.GetExtension(file.FullName);
var fileName = Path.GetFileName(file.FullName);
@@ -143,15 +151,16 @@
fileName = fileName.Replace(extersion, "");
}
- if (!PriorBundleConfig.mobs.Contains(fileName))
+ var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Mob, fileName);
+ if (prior > AssetPrior)
{
- File.Delete(file.FullName);
+ excludeFileFullNames.Add(file.FullName);
}
}
- files.Clear();
- FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "maps"), files);
- foreach (var file in files)
+ tempFiles.Clear();
+ FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/maps"), tempFiles);
+ foreach (var file in tempFiles)
{
var extersion = Path.GetExtension(file.FullName);
var fileName = Path.GetFileName(file.FullName);
@@ -160,15 +169,16 @@
fileName = fileName.Replace(extersion, "");
}
- if (!PriorBundleConfig.scenes.Contains(fileName))
+ var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Scene, fileName);
+ if (prior > AssetPrior)
{
- File.Delete(file.FullName);
+ excludeFileFullNames.Add(file.FullName);
}
}
- files.Clear();
- FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "audio"), files);
- foreach (var file in files)
+ tempFiles.Clear();
+ FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/audio"), tempFiles);
+ foreach (var file in tempFiles)
{
var extersion = Path.GetExtension(file.FullName);
var fileName = Path.GetFileName(file.FullName);
@@ -177,15 +187,16 @@
fileName = fileName.Replace(extersion, "");
}
- if (!PriorBundleConfig.audios.Contains(fileName))
+ var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Audio, fileName);
+ if (prior > AssetPrior)
{
- File.Delete(file.FullName);
+ excludeFileFullNames.Add(file.FullName);
}
}
- files.Clear();
- FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, "effect"), files);
- foreach (var file in files)
+ tempFiles.Clear();
+ FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/effect"), tempFiles);
+ foreach (var file in tempFiles)
{
var extersion = Path.GetExtension(file.FullName);
var fileName = Path.GetFileName(file.FullName);
@@ -194,12 +205,63 @@
fileName = fileName.Replace(extersion, "");
}
- if (!PriorBundleConfig.effects.Contains(fileName))
+ var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Effect, fileName);
+ if (prior > AssetPrior)
{
- File.Delete(file.FullName);
+ excludeFileFullNames.Add(file.FullName);
}
}
+ tempFiles.Clear();
+ FileExtersion.GetAllDirectoryFileInfos(StringUtility.Contact(_assetBundlePath, "/ui/sprite"), tempFiles);
+ foreach (var file in tempFiles)
+ {
+ var fileName = Path.GetFileName(file.FullName);
+ if (fileName == "loadingbg")
+ {
+ excludeFileFullNames.Add(file.FullName);
+ }
+ }
+
+ for (int i = fromFiles.Count - 1; i >= 0; i--)
+ {
+ var item = fromFiles[i];
+ if (excludeFileFullNames.Contains(item.FullName))
+ {
+ fromFiles.RemoveAt(i);
+ }
+ }
+
+ var totalCount = fromFiles.Count;
+ var completeCount = 0;
+ foreach (var item in fromFiles)
+ {
+ var directory = Path.GetDirectoryName(item.FullName);
+ if (!Directory.Exists(directory))
+ {
+ Directory.CreateDirectory(directory);
+ }
+
+ var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
+ var to = StringUtility.Contact(ResourcesPath.Instance.StreamingAssetPath, relativePath);
+#if UNITY_ANDROID
+ var extension = Path.GetExtension(item.FullName);
+ if (extension == ".meta")
+ {
+ continue;
+ }
+
+ to = to + ".7z";
+ SevenZipUtility.Compress(item.FullName, to);
+ UnityEditor.EditorUtility.DisplayProgressBar("姝e湪鍘嬬缉璧勬簮", item.Name, (float)completeCount / totalCount);
+#elif UNITY_IOS
+ File.Copy(item.FullName,to,true);
+#endif
+
+ completeCount++;
+ }
+
+ EditorUtility.ClearProgressBar();
for (int i = 0; i < halfPackages.Count; i++)
{
#if UNITY_ANDROID
@@ -292,7 +354,7 @@
FileExtersion.DirectoryCopy(StringUtility.Contact(_sdkPath, "/ChannelDiff/Android/", versionConfig.appId), ANDROID_PLUGIN_PATH);
var option = AssetDatabase.LoadAssetAtPath<Options>("Assets/Editor/Beebyte/Obfuscator/ObfuscatorOptions.asset");
- if (option!=null)
+ if (option != null)
{
option.enabled = obfuscatorEnabled;
EditorUtility.SetDirty(option);
diff --git a/Assets/Editor/Tool/ClientPackageExtension.cs b/Assets/Editor/Tool/ClientPackageExtension.cs
index 99bca74..4dda5f2 100644
--- a/Assets/Editor/Tool/ClientPackageExtension.cs
+++ b/Assets/Editor/Tool/ClientPackageExtension.cs
@@ -16,6 +16,7 @@
try
{
Debug.LogFormat("浠庡懡浠よ涓В鏋愬嚭鏉ョ殑SDKPATH 鏄�:{0}", parameters.sdkPath);
+ ClientPackage.AssetPrior = 1;
ClientPackage.BuildPublishers(parameters.sdkPath, parameters.assetbundlePath, parameters.outputPath, parameters.publishers, parameters.buildIndex, false, false);
}
catch (Exception ex)
diff --git a/Assets/Editor/Tool/InGameDownTestWindow.cs b/Assets/Editor/Tool/InGameDownTestWindow.cs
index dbf3c50..5ed3c59 100644
--- a/Assets/Editor/Tool/InGameDownTestWindow.cs
+++ b/Assets/Editor/Tool/InGameDownTestWindow.cs
@@ -26,6 +26,7 @@
{
VersionConfig.Get().assetAccess = InstalledAsset.NullAsset;
AssetSource.allFromEditor = false;
+ AssetSource.builtInFromEditor = true;
}
else
{
diff --git a/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so b/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so
new file mode 100644
index 0000000..8234bec
--- /dev/null
+++ b/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so
Binary files differ
diff --git a/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta b/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta
new file mode 100644
index 0000000..c02a2ed
--- /dev/null
+++ b/Assets/Plugins/Android/libs/armeabi-v7a/liblzma.so.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 47f1efaba9ae5384e860af5a2f4b81f4
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Android/libs/x86/liblzma.so b/Assets/Plugins/Android/libs/x86/liblzma.so
new file mode 100644
index 0000000..b8db604
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86/liblzma.so
Binary files differ
diff --git a/Assets/Plugins/Android/libs/x86/liblzma.so.meta b/Assets/Plugins/Android/libs/x86/liblzma.so.meta
new file mode 100644
index 0000000..3956efb
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86/liblzma.so.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 30173cd337b2c3342807248d739cfef5
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Android/libs/x86_64.meta b/Assets/Plugins/Android/libs/x86_64.meta
new file mode 100644
index 0000000..1676797
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86_64.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1c82f02f593b1ea46b1f621db7963d42
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Android/libs/x86_64/liblzma.zip b/Assets/Plugins/Android/libs/x86_64/liblzma.zip
new file mode 100644
index 0000000..a5a0a21
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86_64/liblzma.zip
Binary files differ
diff --git a/Assets/Plugins/Android/libs/x86_64/liblzma.zip.meta b/Assets/Plugins/Android/libs/x86_64/liblzma.zip.meta
new file mode 100644
index 0000000..b60ebb8
--- /dev/null
+++ b/Assets/Plugins/Android/libs/x86_64/liblzma.zip.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: b33b02668b8329341b048c388739b940
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/SevenZip.meta b/Assets/Plugins/SevenZip.meta
new file mode 100644
index 0000000..3672382
--- /dev/null
+++ b/Assets/Plugins/SevenZip.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 12b6aa1b020583d4da0e4a2bf52bb7ff
+folderAsset: yes
+timeCreated: 1541063894
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/SevenZip/lzma.cs b/Assets/Plugins/SevenZip/lzma.cs
new file mode 100644
index 0000000..e3de0b5
--- /dev/null
+++ b/Assets/Plugins/SevenZip/lzma.cs
@@ -0,0 +1,839 @@
+using System;
+using System.Runtime.InteropServices;
+using UnityEngine;
+using System.Collections.Generic;
+using System.IO;
+
+
+#if (UNITY_WSA_8_1 || UNITY_WP_8_1 || UNITY_WINRT_8_1) && !UNITY_EDITOR
+ using File = UnityEngine.Windows.File;
+ #else
+ using File = System.IO.File;
+ #endif
+
+#if NETFX_CORE
+ #if UNITY_WSA_10_0
+ using System.IO.IsolatedStorage;
+ using static System.IO.Directory;
+ using static System.IO.File;
+ using static System.IO.FileStream;
+ #endif
+#endif
+
+
+public class lzma {
+
+ //if you want to be able to call the functions: get7zinfo, get7zSize, decode2Buffer from a thread set this string before to the Application.persistentDataPath !
+ public static string persitentDataPath="";
+
+#if !(UNITY_WSA || UNITY_WP_8_1) || UNITY_EDITOR
+
+ internal static int[] props = new int [7];
+ internal static bool defaultsSet = false;
+
+ //0 = level, /* 0 <= level <= 9, default = 5 */
+ //1 = dictSize, /* use (1 << N) or (3 << N). 4 KB < dictSize <= 128 MB */
+ //2 = lc, /* 0 <= lc <= 8, default = 3 */
+ //3 = lp, /* 0 <= lp <= 4, default = 0 */
+ //4 = pb, /* 0 <= pb <= 4, default = 2 */
+ //5 = fb, /* 5 <= fb <= 273, default = 32 */
+ //6 = numThreads /* 1 or 2, default = 2 */
+
+ //A function that sets the compression properties for the lzma compressor. Will affect the lzma alone file and the lzma buffer compression.
+ //A simple usage of this function is to call it only with the 1st parameter that sets the compression level: setProps(9);
+ //
+ //Multithread safe advice: call this function before starting any thread operations !!!
+ public static void setProps(int level = 5, int dictSize = 16777216, int lc = 3, int lp = 0, int pb = 2, int fb = 32, int numThreads = 2) {
+ defaultsSet = true;
+ props[0] = level;
+ props[1] = dictSize;
+ props[2] = lc;
+ props[3] = lp;
+ props[4] = pb;
+ props[5] = fb;
+ props[6] = numThreads;
+ }
+#endif
+
+
+#if (UNITY_IOS || UNITY_WEBGL || UNITY_IPHONE) && !UNITY_EDITOR
+
+ #if(!UNITY_WEBGL)
+ [DllImport("__Internal")]
+ public static extern int lsetPermissions(string filePath, string _user, string _group, string _other);
+ [DllImport("__Internal")]
+ private static extern int decompress7zip(string filePath, string exctractionPath, bool fullPaths, string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+ #endif
+
+ [DllImport("__Internal")]
+ private static extern int decompress7zip2(string filePath, string exctractionPath, bool fullPaths, string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport("__Internal")]
+ private static extern int _getSize(string filePath, string tempPath, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport("__Internal")]
+ internal static extern int lzmaUtil(bool encode, string inPath, string outPath, IntPtr Props);
+ [DllImport("__Internal")]
+ internal static extern int decode2Buf(string filePath, string entry, IntPtr buffer, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport("__Internal")]
+ internal static extern void _releaseBuffer(IntPtr buffer);
+ [DllImport("__Internal")]
+ internal static extern IntPtr Lzma_Compress( IntPtr buffer, int bufferLength, bool makeHeader, ref int v, IntPtr Props);
+ [DllImport("__Internal")]
+ internal static extern int Lzma_Uncompress( IntPtr buffer, int bufferLength, int uncompressedSize, IntPtr outbuffer,bool useHeader);
+#endif
+
+#if UNITY_5_4_OR_NEWER
+ #if (UNITY_ANDROID || UNITY_STANDALONE_LINUX) && (!UNITY_EDITOR || UNITY_EDITOR_LINUX)
+ private const string libname = "lzma";
+ #elif UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
+ private const string libname = "liblzma";
+ #endif
+#else
+ #if (UNITY_ANDROID || UNITY_STANDALONE_LINUX) && !UNITY_EDITOR
+ private const string libname = "lzma";
+ #endif
+ #if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
+ private const string libname = "liblzma";
+ #endif
+#endif
+
+#if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX
+ #if (UNITY_STANDALONE_OSX || UNITY_STANDALONE_LINUX || UNITY_ANDROID || UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX)&& !UNITY_EDITOR_WIN
+ //set permissions of a file in user, group, other. Each string should contain any or all chars of "rwx".
+ //returns 0 on success
+ [DllImport(libname, EntryPoint = "lsetPermissions")]
+ internal static extern int lsetPermissions(string filePath, string _user, string _group, string _other);
+ #endif
+ [DllImport(libname, EntryPoint = "decompress7zip")]
+ internal static extern int decompress7zip(string filePath, string exctractionPath, bool fullPaths, string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport(libname, EntryPoint = "decompress7zip2")]
+ internal static extern int decompress7zip2(string filePath, string exctractionPath, bool fullPaths, string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport(libname, EntryPoint = "_getSize")]
+ internal static extern int _getSize(string filePath, string tempPath, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport(libname, EntryPoint = "lzmaUtil")]
+ internal static extern int lzmaUtil(bool encode, string inPath, string outPath, IntPtr Props);
+ [DllImport(libname, EntryPoint = "decode2Buf")]
+ internal static extern int decode2Buf(string filePath, string entry, IntPtr buffer, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport(libname, EntryPoint = "_releaseBuffer")]
+ internal static extern void _releaseBuffer(IntPtr buffer);
+ [DllImport(libname, EntryPoint = "Lzma_Compress")]
+ internal static extern IntPtr Lzma_Compress( IntPtr buffer, int bufferLength, bool makeHeader, ref int v, IntPtr Props);
+ [DllImport(libname, EntryPoint = "Lzma_Uncompress")]
+ internal static extern int Lzma_Uncompress( IntPtr buffer, int bufferLength, int uncompressedSize, IntPtr outbuffer,bool useHeader);
+#endif
+
+#if (UNITY_WP_8_1 || UNITY_WSA) && !UNITY_EDITOR
+ #if (UNITY_IOS || UNITY_IPHONE)
+ [DllImport("__Internal")]
+ internal static extern int lsetPermissions(string filePath, string _user, string _group, string _other);
+ #endif
+ #if UNITY_WSA_10_0
+ [DllImport("liblzma", EntryPoint = "decompress7zip")]
+ internal static extern int decompress7zip(string filePath, string exctractionPath, bool fullPaths, string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+ #endif
+ [DllImport("liblzma", EntryPoint = "decompress7zip2")]
+ internal static extern int decompress7zip2(string filePath, string exctractionPath, bool fullPaths, string entry, IntPtr progress, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport("liblzma", EntryPoint = "_getSize")]
+ internal static extern int _getSize(string filePath, string tempPath, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport("liblzma", EntryPoint = "decode2Buf")]
+ internal static extern int decode2Buf(string filePath, string entry, IntPtr buffer, IntPtr FileBuffer, int FileBufferLength);
+ [DllImport("liblzma", EntryPoint = "Lzma_Uncompress")]
+ internal static extern int Lzma_Uncompress( IntPtr buffer, int bufferLength, int uncompressedSize, IntPtr outbuffer,bool useHeader);
+#endif
+
+
+ // set permissions of a file in user, group, other.
+ // Each string should contain any or all chars of "rwx".
+ // returns 0 on success
+ public static int setFilePermissions(string filePath, string _user, string _group, string _other){
+ #if (UNITY_STANDALONE_OSX || UNITY_STANDALONE_LINUX || UNITY_ANDROID || UNITY_EDITOR_OSX || UNITY_EDITOR_LINUX || UNITY_IOS || UNITY_IPHONE) && !UNITY_EDITOR_WIN
+ return lsetPermissions(filePath, _user, _group, _other);
+ #else
+ return -1;
+ #endif
+ }
+
+ // An integer variable to store the total number of files in a 7z archive, excluding the folders.
+ public static int trueTotalFiles = 0;
+
+ //ERROR CODES:
+ // 1 : OK
+ // 2 : Could not find requested file in archive
+ // -1 : Could not open input(7z) file
+ // -2 : Decoder doesn't support this archive
+ // -3 : Can not allocate memory
+ // -4 : CRC error of 7z file
+ // -5 : Unknown error
+ // -6 : Can not open output file (usually when the path to write to, is invalid)
+ // -7 : Can not write output file
+ // -8 : Can not close output file
+
+ //The most common use of this library is to download a 7z file in your Application.persistentDataPath directory
+ //and decompress it in a folder that you want.
+
+ //int lz=lzma.doDecompress7zip(Application.persistentDataPath+"/myCompresedFile.7z",Application.persistentDataPath+"/myUncompressedFiles/");
+
+ //WSA8.1 does not support large files.
+
+ //filePath : the full path to the archive, including the archives name. (/myPath/myArchive.7z)
+ //exctractionPath : the path in where you want your files to be extracted
+ //progress : a single item integer array to get the progress of the extracted files (use this function when calling from a separate thread, otherwise call the 2nd implementation)
+ // : (for ios this integer is not properly updated. So we use the lzma.getProgressCount() function to get the progress. See example.)
+ //largeFiles : set this to true if you are extracting files larger then 30-40 Mb. It is slower though but prevents crashing your app when extracting large files!
+ //fullPaths : set this to true if you want to keep the folder structure of the 7z file.
+ //entry : set the name of a single file file you want to extract from your archive. If the file resides in a folder, the full path should be added.
+ // (for example game/meshes/small/table.mesh )
+ //FileBuffer : A buffer that holds a 7zip file. When assigned the function will decompress from this buffer and will ignore the filePath. (Linux, iOS, Android, MacOSX)
+ //use this function from a separate thread to get the progress of the extracted files in the referenced 'progress' integer.
+ //
+ public static int doDecompress7zip(string filePath, string exctractionPath, int [] progress, bool largeFiles=false, bool fullPaths=false, string entry=null, byte[] FileBuffer=null){
+
+ int res = 0;
+ GCHandle ibuf = GCHandle.Alloc(progress, GCHandleType.Pinned);
+
+ #if (UNITY_IPHONE || UNITY_IOS || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX || UNITY_EDITOR) && !UNITY_EDITOR_WIN
+
+ if(FileBuffer != null) {
+ GCHandle fbuf = GCHandle.Alloc(FileBuffer, GCHandleType.Pinned);
+
+
+ if (largeFiles){
+ res = decompress7zip(null, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject() , fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+ }else{
+ res = decompress7zip2(null, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject() , fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+ }
+ fbuf.Free(); ibuf.Free(); return res;
+ } else {
+ if (largeFiles){
+ res = decompress7zip(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject() , IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ }else{
+ res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject() , IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ }
+ }
+
+ #endif
+
+ #if (!UNITY_WSA && !UNITY_WEBGL && !UNITY_EDITOR_OSX && !UNITY_STANDALONE_LINUX && !UNITY_ANDROID && !UNITY_IOS) || UNITY_EDITOR_WIN || UNITY_WSA_10_0
+ if (largeFiles){
+ res = decompress7zip(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ }else{
+ res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ }
+ #endif
+
+ #if (UNITY_WSA_8_1 || UNITY_WP_8_1 || UNITY_WINRT_8_1 || UNITY_WEBGL) && !UNITY_EDITOR
+ res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ #endif
+ }
+
+ //same as above only the progress integer is a local variable.
+ //use this when you don't want to get the progress of the extracted files and when not calling the function from a separate thread.
+ public static int doDecompress7zip(string filePath, string exctractionPath, bool largeFiles = false, bool fullPaths = false, string entry = null, byte[] FileBuffer=null)
+ {
+ //make a check if the last '/' exists at the end of the exctractionPath and add it if it is missing
+ if (@exctractionPath.Substring(@exctractionPath.Length - 1, 1) != "/") { @exctractionPath += "/"; }
+
+ int[] progress = new int[1];
+ GCHandle ibuf = GCHandle.Alloc(progress, GCHandleType.Pinned);
+ int res = 0;
+
+ #if (UNITY_IPHONE || UNITY_IOS || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX || UNITY_EDITOR) && !UNITY_EDITOR_WIN
+ if(FileBuffer != null) {
+ GCHandle fbuf = GCHandle.Alloc(FileBuffer, GCHandleType.Pinned);
+
+
+ if (largeFiles){
+ res = decompress7zip(null, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+ }else{
+ res = decompress7zip2(null, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+ }
+ fbuf.Free(); ibuf.Free(); return res;
+ } else {
+ if (largeFiles){
+ res = decompress7zip(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ }else{
+ res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ }
+ }
+ #endif
+
+ #if (!UNITY_WSA && !UNITY_WEBGL && !UNITY_EDITOR_OSX && !UNITY_STANDALONE_LINUX && !UNITY_ANDROID && !UNITY_IOS) || UNITY_EDITOR_WIN || UNITY_WSA_10_0
+ if (largeFiles){
+ res = decompress7zip(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ }
+ else{
+ res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ }
+ #endif
+
+ #if (UNITY_WSA_8_1 || UNITY_WP_8_1 || UNITY_WINRT_8_1 || UNITY_WEBGL) && !UNITY_EDITOR
+ res = decompress7zip2(@filePath, @exctractionPath, fullPaths, entry, ibuf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ ibuf.Free(); return res;
+ #endif
+ }
+
+
+#if !(UNITY_WSA || UNITY_WP_8_1) || UNITY_EDITOR
+ //ERROR CODES (for both encode/decode LzmaUtil functions):
+ // 1 : OK
+ // -10 : Can not read input file
+ // -11 : Can not write output file
+ // -12 : Can not allocate memory
+ // -13 : Data error
+
+ //This function encodes a single archive in lzma alone format.
+ //inPath : the file to be encoded. (use full path + file name)
+ //outPath : the .lzma file that will be produced. (use full path + file name)
+ //
+ //You can set the compression properties by calling the setProps function before.
+ //setProps(9) for example will set compression evel to highest level.
+ public static int LzmaUtilEncode(string inPath, string outPath){
+ if (!defaultsSet) setProps();
+ GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+ int res = lzmaUtil(true, @inPath, @outPath, prps.AddrOfPinnedObject());
+ prps.Free();
+ return res;
+ }
+
+
+ //This function decodes a single archive in lzma alone format.
+ //inPath : the .lzma file that will be decoded. (use full path + file name)
+ //outPath : the decoded file. (use full path + file name)
+ public static int LzmaUtilDecode(string inPath, string outPath){
+ return lzmaUtil(false, @inPath, @outPath, IntPtr.Zero);
+ }
+
+#endif
+
+ //Lists get filled with filenames (including path if the file is in a folder) and uncompressed file sizes
+ public static List <string> ninfo = new List<string>();//filenames
+ public static List <long> sinfo = new List<long>();//file sizes
+
+ //this function fills the ArrayLists with the filenames and file sizes that are in the 7zip file
+ //returns : the total size in bytes of the files in the 7z archive
+ //
+ //filePath : the full path to the archive, including the archives name. (/myPath/myArchive.7z)
+ //tempPath : (optional) a temp path that will be used to write the files info (otherwise the path of the 7z archive will be used)
+ // : this is useful when your 7z archive resides in a read only location.
+ // : the tempPath should be in this form: 'dir/dir/myTempLog' with no slash in the end. The last name will be used as the log's filename.
+ //FileBuffer : A buffer that holds a 7zip file. When assigned the function will read from this buffer and will ignore the filePath. (Linux, iOS, Android, MacOSX)
+ //
+ //trueTotalFiles is an integer variable to store the total number of files in a 7z archive, excluding the folders.
+ public static long get7zInfo(string filePath, string tempPath = null, byte[] FileBuffer = null){
+
+ ninfo.Clear(); sinfo.Clear();
+ trueTotalFiles = 0;
+ int res = -1;
+ string logPath = "";
+
+ #if !NETFX_CORE
+ if (@tempPath == null) {
+ if(persitentDataPath.Length>0) logPath = @persitentDataPath + "/sevenZip.log"; else logPath = @Application.persistentDataPath + "/sevenZip.log";
+ }else { logPath = @tempPath; }
+ #endif
+ //for WSA, logPath should always be: Application.persistentDataPath + "/sevenZip.log";
+ #if NETFX_CORE
+ #if UNITY_WSA_10_0
+ if(persitentDataPath.Length>0) logPath = @persitentDataPath + "/sevenZip.log"; else logPath = @Application.persistentDataPath + "/sevenZip.log";
+ #endif
+ #if UNITY_WSA_8_1 || UNITY_WP_8_1 || UNITY_WINRT_8_1
+ if(persitentDataPath.Length>0) logPath = @persitentDataPath + "/sevenZip.log"; else logPath = @UnityEngine.Windows.Directory.localFolder + "/sevenZip.log";
+ #endif
+ #endif
+
+ if (File.Exists(logPath + ".txt")) File.Delete(logPath + ".txt");
+
+ #if (UNITY_IPHONE || UNITY_IOS || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX || UNITY_EDITOR) && !UNITY_EDITOR_WIN
+ if(FileBuffer != null) {
+ GCHandle fbuf = GCHandle.Alloc(FileBuffer, GCHandleType.Pinned);
+ res = _getSize(null, logPath, fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+ fbuf.Free();
+ }else {
+ res = _getSize(@filePath, logPath, IntPtr.Zero, 0);
+ }
+ #else
+ res = _getSize(@filePath, logPath, IntPtr.Zero, 0);
+ #endif
+
+ if (res == -1) { /*Debug.Log("Input file not found.");*/ return -1; }
+
+ if (!File.Exists(logPath + ".txt")) {/* Debug.Log("Info file not found.");*/ return -3; }
+
+ #if !NETFX_CORE
+ StreamReader r = new StreamReader(logPath + ".txt");
+ #endif
+ #if NETFX_CORE
+ #if UNITY_WSA_10_0
+ IsolatedStorageFile ipath = IsolatedStorageFile.GetUserStoreForApplication();
+ StreamReader r = new StreamReader(new IsolatedStorageFileStream("sevenZip.log.txt", FileMode.Open, ipath));
+ #endif
+ #if UNITY_WSA_8_1 || UNITY_WP_8_1 || UNITY_WINRT_8_1
+ var data = UnityEngine.Windows.File.ReadAllBytes(logPath + ".txt");
+ string ss = System.Text.Encoding.UTF8.GetString(data,0,data.Length);
+ StringReader r = new StringReader(ss);
+ #endif
+ #endif
+
+ string line;
+ string[] rtt;
+ long t = 0, sum = 0;
+
+ while ((line = r.ReadLine()) != null)
+ {
+ rtt = line.Split('|');
+ ninfo.Add(rtt[0]);
+ long.TryParse(rtt[1], out t);
+ sum += t;
+ sinfo.Add(t);
+ if (t > 0) trueTotalFiles++;
+ }
+
+ #if !NETFX_CORE
+ r.Close();
+ #endif
+ r.Dispose();
+ File.Delete(logPath + ".txt");
+
+ return sum;
+ }
+
+
+ //this function returns the uncompressed file size of a given file in the 7z archive if specified,
+ //otherwise it will return the total uncompressed size of all the files in the archive.
+ //
+ //If you don't fill the filePath parameter it will assume that the get7zInfo function has already been called.
+ //
+ //
+ //filePath : the full path to the archive, including the archives name. (/myPath/myArchive.7z)
+ // : if you call the function with filePath as null, it will try to find file sizes from the last call.
+ //fileName : the file name we want to get the file size (if it resides in a folder add the folder path also)
+ //tempPath : (optional) a temp path that will be used to write the files info (otherwise the path of the 7z archive will be used)
+ // : this is useful when your 7z archive resides in a read only location.
+ // : the tempPath should be in this form: 'dir/dir/myTempLog' with no slash in the end. The last name will be used as the log's filename.
+ //FileBuffer : A buffer that holds a 7zip file. When assigned the function will read from this buffer and will ignore the filePath. (Linux, iOS, Android, MacOSX)
+ public static long get7zSize( string filePath=null, string fileName=null, string tempPath=null, byte[] FileBuffer=null){
+
+ if(filePath!=null){
+ if(get7zInfo(@filePath, @tempPath, FileBuffer) < 0){ return -1;}
+ }
+
+ if(ninfo == null){
+ if(ninfo.Count==0) { return -1; }
+ }
+
+ long sum=0;
+
+ if(fileName!=null){
+ for(int i=0; i<ninfo.Count; i++){
+ if(ninfo[i].ToString() == fileName){
+ return (long)sinfo[i];
+ }
+ }
+ }else{
+ for(int i=0; i<ninfo.Count; i++){
+ sum += (long)sinfo[i];
+ }
+ return sum;
+ }
+ return -1;//nothing was found
+ }
+
+
+
+ //A function to decode a specific archive in a 7z archive to a byte buffer
+ //
+ //filePath : the full path to the 7z archive
+ //entry : the file name to decode to a buffer. If the file resides in a folder, the full path should be used.
+ //tempPath : (optional) a temp path that will be used to write the files info (otherwise the path of the 7z archive will be used)
+ // : this is useful when your 7z archive resides in a read only location.
+ // : the tempPath should be in this form: 'dir/dir/myTempLog' with no slash in the end. The last name will be used as the log's filename.
+ //FileBuffer : A buffer that holds a 7zip file. When assigned the function will read from this buffer and will ignore the filePath. (Linux, iOS, Android, MacOSX)
+ public static byte[] decode2Buffer( string filePath, string entry, string tempPath=null, byte[] FileBuffer=null){
+
+ int bufs = (int)get7zSize( @filePath, entry, @tempPath,FileBuffer );
+ if (bufs <= 0) return null;//entry error or it does not exist
+ byte[] nb = new byte[bufs];
+ int res = 0;
+
+ GCHandle dec2buf = GCHandle.Alloc(nb, GCHandleType.Pinned);
+
+ #if (UNITY_IPHONE || UNITY_IOS || UNITY_STANDALONE_OSX || UNITY_ANDROID || UNITY_STANDALONE_LINUX || UNITY_EDITOR) && !UNITY_EDITOR_WIN
+ if(FileBuffer != null) {
+ GCHandle fbuf = GCHandle.Alloc(FileBuffer, GCHandleType.Pinned);
+ res = decode2Buf(null, entry, dec2buf.AddrOfPinnedObject(), fbuf.AddrOfPinnedObject(), FileBuffer.Length);
+ fbuf.Free();
+ }else {
+ res = decode2Buf(@filePath, entry, dec2buf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ }
+ #else
+ res = decode2Buf(@filePath, entry, dec2buf.AddrOfPinnedObject(), IntPtr.Zero, 0);
+ #endif
+
+ dec2buf.Free();
+ if(res==1){ return nb;}
+ else {nb=null; return null; }
+
+ }
+
+#if !(UNITY_WSA || UNITY_WP_8_1) || UNITY_EDITOR
+
+ //This function encodes inBuffer to lzma alone format into the outBuffer provided.
+ //The buffer can be saved also into a file and can be opened by applications that opens the lzma alone format.
+ //This buffer can be uncompressed by the decompressBuffer function.
+ //Returns true if success
+ //if makeHeader==false then the lzma 13 bytes header will not be added to the buffer.
+ //
+ //You can set the compression properties by calling the setProps function before.
+ //setProps(9) for example will set compression level to the highest level.
+ //
+ public static bool compressBuffer(byte[] inBuffer, ref byte[] outBuffer, bool makeHeader=true){
+
+ if (!defaultsSet) setProps();
+ GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+
+ GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+ IntPtr ptr;
+
+ int res = 0;
+
+ ptr = Lzma_Compress(cbuf.AddrOfPinnedObject(), inBuffer.Length, makeHeader, ref res, prps.AddrOfPinnedObject());
+
+ cbuf.Free(); prps.Free();
+
+ if(res==0 || ptr==IntPtr.Zero){_releaseBuffer(ptr); return false;}
+
+ Array.Resize(ref outBuffer,res);
+ Marshal.Copy(ptr, outBuffer, 0, res);
+
+ _releaseBuffer(ptr);
+
+ return true;
+ }
+
+
+ //same as the above function, only it compresses a part of the input buffer.
+ //
+ //inBufferPartialLength: the size of the input buffer that should be compressed
+ //inBufferPartialIndex: the offset of the input buffer from where the compression will start
+ //
+ public static bool compressBufferPartial(byte[] inBuffer, int inBufferPartialIndex, int inBufferPartialLength, ref byte[] outBuffer, bool makeHeader = true)
+ {
+ if(inBufferPartialIndex + inBufferPartialLength > inBuffer.Length) return false;
+
+ if (!defaultsSet) setProps();
+ GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+ GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+
+ IntPtr ptr;
+ IntPtr ptrPartial;
+
+ int res = 0;
+
+ ptrPartial = new IntPtr(cbuf.AddrOfPinnedObject().ToInt64() + inBufferPartialIndex);
+
+ ptr = Lzma_Compress(ptrPartial, inBufferPartialLength, makeHeader, ref res, prps.AddrOfPinnedObject());
+
+ cbuf.Free();
+
+ if (res == 0 || ptr == IntPtr.Zero) { _releaseBuffer(ptr); return false; }
+
+ Array.Resize(ref outBuffer, res);
+ Marshal.Copy(ptr, outBuffer, 0, res);
+
+ _releaseBuffer(ptr);
+
+ return true;
+ }
+
+
+ //same as compressBufferPartial, only this function will compress the data into a fixed size buffer
+ //the compressed size is returned so you can manipulate it at will.
+ public static int compressBufferPartialFixed(byte[] inBuffer, int inBufferPartialIndex, int inBufferPartialLength, ref byte[] outBuffer, bool safe = true, bool makeHeader = true)
+ {
+ if(inBufferPartialIndex + inBufferPartialLength > inBuffer.Length) return 0;
+
+ if (!defaultsSet) setProps();
+ GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+ GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+
+ IntPtr ptr;
+ IntPtr ptrPartial;
+
+ int res = 0;
+
+ ptrPartial = new IntPtr(cbuf.AddrOfPinnedObject().ToInt64() + inBufferPartialIndex);
+
+ ptr = Lzma_Compress(ptrPartial, inBufferPartialLength, makeHeader, ref res, prps.AddrOfPinnedObject());
+
+ cbuf.Free();
+
+ if (res == 0 || ptr == IntPtr.Zero) { _releaseBuffer(ptr); return 0; }
+
+ //if the compressed buffer is larger then the fixed size buffer we use:
+ //1. then write only the data that fit in it.
+ //2. or we return 0.
+ //It depends on if we set the safe flag to true or not.
+ if(res>outBuffer.Length) {
+ if(safe){ _releaseBuffer(ptr); return 0; } else { res = outBuffer.Length; }
+ }
+
+ Marshal.Copy(ptr, outBuffer, 0, res);
+
+ _releaseBuffer(ptr);
+
+ return res;
+ }
+
+
+ //same as the compressBuffer function, only this function will put the result in a fixed size buffer to avoid memory allocations.
+ //the compressed size is returned so you can manipulate it at will.
+ public static int compressBufferFixed(byte[] inBuffer, ref byte[] outBuffer, bool safe = true, bool makeHeader=true){
+
+ if (!defaultsSet) setProps();
+ GCHandle prps = GCHandle.Alloc(props, GCHandleType.Pinned);
+
+ GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+ IntPtr ptr;
+
+ int res = 0;
+
+ ptr = Lzma_Compress(cbuf.AddrOfPinnedObject(), inBuffer.Length, makeHeader, ref res, prps.AddrOfPinnedObject());
+
+ cbuf.Free(); prps.Free();
+ if(res==0 || ptr==IntPtr.Zero){_releaseBuffer(ptr); return 0;}
+
+ //if the compressed buffer is larger then the fixed size buffer we use:
+ //1. then write only the data that fit in it.
+ //2. or we return 0.
+ //It depends on if we set the safe flag to true or not.
+ if(res>outBuffer.Length) {
+ if(safe){ _releaseBuffer(ptr); return 0; } else { res = outBuffer.Length; }
+ }
+
+ Marshal.Copy(ptr, outBuffer, 0, res);
+
+ _releaseBuffer(ptr);
+
+ return res;
+ }
+
+#endif
+
+
+
+
+
+ //This function will decompress a compressed asset bundle.
+ //It finds the magic number of the lzma format and extracts from there.
+ //
+ //inBuffer: the buffer that stores a compressed asset bundle.
+ //outBuffer: a referenced buffer where the asset bundle will be uncompressed.
+ //The error codes
+ /*
+ OK 0
+
+ ERROR_DATA 1
+ ERROR_MEM 2
+ ERROR_UNSUPPORTED 4
+ ERROR_PARAM 5
+ ERROR_INPUT_EOF 6
+ ERROR_OUTPUT_EOF 7
+ ERROR_FAIL 11
+ ERROR_THREAD 12
+ */
+ public static int decompressAssetBundle(byte[] inBuffer, ref byte[] outbuffer){
+
+ int offset = 0;
+
+ for(int i=0; i<inBuffer.Length; i++) {
+ if(i>1024) break;
+ if(inBuffer[i] == 0x5d) {
+ if(inBuffer[i+1] == 0x00) {
+ if(inBuffer[i+2] == 0x00) {
+ if(inBuffer[i+3] == 0x08) {
+ offset = i; break;
+ }
+ }
+ }
+ }
+ }
+
+ if(offset==0 || offset>1024) return 4;
+
+ GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+ IntPtr ptrBundle = new IntPtr(cbuf.AddrOfPinnedObject().ToInt64() + offset);
+ int uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,offset+5);
+ if(uncompressedSize<0) { cbuf.Free(); return 4; }
+ Array.Resize(ref outbuffer, uncompressedSize);
+ GCHandle obuf = GCHandle.Alloc(outbuffer, GCHandleType.Pinned);
+
+ int res = Lzma_Uncompress(ptrBundle, inBuffer.Length-offset, uncompressedSize, obuf.AddrOfPinnedObject(), true);
+
+ cbuf.Free();
+ obuf.Free();
+
+ //if(res!=0){/*Debug.Log("ERROR: "+res.ToString());*/ return res; }
+
+ return res;
+ }
+
+
+ /*
+ //this will decompress an lzma alone format file.
+ public static int decompressLzmaAlone(string inFile, string outFile){
+
+ if(File.Exists(inFile)) {
+ var inBuffer = File.ReadAllBytes(inFile);
+
+ int offset = 0;
+
+ for(int i=0; i<inBuffer.Length; i++) {
+ if(i>16) break;
+ if(inBuffer[i] == 0x5d) {
+ if(inBuffer[i+1] == 0x00) {
+ if(inBuffer[i+2] == 0x00) {
+ if(inBuffer[i+3] == 0x00) {
+ offset = i; break;
+ }
+ }
+ }
+ }
+ }
+
+ if(offset>16) { inBuffer=null; return 4; }
+
+ GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+ IntPtr ptrBundle = new IntPtr(cbuf.AddrOfPinnedObject().ToInt64() + offset);
+ int uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,offset+5);
+ if(uncompressedSize<0) { cbuf.Free(); return 4; }
+ byte[] outBuffer = new byte[uncompressedSize];
+ GCHandle obuf = GCHandle.Alloc(outBuffer, GCHandleType.Pinned);
+
+ int res = Lzma_Uncompress(ptrBundle, inBuffer.Length-offset, uncompressedSize, obuf.AddrOfPinnedObject(), true);
+
+ cbuf.Free();
+ obuf.Free();
+
+ File.WriteAllBytes(outFile, outBuffer);
+
+ Array.Resize(ref outBuffer, 0);
+ Array.Resize(ref inBuffer, 0);
+
+ outBuffer = null;
+ inBuffer = null;
+
+ GC.Collect();
+
+ return res;
+ } else {
+ return -1;
+ }
+ }
+ */
+
+
+ //This function decompresses an lzma compressed byte buffer.
+ //If the useHeader flag is false you have to provide the uncompressed size of the buffer via the customLength integer.
+ //if res==0 operation was successful
+ //The error codes
+ /*
+ OK 0
+
+ ERROR_DATA 1
+ ERROR_MEM 2
+ ERROR_UNSUPPORTED 4
+ ERROR_PARAM 5
+ ERROR_INPUT_EOF 6
+ ERROR_OUTPUT_EOF 7
+ ERROR_FAIL 11
+ ERROR_THREAD 12
+ */
+ public static int decompressBuffer(byte[] inBuffer, ref byte[] outbuffer, bool useHeader=true, int customLength=0){
+
+ GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+ int uncompressedSize = 0;
+
+ //if the lzma header will be used to extract the uncompressed size of the buffer. If the buffer does not have a header
+ //provide the known uncompressed size through the customLength integer.
+ if(useHeader) uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,5); else uncompressedSize = customLength;
+
+ Array.Resize(ref outbuffer, uncompressedSize);
+
+ GCHandle obuf = GCHandle.Alloc(outbuffer, GCHandleType.Pinned);
+
+ int res = Lzma_Uncompress(cbuf.AddrOfPinnedObject(), inBuffer.Length, uncompressedSize, obuf.AddrOfPinnedObject(), useHeader);
+
+ cbuf.Free();
+ obuf.Free();
+
+ //if(res!=0){/*Debug.Log("ERROR: "+res.ToString());*/ return res; }
+
+ return res;
+ }
+
+ public static byte[] decompressBuffer(byte[] inBuffer, bool useHeader=true, int customLength=0){
+
+ GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+ int uncompressedSize = 0;
+
+ //if the lzma header will be used to extract the uncompressed size of the buffer. If the buffer does not have a header
+ //provide the known uncompressed size through the customLength integer.
+ if(useHeader) uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,5); else uncompressedSize = customLength;
+
+ byte[] outbuffer = new byte[uncompressedSize];
+
+ GCHandle obuf = GCHandle.Alloc(outbuffer, GCHandleType.Pinned);
+
+ int res = Lzma_Uncompress(cbuf.AddrOfPinnedObject(), inBuffer.Length, uncompressedSize, obuf.AddrOfPinnedObject(), useHeader);
+
+ cbuf.Free();
+ obuf.Free();
+
+ if(res!=0){/*Debug.Log("ERROR: "+res.ToString());*/ return null; }
+
+ return outbuffer;
+ }
+
+
+ //same as above function. Only this one outputs to a buffer of fixed which size isn't resized to avoid memory allocations.
+ //The fixed buffer should have a size that will be able to hold the incoming decompressed data.
+ //returns the uncompressed size.
+ public static int decompressBufferFixed(byte[] inBuffer, ref byte[] outbuffer, bool safe = true, bool useHeader=true, int customLength=0){
+
+ int uncompressedSize = 0;
+
+ //if the lzma header will be used to extract the uncompressed size of the buffer. If the buffer does not have a header
+ //provide the known uncompressed size through the customLength integer.
+ if(useHeader) uncompressedSize = (int)BitConverter.ToUInt64(inBuffer,5); else uncompressedSize = customLength;
+
+ //Check if the uncompressed size is bigger then the size of the fixed buffer. Then:
+ //1. write only the data that fit in it.
+ //2. or return a negative number.
+ //It depends on if we set the safe flag to true or not.
+ if(uncompressedSize > outbuffer.Length) {
+ if(safe) return -101; else uncompressedSize = outbuffer.Length;
+ }
+
+ GCHandle cbuf = GCHandle.Alloc(inBuffer, GCHandleType.Pinned);
+ GCHandle obuf = GCHandle.Alloc(outbuffer, GCHandleType.Pinned);
+
+ int res = Lzma_Uncompress(cbuf.AddrOfPinnedObject(), inBuffer.Length, uncompressedSize, obuf.AddrOfPinnedObject(), useHeader);
+
+ cbuf.Free();
+ obuf.Free();
+
+ if(res!=0){/*Debug.Log("ERROR: "+res.ToString());*/ return -res; }
+
+ return uncompressedSize;
+ }
+
+}
+
diff --git a/Assets/Plugins/SevenZip/lzma.cs.meta b/Assets/Plugins/SevenZip/lzma.cs.meta
new file mode 100644
index 0000000..f273e36
--- /dev/null
+++ b/Assets/Plugins/SevenZip/lzma.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 13c1c59b80961f74e9c2c894f0961517
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/iOS/bitcode.meta b/Assets/Plugins/iOS/bitcode.meta
new file mode 100644
index 0000000..ef7aec7
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: aea70e06332fd3e4cb4798606c87a13e
+folderAsset: yes
+timeCreated: 1452862552
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/bitcode/libbrotli.meta b/Assets/Plugins/iOS/bitcode/libbrotli.meta
new file mode 100644
index 0000000..39892f3
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/libbrotli.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: d5a3daf797c64c94c81b903bc20465b7
+folderAsset: yes
+timeCreated: 1455164213
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/bitcode/libfastlz.meta b/Assets/Plugins/iOS/bitcode/libfastlz.meta
new file mode 100644
index 0000000..26f32fa
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/libfastlz.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 168c23f7b2a985844bb1d75f8f6def1c
+folderAsset: yes
+timeCreated: 1452858581
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/bitcode/liblz4.meta b/Assets/Plugins/iOS/bitcode/liblz4.meta
new file mode 100644
index 0000000..16f59f8
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblz4.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f08f107c1bc95c44e88b396f562d726e
+folderAsset: yes
+timeCreated: 1452858581
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip b/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip
new file mode 100644
index 0000000..951cbfe
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip.meta b/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip.meta
new file mode 100644
index 0000000..b0925db
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-aggressive-bitcode.zip.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b2699330b724ffc4d92e81ab4554b568
+timeCreated: 1452855403
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip b/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip
new file mode 100644
index 0000000..698b4ee
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip.meta b/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip.meta
new file mode 100644
index 0000000..fff64e7
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-fastest-smallest-bitcode.zip.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3e3113bc8d3c63344a4276ea5cacdbcc
+timeCreated: 1452855403
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip b/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip
new file mode 100644
index 0000000..94d2749
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip.meta b/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip.meta
new file mode 100644
index 0000000..6aba071
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-tvOS-bitcode.zip.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 527d7a6912edd7f4998b09a787646512
+timeCreated: 1452855403
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip b/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip
new file mode 100644
index 0000000..6ff6326
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip.meta b/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip.meta
new file mode 100644
index 0000000..41e3cc8
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.a-watchOS-bitcode.zip.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: afeda9bca77bb774f812793c304fc961
+timeCreated: 1452855403
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/bitcode/liblzma.meta b/Assets/Plugins/iOS/bitcode/liblzma.meta
new file mode 100644
index 0000000..4e02738
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/liblzma.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 95f44f25645ad824490021beb8785cc2
+folderAsset: yes
+timeCreated: 1452858581
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/bitcode/libzipw.meta b/Assets/Plugins/iOS/bitcode/libzipw.meta
new file mode 100644
index 0000000..3daacf7
--- /dev/null
+++ b/Assets/Plugins/iOS/bitcode/libzipw.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f03c7c5e39169574593b46ac54fd5531
+folderAsset: yes
+timeCreated: 1452858581
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/liblzma.a b/Assets/Plugins/iOS/liblzma.a
new file mode 100644
index 0000000..7db8e56
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a-simulator.zip b/Assets/Plugins/iOS/liblzma.a-simulator.zip
new file mode 100644
index 0000000..ea159ba
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a-simulator.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a-simulator.zip.meta b/Assets/Plugins/iOS/liblzma.a-simulator.zip.meta
new file mode 100644
index 0000000..0febae1
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a-simulator.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 8df3da085354f294c9f9e57a31ba34cf
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/liblzma.a.aggresive.zip b/Assets/Plugins/iOS/liblzma.a.aggresive.zip
new file mode 100644
index 0000000..90a8925
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.aggresive.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a.aggresive.zip.meta b/Assets/Plugins/iOS/liblzma.a.aggresive.zip.meta
new file mode 100644
index 0000000..14cc05f
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.aggresive.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 105d619dcc562f943acdd38091063327
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip b/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip
new file mode 100644
index 0000000..c7f0790
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip.meta b/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip.meta
new file mode 100644
index 0000000..ff60bf2
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.fastest-smallest.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: a09a492a241113640a4f6d92fcbf3b06
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/liblzma.a.fastest.zip b/Assets/Plugins/iOS/liblzma.a.fastest.zip
new file mode 100644
index 0000000..eb1e749
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.fastest.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.a.fastest.zip.meta b/Assets/Plugins/iOS/liblzma.a.fastest.zip.meta
new file mode 100644
index 0000000..57d0c50
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.fastest.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 01faae07d6f95d542b54575ee72e8251
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/liblzma.a.meta b/Assets/Plugins/iOS/liblzma.a.meta
new file mode 100644
index 0000000..1668536
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.a.meta
@@ -0,0 +1,21 @@
+fileFormatVersion: 2
+guid: 105d4f0d61dadd545bcaa1893acff966
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ iOS:
+ enabled: 1
+ settings: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/iOS/liblzma.smallest.zip b/Assets/Plugins/iOS/liblzma.smallest.zip
new file mode 100644
index 0000000..ed6d331
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.smallest.zip
Binary files differ
diff --git a/Assets/Plugins/iOS/liblzma.smallest.zip.meta b/Assets/Plugins/iOS/liblzma.smallest.zip.meta
new file mode 100644
index 0000000..30ed596
--- /dev/null
+++ b/Assets/Plugins/iOS/liblzma.smallest.zip.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: c4bfcb521dd223a4f9f982364b11aa9a
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/liblzma.bundle.meta b/Assets/Plugins/liblzma.bundle.meta
new file mode 100644
index 0000000..68196e6
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle.meta
@@ -0,0 +1,105 @@
+fileFormatVersion: 2
+guid: 63d5675a14cb23e49912d4f187b616e8
+folderAsset: yes
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: OSX
+ data:
+ first:
+ Facebook: Win
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Facebook: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Linux
+ second:
+ enabled: 1
+ settings:
+ CPU: x86
+ data:
+ first:
+ Standalone: Linux64
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ data:
+ first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXIntel
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Win
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/liblzma.bundle/Contents.meta b/Assets/Plugins/liblzma.bundle/Contents.meta
new file mode 100644
index 0000000..dcc6167
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: dc97a21f359ee4227b7f5c87717fb807
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/liblzma.bundle/Contents/Info.plist b/Assets/Plugins/liblzma.bundle/Contents/Info.plist
new file mode 100644
index 0000000..076f901
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/Info.plist
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>BuildMachineOSBuild</key>
+ <string>15E65</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleExecutable</key>
+ <string>liblzma</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.lzma.liblzma</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>liblzma</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleSupportedPlatforms</key>
+ <array>
+ <string>MacOSX</string>
+ </array>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ <key>DTCompiler</key>
+ <string>com.apple.compilers.llvm.clang.1_0</string>
+ <key>DTPlatformBuild</key>
+ <string>7D175</string>
+ <key>DTPlatformVersion</key>
+ <string>GM</string>
+ <key>DTSDKBuild</key>
+ <string>15E60</string>
+ <key>DTSDKName</key>
+ <string>macosx10.11</string>
+ <key>DTXcode</key>
+ <string>0730</string>
+ <key>DTXcodeBuild</key>
+ <string>7D175</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>Copyright 漏 2015 liblzma. All rights reserved.</string>
+</dict>
+</plist>
diff --git a/Assets/Plugins/liblzma.bundle/Contents/Info.plist.meta b/Assets/Plugins/liblzma.bundle/Contents/Info.plist.meta
new file mode 100644
index 0000000..c59d0de
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/Info.plist.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8dfb9d1243974425dbfb586b931e8fcf
+timeCreated: 1461938405
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/liblzma.bundle/Contents/MacOS.meta b/Assets/Plugins/liblzma.bundle/Contents/MacOS.meta
new file mode 100644
index 0000000..d9a6b18
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/MacOS.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fcdc6e0bbfd78425f96d7e8a1196b892
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma b/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma
new file mode 100644
index 0000000..048ce47
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma
Binary files differ
diff --git a/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma.meta b/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma.meta
new file mode 100644
index 0000000..44663b7
--- /dev/null
+++ b/Assets/Plugins/liblzma.bundle/Contents/MacOS/liblzma.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ce457a7d0ad044b069c5f1e12c271693
+timeCreated: 1461938405
+licenseType: Pro
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86.meta b/Assets/Plugins/x86.meta
index de2cb10..cbb2f23 100644
--- a/Assets/Plugins/x86.meta
+++ b/Assets/Plugins/x86.meta
@@ -1,5 +1,9 @@
fileFormatVersion: 2
-guid: 8b0b0c4ffe67d2f4292c5211de91e55f
+guid: 4d91deb074c81564388a0deffdb37efe
folderAsset: yes
+timeCreated: 1541063936
+licenseType: Pro
DefaultImporter:
userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86/liblzma.dll b/Assets/Plugins/x86/liblzma.dll
new file mode 100644
index 0000000..8f3c7d9
--- /dev/null
+++ b/Assets/Plugins/x86/liblzma.dll
Binary files differ
diff --git a/Assets/Plugins/x86/liblzma.dll.meta b/Assets/Plugins/x86/liblzma.dll.meta
new file mode 100644
index 0000000..eb28c20
--- /dev/null
+++ b/Assets/Plugins/x86/liblzma.dll.meta
@@ -0,0 +1,78 @@
+fileFormatVersion: 2
+guid: d994befc74ab2d14eaac2bb81af65a34
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Android:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ CPU: x86
+ DefaultValueInitialized: true
+ OS: AnyOS
+ Linux:
+ enabled: 1
+ settings:
+ CPU: x86
+ Linux64:
+ enabled: 1
+ settings:
+ CPU: None
+ LinuxUniversal:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ OSXIntel:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ OSXIntel64:
+ enabled: 1
+ settings:
+ CPU: None
+ OSXUniversal:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ SamsungTV:
+ enabled: 0
+ settings:
+ STV_MODEL: STANDARD_13
+ WP8:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath:
+ Win:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ Win64:
+ enabled: 0
+ settings:
+ CPU: None
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath:
+ SDK: AnySDK
+ iOS:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86/liblzma.so b/Assets/Plugins/x86/liblzma.so
new file mode 100644
index 0000000..be2bb17
--- /dev/null
+++ b/Assets/Plugins/x86/liblzma.so
Binary files differ
diff --git a/Assets/Plugins/x86/liblzma.so.meta b/Assets/Plugins/x86/liblzma.so.meta
new file mode 100644
index 0000000..bd27224
--- /dev/null
+++ b/Assets/Plugins/x86/liblzma.so.meta
@@ -0,0 +1,78 @@
+fileFormatVersion: 2
+guid: ff306ab5a1e61dd43949f88c2ed78bf1
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Android:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ CPU: x86
+ DefaultValueInitialized: true
+ OS: AnyOS
+ Linux:
+ enabled: 1
+ settings:
+ CPU: x86
+ Linux64:
+ enabled: 0
+ settings:
+ CPU: None
+ LinuxUniversal:
+ enabled: 1
+ settings:
+ CPU: x86
+ OSXIntel:
+ enabled: 0
+ settings:
+ CPU: None
+ OSXIntel64:
+ enabled: 0
+ settings:
+ CPU: None
+ OSXUniversal:
+ enabled: 0
+ settings:
+ CPU: None
+ SamsungTV:
+ enabled: 0
+ settings:
+ STV_MODEL: STANDARD_13
+ WP8:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath:
+ Win:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ Win64:
+ enabled: 1
+ settings:
+ CPU: None
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath:
+ SDK: AnySDK
+ iOS:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86_64.meta b/Assets/Plugins/x86_64.meta
index f0c2343..f0675b9 100644
--- a/Assets/Plugins/x86_64.meta
+++ b/Assets/Plugins/x86_64.meta
@@ -1,8 +1,6 @@
fileFormatVersion: 2
-guid: 8dba1dfb80e5b7d40bd214fc4ed2ed6b
+guid: af7a02cd8159b3f43a03b1eb98f5e4f7
folderAsset: yes
-timeCreated: 1451020766
-licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
diff --git a/Assets/Plugins/x86_64/liblzma.dll b/Assets/Plugins/x86_64/liblzma.dll
new file mode 100644
index 0000000..b8283bc
--- /dev/null
+++ b/Assets/Plugins/x86_64/liblzma.dll
Binary files differ
diff --git a/Assets/Plugins/x86_64/liblzma.dll.meta b/Assets/Plugins/x86_64/liblzma.dll.meta
new file mode 100644
index 0000000..43c9131
--- /dev/null
+++ b/Assets/Plugins/x86_64/liblzma.dll.meta
@@ -0,0 +1,78 @@
+fileFormatVersion: 2
+guid: f2d2b6279f15d5742abe1a18469e956e
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Android:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ OS: AnyOS
+ Linux:
+ enabled: 1
+ settings:
+ CPU: None
+ Linux64:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ LinuxUniversal:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ OSXIntel:
+ enabled: 1
+ settings:
+ CPU: None
+ OSXIntel64:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ OSXUniversal:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ SamsungTV:
+ enabled: 0
+ settings:
+ STV_MODEL: STANDARD_13
+ WP8:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath:
+ Win:
+ enabled: 0
+ settings:
+ CPU: None
+ Win64:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath:
+ SDK: AnySDK
+ iOS:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/x86_64/liblzma.so b/Assets/Plugins/x86_64/liblzma.so
new file mode 100644
index 0000000..8c81312
--- /dev/null
+++ b/Assets/Plugins/x86_64/liblzma.so
Binary files differ
diff --git a/Assets/Plugins/x86_64/liblzma.so.meta b/Assets/Plugins/x86_64/liblzma.so.meta
new file mode 100644
index 0000000..060662f
--- /dev/null
+++ b/Assets/Plugins/x86_64/liblzma.so.meta
@@ -0,0 +1,78 @@
+fileFormatVersion: 2
+guid: 7778049c517fa6a42a4c1c97c462fb57
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Android:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ OS: AnyOS
+ Linux:
+ enabled: 0
+ settings:
+ CPU: None
+ Linux64:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ LinuxUniversal:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ OSXIntel:
+ enabled: 0
+ settings:
+ CPU: None
+ OSXIntel64:
+ enabled: 0
+ settings:
+ CPU: None
+ OSXUniversal:
+ enabled: 0
+ settings:
+ CPU: None
+ SamsungTV:
+ enabled: 0
+ settings:
+ STV_MODEL: STANDARD_13
+ WP8:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath:
+ Win:
+ enabled: 1
+ settings:
+ CPU: None
+ Win64:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DontProcess: False
+ PlaceholderPath:
+ SDK: AnySDK
+ iOS:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Config/PriorBundle.txt b/Assets/Resources/Config/PriorBundle.txt
index 344a67f..185b998 100644
--- a/Assets/Resources/Config/PriorBundle.txt
+++ b/Assets/Resources/Config/PriorBundle.txt
@@ -1,127 +1,107 @@
-锘縤nt string int
-id AssetABName AssetType
-鍞竴鏍囪瘑 璧勬簮ab鍖呭悕 璧勬簮绫诲瀷1.鍦烘櫙锛�2.npc璧勬簮锛�3.闊虫晥.4鐗规晥
-1 createrole_001 1
-2 level_login 1
-3 map000_xsdt 1
-4 map001_sjz 1
-5 map002_yg 1
-6 Map003_Yjsz 1
-7 Map125_Shfb 1
-8 map111_lqrz 1
-9 Map113_Fyt 1
-10 map128_fmt 1
-11 Map119_Qlzf 1
-12 createrole 2
-13 prefab_race_a_fs 2
-14 prefab_race_a_zs 2
-15 prefab_race_P001 2
-16 prefab_race_n001 2
-17 prefab_race_M152 2
-18 prefab_race_L001 2
-19 prefab_race_L002 2
-20 prefab_race_L003 2
-21 prefab_race_N017 2
-22 prefab_race_N017a 2
-23 prefab_race_N999 2
-24 prefab_race_N002 2
-25 prefab_race_M003 2
-26 prefab_race_M001 2
-27 prefab_race_M709 2
-28 prefab_race_M004 2
-29 prefab_race_M005 2
-30 prefab_race_M006 2
-31 prefab_race_M007 2
-32 prefab_race_N034 2
-33 prefab_race_N012 2
-34 prefab_race_N003 2
-35 prefab_race_M131 2
-36 prefab_race_N010 2
-37 prefab_race_M128 2
-38 prefab_race_N013 2
-39 prefab_race_M126 2
-40 prefab_race_N015 2
-41 prefab_race_M008 2
-42 prefab_race_M704 2
-43 prefab_race_M703 2
-44 prefab_race_M012 2
-45 prefab_race_M011 2
-46 prefab_race_M013 2
-47 prefab_race_M014 2
-48 prefab_race_M135 2
-49 prefab_race_N011 2
-50 prefab_race_M129 2
-51 prefab_race_M132 2
-52 prefab_race_M015 2
-53 prefab_race_M017 2
-54 prefab_race_M018 2
-55 prefab_race_M016 2
-56 prefab_race_M700 2
-57 prefab_race_M701 2
-58 prefab_race_M021 2
-59 prefab_race_M063 2
-60 prefab_race_M064 2
-61 prefab_race_M065 2
-62 prefab_race_M097 2
-63 prefab_race_L004 2
-64 prefab_race_M104 2
-65 prefab_race_Sh01 2
-66 prefab_race_Sh02 2
-67 prefab_race_N031 2
-68 prefab_race_N032 2
-69 prefab_race_A_Zs00 2
-70 prefab_race_A_Fs00 2
-71 prefab_race_A_Zs00_Wq 2
-72 prefab_race_A_Fs00_Wq 2
-73 prefab_race_A_Zs00_fwq 2
-74 prefab_race_A_Fs00_fwq 2
-75 prefab_race_A_Zs01 2
-76 prefab_race_A_Fs01 2
-77 prefab_race_A_Zs01_Wq 2
-78 prefab_race_A_Fs01_Wq 2
-79 prefab_race_A_Zs01_fwq 2
-80 prefab_race_A_Fs01_fwq 2
-81 prefab_race_A_Zs02 2
-82 prefab_race_A_Fs02 2
-83 prefab_race_A_Zs02_Wq 2
-84 prefab_race_A_Fs02_Wq 2
-85 prefab_race_A_Zs02_fwq 2
-86 prefab_race_A_Fs02_fwq 2
-87 prefab_race_Zq04 2
-88 Prefab_Race_B_Cw06 2
-89 prefab_race_A_Zs99_Wq 2
-90 prefab_race_A_Fs99_Wq 2
-91 Prefab_Race_B_Cw09 2
-92 prefab_race_Zq05 2
-93 prefab_race_A_Zs_Cb01 2
-94 prefab_race_A_Fs_Cb01 2
-95 prefab_race_B_Cw02 2
-96 prefab_race_Zq01 2
-97 prefab_race_Zq00 2
-98 prefab_race_B_Cw16 2
-99 prefab_race_ranshaoquan 2
-100 prefab_race_a_zs00_sb 2
-101 prefab_race_a_zs01_sb 2
-102 prefab_race_a_zs02_sb 2
-103 prefab_race_a_zs03_sb 2
-104 prefab_race_a_zs04_sb 2
-105 prefab_race_a_zs05_sb 2
-106 prefab_race_a_zs06_sb 2
-107 prefab_race_a_zs07_sb 2
-108 prefab_race_a_zs08_sb 2
-109 prefab_race_a_zs09_sb 2
-110 prefab_race_a_zs10_sb 2
-111 prefab_race_a_zs99_sb 2
-112 boss1 3
-113 music1 3
-114 role1 3
-115 show1 3
-116 speak1 3
-117 ui1 3
-118 bossskill1 4
-119 cj 4
-120 common1 4
-121 debuff1 4
-122 dsskill1 4
-123 skill1 4
-124 ui1 4
\ No newline at end of file
+锘縤nt string int int
+id AssetABName AssetType Prior
+鍞竴鏍囪瘑 璧勬簮ab鍖呭悕 璧勬簮绫诲瀷1.鍦烘櫙锛�2.npc璧勬簮锛�3.闊虫晥.4鐗规晥 浼樺厛绾э紙浼樺厛绾т负1鐨勯殢鍖�;浼樺厛绾т笉涓�1鐨勮繘鍏ュ悗寮�濮嬩笅杞斤紝涓嬭浇浼樺厛绾ф寜鐓у~鍐欑殑鏁板瓧鐢卞皬鍒板ぇ锛�
+1 createrole_001 1 1
+2 level_login 1 1
+3 map001_sjz 1 1
+4 map002_yg 1 2
+5 Map003_Yjsz 1 3
+6 Map125_Shfb 1 3
+7 map111_lqrz 1 1
+8 Map113_Fyt 1 2
+9 map128_fmt 1 2
+10 Map119_Qlzf 1 3
+11 createrole 2 1
+12 prefab_race_a_fs 2 1
+13 prefab_race_a_zs 2 1
+14 prefab_race_P001 2 1
+15 prefab_race_n001 2 1
+16 prefab_race_M003 2 1
+17 prefab_race_M001 2 1
+18 prefab_race_M709 2 1
+19 prefab_race_M004 2 1
+20 prefab_race_M005 2 1
+21 prefab_race_M006 2 1
+22 prefab_race_M007 2 1
+23 prefab_race_N034 2 1
+24 prefab_race_N012 2 1
+25 prefab_race_N003 2 1
+26 prefab_race_M131 2 1
+27 prefab_race_N010 2 1
+28 prefab_race_M128 2 2
+29 prefab_race_N013 2 2
+30 prefab_race_M126 2 2
+31 prefab_race_N015 2 2
+32 prefab_race_M008 2 2
+33 prefab_race_M704 2 2
+34 prefab_race_M703 2 2
+35 prefab_race_M012 2 2
+36 prefab_race_M011 2 2
+37 prefab_race_M013 2 2
+38 prefab_race_M014 2 2
+39 prefab_race_M135 2 2
+40 prefab_race_N011 2 2
+41 prefab_race_N017 2 2
+42 prefab_race_M129 2 3
+43 prefab_race_M132 2 3
+44 prefab_race_M015 2 3
+45 prefab_race_M017 2 3
+46 prefab_race_M018 2 3
+47 prefab_race_M016 2 3
+48 prefab_race_M700 2 3
+49 prefab_race_M701 2 3
+50 prefab_race_M021 2 3
+51 prefab_race_M063 2 3
+52 prefab_race_M064 2 3
+53 prefab_race_M065 2 3
+54 prefab_race_M097 2 3
+55 prefab_race_L004 2 3
+56 prefab_race_M104 2 3
+57 prefab_race_Sh01 2 1
+58 prefab_race_Sh02 2 1
+59 prefab_race_N031 2 2
+60 prefab_race_N032 2 2
+61 prefab_race_A_Zs00 2 1
+62 prefab_race_A_Fs00 2 1
+63 prefab_race_A_Zs00_Wq 2 1
+64 prefab_race_A_Fs00_Wq 2 1
+65 prefab_race_A_Zs00_fwq 2 1
+66 prefab_race_A_Fs00_fwq 2 1
+67 prefab_race_A_Zs01 2 1
+68 prefab_race_A_Fs01 2 1
+69 prefab_race_A_Zs01_Wq 2 1
+70 prefab_race_A_Fs01_Wq 2 1
+71 prefab_race_A_Zs01_fwq 2 1
+72 prefab_race_A_Fs01_fwq 2 1
+73 prefab_race_A_Zs02 2 2
+74 prefab_race_A_Fs02 2 2
+75 prefab_race_A_Zs02_Wq 2 2
+76 prefab_race_A_Fs02_Wq 2 2
+77 prefab_race_A_Zs02_fwq 2 2
+78 prefab_race_A_Fs02_fwq 2 2
+79 prefab_race_Zq04 2 1
+80 Prefab_Race_B_Cw06 2 1
+81 prefab_race_A_Zs99_Wq 2 2
+82 prefab_race_A_Fs99_Wq 2 2
+83 Prefab_Race_B_Cw09 2 2
+84 prefab_race_Zq05 2 2
+85 prefab_race_A_Zs_Cb01 2 1
+86 prefab_race_A_Fs_Cb01 2 1
+87 prefab_race_B_Cw02 2 2
+88 prefab_race_Zq01 2 2
+89 prefab_race_B_Cw16 2 2
+90 prefab_race_ranshaoquan 2 2
+91 prefab_race_Zq00 2 2
+92 boss1 3 1
+93 music1 3 1
+94 role1 3 1
+95 show1 3 1
+96 speak1 3 1
+97 ui1 3 1
+98 bossskill1 4 1
+99 cj 4 1
+100 common1 4 1
+101 debuff1 4 1
+102 dsskill1 4 1
+103 skill1 4 1
+104 ui1 4 1
\ No newline at end of file
--
Gitblit v1.8.0