From 32d0aeff3a9e071c2838d5089696c5ffba26446e Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Mon, 10 Nov 2025 10:52:05 +0700 Subject: [PATCH 1/4] Fix unexpect item order in each tab of mall --- Assets/PerfectWorld/Scripts/UI/ShopUIManager.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/UI/ShopUIManager.cs b/Assets/PerfectWorld/Scripts/UI/ShopUIManager.cs index f1d4ca5684..40d730a0a6 100644 --- a/Assets/PerfectWorld/Scripts/UI/ShopUIManager.cs +++ b/Assets/PerfectWorld/Scripts/UI/ShopUIManager.cs @@ -144,9 +144,11 @@ public class ShopUIManager : MonoBehaviour List categoryItems = GetItemsForCategory(currentCategory); // Create item panels using pooling + int siblingIndexCounter = 0; foreach (GShopItem item in categoryItems) { - CreateItemPanelFromPool(item); + CreateItemPanelFromPool(item, siblingIndexCounter); + siblingIndexCounter++; } } @@ -183,7 +185,7 @@ public class ShopUIManager : MonoBehaviour } } - void CreateItemPanelFromPool(GShopItem item) + void CreateItemPanelFromPool(GShopItem item, int targetSiblingIndex) { GameObject itemPanel = null; @@ -204,8 +206,10 @@ public class ShopUIManager : MonoBehaviour if (itemPanel != null && itemContainer != null) { // Set parent and position - itemPanel.transform.SetParent(itemContainer); + itemPanel.transform.SetParent(itemContainer, false); itemPanel.transform.localScale = Vector3.one; + // Ensure deterministic ordering regardless of pool retrieval order + itemPanel.transform.SetSiblingIndex(targetSiblingIndex); // Setup the panel ShopItemPanel itemPanelScript = itemPanel.GetComponent(); From b287ff7902570f088a7d824c6a828a94d1b7e239 Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Mon, 10 Nov 2025 10:52:21 +0700 Subject: [PATCH 2/4] Fix scroll --- Assets/Prefabs/UI/MallUI.prefab | 91 +++++++++++++++++++-------------- 1 file changed, 53 insertions(+), 38 deletions(-) diff --git a/Assets/Prefabs/UI/MallUI.prefab b/Assets/Prefabs/UI/MallUI.prefab index 622676b32b..fcf1a7d083 100644 --- a/Assets/Prefabs/UI/MallUI.prefab +++ b/Assets/Prefabs/UI/MallUI.prefab @@ -368,9 +368,9 @@ RectTransform: - {fileID: 8761838049529348566} m_Father: {fileID: 6279944142683492433} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 73.5, y: -82.4} m_SizeDelta: {x: 147, y: 116.8} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &424813723601076052 @@ -974,9 +974,9 @@ RectTransform: - {fileID: 2635347666608474034} m_Father: {fileID: 6279944142683492433} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 73.5, y: -557.43335} m_SizeDelta: {x: 147, y: 115} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2783001383898350917 @@ -1458,9 +1458,9 @@ RectTransform: - {fileID: 3465129417775596107} m_Father: {fileID: 6921900574306804872} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 253.67606, y: -34.225502} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 166.4507, y: 61.887} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2471496789853926854 @@ -1750,9 +1750,9 @@ RectTransform: - {fileID: 6607009122237547209} m_Father: {fileID: 6921900574306804872} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 753.02814, y: -34.225502} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 166.4507, y: 61.887} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6604777758543866085 @@ -2132,9 +2132,9 @@ RectTransform: - {fileID: 7453030741144867795} m_Father: {fileID: 6279944142683492433} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 73.5, y: -438.9} m_SizeDelta: {x: 147, y: 115} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5113860492054378637 @@ -2253,9 +2253,9 @@ RectTransform: - {fileID: 7881121413444915257} m_Father: {fileID: 6279944142683492433} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 73.5, y: -675.9667} m_SizeDelta: {x: 147, y: 115} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &188443220859053986 @@ -2670,11 +2670,11 @@ MonoBehaviour: m_Content: {fileID: 720995613977598853} m_Horizontal: 0 m_Vertical: 1 - m_MovementType: 0 + m_MovementType: 1 m_Elasticity: 0.1 m_Inertia: 1 - m_DecelerationRate: 0.91 - m_ScrollSensitivity: 4 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 m_Viewport: {fileID: 7377597886310921903} m_HorizontalScrollbar: {fileID: 0} m_VerticalScrollbar: {fileID: 0} @@ -2871,9 +2871,9 @@ RectTransform: - {fileID: 3953026038879993000} m_Father: {fileID: 6279944142683492433} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 73.5, y: -201.83334} m_SizeDelta: {x: 147, y: 115} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5160228589296753130 @@ -3302,9 +3302,9 @@ RectTransform: - {fileID: 7368110207669039191} m_Father: {fileID: 6921900574306804872} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 420.12674, y: -34.225502} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 166.4507, y: 61.887} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5818043599573700572 @@ -3695,7 +3695,7 @@ RectTransform: m_Father: {fileID: 4310760051865461200} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: -0.22351074, y: 0.023500443} m_SizeDelta: {x: -24.1577, y: -6.6333} m_Pivot: {x: 0.5, y: 0.5} @@ -3846,9 +3846,9 @@ RectTransform: - {fileID: 1824832118339051429} m_Father: {fileID: 6921900574306804872} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 87.22535, y: -34.225502} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 166.4507, y: 61.887} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5876619622367789936 @@ -3967,9 +3967,9 @@ RectTransform: - {fileID: 1529712157810231189} m_Father: {fileID: 6921900574306804872} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 586.57745, y: -34.225502} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 166.4507, y: 61.887} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4405492307389281063 @@ -5158,6 +5158,7 @@ GameObject: - component: {fileID: 720995613977598853} - component: {fileID: 6400593268502276303} - component: {fileID: 5246174072855755290} + - component: {fileID: 2179490036099150762} m_Layer: 5 m_Name: Content m_TagString: Untagged @@ -5225,6 +5226,20 @@ MonoBehaviour: maxPoolSize: 100 expandPool: 1 poolParent: {fileID: 720995613977598853} +--- !u!114 &2179490036099150762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6592005461581952019} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 --- !u!1 &6608932894056258649 GameObject: m_ObjectHideFlags: 0 @@ -5529,7 +5544,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1845571473519222713 RectTransform: m_ObjectHideFlags: 0 @@ -5886,9 +5901,9 @@ RectTransform: - {fileID: 5424053570241907517} m_Father: {fileID: 6279944142683492433} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 73.5, y: -320.36667} m_SizeDelta: {x: 147, y: 115} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6316976477275547731 From f58d00a4ac09b4d0293777a5fe8142814563adf2 Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Mon, 10 Nov 2025 16:13:31 +0700 Subject: [PATCH 3/4] Update shop categories --- .../Scripts/UI/ShopCategoryManager.cs | 20 ++++++++----------- .../PerfectWorld/Scripts/UI/ShopUIManager.cs | 16 ++++++++++----- Assets/Scenes/NPCRender.unity | 4 ++-- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/UI/ShopCategoryManager.cs b/Assets/PerfectWorld/Scripts/UI/ShopCategoryManager.cs index 0f57ed2191..23081811f8 100644 --- a/Assets/PerfectWorld/Scripts/UI/ShopCategoryManager.cs +++ b/Assets/PerfectWorld/Scripts/UI/ShopCategoryManager.cs @@ -12,7 +12,7 @@ public class ShopCategoryManager : MonoBehaviour { "Category 1", // Original category 1 "Category 2", // Original category 2 - "Categories 3-5", // Merged categories 3, 4, 5 + "Categories 1, 3, 4", // Merged categories 1, 3, 4 "Category 6", // Original category 6 "Category 7", // Original category 7 "Category 8" // Original category 8 @@ -27,7 +27,7 @@ public class ShopCategoryManager : MonoBehaviour public Color disabledButtonColor = Color.gray; private int currentSelectedCategory = 0; - private ShopUIManager shopManager; + public ShopUIManager shopManager; void Start() { @@ -68,13 +68,9 @@ public class ShopCategoryManager : MonoBehaviour currentSelectedCategory = categoryIndex; UpdateCategoryDisplay(); - // Notify shop manager + // Notify shop manager to actually update the item list if (shopManager != null) - { - // Use reflection to call the private method, or make it public - // For now, we'll assume there's a public method to handle category change - Debug.Log($"Category {categoryIndex} selected: {categoryNames[categoryIndex]}"); - } + shopManager.SetCategoryIndex(categoryIndex); } void UpdateCategoryDisplay() @@ -124,12 +120,12 @@ public class ShopCategoryManager : MonoBehaviour public bool IsItemInCategory(GShopItem item, int categoryIndex) { - // Category mapping: 0=1, 1=2, 2=3+4+5, 3=6, 4=7, 5=8 + // Category mapping: 0=1, 1=2, 2=1+3+4, 3=6, 4=7, 5=8 switch (categoryIndex) { case 0: return item.mainType == 0; // Category 1 case 1: return item.mainType == 1; // Category 2 - case 2: return item.mainType >= 2 && item.mainType <= 4; // Categories 3, 4, 5 merged + case 2: return item.mainType == 0 || item.mainType == 2 || item.mainType == 3; // Categories 1, 3, 4 merged case 3: return item.mainType == 5; // Category 6 case 4: return item.mainType == 6; // Category 7 case 5: return item.mainType == 7; // Category 8 @@ -146,8 +142,8 @@ public class ShopCategoryManager : MonoBehaviour { int originalCategory = item.mainType; - if (originalCategory >= 2 && originalCategory <= 4) - return "Categories 3-5"; + if (originalCategory == 0 || originalCategory == 2 || originalCategory == 3) + return "Categories 1, 3, 4"; if (originalCategory < categoryNames.Length) return categoryNames[originalCategory]; diff --git a/Assets/PerfectWorld/Scripts/UI/ShopUIManager.cs b/Assets/PerfectWorld/Scripts/UI/ShopUIManager.cs index 40d730a0a6..19d24e8342 100644 --- a/Assets/PerfectWorld/Scripts/UI/ShopUIManager.cs +++ b/Assets/PerfectWorld/Scripts/UI/ShopUIManager.cs @@ -91,7 +91,7 @@ public class ShopUIManager : MonoBehaviour { if (shopMainPanel != null) { - shopMainPanel.SetActive(true); + OnCategorySelected(0); RefreshShopDisplay(); } } @@ -129,6 +129,12 @@ public class ShopUIManager : MonoBehaviour Debug.Log($"Category switch to {categoryIndex} completed in {switchTime * 1000f:F2}ms"); } + // Allow external components (e.g., ShopCategoryManager) to switch category + public void SetCategoryIndex(int categoryIndex) + { + OnCategorySelected(categoryIndex); + } + public void RefreshShopDisplay() { // Return all current panels to pool @@ -172,13 +178,13 @@ public class ShopUIManager : MonoBehaviour bool IsItemInCategory(GShopItem item, int categoryIndex) { - // Category mapping: 0=1, 1=2, 2=3+4+5, 3=6, 4=7, 5=8 + // Category mapping: 0=1, 1=2, 2=1+3+4, 3=6, 4=7, 5=8 switch (categoryIndex) { case 0: return item.mainType == 0; // Category 1 - case 1: return item.mainType == 1; // Category 2 - case 2: return item.mainType >= 2 && item.mainType <= 4; // Categories 3, 4, 5 merged - case 3: return item.mainType == 5; // Category 6 + case 1: return item.mainType == 2; // Category 2 + case 2: return item.mainType == 5; // Categories 1, 3, 4 merged + case 3: return item.mainType == 1 || item.mainType == 3 || item.mainType == 4; // Category 6 case 4: return item.mainType == 6; // Category 7 case 5: return item.mainType == 7; // Category 8 default: return false; diff --git a/Assets/Scenes/NPCRender.unity b/Assets/Scenes/NPCRender.unity index 303a3b7872..e59642630a 100644 --- a/Assets/Scenes/NPCRender.unity +++ b/Assets/Scenes/NPCRender.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f08a2358f441f066ff36ff6a98d580219dcd8b7629d6675b97643a1f3e09953b -size 33030989 +oid sha256:951300c91d8eb0444ef6f6d4231547c757908cba80c036bc743d186711fca527 +size 33032375 From ecbdf4c803a65bf77759540bf45749277691389c Mon Sep 17 00:00:00 2001 From: VDH Date: Tue, 11 Nov 2025 17:12:51 +0700 Subject: [PATCH 4/4] done skill --- .../Scripts/Managers/CECAttacksMan.cs | 4 +--- .../PerfectWorld/Scripts/Managers/CECNPCMan.cs | 2 -- Assets/PerfectWorld/Scripts/NPC/CECNPC.cs | 6 +----- .../Network/CSNetwork/C2SCommand/C2SCommand.cs | 1 + .../CSNetwork/C2SCommand/C2SCommandFactory.cs | 13 ++++++++++--- .../Scripts/Network/CSNetwork/GameSession.cs | 3 +-- .../Scripts/Players/EC_ElsePlayer.cs | 1 - .../PerfectWorld/Scripts/Skills/CECSCSkill.cs | 4 ++-- .../Scripts/Skills/EC_HostSkillModel.cs | 1 - Assets/Scenes/a61.unity | 4 ++-- Assets/Scripts/CECHostPlayer.cs | 18 ++++++------------ 11 files changed, 24 insertions(+), 33 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs b/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs index 53bbffc1ec..2c736597e3 100644 --- a/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs +++ b/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs @@ -64,7 +64,6 @@ public class CECAttacksMan : MonoSingleton nTimeFly // timeToDoDamage ); m_AttackLinkedList.AddLast(newEvent); - BMLogger.LogError("HoangDev: AddMeleeAttack CECAttackEvent: " + m_AttackLinkedList.Count); newEvent.UpdateTargetFlag(); return m_AttackLinkedList.Last.Value; @@ -455,7 +454,6 @@ bool DoFire() TARGET_DATA data = m_targets[i]; int idTarget = data.idTarget; string strName; - BMLogger.LogError("HoangDev: GPDataTypeHelper.ISPLAYERID(idTarget) " + GPDataTypeHelper.ISPLAYERID(idTarget)); if (GPDataTypeHelper.ISNPCID(idTarget)) { @@ -480,7 +478,7 @@ bool DoFire() { CECPlayer pPlayer = EC_ManMessageMono.Instance.GetECManPlayer.GetPlayer(idTarget); - BMLogger.LogError("HoangDev: CECPlayer pPlayer = " + pPlayer ); + //BMLogger.LogError("HoangDev: CECPlayer pPlayer = " + pPlayer ); if (!pPlayer) return true; diff --git a/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs b/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs index 287bfacf8c..5089d333fe 100644 --- a/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs +++ b/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs @@ -348,7 +348,6 @@ public class CECNPCMan : IMsgHandler } case CommandID.NPC_INFO_00: { - BMLogger.LogError("HoangDev: NPCMAN NPC_INFO_00"); var buffer = (byte[])msg.dwParam1; cmd_npc_info_00 pCmd = GPDataTypeHelper.FromBytes(buffer); @@ -362,7 +361,6 @@ public class CECNPCMan : IMsgHandler ep.bs.max_hp = pCmd.iMaxHP; pNPC.SetSelectedTarget(pCmd.iTargetID); pNPC.SetWorldHealthImage((float)pCmd.iHP , (float)pCmd.iMaxHP); - BMLogger.LogError("HoangDev: publish NPCMAN NPC_INFO_00"); EventBus.Publish(new NPCINFO(pNPC.GetName(),pCmd.iHP,pCmd.iMaxHP, pCmd.idNPC)); } diff --git a/Assets/PerfectWorld/Scripts/NPC/CECNPC.cs b/Assets/PerfectWorld/Scripts/NPC/CECNPC.cs index d53786bacc..d268a66b0b 100644 --- a/Assets/PerfectWorld/Scripts/NPC/CECNPC.cs +++ b/Assets/PerfectWorld/Scripts/NPC/CECNPC.cs @@ -182,7 +182,7 @@ public class CECNPC : CECObject } public void OnMsgAttackHostResult(int idHost, int nDamage, int nFlag, int nSpeed) { - BMLogger.LogError("HoangDev: OnMsgAttackHostResultNPC"); + //BMLogger.LogError("HoangDev: OnMsgAttackHostResultNPC"); if (!IsDead()) { // 🔹 Quay mặt về mục tiêu @@ -273,8 +273,6 @@ public class CECNPC : CECObject int nAttackSpeed, int nSection = 0) { - BMLogger.LogError("HoangDev: PlayAttackEffectNPC"); - if (m_pNPCModelPolicy == null) return; @@ -392,8 +390,6 @@ public class CECNPC : CECObject private bool PlayAttackAction(int nAttackSpeed, CECAttackEvent attackevent) { - BMLogger.LogError("HoangDev: PlayAttackActionNPC"); - return m_pNPCModelPolicy.PlayAttackAction(nAttackSpeed, attackevent); } void NPCTurnFaceTo(int idTarget, float dwTime = 0) diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs index 0697537099..2691da3e60 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs @@ -1,6 +1,7 @@ using CSNetwork.GPDataType; using System; using System.Numerics; +using System.Runtime.InteropServices; namespace CSNetwork.C2SCommand { diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs index c27c618d1d..87315311d4 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs @@ -1,3 +1,4 @@ +using BrewMonster; using CSNetwork.GPDataType; using CSNetwork.S2CCommand; using System; @@ -182,7 +183,10 @@ namespace CSNetwork.C2SCommand return; } - WriteBasicValue(octets, array.Length); + if (array.Length != 1 ) + { + WriteBasicValue(octets, array.Length); + } var elementType = array.GetType().GetElementType(); if (NeedsCustomSerialization(elementType)) @@ -258,8 +262,9 @@ namespace CSNetwork.C2SCommand skillId = idSkill, pvpMask = byPVPMask, targetCount = (byte)iNumTarget, + targets = null }; - if(iNumTarget > 0) + if (iNumTarget > 0) { if (iNumTarget > 0) { @@ -267,7 +272,9 @@ namespace CSNetwork.C2SCommand cmd.targets[0] = aTargets; } } - return SerializeCommand(CommandID.CAST_SKILL, cmd); + + var cmdBuf = SerializeCommand(CommandID.CAST_SKILL, cmd); + return cmdBuf; } public static short FloatToFix8(float x) diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs index f94ff655ad..f0480dcc0c 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs @@ -605,8 +605,7 @@ namespace CSNetwork pGameUI->EndNPCService();*/ } else if - (pCmd.iMessage == - 108 /*&& pGameRun->GetHostPlayer()->GetOfflineShopCtrl()->GetNPCSevFlag() != COfflineShopCtrl::NPCSEV_NULL*/ + (pCmd.iMessage == 108 /*&& pGameRun->GetHostPlayer()->GetOfflineShopCtrl()->GetNPCSevFlag() != COfflineShopCtrl::NPCSEV_NULL*/ ) { /* CECGameUIMan* pGameUI = pGameRun->GetUIManager()->GetInGameUIMan(); diff --git a/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs b/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs index 9dc3b3f621..c93dbe9b30 100644 --- a/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs +++ b/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs @@ -49,7 +49,6 @@ namespace PerfectWorld.Scripts.Player SetModelHostPlayer(); string roleName = Encoding.Unicode.GetString(roleInfo.name.ByteArray); - BMLogger.LogError("HoangDev: roleName:" + roleName); if (txtName != null) txtName.text = roleName; m_cdr.fStepHeight = m_MoveConst.fStepHei; diff --git a/Assets/PerfectWorld/Scripts/Skills/CECSCSkill.cs b/Assets/PerfectWorld/Scripts/Skills/CECSCSkill.cs index 4db3a876e2..759cd0a6de 100644 --- a/Assets/PerfectWorld/Scripts/Skills/CECSCSkill.cs +++ b/Assets/PerfectWorld/Scripts/Skills/CECSCSkill.cs @@ -47,11 +47,11 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.Skills } else { - BMLogger.LogError("HoangDev: Shortcut: IsGoblinSkill else"); + //BMLogger.LogError("HoangDev: Shortcut: IsGoblinSkill else"); if (pHost.GetActionSwitcher() == null || !pHost.GetActionSwitcher().OnRideToSkillAction(m_pSkill.GetSkillID(), false, 0, -1)) { - BMLogger.LogError("HoangDev: Shortcut: pHost->GetActionSwitcher()"); + //BMLogger.LogError("HoangDev: Shortcut: pHost->GetActionSwitcher()"); pHost.ApplySkillShortcut(m_pSkill.GetSkillID()); } diff --git a/Assets/PerfectWorld/Scripts/Skills/EC_HostSkillModel.cs b/Assets/PerfectWorld/Scripts/Skills/EC_HostSkillModel.cs index a5f3871edc..c4edbf2667 100644 --- a/Assets/PerfectWorld/Scripts/Skills/EC_HostSkillModel.cs +++ b/Assets/PerfectWorld/Scripts/Skills/EC_HostSkillModel.cs @@ -141,7 +141,6 @@ namespace BrewMonster.Scripts.Skills public void RecvNPCServiceList(Octets Data) { m_npcListData = Data; - BMLogger.LogError("HoangDev: m_npcListData= "+ m_npcListData.Length); if (!m_bInitialized) { return; diff --git a/Assets/Scenes/a61.unity b/Assets/Scenes/a61.unity index c430feafdd..76e537ae10 100644 --- a/Assets/Scenes/a61.unity +++ b/Assets/Scenes/a61.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:91a4f3bbfdf36a272974726c5c2a620c1ff0300fd1e0762af085e6fadcabb009 -size 530349610 +oid sha256:4500e3329ef68f0370414228d113f02bbe72321b04ac5e9292e13addf04dc827 +size 530349701 diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 42dcb8226b..738a476cd4 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -413,7 +413,7 @@ public partial class CECHostPlayer : CECPlayer pCmd.skill_count = GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1); int offset = sizeof(uint); int skillSize = Marshal.SizeOf(); - pCmd.skill_list = new cmd_skill_data.SKILL[2]; + pCmd.skill_list = new cmd_skill_data.SKILL[pCmd.skill_count]; for (int i = 0; i < pCmd.skill_count; i++) { pCmd.skill_list[i] = GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1, offset); @@ -456,7 +456,6 @@ public partial class CECHostPlayer : CECPlayer // Load skill data from command // C++: GNET::ElementSkill::LoadSkillData(pCmd); ElementSkill.LoadSkillData(pCmd); - // Create skill objects from command data for (int i = 0; i < pCmd.skill_count; i++) { @@ -476,7 +475,6 @@ public partial class CECHostPlayer : CECPlayer m_aPsSkills.Add(skill); } } - // Restore and convert shortcuts after loading new skills /* if (hostPlayer.HostIsReady()) { @@ -574,7 +572,6 @@ public partial class CECHostPlayer : CECPlayer } void OnMsgHstAttacked(ECMSG Msg) { - BMLogger.LogError($"HoangDev OnMsgHstAttacked "); var m_pPlayerMan = EC_ManMessageMono.Instance.EC_ManPlayer; cmd_host_attacked pCmd = GPDataTypeHelper.FromBytes(Msg.dwParam1 as byte[]); @@ -645,7 +642,7 @@ public partial class CECHostPlayer : CECPlayer }*/ private void OnMsgHstHurtResult(ECMSG Msg) { - BMLogger.LogError("HoangDev : OnMsgHstHurtResult"); + //BMLogger.LogError("HoangDev : OnMsgHstHurtResult"); /* int cmd = Convert.ToInt32(Msg.dwParam2); if (cmd == CommandID.BE_HURT) { @@ -1028,7 +1025,7 @@ public partial class CECHostPlayer : CECPlayer // Message MSG_HST_SELTARGET handler void OnMsgHstSelTarget(ECMSG Msg) { - BMLogger.LogError("HoangDev: OnMsgHstSelTarget"); + //BMLogger.LogError("HoangDev: OnMsgHstSelTarget"); if (Convert.ToInt32(Msg.dwParam2) == CommandID.SELECT_TARGET) { var data = (byte[])Msg.dwParam1; @@ -1876,9 +1873,6 @@ public partial class CECHostPlayer : CECPlayer public bool CastSkill(int idTarget, bool bForceAttack, CECObject pTarget = null) { byte byPVPMask = glb_BuildPVPMask(bForceAttack); - BMLogger.LogError("HoangDev: HostPlayer CastSkill SkillID=" + m_pPrepSkill.GetSkillID() + - " TargetID=" + idTarget + " bForceAttack=" + bForceAttack + - " byPVPMask=" + byPVPMask); UnityGameSession.c2s_CmdCastSkill(m_pPrepSkill.GetSkillID(), byPVPMask, 1, idTarget); return true; } @@ -1913,7 +1907,7 @@ public partial class CECHostPlayer : CECPlayer } public bool SelectTarget(int idTarget) { - BMLogger.LogError("HoangDev: HostPlayer SelectTarget"); + //BMLogger.LogError("HoangDev: HostPlayer SelectTarget"); bool bRet = false; bool canDo = CanDo(ActionCanDo.CANDO_CHANGESELECT); bool canselect = CanSelectTarget(idTarget); @@ -1922,12 +1916,12 @@ public partial class CECHostPlayer : CECPlayer bRet = true; if (idTarget == 0) { - BMLogger.LogError("HoangDev: HostPlayer Unsetlect npc"); + //BMLogger.LogError("HoangDev: HostPlayer Unsetlect npc"); UnityGameSession.c2s_CmdUnselect(); } else { - BMLogger.LogError("HoangDev: HostPlayer setlect npc"); + //BMLogger.LogError("HoangDev: HostPlayer setlect npc"); UnityGameSession.c2s_CmdSelectTarget(idTarget); } }