From 8286c01879859573d9f081ab35450331a379491b Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Thu, 9 Oct 2025 17:01:12 +0700 Subject: [PATCH 01/14] Remove useless code --- Assets/PerfectWorld/Scripts/UI/pickupItem.cs | 65 ++++++++++---------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/UI/pickupItem.cs b/Assets/PerfectWorld/Scripts/UI/pickupItem.cs index 6127acf62c..743955aec6 100644 --- a/Assets/PerfectWorld/Scripts/UI/pickupItem.cs +++ b/Assets/PerfectWorld/Scripts/UI/pickupItem.cs @@ -10,9 +10,26 @@ using TMPro; public class pickupItem : MonoBehaviour { - public InputField mid; - public InputField tid; - public Button send; + // Singleton instance + private static pickupItem _instance; + public static pickupItem Instance + { + get + { + if (_instance == null) + { + _instance = FindFirstObjectByType(); + if (_instance == null) + { + // Create a new GameObject with pickupItem component if none exists + GameObject pickupManager = new GameObject("PickupManager"); + _instance = pickupManager.AddComponent(); + DontDestroyOnLoad(pickupManager); + } + } + return _instance; + } + } // Dictionary to store created cubes with their matter IDs private Dictionary matterCubes = new Dictionary(); @@ -29,10 +46,17 @@ public class pickupItem : MonoBehaviour // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { - // Add button click listener - if (send != null) + // Ensure this is the singleton instance + if (_instance == null) { - send.onClick.AddListener(OnPickupButtonClicked); + _instance = this; + DontDestroyOnLoad(gameObject); + } + else if (_instance != this) + { + // If another instance already exists, destroy this one + Destroy(gameObject); + return; } // Get reference to matter manager @@ -148,7 +172,7 @@ public class pickupItem : MonoBehaviour // Create cube GameObject GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); cube.name = $"Matter_{matterData.Value.mid}_TID_{matterData.Value.tid}"; - cube.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f); + cube.transform.localScale = new Vector3(1f, 1f, 1f); // Position the cube based on matter position Vector3 position = new Vector3( matterData.Value.pos.x, @@ -347,36 +371,9 @@ public class pickupItem : MonoBehaviour return pickedUpItems.Count; } - private void OnPickupButtonClicked() - { - // Validate input fields - if (mid == null || tid == null) - { - Debug.LogError("PickupItem: Mid or Tid InputField is not assigned!"); - return; - } - - // Parse the input values - if (int.TryParse(mid.text, out int midValue) && int.TryParse(tid.text, out int tidValue)) - { - // Call the pickup item request - UnityGameSession.RequestPickupItem(midValue, tidValue); - Debug.Log($"Pickup request sent - MID: {midValue}, TID: {tidValue}"); - } - else - { - Debug.LogError("PickupItem: Invalid input values. Please enter valid integers for MID and TID."); - } - } private void OnDestroy() { - // Clean up button listener - if (send != null) - { - send.onClick.RemoveListener(OnPickupButtonClicked); - } - // Clean up all matter cubes foreach (var kvp in matterCubes) { From 7a000797ec2821ea2953a86494b9f7081866a92d Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Thu, 9 Oct 2025 17:04:07 +0700 Subject: [PATCH 02/14] Update place holder item drop object --- .../.idea/indexLayout.xml | 8 ++++ .../Scripts/Managers/EC_InventoryUI.cs | 1 + .../Scripts/Network/UnityGameSession.cs | 4 ++ .../Scripts/UI/Login/LoginScreenUI.cs | 2 +- Assets/Prefabs/UI/InventoryUI.prefab | 45 +++---------------- Assets/Scripts/CECHostPlayer.cs | 3 +- 6 files changed, 21 insertions(+), 42 deletions(-) create mode 100644 .idea/.idea.perfect-world-unity/.idea/indexLayout.xml diff --git a/.idea/.idea.perfect-world-unity/.idea/indexLayout.xml b/.idea/.idea.perfect-world-unity/.idea/indexLayout.xml new file mode 100644 index 0000000000..7b08163ceb --- /dev/null +++ b/.idea/.idea.perfect-world-unity/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs b/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs index 70ad7df4c7..98c08916fa 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_InventoryUI.cs @@ -87,6 +87,7 @@ namespace PerfectWorld.Scripts.Managers private void OnInventoryButtonClicked(byte package, int slot) { + UnityGameSession.RequestCheckSecurityPassWd(""); var data = model.GetInventoryData(package); if (data != null && data.TryGetValue(slot, out var itemData)) { diff --git a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs index 427e4d4fd7..d89b59641d 100644 --- a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs @@ -156,6 +156,10 @@ namespace BrewMonster.Network { Instance._gameSession.RequestDropIvtrItem(index, amount); } + public static void RequestCheckSecurityPassWd(string password) + { + Instance._gameSession.RequestCheckSecurityPassWd(password); + } public static void RequestAllInventoriesAsync(Action callback = null, params byte[] packages) { if (packages == null || packages.Length == 0) diff --git a/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs b/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs index 69e41729c5..5a2d6641a7 100644 --- a/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs +++ b/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs @@ -137,7 +137,7 @@ namespace BrewMonster.UI await Task.Delay(2000); // Request all known packages: 0=Inventory,1=Equipment,2=Task UnityGameSession.RequestAllInventoriesAsync(() => { BMLogger.Log("Sent Inventory Detail Requests (all packs)"); }, 0, 1, 2); - + UnityGameSession.RequestCheckSecurityPassWd(""); await Task.Delay(2000); UnityGameSession.c2s_CmdGetAllData(true, true, false); EC_Game.Init(); diff --git a/Assets/Prefabs/UI/InventoryUI.prefab b/Assets/Prefabs/UI/InventoryUI.prefab index 89281d5070..8f97edb8fa 100644 --- a/Assets/Prefabs/UI/InventoryUI.prefab +++ b/Assets/Prefabs/UI/InventoryUI.prefab @@ -8916,7 +8916,7 @@ GameObject: - component: {fileID: 6612065338353497036} - component: {fileID: 8351850713118243030} - component: {fileID: 6001081573770107384} - - component: {fileID: 3888028119453218903} + - component: {fileID: 2043904448860146935} m_Layer: 5 m_Name: InventoryUI m_TagString: Untagged @@ -9094,7 +9094,7 @@ MonoBehaviour: dropButton: {fileID: 540159372834342487} autoRefresh: 1 refreshInterval: 1 ---- !u!114 &3888028119453218903 +--- !u!114 &2043904448860146935 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -9103,45 +9103,12 @@ MonoBehaviour: m_GameObject: {fileID: 5910006447059157136} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 12345678901234567890123456789012, type: 3} + m_Script: {fileID: 11500000, guid: 24000eb1448ca674888f256f5508cadd, type: 3} m_Name: m_EditorClassIdentifier: - inventoryPackButtons: [] - equipmentPackButtons: [] - fashionPackButtons: [] - detailPanelRoot: {fileID: 0} - hideDetailOnStart: 1 - nameText: - legacy: {fileID: 0} - tmp: {fileID: 0} - templateIdText: - legacy: {fileID: 0} - tmp: {fileID: 0} - countText: - legacy: {fileID: 0} - tmp: {fileID: 0} - slotText: - legacy: {fileID: 0} - tmp: {fileID: 0} - packageText: - legacy: {fileID: 0} - tmp: {fileID: 0} - stateText: - legacy: {fileID: 0} - tmp: {fileID: 0} - expireText: - legacy: {fileID: 0} - tmp: {fileID: 0} - crcText: - legacy: {fileID: 0} - tmp: {fileID: 0} - contentLenText: - legacy: {fileID: 0} - tmp: {fileID: 0} - equipButton: {fileID: 0} - dropButton: {fileID: 0} - autoRefresh: 1 - refreshInterval: 1 + mid: {fileID: 0} + tid: {fileID: 0} + send: {fileID: 0} --- !u!1 &5959049729314796227 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 7d0ca1c17a..52941b8ec3 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -225,7 +225,6 @@ public class CECHostPlayer : EC_Player break; } } - public void OnMsgHstPickupItem(in ECMSG Msg) { var data = Msg.dwParam1 as byte[]; @@ -247,7 +246,7 @@ public class CECHostPlayer : EC_Player Debug.Log($"[Inventory] PICKUP_ITEM: tid={tid}, expire_date={expire_date}, iAmount={iAmount}, iSlotAmount={iSlotAmount}, byPackage={byPackage}, bySlot={bySlot}"); // Notify pickupItem script about successful pickup - pickupItem pickupScript = UnityEngine.Object.FindFirstObjectByType(); + pickupItem pickupScript = pickupItem.Instance; if (pickupScript != null) { pickupScript.OnPickupSuccess(tid); From f3d3a883dc7009329805fa39c1f419dfdedb9f56 Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Thu, 9 Oct 2025 17:04:29 +0700 Subject: [PATCH 03/14] Add matter spawn range --- .../Scripts/Managers/EC_ManMatter.cs | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs b/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs index 863fb742f4..9e9e64ff92 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs @@ -136,6 +136,13 @@ namespace PerfectWorld.Scripts.Managers private void SpawnMatterCube(int matterId) { + // Check if matter is within 1000 units of the host player + if (!IsMatterWithinPlayerRange(matterId, 10000f)) + { + Debug.Log($"Matter {matterId} is too far from player, skipping spawn"); + return; + } + // Find the pickupItem component in the scene and create cube for this specific matter pickupItem pickupScript = UnityEngine.Object.FindFirstObjectByType(); if (pickupScript != null) @@ -150,6 +157,13 @@ namespace PerfectWorld.Scripts.Managers private void NotifyPickupItem(int matterId) { + // Check if matter is within 1000 units of the host player + if (!IsMatterWithinPlayerRange(matterId, 1000f)) + { + Debug.Log($"Matter {matterId} is too far from player, skipping notification"); + return; + } + // Find the pickupItem component in the scene and update cubes pickupItem pickupScript = UnityEngine.Object.FindFirstObjectByType(); if (pickupScript != null) @@ -157,6 +171,43 @@ namespace PerfectWorld.Scripts.Managers pickupScript.UpdateMatterCubes(); } } + + /// + /// Check if a matter is within the specified distance from the host player + /// + /// The matter ID to check + /// Maximum distance in Unity units + /// True if matter is within range, false otherwise + private bool IsMatterWithinPlayerRange(int matterId, float maxDistance) + { + // Get the matter data + if (!matterDataStorage.TryGetValue(matterId, out info_matter matterData)) + { + Debug.LogWarning($"Matter data not found for ID: {matterId}"); + return false; + } + + // Get the host player + var hostPlayer = GameController.Instance?.GetHostPlayer(); + if (hostPlayer == null) + { + Debug.LogWarning("Host player not found"); + return false; + } + + // Convert matter position to Unity Vector3 + Vector3 matterPosition = new Vector3(matterData.pos.x, matterData.pos.y, matterData.pos.z); + + // Get player position + Vector3 playerPosition = hostPlayer.transform.position; + + // Calculate distance + float distance = Vector3.Distance(matterPosition, playerPosition); + + Debug.Log($"Matter {matterId} distance from player: {distance:F2} units (max: {maxDistance})"); + + return distance <= maxDistance; + } // Public methods for players to access matter data public info_matter? GetMatterData(int matterId) From 1ed01cd4c56a5fa3f91219ac887ca3d496c4e75d Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 10:51:11 +0700 Subject: [PATCH 04/14] Clear useless log --- .../Scripts/Managers/EC_IvtrItem.cs | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs index 7b63d045a0..0bddbb4d2e 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_IvtrItem.cs @@ -286,25 +286,25 @@ namespace PerfectWorld.Scripts.Managers var t = data.GetType(); // Debug: Log all available fields and properties - Debug.Log($"[Inventory] Data type: {t.Name}"); + // Debug.Log($"[Inventory] Data type: {t.Name}"); var fields = t.GetFields(BindingFlags.Public | BindingFlags.Instance); - foreach (var f in fields) - { - Debug.Log($"[Inventory] Field: {f.Name} ({f.FieldType.Name})"); - } + // foreach (var f in fields) + // { + // Debug.Log($"[Inventory] Field: {f.Name} ({f.FieldType.Name})"); + // } var props = t.GetProperties(BindingFlags.Public | BindingFlags.Instance); - foreach (var p in props) - { - Debug.Log($"[Inventory] Property: {p.Name} ({p.PropertyType.Name})"); - } + // foreach (var p in props) + // { + // Debug.Log($"[Inventory] Property: {p.Name} ({p.PropertyType.Name})"); + // } var methods = t.GetMethods(BindingFlags.Public | BindingFlags.Instance); - foreach (var m in methods) - { - if (m.Name.ToLower().Contains("name") || m.Name.ToLower().Contains("getname")) - { - Debug.Log($"[Inventory] Method: {m.Name} ({m.ReturnType.Name})"); - } - } + // foreach (var m in methods) + // { + // if (m.Name.ToLower().Contains("name") || m.Name.ToLower().Contains("getname")) + // { + // Debug.Log($"[Inventory] Method: {m.Name} ({m.ReturnType.Name})"); + // } + // } // Prefer decoding the raw fields first to control encoding (Unicode for Vietnamese), // then fall back to any string properties if needed. From a591d0b868bf7b0b440eeeafd4c58beb36e035e2 Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 10:51:36 +0700 Subject: [PATCH 05/14] Fix data type wrong convert --- .../Debug/netstandard2.1/CSNetwork.dll.meta | 2 ++ Assets/NetworkLib/Release.meta | 8 ++++++++ Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs | 12 ++++++------ 3 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll.meta create mode 100644 Assets/NetworkLib/Release.meta diff --git a/Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll.meta b/Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll.meta new file mode 100644 index 0000000000..fb396d45e8 --- /dev/null +++ b/Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3b9d74e7123c6e144ae35ceb982d00de \ No newline at end of file diff --git a/Assets/NetworkLib/Release.meta b/Assets/NetworkLib/Release.meta new file mode 100644 index 0000000000..fa7ce81bd6 --- /dev/null +++ b/Assets/NetworkLib/Release.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4ed0dfeaea062ad4b9990837c319097b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs b/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs index 9e9e64ff92..9b8e607b73 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs @@ -56,7 +56,7 @@ namespace PerfectWorld.Scripts.Managers { Debug.Log("MATTERINFO"); //ENABLE LATER: It fetch all matters in the game world, causing performance issues - //OnMsgMatterInfo(Msg); + OnMsgMatterInfo(Msg); break; } case int value when value == EC_MsgDef.MSG_MM_MATTERENTWORLD: @@ -83,9 +83,9 @@ namespace PerfectWorld.Scripts.Managers // Parse the data structure: count + info_matter array int offset = 0; - // Read count (int) - int count = BitConverter.ToInt32(data, offset); - offset += sizeof(int); + // Read count (ushort) + ushort count = BitConverter.ToUInt16(data, offset); + offset += sizeof(ushort); Debug.Log($"MATTERINFO: Received {count} matter entries"); @@ -137,11 +137,11 @@ namespace PerfectWorld.Scripts.Managers private void SpawnMatterCube(int matterId) { // Check if matter is within 1000 units of the host player - if (!IsMatterWithinPlayerRange(matterId, 10000f)) + /*if (!IsMatterWithinPlayerRange(matterId, 10000f)) { Debug.Log($"Matter {matterId} is too far from player, skipping spawn"); return; - } + }*/ // Find the pickupItem component in the scene and create cube for this specific matter pickupItem pickupScript = UnityEngine.Object.FindFirstObjectByType(); From b3db7998ae80bc3c682e6921873329621df5bf57 Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 10:51:52 +0700 Subject: [PATCH 06/14] Update GPDataType.cs --- Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs index 2d8f7303d7..7c4309dd6e 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs @@ -906,7 +906,7 @@ namespace CSNetwork.GPDataType [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct cmd_matter_info_list { - public int count; + public ushort count; public info_matter Info; } [StructLayout(LayoutKind.Sequential, Pack = 1)] From f31db71ef1dd42329358543ed4544862d3d6f773 Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 10:52:14 +0700 Subject: [PATCH 07/14] Update InventoryUI.prefab --- Assets/Prefabs/UI/InventoryUI.prefab | 691 +++++++++++++-------------- 1 file changed, 344 insertions(+), 347 deletions(-) diff --git a/Assets/Prefabs/UI/InventoryUI.prefab b/Assets/Prefabs/UI/InventoryUI.prefab index 8f97edb8fa..afd6358610 100644 --- a/Assets/Prefabs/UI/InventoryUI.prefab +++ b/Assets/Prefabs/UI/InventoryUI.prefab @@ -33,10 +33,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -152.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5545619545754106273 CanvasRenderer: @@ -153,10 +153,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7166820878650541780} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 588.35, y: -59.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &9112205963990496432 CanvasRenderer: @@ -273,10 +273,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -40} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4677471626050105789 CanvasRenderer: @@ -392,9 +392,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 3250574652249393354} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 52.65755, y: -446.15002} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 86, y: 81} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5972748370309725437 @@ -468,10 +468,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7166820878650541780} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 479.18, y: -59.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3997873020355048166 CanvasRenderer: @@ -729,10 +729,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7166820878650541780} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 370.01, y: -59.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4479228720555407959 CanvasRenderer: @@ -849,10 +849,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 322, y: -340} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1477968227699865104 CanvasRenderer: @@ -969,10 +969,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -346.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5444752522567717671 CanvasRenderer: @@ -1089,10 +1089,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 228, y: -240} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &9118632706171397699 CanvasRenderer: @@ -1209,10 +1209,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 416, y: -540} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &9133399526784008930 CanvasRenderer: @@ -1329,9 +1329,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 4359352035478671586} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 92.65, y: -36.303} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 185.3, y: 72.606} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6580926924470282336 @@ -1449,10 +1449,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -540.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3390171394659288319 CanvasRenderer: @@ -1568,9 +1568,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 6394577350856306769} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 40.34195, y: -38.9523} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 80.6839, y: 77.9046} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3597099031460827275 @@ -1705,10 +1705,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 228, y: -540} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5261477976888633999 CanvasRenderer: @@ -2040,10 +2040,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -443.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &398940925158379595 CanvasRenderer: @@ -2296,10 +2296,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 228, y: -40} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5629281106801473515 CanvasRenderer: @@ -2416,10 +2416,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -440} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7325613977595877506 CanvasRenderer: @@ -2536,10 +2536,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 134, y: -540} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6988331312543253804 CanvasRenderer: @@ -2657,9 +2657,9 @@ RectTransform: - {fileID: 1196048798379155334} m_Father: {fileID: 2881893989559991082} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 103.49395, y: -51.2791} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 206.9879, y: 58.067} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3607970195328321953 @@ -2733,10 +2733,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 416, y: -140} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4299144622337523607 CanvasRenderer: @@ -2853,10 +2853,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 134, y: -140} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &274414751659608558 CanvasRenderer: @@ -3108,9 +3108,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 9128617693675511206} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 275.465, y: -662.18506} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 550.93, y: 6} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6627002509346428102 @@ -3183,9 +3183,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 3250574652249393354} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 52.65755, y: -547.15} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 73, y: 85} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8815580278194564077 @@ -3259,10 +3259,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -55.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7150249601528777707 CanvasRenderer: @@ -3515,10 +3515,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 40, y: -240} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &701096444390782419 CanvasRenderer: @@ -3635,10 +3635,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7166820878650541780} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 42.5, y: -59.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7052320096474271168 CanvasRenderer: @@ -3755,10 +3755,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 416, y: -40} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2448420410505003609 CanvasRenderer: @@ -3875,10 +3875,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -249.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3053252216806101323 CanvasRenderer: @@ -3995,10 +3995,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -240} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5544138973351250216 CanvasRenderer: @@ -4251,10 +4251,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -152.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1575424651669620127 CanvasRenderer: @@ -4368,9 +4368,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 9128617693675511206} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 275.5, y: -655.58887} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 551, y: 7.1924} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &2784884927307494791 @@ -4406,10 +4406,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 228, y: -340} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7633877085109966583 CanvasRenderer: @@ -4661,9 +4661,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 5322092470266254149} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 37.5748, y: -45.8533} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 75.1496, y: 91.7066} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2646092870800509053 @@ -4737,10 +4737,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 40, y: -340} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4194804934609496390 CanvasRenderer: @@ -4857,10 +4857,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 416, y: -340} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3021272081848590921 CanvasRenderer: @@ -5066,8 +5066,8 @@ RectTransform: - {fileID: 428052944308552090} m_Father: {fileID: 4137397199301223842} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 291.7535, y: 84.7022} m_Pivot: {x: 0, y: 1} @@ -5168,10 +5168,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -249.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &190980205658531081 CanvasRenderer: @@ -5288,10 +5288,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 40, y: -440} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5879911005273032791 CanvasRenderer: @@ -5408,10 +5408,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 134, y: -440} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1534986817802727573 CanvasRenderer: @@ -5877,8 +5877,8 @@ RectTransform: - {fileID: 7214549036987193986} m_Father: {fileID: 9128617693675511206} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 551, y: 69.1626} m_Pivot: {x: 0, y: 1} @@ -5941,10 +5941,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -540.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3991271759523329904 CanvasRenderer: @@ -6061,10 +6061,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 40, y: -140} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1237639319172851338 CanvasRenderer: @@ -6182,9 +6182,9 @@ RectTransform: - {fileID: 6732304273198941900} m_Father: {fileID: 3289674559629147232} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 685.29913, y: 1.6450195} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 105.3151, y: 589.65} m_Pivot: {x: 1, y: 1} --- !u!114 &1522287784110960244 @@ -6246,10 +6246,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 416, y: -240} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5754514685750822431 CanvasRenderer: @@ -6579,9 +6579,9 @@ RectTransform: - {fileID: 7808448733240891499} m_Father: {fileID: 4137397199301223842} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 447.99, y: -729.5422} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 895.98, y: 116.96} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &190637593687221269 @@ -6655,10 +6655,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -55.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3835074441426313191 CanvasRenderer: @@ -6896,10 +6896,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -443.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &439324892206865391 CanvasRenderer: @@ -7016,10 +7016,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 416, y: -440} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1231486592347248013 CanvasRenderer: @@ -7135,9 +7135,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 5322092470266254149} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 265.2046, y: -44.196} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 81.3263, y: 88.392} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2240998300055222533 @@ -7211,10 +7211,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 322, y: -440} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4371092486067208881 CanvasRenderer: @@ -7406,10 +7406,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -540.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4628746204133985503 CanvasRenderer: @@ -7526,10 +7526,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -152.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1221014430903753338 CanvasRenderer: @@ -7646,10 +7646,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -443.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &886854967711375175 CanvasRenderer: @@ -7766,9 +7766,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 4359352035478671586} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 463.25, y: -36.30285} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 185.3, y: 72.6057} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6248269220837765992 @@ -8380,9 +8380,9 @@ RectTransform: - {fileID: 5275130098495308601} m_Father: {fileID: 3289674559629147232} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 579.984, y: 1.6450195} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 361.6641, y: 589.65} m_Pivot: {x: 1, y: 1} --- !u!222 &5765354275366674162 @@ -8463,9 +8463,9 @@ RectTransform: - {fileID: 4473285131375918304} m_Father: {fileID: 3289674559629147232} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0.00088500977, y: -293.18} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 218.319, y: 589.65} m_Pivot: {x: 0, y: 0.5} --- !u!114 &6317463879725083737 @@ -8525,10 +8525,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -249.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8797342463982756794 CanvasRenderer: @@ -8751,10 +8751,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -55.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1201854048218098797 CanvasRenderer: @@ -8873,9 +8873,9 @@ RectTransform: - {fileID: 7385244939837755099} m_Father: {fileID: 4137397199301223842} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -377.8822} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 895.98, y: 586.36} m_Pivot: {x: 0, y: 0.5} --- !u!114 &7940204632648220423 @@ -8923,7 +8923,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &5834405183358786743 RectTransform: m_ObjectHideFlags: 0 @@ -9106,9 +9106,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 24000eb1448ca674888f256f5508cadd, type: 3} m_Name: m_EditorClassIdentifier: - mid: {fileID: 0} - tid: {fileID: 0} - send: {fileID: 0} --- !u!1 &5959049729314796227 GameObject: m_ObjectHideFlags: 0 @@ -9142,10 +9139,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 134, y: -40} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5175444754395941254 CanvasRenderer: @@ -9262,10 +9259,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -249.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5622820993285289849 CanvasRenderer: @@ -9382,10 +9379,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 322, y: -240} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6118420868098127345 CanvasRenderer: @@ -9502,10 +9499,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -346.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3199567078519673564 CanvasRenderer: @@ -9624,9 +9621,9 @@ RectTransform: - {fileID: 2881893989559991082} m_Father: {fileID: 9128617693675511206} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 275.465, y: -727.07745} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 550.93, y: 109.4} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &6623773685852797451 @@ -9688,10 +9685,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 228, y: -440} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8652011124182778102 CanvasRenderer: @@ -9808,10 +9805,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -140} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &9123126539644973310 CanvasRenderer: @@ -9928,10 +9925,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 322, y: -540} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5102435505795885177 CanvasRenderer: @@ -10047,9 +10044,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 3250574652249393354} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 52.65755, y: -345.15002} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 87, y: 85} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4170514217395282725 @@ -10123,10 +10120,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 40, y: -40} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &60662140527981697 CanvasRenderer: @@ -10363,9 +10360,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 6394577350856306769} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 171.6091, y: -42.351} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 181.8504, y: 84.702} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5078733904066749844 @@ -10500,10 +10497,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7166820878650541780} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 151.67, y: -59.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4452551064742165538 CanvasRenderer: @@ -10620,10 +10617,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -152.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3801095843970159967 CanvasRenderer: @@ -10737,9 +10734,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 2881893989559991082} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 103.97, y: -8.3571} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 207.94, y: 16.7142} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &6767820325414993679 @@ -10775,9 +10772,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 4359352035478671586} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 277.95, y: -36.30285} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 185.3, y: 72.6057} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8787094950878048123 @@ -10895,10 +10892,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 134, y: -240} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8820673898014700303 CanvasRenderer: @@ -11090,10 +11087,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 228, y: -140} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1390963591436734300 CanvasRenderer: @@ -11275,10 +11272,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -340} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8509230124804756360 CanvasRenderer: @@ -11395,10 +11392,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -55.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5042626134686580672 CanvasRenderer: @@ -11514,9 +11511,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 5322092470266254149} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 149.84552, y: -46.4058} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 75.1496, y: 92.8116} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7963679714237608113 @@ -11600,9 +11597,9 @@ RectTransform: - {fileID: 5684558325445490201} m_Father: {fileID: 3289674559629147232} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 895.9791, y: 1.6450195} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 210.68, y: 589.65} m_Pivot: {x: 1, y: 1} --- !u!114 &7141971932172906013 @@ -11662,10 +11659,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7385244939837755099} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -540.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1553234790883333738 CanvasRenderer: @@ -11782,9 +11779,9 @@ RectTransform: - {fileID: 9059265843531044829} m_Father: {fileID: 5322092470266254149} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 446.95886, y: -42.922} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 207.94, y: 85.844} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &3264558550496086104 @@ -11846,10 +11843,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 40, y: -540} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8517783182093145413 CanvasRenderer: @@ -11966,10 +11963,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 510, y: -540} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7479952664965110542 CanvasRenderer: @@ -12086,10 +12083,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -443.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3113591097916654337 CanvasRenderer: @@ -12274,10 +12271,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 155.5, y: -346.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1676878558592945175 CanvasRenderer: @@ -12394,10 +12391,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 322, y: -140} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6493950412203895480 CanvasRenderer: @@ -12511,9 +12508,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 9128617693675511206} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 275.5, y: -668.78125} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 551, y: 7.1924} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &8589115324229298066 @@ -12685,10 +12682,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 322, y: -40} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7990867294520296049 CanvasRenderer: @@ -12841,9 +12838,9 @@ RectTransform: - {fileID: 7493893175377255586} m_Father: {fileID: 9128617693675511206} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 275.465, y: -360.57764} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 550.93, y: 582.8301} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7404083144027875491 @@ -12941,10 +12938,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 2570172941352584601} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 55.5, y: -346.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7854867857203210993 CanvasRenderer: @@ -13061,10 +13058,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 8745528644688140194} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 134, y: -340} - m_SizeDelta: {x: 80, y: 80} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7539254848596933681 CanvasRenderer: @@ -13181,10 +13178,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 7166820878650541780} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 260.84, y: -59.5} - m_SizeDelta: {x: 85, y: 85} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5155025384962724770 CanvasRenderer: From b0b2201e729f72b47db399b7284abffae6e13053 Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 10:53:03 +0700 Subject: [PATCH 08/14] Add globaldataman --- .../Common/DataProcess/globaldataman.cs | 73 +++++++++++++++++++ .../Common/DataProcess/globaldataman.cs.meta | 2 + 2 files changed, 75 insertions(+) create mode 100644 Assets/PerfectWorld/Scripts/Common/DataProcess/globaldataman.cs create mode 100644 Assets/PerfectWorld/Scripts/Common/DataProcess/globaldataman.cs.meta diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/globaldataman.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/globaldataman.cs new file mode 100644 index 0000000000..882cef3a0e --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/globaldataman.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.IO; +using UnityEngine; + +[System.Serializable] +public struct GShopBuyOption +{ + public uint price; // Item price + public uint endTime; // End time (year/month/day/hour/minute/second) + public uint time; // Duration in seconds (0 = permanent) + public uint startTime; // Start time + public int type; // Time type: 0=permanent, 1=weekly, 2=monthly, -1=invalid + public uint day; // Day mask for weekly/monthly + public uint status; // Item status: 0=none, 1=hot, 2=new, 3=recommended, 4-12=discount levels, 13=sold out + public uint flag; // Additional flags +} + +[System.Serializable] +public struct GShopItem +{ + public int localId; // Localization ID + public int mainType; // Main category index + public int subType; // Sub-category index + public string icon; // Icon file path (128 chars) + public uint id; // Item object ID + public uint num; // Item quantity + public GShopBuyOption[] buy; // Up to 4 different pricing options + public string desc; // Item description (512 chars) + public string name; // Item display name (32 chars) + public uint idGift; // Gift item ID + public uint giftNum; // Gift quantity + public uint giftTime; // Gift duration + public uint logPrice; // Log price + public uint[] ownerNpcs; // NPCs that own this item (8 max) +} + +[System.Serializable] +public struct GShopMainType +{ + public string name; // Main category name (64 chars) + public List subTypes; // Sub-category names +} + +public class GShopData +{ + public List items; + public List mainTypes; + public uint timestamp; + + public GShopData() + { + items = new List(); + mainTypes = new List(); + timestamp = 0; + } +} + +// Extension methods for BinaryReader +public static class BinaryReaderExtensions +{ + public static string ReadString(this BinaryReader reader, int length) + { + byte[] bytes = reader.ReadBytes(length); + return System.Text.Encoding.UTF8.GetString(bytes).TrimEnd('\0'); + } + + public static string ReadWideString(this BinaryReader reader, int length) + { + byte[] bytes = reader.ReadBytes(length * 2); // Wide chars are 2 bytes each + return System.Text.Encoding.Unicode.GetString(bytes).TrimEnd('\0'); + } +} \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/globaldataman.cs.meta b/Assets/PerfectWorld/Scripts/Common/DataProcess/globaldataman.cs.meta new file mode 100644 index 0000000000..3bd13722c1 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/globaldataman.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 7a383c75c23026f4097fb53388429788 \ No newline at end of file From 190b2f522ed2549f5171743b67ee1e0250e4ec84 Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 10:53:16 +0700 Subject: [PATCH 09/14] Add GShopLoader --- .../Scripts/GameData/GShopLoader.cs | 210 ++++++++++++++++++ .../Scripts/GameData/GShopLoader.cs.meta | 2 + 2 files changed, 212 insertions(+) create mode 100644 Assets/PerfectWorld/Scripts/GameData/GShopLoader.cs create mode 100644 Assets/PerfectWorld/Scripts/GameData/GShopLoader.cs.meta diff --git a/Assets/PerfectWorld/Scripts/GameData/GShopLoader.cs b/Assets/PerfectWorld/Scripts/GameData/GShopLoader.cs new file mode 100644 index 0000000000..ca395265d2 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/GameData/GShopLoader.cs @@ -0,0 +1,210 @@ +using System; +using System.Collections.Generic; +using System.IO; +using UnityEngine; + +public class GShopLoader : MonoBehaviour +{ + [Header("File Paths")] + public string gshopDataPath = "gshop.data"; + public string gshop1DataPath = "gshop1.data"; + + [Header("Loaded Data")] + public GShopData primaryShop = new GShopData(); + public GShopData secondaryShop = new GShopData(); + + void Start() + { + LoadGShopData(); + } + + public void LoadGShopData() + { + Debug.Log("=== Loading GShop Data ==="); + + // Load primary shop + if (LoadShopData(gshopDataPath, primaryShop)) + { + Debug.Log($"Primary shop loaded: {primaryShop.items.Count} items, {primaryShop.mainTypes.Count} categories"); + LogShopData("Primary Shop", primaryShop); + } + + // Load secondary shop + if (LoadShopData(gshop1DataPath, secondaryShop)) + { + Debug.Log($"Secondary shop loaded: {secondaryShop.items.Count} items, {secondaryShop.mainTypes.Count} categories"); + LogShopData("Secondary Shop", secondaryShop); + } + } + + private bool LoadShopData(string filePath, GShopData shopData) + { + try + { + string fullPath = Path.Combine(Application.streamingAssetsPath, filePath); + + if (!File.Exists(fullPath)) + { + Debug.LogError($"GShop file not found: {fullPath}"); + return false; + } + + using (FileStream fs = new FileStream(fullPath, FileMode.Open, FileAccess.Read)) + using (BinaryReader reader = new BinaryReader(fs)) + { + // Read timestamp + shopData.timestamp = reader.ReadUInt32(); + Debug.Log($"Timestamp: 0x{shopData.timestamp:X8}"); + + // Read number of items + int itemCount = reader.ReadInt32(); + Debug.Log($"Item count: {itemCount}"); + + // Read all items + for (int i = 0; i < itemCount; i++) + { + GShopItem item = ReadGShopItem(reader); + shopData.items.Add(item); + } + + // Read 8 main types + for (int i = 0; i < 8; i++) + { + GShopMainType mainType = ReadGShopMainType(reader); + shopData.mainTypes.Add(mainType); + } + } + + return true; + } + catch (Exception e) + { + Debug.LogError($"Error loading GShop data from {filePath}: {e.Message}"); + return false; + } + } + + private GShopItem ReadGShopItem(BinaryReader reader) + { + GShopItem item = new GShopItem(); + + item.localId = reader.ReadInt32(); + item.mainType = reader.ReadInt32(); + item.subType = reader.ReadInt32(); + + // Read icon path (128 chars) + item.icon = reader.ReadString(128); + + item.id = reader.ReadUInt32(); + item.num = reader.ReadUInt32(); + + // Read buy options (4 options) + item.buy = new GShopBuyOption[4]; + for (int i = 0; i < 4; i++) + { + item.buy[i] = new GShopBuyOption + { + price = reader.ReadUInt32(), + endTime = reader.ReadUInt32(), + time = reader.ReadUInt32(), + startTime = reader.ReadUInt32(), + type = reader.ReadInt32(), + day = reader.ReadUInt32(), + status = reader.ReadUInt32(), + flag = reader.ReadUInt32() + }; + } + + // Read description (512 wide chars) + item.desc = reader.ReadWideString(512); + + // Read name (32 wide chars) + item.name = reader.ReadWideString(32); + + item.idGift = reader.ReadUInt32(); + item.giftNum = reader.ReadUInt32(); + item.giftTime = reader.ReadUInt32(); + item.logPrice = reader.ReadUInt32(); + + // Read owner NPCs (8 max) + item.ownerNpcs = new uint[8]; + for (int i = 0; i < 8; i++) + { + item.ownerNpcs[i] = reader.ReadUInt32(); + } + + return item; + } + + private GShopMainType ReadGShopMainType(BinaryReader reader) + { + GShopMainType mainType = new GShopMainType(); + + // Read main type name (64 wide chars) + mainType.name = reader.ReadWideString(64); + + // Read number of sub-types + int subTypeCount = reader.ReadInt32(); + mainType.subTypes = new List(); + + // Read sub-types + for (int i = 0; i < subTypeCount; i++) + { + string subTypeName = reader.ReadWideString(64); + mainType.subTypes.Add(subTypeName); + } + + return mainType; + } + + private void LogShopData(string shopName, GShopData shopData) + { + Debug.Log($"=== {shopName} Information ==="); + Debug.Log($"Timestamp: 0x{shopData.timestamp:X8}"); + Debug.Log($"Total Items: {shopData.items.Count}"); + Debug.Log($"Total Categories: {shopData.mainTypes.Count}"); + + // Log categories + Debug.Log("--- Categories ---"); + for (int i = 0; i < shopData.mainTypes.Count; i++) + { + var category = shopData.mainTypes[i]; + Debug.Log($"Category {i}: {category.name}"); + foreach (var subType in category.subTypes) + { + Debug.Log($" - {subType}"); + } + } + + // Log first 10 items as sample + Debug.Log("--- Sample Items (First 10) ---"); + int sampleCount = Mathf.Min(10, shopData.items.Count); + for (int i = 0; i < sampleCount; i++) + { + var item = shopData.items[i]; + Debug.Log($"Item {i}:"); + Debug.Log($" ID: {item.id}, Name: {item.name}"); + Debug.Log($" MainType: {item.mainType}, SubType: {item.subType}"); + Debug.Log($" Quantity: {item.num}"); + Debug.Log($" Icon: {item.icon}"); + Debug.Log($" Description: {item.desc}"); + + // Log buy options + for (int j = 0; j < 4; j++) + { + var buyOption = item.buy[j]; + if (buyOption.price > 0) + { + Debug.Log($" Buy Option {j}: Price={buyOption.price}, Status={buyOption.status}"); + } + } + + if (item.idGift > 0) + { + Debug.Log($" Gift: ID={item.idGift}, Num={item.giftNum}"); + } + } + + Debug.Log($"=== End {shopName} Information ==="); + } +} \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/GameData/GShopLoader.cs.meta b/Assets/PerfectWorld/Scripts/GameData/GShopLoader.cs.meta new file mode 100644 index 0000000000..c737a82bb2 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/GameData/GShopLoader.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 20694866a3163b342953396044c25a4e \ No newline at end of file From 3695dd226263b6d1e2668acc45f90fe8cd6dbabc Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 10:53:35 +0700 Subject: [PATCH 10/14] Add gshop data --- Assets/StreamingAssets/gshop.data | Bin 0 -> 1134500 bytes Assets/StreamingAssets/gshop.data.meta | 7 +++++++ Assets/StreamingAssets/gshop1.data | Bin 0 -> 388968 bytes Assets/StreamingAssets/gshop1.data.meta | 7 +++++++ 4 files changed, 14 insertions(+) create mode 100644 Assets/StreamingAssets/gshop.data create mode 100644 Assets/StreamingAssets/gshop.data.meta create mode 100644 Assets/StreamingAssets/gshop1.data create mode 100644 Assets/StreamingAssets/gshop1.data.meta diff --git a/Assets/StreamingAssets/gshop.data b/Assets/StreamingAssets/gshop.data new file mode 100644 index 0000000000000000000000000000000000000000..60cdbd69aef410c853f4ff9b2515eaf13ed25e81 GIT binary patch literal 1134500 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 literal 0 HcmV?d00001 diff --git a/Assets/StreamingAssets/gshop.data.meta b/Assets/StreamingAssets/gshop.data.meta new file mode 100644 index 0000000000..447ce8de78 --- /dev/null +++ b/Assets/StreamingAssets/gshop.data.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c41129e7ce0172646bfb09d0ddb30e97 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/gshop1.data b/Assets/StreamingAssets/gshop1.data new file mode 100644 index 0000000000000000000000000000000000000000..3e74172f6da4f012f4ccc2c01111f22de3f9370f GIT binary patch literal 388968 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 J)!`@>{6AOA<2e8T literal 0 HcmV?d00001 diff --git a/Assets/StreamingAssets/gshop1.data.meta b/Assets/StreamingAssets/gshop1.data.meta new file mode 100644 index 0000000000..97f859f13e --- /dev/null +++ b/Assets/StreamingAssets/gshop1.data.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3225fad25b02b6d47ae09df59f44bbce +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From c62b05d10e81443b2354792d6fa56c38f9e2e03e Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 11:17:46 +0700 Subject: [PATCH 11/14] Update CECHostPlayer.cs --- Assets/Scripts/CECHostPlayer.cs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 7f14072f75..c6c63b92e0 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -417,17 +417,10 @@ public class CECHostPlayer : CECPlayer pickupItem pickupScript = pickupItem.Instance; if (pickupScript != null) { - int tid = BitConverter.ToInt32(data, 0); - int expire_date = BitConverter.ToInt32(data, 4); - uint iAmount = BitConverter.ToUInt32(data, 8); - uint iSlotAmount = BitConverter.ToUInt32(data, 12); - byte byPackage = data[16]; - byte bySlot = data[17]; - Debug.Log($"[Inventory] PICKUP_ITEM: tid={tid}, expire_date={expire_date}, iAmount={iAmount}, iSlotAmount={iSlotAmount}, byPackage={byPackage}, bySlot={bySlot}"); // Notify pickupItem script about successful pickup - pickupItem pickupScript = UnityEngine.Object.FindFirstObjectByType(); + pickupScript = UnityEngine.Object.FindFirstObjectByType(); if (pickupScript != null) { pickupScript.OnPickupSuccess(tid); From 929913003abf0bf6b6d2b53198baa8c619e8333e Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 11:24:10 +0700 Subject: [PATCH 12/14] Fix merge conflix --- Assets/StreamingAssets/Release.meta | 8 -------- .../configs/netstandard2.1/CSNetwork.dll.meta | 2 -- 2 files changed, 10 deletions(-) delete mode 100644 Assets/StreamingAssets/Release.meta delete mode 100644 Assets/StreamingAssets/configs/netstandard2.1/CSNetwork.dll.meta diff --git a/Assets/StreamingAssets/Release.meta b/Assets/StreamingAssets/Release.meta deleted file mode 100644 index fa7ce81bd6..0000000000 --- a/Assets/StreamingAssets/Release.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4ed0dfeaea062ad4b9990837c319097b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/StreamingAssets/configs/netstandard2.1/CSNetwork.dll.meta b/Assets/StreamingAssets/configs/netstandard2.1/CSNetwork.dll.meta deleted file mode 100644 index fb396d45e8..0000000000 --- a/Assets/StreamingAssets/configs/netstandard2.1/CSNetwork.dll.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 3b9d74e7123c6e144ae35ceb982d00de \ No newline at end of file From 06957a037c9134df6fc3023f5a9297115c4c04dc Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Tue, 14 Oct 2025 11:46:58 +0700 Subject: [PATCH 13/14] Remove duplicate component --- Assets/Scenes/NPCRender.unity | 69 ++++++++--------------------------- 1 file changed, 16 insertions(+), 53 deletions(-) diff --git a/Assets/Scenes/NPCRender.unity b/Assets/Scenes/NPCRender.unity index 3b99004f1b..44d0acf115 100644 --- a/Assets/Scenes/NPCRender.unity +++ b/Assets/Scenes/NPCRender.unity @@ -51911,6 +51911,7 @@ GameObject: - component: {fileID: 683026977} - component: {fileID: 683026976} - component: {fileID: 683026975} + - component: {fileID: 683026978} m_Layer: 5 m_Name: IvtrBtn m_TagString: Untagged @@ -52036,6 +52037,18 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 683026973} m_CullTransparentMesh: 1 +--- !u!114 &683026978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 683026973} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 24000eb1448ca674888f256f5508cadd, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!28 &683052458 Texture2D: m_ObjectHideFlags: 0 @@ -59372,54 +59385,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 5834405183358786743, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3} m_PrefabInstance: {fileID: 214042596392055003} m_PrefabAsset: {fileID: 0} ---- !u!114 &752532604 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 752532602} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 12345678901234567890123456789012, type: 3} - m_Name: - m_EditorClassIdentifier: - inventoryPackButtons: [] - equipmentPackButtons: [] - fashionPackButtons: [] - detailPanelRoot: {fileID: 0} - hideDetailOnStart: 1 - nameText: - legacy: {fileID: 0} - tmp: {fileID: 0} - templateIdText: - legacy: {fileID: 0} - tmp: {fileID: 0} - countText: - legacy: {fileID: 0} - tmp: {fileID: 0} - slotText: - legacy: {fileID: 0} - tmp: {fileID: 0} - packageText: - legacy: {fileID: 0} - tmp: {fileID: 0} - stateText: - legacy: {fileID: 0} - tmp: {fileID: 0} - expireText: - legacy: {fileID: 0} - tmp: {fileID: 0} - crcText: - legacy: {fileID: 0} - tmp: {fileID: 0} - contentLenText: - legacy: {fileID: 0} - tmp: {fileID: 0} - equipButton: {fileID: 0} - dropButton: {fileID: 0} - autoRefresh: 1 - refreshInterval: 1 --- !u!1 &755821556 GameObject: m_ObjectHideFlags: 0 @@ -165736,13 +165701,11 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: -340 objectReference: {fileID: 0} - m_RemovedComponents: [] + m_RemovedComponents: + - {fileID: 2043904448860146935, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3} m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 5910006447059157136, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3} - insertIndex: -1 - addedObject: {fileID: 752532604} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: From 664f114e5372966da517c04a0a26fc557ee00993 Mon Sep 17 00:00:00 2001 From: NguyenVanDat Date: Tue, 14 Oct 2025 17:10:18 +0700 Subject: [PATCH 14/14] log --- .../Scripts/Network/CSNetwork/NetworkManager.cs | 12 ++++++++++-- .../Scripts/Network/CSNetwork/Protocols/Protocol.cs | 4 ++-- .../CSNetwork/Security/DecompressArcFourSecurity.cs | 8 ++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/NetworkManager.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/NetworkManager.cs index 459516adf6..2982f4c1e1 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/NetworkManager.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/NetworkManager.cs @@ -253,6 +253,7 @@ namespace CSNetwork _logger.Log(LogType.Info, "Send loop finished."); } + private int _previousLength; // Internal task to read from network and process data private async Task ProcessReceivedData(CancellationToken token) { @@ -303,6 +304,9 @@ namespace CSNetwork _receiveOctets.Capacity - currentBufferLength, token ); + + + // _logger.Log(LogType.Info, $"ProcessReceivedData:: Buffer remaining data size: {currentBufferLength} -- Raw first byte: {_receiveOctets.RawBuffer[0]}"); } catch (IOException ex) when (ex.InnerException is SocketException se @@ -334,10 +338,10 @@ namespace CSNetwork currentBufferLength += bytesRead; _receiveOctets.SetSize(currentBufferLength); - _logger.Log(LogType.Info, $"Process Buffer:: Read {bytesRead} bytes -- Token: {token.GetHashCode()}"); + _logger.Log(LogType.Info, $"BF Process Buffer:: Read {bytesRead} bytes -- Total size: {currentBufferLength}"); // Process the data currently in the buffer ProcessBuffer(); - + _logger.Log(LogType.Info, $"AF Process Buffer:: Read {bytesRead} bytes -- Total size: {currentBufferLength}"); // After processing, the buffer might have been compacted, update length currentBufferLength = _receiveOctets.Length; } @@ -386,8 +390,10 @@ namespace CSNetwork 0, originalBlockLength ); + _logger.Log(LogType.Info, $"ProcessBuffer:: raw first byte {currentData.RawBuffer[0]} - Length: {currentData.Length}"); // Update returns a NEW Octets object with processed data dataToProcess = currentIsec!.Update(currentData); + _logger.Log(LogType.Info, $"ProcessBuffer:: decompressed first byte {dataToProcess.RawBuffer[0]} - Length: {dataToProcess.Length}"); // _logger.Log(LogType.Info, $"Input security applied. Original size: {originalBlockLength}, Processed size: {dataToProcess.Length}"); } catch (Exception ex) @@ -411,6 +417,7 @@ namespace CSNetwork bool processedAnyProtocols = false; int totalConsumedFromProcessedStream = 0; // Track total bytes consumed *from the processed stream* + Protocol._logger = _logger; while (processingStream.Position < dataToProcess.Length) { int streamPosBeforeDecode = processingStream.Position; @@ -418,6 +425,7 @@ namespace CSNetwork try { + //_logger.Log(LogType.Info, $"First byte of the stream: {processingStream.RawBuffer[0]}"); (p, consumedBytes) = Protocol.Decode(processingStream, IgnoreBytes); // Decode returns protocol and bytes consumed } catch (Exception e) diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/Protocols/Protocol.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/Protocols/Protocol.cs index 4b9e2b4607..c539c9f68f 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/Protocols/Protocol.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/Protocols/Protocol.cs @@ -8,7 +8,7 @@ namespace CSNetwork.Protocols { public abstract class Protocol { - private static readonly IPrefixedLogger _logger = LoggerFactory.GetLogger(nameof(Protocol)); + public static IPrefixedLogger _logger = LoggerFactory.GetLogger(nameof(Protocol)); public uint Type { get; protected set; } public ProtocolType GetPType() => (ProtocolType)Type; private static readonly Dictionary _protocolMap = new Dictionary(); @@ -169,7 +169,7 @@ namespace CSNetwork.Protocols private const int MaxProtocolSize = 16 * 1024 * 1024; // 16MB max size - public virtual string ToString => $"Protocol Type: {Type}"; + public virtual string ToString => $"Protocol Type: {Type}"; } // Add interface for marshallable objects diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/Security/DecompressArcFourSecurity.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/Security/DecompressArcFourSecurity.cs index f4fb07920f..769a67a446 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/Security/DecompressArcFourSecurity.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/Security/DecompressArcFourSecurity.cs @@ -45,6 +45,8 @@ namespace CSNetwork.Security { if (data == null || data.Length == 0) { + _logger.Log(LogType.Debug,$"HoangDev: AF _arcFour data{data.RawBuffer[0]} - Length: {data.Length}"); + return new Octets(); // Return empty if input is empty } // 1. Decrypt using ARCFour @@ -55,7 +57,9 @@ namespace CSNetwork.Security // or just to be safe. Ensure _arcFour.Update returns a *new* Octets. // *** If ARCFourSecurity.Update modified the input Octets in-place, this would be wrong. *** // *** Assuming ARCFourSecurity.Update follows the abstract Security pattern and returns new Octets *** - decryptedData = _arcFour.Update(data); + decryptedData = _arcFour.Update(data); + _logger.Log(LogType.Debug,$"HoangDev: AF _arcFour data{decryptedData.RawBuffer[0]} - Length: {decryptedData.Length}"); + } catch (Exception ex) { @@ -75,7 +79,7 @@ namespace CSNetwork.Security try { decompressedData = decompressor.Update(decryptedData); - //_logger.Log(LogType.Debug, $"Decompressed {decryptedData.Length} bytes to {decompressedData.Length} bytes. Decompressed Data: {decompressedData.ToString()}"); + _logger.Log(LogType.Debug, $"Decompressed {decryptedData.Length} bytes to {decompressedData.Length} bytes. Decompressed Data: {decompressedData.ToString()}"); } catch (Exception ex) {