fix: update show text mission in dlgnpc.
This commit is contained in:
@@ -3,6 +3,7 @@ using BrewMonster.Managers;
|
||||
using BrewMonster.Network;
|
||||
using CSNetwork;
|
||||
using CSNetwork.GPDataType;
|
||||
using ModelRenderer.Scripts.Common;
|
||||
using ModelRenderer.Scripts.GameData;
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
@@ -195,7 +196,13 @@ namespace BrewMonster.UI
|
||||
|
||||
private string GetStringFromTable(int idString)
|
||||
{
|
||||
return EC_Game.GetGameRun().GetUIManager().GetInGameUIMan().GetStringFromTable(idString);
|
||||
CECGameUIMan gameUIMan = EC_Game.GetGameRun().GetUIManager().GetInGameUIMan();
|
||||
string str = gameUIMan.GetStringFromAuiDialogTable(idString);
|
||||
if(str == null)
|
||||
{
|
||||
return gameUIMan.GetStringFromTable(idString);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
private void Show(bool value)
|
||||
@@ -678,17 +685,17 @@ namespace BrewMonster.UI
|
||||
{
|
||||
if (a_uiService[i] == 0) continue;
|
||||
|
||||
pData = pDataMan.get_data_ptr(a_uiService[i], ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
pData = ElementDataManProvider.GetElementDataMan().get_data_ptr(a_uiService[i], ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
|
||||
if (DataType == DATA_TYPE.DT_NPC_TALK_SERVICE)
|
||||
{
|
||||
NPC_TALK_SERVICE pService = (NPC_TALK_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_SELL_SERVICE)
|
||||
{
|
||||
NPC_SELL_SERVICE pService = (NPC_SELL_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_BUY_SERVICE)
|
||||
{
|
||||
@@ -697,17 +704,17 @@ namespace BrewMonster.UI
|
||||
else if (DataType == DATA_TYPE.DT_NPC_REPAIR_SERVICE)
|
||||
{
|
||||
NPC_REPAIR_SERVICE pService = (NPC_REPAIR_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_INSTALL_SERVICE)
|
||||
{
|
||||
NPC_INSTALL_SERVICE pService = (NPC_INSTALL_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_UNINSTALL_SERVICE)
|
||||
{
|
||||
NPC_UNINSTALL_SERVICE pService = (NPC_UNINSTALL_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_SKILL_SERVICE)
|
||||
{
|
||||
@@ -717,32 +724,32 @@ namespace BrewMonster.UI
|
||||
m_pLst_Main.AddString(strText + GetStringFromTable(7107));
|
||||
}
|
||||
else
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_HEAL_SERVICE)
|
||||
{
|
||||
NPC_HEAL_SERVICE pService = (NPC_HEAL_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_TRANSMIT_SERVICE)
|
||||
{
|
||||
NPC_TRANSMIT_SERVICE pService = (NPC_TRANSMIT_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_TRANSPORT_SERVICE)
|
||||
{
|
||||
NPC_TRANSPORT_SERVICE pService = (NPC_TRANSPORT_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_PROXY_SERVICE)
|
||||
{
|
||||
NPC_PROXY_SERVICE pService = (NPC_PROXY_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_STORAGE_SERVICE)
|
||||
{
|
||||
NPC_STORAGE_SERVICE pService = (NPC_STORAGE_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
m_pLst_Main.SetItemData(m_pLst_Main.GetCount() - 1, a_uiService[i]);
|
||||
m_pLst_Main.AddString(strText + GetStringFromTable(253));
|
||||
m_pLst_Main.SetItemData(m_pLst_Main.GetCount() - 1, a_uiService[i]);
|
||||
@@ -751,7 +758,7 @@ namespace BrewMonster.UI
|
||||
else if (DataType == DATA_TYPE.DT_NPC_MAKE_SERVICE)
|
||||
{
|
||||
NPC_MAKE_SERVICE pService = (NPC_MAKE_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_DECOMPOSE_SERVICE)
|
||||
{
|
||||
@@ -776,57 +783,57 @@ namespace BrewMonster.UI
|
||||
else if (DataType == DATA_TYPE.DT_NPC_IDENTIFY_SERVICE)
|
||||
{
|
||||
NPC_IDENTIFY_SERVICE pService = (NPC_IDENTIFY_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_WAR_TOWERBUILD_SERVICE)
|
||||
{
|
||||
NPC_WAR_TOWERBUILD_SERVICE pService = (NPC_WAR_TOWERBUILD_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_RESETPROP_SERVICE)
|
||||
{
|
||||
NPC_RESETPROP_SERVICE pService = (NPC_RESETPROP_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_PETNAME_SERVICE)
|
||||
{
|
||||
NPC_PETNAME_SERVICE pService = (NPC_PETNAME_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_PETLEARNSKILL_SERVICE)
|
||||
{
|
||||
NPC_PETLEARNSKILL_SERVICE pService = (NPC_PETLEARNSKILL_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_PETFORGETSKILL_SERVICE)
|
||||
{
|
||||
NPC_PETFORGETSKILL_SERVICE pService = (NPC_PETFORGETSKILL_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_EQUIPBIND_SERVICE)
|
||||
{
|
||||
NPC_EQUIPBIND_SERVICE pService = (NPC_EQUIPBIND_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_EQUIPDESTROY_SERVICE)
|
||||
{
|
||||
NPC_EQUIPDESTROY_SERVICE pService = (NPC_EQUIPDESTROY_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_EQUIPUNDESTROY_SERVICE)
|
||||
{
|
||||
NPC_EQUIPUNDESTROY_SERVICE pService = (NPC_EQUIPUNDESTROY_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_ENGRAVE_SERVICE)
|
||||
{
|
||||
NPC_ENGRAVE_SERVICE pService = (NPC_ENGRAVE_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_RANDPROP_SERVICE)
|
||||
{
|
||||
NPC_RANDPROP_SERVICE pService = (NPC_RANDPROP_SERVICE)pData;
|
||||
m_pLst_Main.AddString(strText + pService.name);
|
||||
m_pLst_Main.AddString(strText + Encoding.Unicode.GetString(MemoryMarshal.AsBytes<ushort>(pService.name)));
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_FORCE_SERVICE)
|
||||
{
|
||||
@@ -1019,9 +1026,9 @@ namespace BrewMonster.UI
|
||||
|
||||
uint[] a_uiService2 =
|
||||
{
|
||||
pEssence.id_task_out_service, // 任务相关的服务ID: 发放任务服务
|
||||
pEssence.id_task_in_service, // 任务相关的服务ID: 验证完成任务服务
|
||||
pEssence.id_task_matter_service, // 任务相关的服务ID: 发放任务物品服务
|
||||
pEssence.id_task_out_service, // 任务相关的服务ID: 发放任务服务
|
||||
pEssence.id_task_in_service, // 任务相关的服务ID: 验证完成任务服务
|
||||
pEssence.id_task_matter_service, // 任务相关的服务ID: 发放任务物品服务
|
||||
};
|
||||
|
||||
object pData;
|
||||
@@ -1045,8 +1052,8 @@ namespace BrewMonster.UI
|
||||
for (int i = 0; i < a_uiService2.Length; i++)
|
||||
{
|
||||
if (a_uiService2[i] == 0) continue;
|
||||
|
||||
pData = pDataMan.get_data_ptr(a_uiService2[i], ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
|
||||
pData = ElementDataManProvider.GetElementDataMan().get_data_ptr(a_uiService2[i], ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
|
||||
// ignore other service
|
||||
if (DataType != DATA_TYPE.DT_NPC_TASK_IN_SERVICE &&
|
||||
|
||||
@@ -17,12 +17,21 @@ namespace BrewMonster.UI
|
||||
private DialogScriptTableObject m_dialogResouce;
|
||||
private Canvas m_canvas;
|
||||
Dictionary<int, string> m_StringTable = new Dictionary<int, string>();
|
||||
Dictionary<int, string> m_auiDialog_stringTable = new Dictionary<int, string>();
|
||||
|
||||
public string GetStringFromTable(int idString)
|
||||
{
|
||||
if (m_StringTable.TryGetValue(idString, out var str))
|
||||
return str;
|
||||
return "";
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public string GetStringFromAuiDialogTable(int idString)
|
||||
{
|
||||
if (m_auiDialog_stringTable.TryGetValue(idString, out var str))
|
||||
return str;
|
||||
return null;
|
||||
}
|
||||
|
||||
public void SetDependency(DialogScriptTableObject resouce, Canvas canvas)
|
||||
@@ -34,6 +43,7 @@ namespace BrewMonster.UI
|
||||
public void Init()
|
||||
{
|
||||
ImportStringTable("ingame.stf");
|
||||
ImportAuiDialogStringTable("msgbox.stf");
|
||||
}
|
||||
|
||||
public string Translate(ushort[] str)
|
||||
@@ -41,7 +51,7 @@ namespace BrewMonster.UI
|
||||
if (str == null || str.Length == 0)
|
||||
return null;
|
||||
string m_AWString = "";
|
||||
string input = new string(str.Select(c => (char)c).ToArray());
|
||||
string input = new string(str.Where(c => c != 0).Select(c => (char)c).ToArray());
|
||||
m_AWString = input;
|
||||
|
||||
var result = new System.Text.StringBuilder();
|
||||
@@ -128,24 +138,44 @@ namespace BrewMonster.UI
|
||||
|
||||
private bool ImportStringTable(string pszFilename)
|
||||
{
|
||||
AWScriptFile s = new AWScriptFile();
|
||||
//AWScriptFile s = new AWScriptFile();
|
||||
string szFilename = Path.Combine(Application.streamingAssetsPath, pszFilename);
|
||||
|
||||
bool bval = s.Open(szFilename);
|
||||
if (!bval) return false;
|
||||
|
||||
while (!s.IsEnd())
|
||||
foreach (var line in File.ReadLines(szFilename))
|
||||
{
|
||||
bval = s.GetNextToken(true);
|
||||
if (!bval) break; // End of file.
|
||||
int idString = int.Parse(ByteToStringUtils.UshortArrayToUnicodeString(s.m_szToken));
|
||||
if (string.IsNullOrWhiteSpace(line))
|
||||
continue;
|
||||
|
||||
bval = s.GetNextToken(true);
|
||||
if (!bval) return false;
|
||||
string str = (Translate(s.m_szToken));
|
||||
m_StringTable[idString] = str;
|
||||
var parts = line.Split('\t', StringSplitOptions.RemoveEmptyEntries);
|
||||
if (parts.Length < 2)
|
||||
continue;
|
||||
|
||||
if (int.TryParse(parts[0], out int key))
|
||||
{
|
||||
string value = parts[1].Trim();
|
||||
if (value.StartsWith("\"") && value.EndsWith("\""))
|
||||
value = value.Substring(1, value.Length - 2);
|
||||
|
||||
m_StringTable[key] = value;
|
||||
}
|
||||
}
|
||||
s.Close();
|
||||
|
||||
return true;
|
||||
//bool bval = s.Open(szFilename);
|
||||
//if (!bval) return false;
|
||||
|
||||
//while (!s.IsEnd())
|
||||
//{
|
||||
// bval = s.GetNextToken(true);
|
||||
// if (!bval) break; // End of file.
|
||||
// int idString = int.Parse(ByteToStringUtils.UshortArrayToUnicodeString(s.m_szToken));
|
||||
|
||||
// bval = s.GetNextToken(true);
|
||||
// if (!bval) return false;
|
||||
// string str = (Translate(s.m_szToken));
|
||||
// m_StringTable[idString] = str;
|
||||
//}
|
||||
//s.Close();
|
||||
|
||||
//if (a_stricmp(GetStringFromTable(1), _AL("")) == 0) //1 ĬÈÏ×ÖÌå
|
||||
// m_StringTable[1] = _AL("·½ÕýϸºÚÒ»¼òÌå");
|
||||
@@ -179,6 +209,58 @@ namespace BrewMonster.UI
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool ImportAuiDialogStringTable(string pszFilename)
|
||||
{
|
||||
|
||||
//bool bval;
|
||||
//int idString;
|
||||
//string str;
|
||||
//AWScriptFile s = new AWScriptFile();
|
||||
string szFilename = Path.Combine(Application.streamingAssetsPath, pszFilename);
|
||||
//bval = s.Open(szFilename);
|
||||
//if (!bval) return true; // Ignore error.
|
||||
//while (!s.IsEnd())
|
||||
//{
|
||||
// bval = s.GetNextToken(true);
|
||||
// if (!bval) break; // End of file.
|
||||
// idString = int.Parse(ByteToStringUtils.UshortArrayToUnicodeString(s.m_szToken));
|
||||
|
||||
// bval = s.GetNextToken(true);
|
||||
// if (!bval) return false;
|
||||
|
||||
// str = ByteToStringUtils.UshortArrayToUnicodeString(s.m_szToken);
|
||||
// if(m_auiDialog_stringTable.TryGetValue(idString, out string value))
|
||||
// {
|
||||
// m_auiDialog_stringTable[idString] = str;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// m_auiDialog_stringTable.Add(idString, str);
|
||||
// }
|
||||
//}
|
||||
|
||||
//s.Close();
|
||||
foreach (var line in File.ReadLines(szFilename))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(line))
|
||||
continue;
|
||||
|
||||
var parts = line.Split('\t', StringSplitOptions.RemoveEmptyEntries);
|
||||
if (parts.Length < 2)
|
||||
continue;
|
||||
|
||||
if (int.TryParse(parts[0], out int key))
|
||||
{
|
||||
string value = parts[1].Trim();
|
||||
if (value.StartsWith("\"") && value.EndsWith("\""))
|
||||
value = value.Substring(1, value.Length - 2);
|
||||
|
||||
m_auiDialog_stringTable[key] = value;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void PopupNPCDialog(NPC_ESSENCE pEssence)
|
||||
{
|
||||
GameObject ob = m_dialogResouce.GetPrefabDialog("DialogNPC");
|
||||
|
||||
@@ -16,11 +16,13 @@ namespace BrewMonster
|
||||
}
|
||||
public void SetHealthImage(float health)
|
||||
{
|
||||
_healthImage.fillAmount = health;
|
||||
if(_healthImage != null)
|
||||
_healthImage.fillAmount = health;
|
||||
}
|
||||
public void SetHealthText(string healthText)
|
||||
{
|
||||
_healthText.text = healthText;
|
||||
if(_healthText != null)
|
||||
_healthText.text = healthText;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -962,7 +962,7 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_text: New Text
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
@@ -987,12 +987,12 @@ MonoBehaviour:
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 36
|
||||
m_fontSizeBase: 36
|
||||
m_fontSize: 30
|
||||
m_fontSizeBase: 30
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontSizeMin: 1
|
||||
m_fontSizeMax: 20
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
@@ -1028,7 +1028,7 @@ MonoBehaviour:
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 1
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &6297753662624094075
|
||||
@@ -1088,7 +1088,7 @@ MonoBehaviour:
|
||||
m_ChildAlignment: 1
|
||||
m_StartCorner: 1
|
||||
m_StartAxis: 1
|
||||
m_CellSize: {x: 550, y: 50}
|
||||
m_CellSize: {x: 550, y: 30}
|
||||
m_Spacing: {x: 0, y: 9}
|
||||
m_Constraint: 1
|
||||
m_ConstraintCount: 1
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de3ba170288dec647b1957bf1af29f86
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user