add ecgame

This commit is contained in:
NguyenVanDat
2025-09-26 09:49:01 +07:00
parent ee1fb53efc
commit 2bde66e602
7 changed files with 129 additions and 11 deletions
Binary file not shown.
@@ -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<InventoryItem> inventoryData)
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7c78d146782232847ac2e4a6cec64dbf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+36
View File
@@ -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
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: e9b6b5b70c94a5c4e9dbaa1b2e1c323c
+63 -4
View File
@@ -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<ulong, ATaskTempl> m_DeathTrigMap = new Dictionary<ulong, ATaskTempl>();
private Dictionary<ulong, ATaskTempl> m_PQTemplMap = new Dictionary<ulong, ATaskTempl>();
private Dictionary<uint, uint> m_StorageEssenseMap = new Dictionary<uint, uint>();
private Dictionary<uint, uint> m_WeightEssenseMap = new Dictionary<uint, uint>();
private Dictionary<int, int> m_StorageTaskMap = new Dictionary<int, int>();
private List<ATaskTempl> m_SkillTaskLst = new List<ATaskTempl>();
private List<ATaskTempl> m_TmLmtChkLst = new List<ATaskTempl>();
@@ -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;
}
}
}
+19 -7
View File
@@ -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();
}
}
}