fix bug mege

This commit is contained in:
VDH
2025-11-24 11:10:38 +07:00
parent 1e34f48215
commit 6b7537ca3e
2 changed files with 129 additions and 0 deletions
+125
View File
@@ -2126,6 +2126,131 @@ namespace BrewMonster
return true;
}
public void PrepareNPCService(int idSev)
{
if (!GPDataTypeHelper.ISNPCID(m_idSevNPC))
{
return;
}
DATA_TYPE DataType = new DATA_TYPE();
object pBuf = ElementDataManProvider.GetElementDataMan().get_data_ptr((uint)idSev, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
switch (DataType)
{
case DATA_TYPE.DT_NPC_TALK_SERVICE:
break;
case DATA_TYPE.DT_NPC_SELL_SERVICE:
case DATA_TYPE.DT_NPC_BUY_SERVICE:
{
//// Get NPC's tex rate
//float fScale = 1.0f;
//CECNPC pNPC = EC_ManMessageMono.Instance._CECNPCMan.GetNPC(m_idSevNPC);
//if (pNPC && pNPC.IsServerNPC())
//{
// CECNPCServer pServer = (CECNPCServer)pNPC;
// fScale = (1.0f + pServer.GetTaxRate()) * pServer.GetPriceScale();
//}
//// Fill NPC package
//NPC_SELL_SERVICE pData = (NPC_SELL_SERVICE)pBuf;
//int[] id_goods = new int[InventoryConst.IVTRSIZE_NPCPACK];
//for (int j = 0; j < InventoryConst.NUM_NPCIVTR; j++)
//{
// for (int i = 0; i < InventoryConst.IVTRSIZE_NPCPACK; ++i)
// id_goods[i] = (int)pData.pages[j].goods[i].id;
// FillNPCPack(j, pData.pages[j].page_title, id_goods, fScale, false);
//}
//// Clear packs
//m_pBuyPack.RemoveAllItems();
//m_pSellPack.RemoveAllItems();
break;
}
case DATA_TYPE.DT_NPC_SKILL_SERVICE:
case DATA_TYPE.DT_NPC_PETLEARNSKILL_SERVICE:
{
//CECNPC pNPC = EC_ManMessageMono.Instance._CECNPCMan.GetNPC(m_idSevNPC);
//if (!pNPC || !pNPC.IsServerNPC())
//{
// return;
//}
//if (DataType == DATA_TYPE.DT_NPC_SKILL_SERVICE)
// ((CECNPCServer)pNPC).BuildSkillList(idSev);
//else
// ((CECNPCServer)pNPC).BuildPetSkillList();
break;
}
case DATA_TYPE.DT_NPC_REPAIR_SERVICE:
case DATA_TYPE.DT_NPC_INSTALL_SERVICE:
case DATA_TYPE.DT_NPC_UNINSTALL_SERVICE:
case DATA_TYPE.DT_NPC_TASK_IN_SERVICE:
case DATA_TYPE.DT_NPC_TASK_OUT_SERVICE:
case DATA_TYPE.DT_NPC_TASK_MATTER_SERVICE:
case DATA_TYPE.DT_NPC_HEAL_SERVICE:
case DATA_TYPE.DT_NPC_TRANSMIT_SERVICE:
case DATA_TYPE.DT_NPC_TRANSPORT_SERVICE:
case DATA_TYPE.DT_NPC_PROXY_SERVICE:
case DATA_TYPE.DT_NPC_STORAGE_SERVICE:
case DATA_TYPE.DT_NPC_DECOMPOSE_SERVICE:
case DATA_TYPE.DT_NPC_PETNAME_SERVICE:
case DATA_TYPE.DT_NPC_PETFORGETSKILL_SERVICE:
break;
case DATA_TYPE.DT_NPC_MAKE_SERVICE:
{
//// Fill NPC package
//NPC_MAKE_SERVICE pData = (NPC_MAKE_SERVICE)pBuf;
//for (int j = 0; j < NUM_NPCIVTR; j++)
// FillNPCPack(j, pData.pages[j].page_title, pData.pages[j].id_goods, 1.0f, true);
//// Clear deal pack
//m_pDealPack.RemoveAllItems();
break;
}
case DATA_TYPE.DT_NPC_RANDPROP_SERVICE:
{
//NPC_RANDPROP_SERVICE* pData = (NPC_RANDPROP_SERVICE*)pBuf;
//elementdataman* pDataMan = g_pGame.GetElementDataMan();
//// Fill equip data into NPC pack
//ASSERT(sizeof(pData.pages) / sizeof(pData.pages[0]) == NUM_NPCIVTR );
//for (int j = 0; j < NUM_NPCIVTR; j++)
//{
// unsigned int id_recipe = pData.pages[j].id_recipe;
// DATA_TYPE dt = DT_INVALID;
// RANDPROP_ESSENCE* pRecipe = (RANDPROP_ESSENCE*)pDataMan.get_data_ptr(id_recipe, ID_SPACE_RECIPE, dt);
// if (pRecipe && dt == DT_RANDPROP_ESSENCE)
// {
// FillNPCPack(j, pData.pages[j].page_title, (int*)pRecipe.equip_id, 1.0f, false);
// }
// else
// {
// // skip the invalid recipe id
// GetNPCSevPack(j).RemoveAllItems();
// GetNPCSevPack(j).SetName(_AL(""));
// }
//}
//// Clear deal pack
//m_pDealPack.RemoveAllItems();
break;
}
}
}
public EC_Inventory GetPack() { return m_packInventory; }
private void LogInventoryPacket(string tag, byte[] buffer, int hostId)
{
if (buffer == null)
@@ -0,0 +1,4 @@
{
"PlayerTags": [],
"version": "1.6.1"
}