From 2bde66e602392e80002b22a3dc89f15ba4355a0c Mon Sep 17 00:00:00 2001 From: NguyenVanDat Date: Fri, 26 Sep 2025 09:49:01 +0700 Subject: [PATCH] add ecgame --- .../Debug/netstandard2.1/CSNetwork.dll | Bin 368128 -> 368128 bytes .../Scripts/UI/Login/LoginScreenUI.cs | 1 + Assets/Scripts/MainFiles.meta | 8 +++ Assets/Scripts/MainFiles/EC_Game.cs | 36 ++++++++++ Assets/Scripts/MainFiles/EC_Game.cs.meta | 2 + Assets/Scripts/Task/ATaskTemplMan.cs | 67 ++++++++++++++++-- Assets/Scripts/Task/CECTaskInterface.cs | 26 +++++-- 7 files changed, 129 insertions(+), 11 deletions(-) create mode 100644 Assets/Scripts/MainFiles.meta create mode 100644 Assets/Scripts/MainFiles/EC_Game.cs create mode 100644 Assets/Scripts/MainFiles/EC_Game.cs.meta diff --git a/Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll b/Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll index 368d4eb1fcefb8da153d883908bd8dd9dd558416..76a213816f280b4f2441447c42d4e1bedaab331d 100644 GIT binary patch delta 54648 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 D$PmRL delta 54867 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 diff --git a/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs b/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs index f2dc05e6cb..4a69921a20 100644 --- a/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs +++ b/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs @@ -134,6 +134,7 @@ namespace BrewMonster.UI // Request all known packages: 0=Inventory,1=Equipment,2=Task UnityGameSession.RequestAllInventoriesAsync(() => { Logger.Log("Sent Inventory Detail Requests (all packs)"); }, 0, 1, 2); UnityGameSession.c2s_CmdGetAllData(true, true, false); + EC_Game.Init(); } //private void OnInventoryReceived(List inventoryData) diff --git a/Assets/Scripts/MainFiles.meta b/Assets/Scripts/MainFiles.meta new file mode 100644 index 0000000000..2a3c3bc448 --- /dev/null +++ b/Assets/Scripts/MainFiles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c78d146782232847ac2e4a6cec64dbf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/MainFiles/EC_Game.cs b/Assets/Scripts/MainFiles/EC_Game.cs new file mode 100644 index 0000000000..615f715b06 --- /dev/null +++ b/Assets/Scripts/MainFiles/EC_Game.cs @@ -0,0 +1,36 @@ +using ModelRenderer.Scripts.GameData; +using PerfectWorld.Scripts.Task; +using UnityEngine; +namespace BrewMonster.Network +{ + public static class EC_Game + { + #region Fields + private static ATaskTemplMan m_pTaskMan; // Task template manager + private static elementdataman m_pElementDataMan; // global element templates manager + #endregion + + #region Properties + public static ATaskTemplMan GetTaskTemplateMan() { return m_pTaskMan; } + public static elementdataman GetElementDataMan() { return m_pElementDataMan; } + #endregion + + #region Public Methods + public static bool Init() + { + m_pElementDataMan = elementdataman.Instance; + + // Load task templates + if (m_pTaskMan == null) m_pTaskMan = new ATaskTemplMan(); + + m_pTaskMan.Init(m_pElementDataMan); + if (!m_pTaskMan.InitStorageTask()) + { + Debug.LogError("[Dat]- CECGame::Init, Storage task Init Failed!"); + return false; + } + return true; + } + #endregion + } +} \ No newline at end of file diff --git a/Assets/Scripts/MainFiles/EC_Game.cs.meta b/Assets/Scripts/MainFiles/EC_Game.cs.meta new file mode 100644 index 0000000000..731734f727 --- /dev/null +++ b/Assets/Scripts/MainFiles/EC_Game.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e9b6b5b70c94a5c4e9dbaa1b2e1c323c \ No newline at end of file diff --git a/Assets/Scripts/Task/ATaskTemplMan.cs b/Assets/Scripts/Task/ATaskTemplMan.cs index 363c3d3fa1..01d6b8c6be 100644 --- a/Assets/Scripts/Task/ATaskTemplMan.cs +++ b/Assets/Scripts/Task/ATaskTemplMan.cs @@ -1,3 +1,4 @@ +using BrewMonster; using ModelRenderer.Scripts.GameData; using System.Collections.Generic; using System.IO; @@ -28,6 +29,10 @@ namespace PerfectWorld.Scripts.Task private Dictionary m_DeathTrigMap = new Dictionary(); private Dictionary m_PQTemplMap = new Dictionary(); + private Dictionary m_StorageEssenseMap = new Dictionary(); + private Dictionary m_WeightEssenseMap = new Dictionary(); + private Dictionary m_StorageTaskMap = new Dictionary(); + private List m_SkillTaskLst = new List(); private List m_TmLmtChkLst = new List(); @@ -177,10 +182,10 @@ namespace PerfectWorld.Scripts.Task if (pTask.m_bAutoDeliver && pTask.m_bDisplayInExclusiveUI) m_ExlusiveAwardTaskMap[pTask.m_ID] = pTask; -//#if _TASK_CLIENT -// if (pTask.m_ulDelvNPC != 0 && pTask.m_bCanSeekOut) -// m_TasksCanSeekOut.Add(pTask); -//#endif + //#if _TASK_CLIENT + // if (pTask.m_ulDelvNPC != 0 && pTask.m_bCanSeekOut) + // m_TasksCanSeekOut.Add(pTask); + //#endif AddTaskToMap(pTask); } @@ -213,5 +218,59 @@ namespace PerfectWorld.Scripts.Task } } + + public bool InitStorageTask() + { + m_StorageEssenseMap.Clear(); + m_WeightEssenseMap.Clear(); + + DATA_TYPE dt; + + //ID_SPACE.ID_SPACE_ESSENCE + foreach (var pair in m_pEleDataMan.essence_id_data_type_map) + { + if (pair.Value == DATA_TYPE.DT_NPC_TASK_OUT_SERVICE) + { + dt = pair.Value; + NPC_TASK_OUT_SERVICE pData = (NPC_TASK_OUT_SERVICE)m_pEleDataMan.get_data_ptr(pair.Key, ID_SPACE.ID_SPACE_ESSENCE, ref dt); + + if (pData.storage_id == 0) continue; + + if (pData.storage_id > CECTaskInterface.TASK_STORAGE_COUNT) return false; + if (m_StorageEssenseMap.ContainsKey(pData.storage_id)) return false; + m_StorageEssenseMap[pData.storage_id] = pData.id; + for (var i = 0; i < pData.id_tasks.Length; i++) + { + if (pData.id_tasks[i] > 0) + { + m_StorageTaskMap[(int)pData.id_tasks[i]] = (int)pData.storage_id; + } + } + } + } + // ID_SPACE_CONFIG + foreach (var pair in m_pEleDataMan.config_id_data_type_map) + { + if (pair.Value == DATA_TYPE.DT_NPC_TASK_OUT_SERVICE) + { + dt = pair.Value; + NPC_TASK_OUT_SERVICE pData = (NPC_TASK_OUT_SERVICE)m_pEleDataMan.get_data_ptr(pair.Key, ID_SPACE.ID_SPACE_ESSENCE, ref dt); + + if (pData.storage_id == 0) continue; + + if (pData.storage_id > CECTaskInterface.TASK_STORAGE_COUNT) return false; + if (m_StorageEssenseMap.ContainsKey(pData.storage_id)) return false; + m_StorageEssenseMap[pData.storage_id] = pData.id; + for (var i = 0; i < pData.id_tasks.Length; i++) + { + if (pData.id_tasks[i] > 0) + { + m_StorageTaskMap[(int)pData.id_tasks[i]] = (int)pData.storage_id; + } + } + } + } + return true; + } } } \ No newline at end of file diff --git a/Assets/Scripts/Task/CECTaskInterface.cs b/Assets/Scripts/Task/CECTaskInterface.cs index 007a4d195a..a5d4282174 100644 --- a/Assets/Scripts/Task/CECTaskInterface.cs +++ b/Assets/Scripts/Task/CECTaskInterface.cs @@ -1,9 +1,16 @@ +using BrewMonster.Network; using System.Collections.Generic; +using UnityEngine; namespace PerfectWorld.Scripts.Task { public class CECTaskInterface : TaskInterface { + public const int TASK_MAX_DELIVER_COUNT = 5; + public const int TASK_STORAGE_COUNT = 32; + public const int TASK_STORAGE_LEN = 10; + public const float TASK_STORAGE_WHELL_SCALE = 10000; + CECHostPlayer m_pHost; object[] m_pActiveListBuf; // Active task list buffer object[] m_pFinishedListBuf; // Finished task list buffer @@ -92,11 +99,17 @@ namespace PerfectWorld.Scripts.Task //if (iStorageTaskListLen < TASK_STORAGE_LIST_BUF_SIZE) // memset((BYTE*)m_pStorageTaskListBuf + iStorageTaskListLen, 0, TASK_STORAGE_LIST_BUF_SIZE - iStorageTaskListLen); - //ATaskTemplMan pTaskMan = GetTaskTemplMan(); - //pTaskMan.Release(); - //pTaskMan.LoadTasksFromPack("data\\tasks.data", true); - //pTaskMan.LoadNPCInfoFromPack("data\\task_npc.data"); - //pTaskMan.VerifyDynTasksPack("userdata\\dyn_tasks.data"); + //Debug.LogError("[Dat]- ") + ATaskTemplMan pTaskMan = GetTaskTemplMan(); + if (pTaskMan == null) + { + Debug.LogError("[Dat]- fail to create ATaskTemplMan"); + return false; + } + pTaskMan.Release(); + pTaskMan.LoadTasksFromPack("data\\tasks.data", true); + pTaskMan.LoadNPCInfoFromPack("data\\task_npc.data"); + pTaskMan.VerifyDynTasksPack("userdata\\dyn_tasks.data"); //InitActiveTaskList(); //m_bForceNavigateFinish = false; @@ -111,8 +124,7 @@ namespace PerfectWorld.Scripts.Task private ATaskTemplMan GetTaskTemplMan() { - //return g_pGame->GetTaskTemplateMan(); - return null; + return EC_Game.GetTaskTemplateMan(); } } }