Merge branch 'develop' into fix-bug/character-sound
This commit is contained in:
@@ -15,7 +15,7 @@ MonoBehaviour:
|
||||
m_DefaultGroup: 712e3991f28e549e7a56ee582a977810
|
||||
m_currentHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
Hash: b25883b8e3382431c6dfcc3aaedd1aaf
|
||||
m_OptimizeCatalogSize: 0
|
||||
m_BuildRemoteCatalog: 0
|
||||
m_CatalogRequestsTimeout: 0
|
||||
|
||||
@@ -15,6 +15,16 @@ MonoBehaviour:
|
||||
m_GroupName: Default Local Group
|
||||
m_GUID: 712e3991f28e549e7a56ee582a977810
|
||||
m_SerializeEntries:
|
||||
- m_GUID: 0a2f50f2fe381024996b30c94befd165
|
||||
m_Address: "InGame/\u5143\u795E.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 11d9820773784714ba7ed00226308680
|
||||
m_Address: "InGame/\u672A\u547D\u4E2D.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 1b653230886be4009808803501ad7d7f
|
||||
m_Address: Assets/PerfectWorld/SO/TaskTemplContainerSO.asset
|
||||
m_ReadOnly: 0
|
||||
@@ -30,16 +40,96 @@ MonoBehaviour:
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 2cea0a36514b40f4cbb2d93eb50fe97b
|
||||
m_Address: "InGame/\u7ECF\u9A8C.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 66d520355c8214d8ba4d37422bd27571
|
||||
m_Address: "InGame/GM\u6807\u5FD7.dds"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 766835429f2a89f408d4786a3aa06363
|
||||
m_Address: "InGame/\u514D\u75AB.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 7b66d105afe110341a51b5043be89f45
|
||||
m_Address: "InGame/\u590D\u4EC7\u60E9\u6212.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 82bf5409dc0e9f34a9c114853cd8ee8d
|
||||
m_Address: InGame/mp_warn.tga
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 8743a82a27870e5489e3bfca82cc3f0f
|
||||
m_Address: "InGame/\u91D1\u94B1.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 88e840e5dac12ed4383d994c7fadfef1
|
||||
m_Address: "\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u62F3\u5957\u51FB\u4E2D"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: 89a51fc0532e7c244bd25d996a480d1e
|
||||
m_Address: "InGame/\u72B6\u6001\u95EA\u907F.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: a7cdab13e3d9e6a4da14a7bb02481f35
|
||||
m_Address: "InGame/PK\u72B6\u6001\u6807\u8BB0.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: a81dab17b00ef4b4494a71ee88b10cc0
|
||||
m_Address: "\u7A0B\u5E8F\u8054\u5165/\u89D2\u8272\u5347\u7EA7\u4EBA\u7C7B.gfx"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: b0860cc78fedf454c8ebf35729998d70
|
||||
m_Address: "InGame/\u5931\u8D25.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: bd6cbd6a9c2ce8444a50a177bdfe77fd
|
||||
m_Address: "InGame/\u7206\u51FB.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: c1761dbd7108bf740a9fd5ee90d5e3de
|
||||
m_Address: "InGame/\u53CD\u9707.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: ed347377914b065488cf5b42d4e8b5ab
|
||||
m_Address: "InGame/\u5347\u7EA7\u4E86.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f55f5d3b9021e5d4daced587dbd48d9f
|
||||
m_Address: "InGame/\u6210\u529F.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: f635ebcab3287284bb9e206ea8e13d51
|
||||
m_Address: "InGame/\u590D\u4EC7\u955C\u50CF.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: fa244579aed36fa4187a0667d52ab84b
|
||||
m_Address: "InGame/\u5438\u8840.tga"
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
- m_GUID: fcbc44b68ce86c047bd67ea7a74d40c2
|
||||
m_Address: InGame/hp_warn.tga
|
||||
m_ReadOnly: 0
|
||||
m_SerializedLabels: []
|
||||
FlaggedDuringContentUpdateRestriction: 0
|
||||
m_ReadOnly: 0
|
||||
m_Settings: {fileID: 11400000, guid: 070edb522e6e54c14a99055900003890, type: 2}
|
||||
m_SchemaSet:
|
||||
|
||||
@@ -99,6 +99,18 @@ namespace BrewMonster
|
||||
/// <param name="idTargetOverride">Optional target ID to use instead of raycast (for second-click behavior) / 可选的目标ID,用于替代射线检测(用于第二次点击行为)</param>
|
||||
public void OnMsgLBtnClick(int idTargetOverride = 0)
|
||||
{
|
||||
// Interactive UI (buttons, fields, scrolls) consumes the click. Full-screen raycast panels alone do not.
|
||||
// When a non-HUD dialog is open, block world interaction entirely (terrain/NPC/matter) until it is closed.
|
||||
if (idTargetOverride == 0)
|
||||
{
|
||||
if (CECUIManager.IsPointerOverInteractiveUI())
|
||||
return;
|
||||
|
||||
var uiMan = EC_Game.GetGameRun()?.GetUIManager();
|
||||
if (uiMan != null && uiMan.IsWorldInteractionBlockedByUI())
|
||||
return;
|
||||
}
|
||||
|
||||
// 停止自动策略 / Stop auto policy
|
||||
// Note: Auto policy check would go here if implemented
|
||||
|
||||
|
||||
@@ -2402,14 +2402,11 @@ namespace BrewMonster.UI
|
||||
}
|
||||
else if (iService == CDLGNPC.CDLGNPC_PETHATCH && (pEssence?.combined_services & 0x200) != 0)
|
||||
{
|
||||
// Pop NPC from UI stack first (avoids double hide/pop with _maxStack=1), then hatch + inventory like legacy client.
|
||||
//CloseDialogue();
|
||||
// TO DO: fix later
|
||||
//GetGameUIMan().m_pDlgInventory.Show(true);
|
||||
//GetGameUIMan().m_pDlgPetHatch.Show(true);
|
||||
//var dlgPetHatch = GetGameUIMan().GetDialog("DlgPetHatch");
|
||||
//dlgPetHatch.Show(true);
|
||||
|
||||
CECUIManager.Instance.ShowUI("DlgPetHatch");
|
||||
//if (CECUIManager.Instance.ShowUI("DlgPetHatch") != null)
|
||||
// GetGameUIMan().GetDialog("Win_Inventory")?.Show(true);
|
||||
return;
|
||||
}
|
||||
else if (iService == CDLGNPC.CDLGNPC_PETREC && (pEssence?.combined_services & 0x400) != 0)
|
||||
@@ -3213,53 +3210,53 @@ namespace BrewMonster.UI
|
||||
id_dialog = (int)pService.id_dialog;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_BUY;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_REPAIR_SERVICE)
|
||||
{
|
||||
NPC_REPAIR_SERVICE pService = (NPC_REPAIR_SERVICE)pData;
|
||||
id_dialog = (int)pService.id_dialog;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_REPAIR;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_INSTALL_SERVICE)
|
||||
{
|
||||
NPC_INSTALL_SERVICE pService = (NPC_INSTALL_SERVICE)pData;
|
||||
id_dialog = (int)pService.id_dialog;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_INSTALL;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_UNINSTALL_SERVICE)
|
||||
{
|
||||
NPC_UNINSTALL_SERVICE pService = (NPC_UNINSTALL_SERVICE)pData;
|
||||
id_dialog = (int)pService.id_dialog;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_UNINSTALL;
|
||||
}
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_REPAIR_SERVICE)
|
||||
// {
|
||||
// NPC_REPAIR_SERVICE pService = (NPC_REPAIR_SERVICE)pData;
|
||||
// id_dialog = (int)pService.id_dialog;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_REPAIR;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_INSTALL_SERVICE)
|
||||
// {
|
||||
// NPC_INSTALL_SERVICE pService = (NPC_INSTALL_SERVICE)pData;
|
||||
// id_dialog = (int)pService.id_dialog;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_INSTALL;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_UNINSTALL_SERVICE)
|
||||
// {
|
||||
// NPC_UNINSTALL_SERVICE pService = (NPC_UNINSTALL_SERVICE)pData;
|
||||
// id_dialog = (int)pService.id_dialog;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_UNINSTALL;
|
||||
// }
|
||||
else if (DataType == DATA_TYPE.DT_NPC_SKILL_SERVICE)
|
||||
{
|
||||
NPC_SKILL_SERVICE pService = (NPC_SKILL_SERVICE)pData;
|
||||
id_dialog = (int)pService.id_dialog;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_SKILL;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_HEAL_SERVICE)
|
||||
{
|
||||
NPC_HEAL_SERVICE pService = (NPC_HEAL_SERVICE)pData;
|
||||
id_dialog = (int)pService.id_dialog;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_HEAL;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_TRANSMIT_SERVICE)
|
||||
{
|
||||
NPC_TRANSMIT_SERVICE pService = (NPC_TRANSMIT_SERVICE)pData;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_TRANSMIT;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_TRANSPORT_SERVICE)
|
||||
{
|
||||
NPC_TRANSPORT_SERVICE pService = (NPC_TRANSPORT_SERVICE)pData;
|
||||
id_dialog = (int)pService.id_dialog;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_TRANSPORT;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_PROXY_SERVICE)
|
||||
{
|
||||
NPC_PROXY_SERVICE pService = (NPC_PROXY_SERVICE)pData;
|
||||
id_dialog = (int)pService.id_dialog;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_PROXY;
|
||||
}
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_HEAL_SERVICE)
|
||||
// {
|
||||
// NPC_HEAL_SERVICE pService = (NPC_HEAL_SERVICE)pData;
|
||||
// id_dialog = (int)pService.id_dialog;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_HEAL;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_TRANSMIT_SERVICE)
|
||||
// {
|
||||
// NPC_TRANSMIT_SERVICE pService = (NPC_TRANSMIT_SERVICE)pData;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_TRANSMIT;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_TRANSPORT_SERVICE)
|
||||
// {
|
||||
// NPC_TRANSPORT_SERVICE pService = (NPC_TRANSPORT_SERVICE)pData;
|
||||
// id_dialog = (int)pService.id_dialog;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_TRANSPORT;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_PROXY_SERVICE)
|
||||
// {
|
||||
// NPC_PROXY_SERVICE pService = (NPC_PROXY_SERVICE)pData;
|
||||
// id_dialog = (int)pService.id_dialog;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_PROXY;
|
||||
// }
|
||||
/*else if (DataType == DATA_TYPE.DT_NPC_STORAGE_SERVICE)
|
||||
{
|
||||
NPC_STORAGE_SERVICE pService = (NPC_STORAGE_SERVICE)pData;
|
||||
@@ -3295,21 +3292,21 @@ namespace BrewMonster.UI
|
||||
|
||||
idFunction = (int)SERVICE_TYPE.NPC_DECOMPOSE;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_IDENTIFY_SERVICE)
|
||||
{
|
||||
NPC_IDENTIFY_SERVICE pService = (NPC_IDENTIFY_SERVICE)pData;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_IDENTIFY;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_WAR_TOWERBUILD_SERVICE)
|
||||
{
|
||||
NPC_WAR_TOWERBUILD_SERVICE pService = (NPC_WAR_TOWERBUILD_SERVICE)pData;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_WAR_TOWERBUILD;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_RESETPROP_SERVICE)
|
||||
{
|
||||
NPC_RESETPROP_SERVICE pService = (NPC_RESETPROP_SERVICE)pData;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_RESETPROP;
|
||||
}
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_IDENTIFY_SERVICE)
|
||||
// {
|
||||
// NPC_IDENTIFY_SERVICE pService = (NPC_IDENTIFY_SERVICE)pData;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_IDENTIFY;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_WAR_TOWERBUILD_SERVICE)
|
||||
// {
|
||||
// NPC_WAR_TOWERBUILD_SERVICE pService = (NPC_WAR_TOWERBUILD_SERVICE)pData;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_WAR_TOWERBUILD;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_RESETPROP_SERVICE)
|
||||
// {
|
||||
// NPC_RESETPROP_SERVICE pService = (NPC_RESETPROP_SERVICE)pData;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_RESETPROP;
|
||||
// }
|
||||
else if (DataType == DATA_TYPE.DT_NPC_PETNAME_SERVICE)
|
||||
{
|
||||
NPC_PETNAME_SERVICE pService = (NPC_PETNAME_SERVICE)pData;
|
||||
@@ -3325,26 +3322,26 @@ namespace BrewMonster.UI
|
||||
NPC_PETFORGETSKILL_SERVICE pService = (NPC_PETFORGETSKILL_SERVICE)pData;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_PETFORGETSKILL;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_EQUIPBIND_SERVICE)
|
||||
{
|
||||
NPC_EQUIPBIND_SERVICE pService = (NPC_EQUIPBIND_SERVICE)pData;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_EQUIPBIND;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_EQUIPDESTROY_SERVICE)
|
||||
{
|
||||
NPC_EQUIPDESTROY_SERVICE pService = (NPC_EQUIPDESTROY_SERVICE)pData;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_EQUIPDESTROY;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_EQUIPUNDESTROY_SERVICE)
|
||||
{
|
||||
NPC_EQUIPUNDESTROY_SERVICE pService = (NPC_EQUIPUNDESTROY_SERVICE)pData;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_EQUIPUNDESTROY;
|
||||
}
|
||||
else if (DataType == DATA_TYPE.DT_NPC_ENGRAVE_SERVICE)
|
||||
{
|
||||
NPC_ENGRAVE_SERVICE pService = (NPC_ENGRAVE_SERVICE)pData;
|
||||
idFunction = (int)SERVICE_TYPE.NPC_ENGRAVE;
|
||||
}
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_EQUIPBIND_SERVICE)
|
||||
// {
|
||||
// NPC_EQUIPBIND_SERVICE pService = (NPC_EQUIPBIND_SERVICE)pData;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_EQUIPBIND;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_EQUIPDESTROY_SERVICE)
|
||||
// {
|
||||
// NPC_EQUIPDESTROY_SERVICE pService = (NPC_EQUIPDESTROY_SERVICE)pData;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_EQUIPDESTROY;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_EQUIPUNDESTROY_SERVICE)
|
||||
// {
|
||||
// NPC_EQUIPUNDESTROY_SERVICE pService = (NPC_EQUIPUNDESTROY_SERVICE)pData;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_EQUIPUNDESTROY;
|
||||
// }
|
||||
// else if (DataType == DATA_TYPE.DT_NPC_ENGRAVE_SERVICE)
|
||||
// {
|
||||
// NPC_ENGRAVE_SERVICE pService = (NPC_ENGRAVE_SERVICE)pData;
|
||||
// idFunction = (int)SERVICE_TYPE.NPC_ENGRAVE;
|
||||
// }
|
||||
else if (DataType == DATA_TYPE.DT_NPC_RANDPROP_SERVICE)
|
||||
{
|
||||
NPC_RANDPROP_SERVICE pService = (NPC_RANDPROP_SERVICE)pData;
|
||||
@@ -3471,27 +3468,27 @@ namespace BrewMonster.UI
|
||||
// pShow1 = m_pAUIManager.GetDialog("Win_WorldMapTravel");
|
||||
//((CDlgWorldMap*)pShow1).BuildTravelMap(DT_NPC_TRANSMIT_SERVICE, pData);
|
||||
}
|
||||
else if (idFunction == (int)SERVICE_TYPE.NPC_SKILL)
|
||||
{
|
||||
//string strText = m_pLst_Main.GetText(m_pLst_Main.GetCurSel());
|
||||
//string strHead = GetStringFromTable(249);
|
||||
//string strComp = (strHead + GetStringFromTable(7107));
|
||||
//if (0 == a_stricmp(strText, strComp))
|
||||
//{
|
||||
// pShow1 = m_pAUIManager.GetDialog("Win_ELFLearn");
|
||||
// ((CDlgELFLearn*)pShow1).SetNPCName(pCurNPCEssence.name);
|
||||
// pShow2 = m_pAUIManager.GetDialog("Win_Inventory");
|
||||
// GetHostPlayer().PrepareNPCService(iService);
|
||||
// pShow1.SetData(DT_NPC_SKILL_SERVICE);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// pShow1 = m_pAUIManager.GetDialog("Win_Teach");
|
||||
// GetHostPlayer().PrepareNPCService(iService);
|
||||
// pShow1.SetData(DT_NPC_SKILL_SERVICE);
|
||||
// GetGameUIMan().UpdateTeach(0);
|
||||
//}
|
||||
}
|
||||
// else if (idFunction == (int)SERVICE_TYPE.NPC_SKILL)
|
||||
// {
|
||||
// //string strText = m_pLst_Main.GetText(m_pLst_Main.GetCurSel());
|
||||
// //string strHead = GetStringFromTable(249);
|
||||
// //string strComp = (strHead + GetStringFromTable(7107));
|
||||
// //if (0 == a_stricmp(strText, strComp))
|
||||
// //{
|
||||
// // pShow1 = m_pAUIManager.GetDialog("Win_ELFLearn");
|
||||
// // ((CDlgELFLearn*)pShow1).SetNPCName(pCurNPCEssence.name);
|
||||
// // pShow2 = m_pAUIManager.GetDialog("Win_Inventory");
|
||||
// // GetHostPlayer().PrepareNPCService(iService);
|
||||
// // pShow1.SetData(DT_NPC_SKILL_SERVICE);
|
||||
// //}
|
||||
// //else
|
||||
// //{
|
||||
// // pShow1 = m_pAUIManager.GetDialog("Win_Teach");
|
||||
// // GetHostPlayer().PrepareNPCService(iService);
|
||||
// // pShow1.SetData(DT_NPC_SKILL_SERVICE);
|
||||
// // GetGameUIMan().UpdateTeach(0);
|
||||
// //}
|
||||
// }
|
||||
else if (idFunction == (int)SERVICE_TYPE.NPC_MAKE)
|
||||
{
|
||||
NPC_MAKE_SERVICE pMake = (NPC_MAKE_SERVICE)pData;
|
||||
|
||||
@@ -385,9 +385,9 @@ namespace BrewMonster.UI
|
||||
GetHostPlayer().HatchPet(m_nSlot);
|
||||
SetDataPtr(null, "");
|
||||
GetGameUIMan().EndNPCService();
|
||||
Show(false);
|
||||
GetGameUIMan().GetDialog("Win_Inventory")?.Show(false);
|
||||
GetHostPlayer().GetPack(Inventory_type.IVTRTYPE_PACK).UnfreezeAllItems();
|
||||
CloseDialogue();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,8 +396,9 @@ namespace BrewMonster.UI
|
||||
RestoreInventoryColor();
|
||||
ClearEgg();
|
||||
GetGameUIMan().EndNPCService();
|
||||
Show(false);
|
||||
GetGameUIMan().GetDialog("Win_Inventory")?.Show(false);
|
||||
GetHostPlayer().GetPack(Inventory_type.IVTRTYPE_PACK).UnfreezeAllItems();
|
||||
CloseDialogue();
|
||||
}
|
||||
|
||||
//public void SetEgg(EC_IvtrItem pItem, int nSlot)
|
||||
@@ -458,7 +459,8 @@ namespace BrewMonster.UI
|
||||
}
|
||||
|
||||
SetEggInternal(selectedEgg, selectedSlot);
|
||||
m_itemInfo.SetActive(false);
|
||||
if (m_itemInfo != null)
|
||||
m_itemInfo.SetActive(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -209,7 +209,8 @@ namespace BrewMonster.UI
|
||||
ClearPet();
|
||||
UpdatePetSlotUI();
|
||||
GetGameUIMan()?.EndNPCService();
|
||||
Show(false);
|
||||
//Show(false);
|
||||
CloseDialogue();
|
||||
//GetGameUIMan()->m_pDlgPetList->Show(false);
|
||||
}
|
||||
}
|
||||
@@ -368,7 +369,8 @@ namespace BrewMonster.UI
|
||||
{
|
||||
ClearPet();
|
||||
GetGameUIMan()?.EndNPCService();
|
||||
Show(false);
|
||||
CloseDialogue();
|
||||
//Show(false);
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
|
||||
@@ -84,6 +84,13 @@ public class pickupItem : MonoBehaviour
|
||||
// Check for mouse clicks on cubes
|
||||
if (Input.GetMouseButtonDown(0))
|
||||
{
|
||||
if (CECUIManager.IsPointerOverInteractiveUI())
|
||||
return;
|
||||
|
||||
var uiMan = EC_Game.GetGameRun()?.GetUIManager();
|
||||
if (uiMan != null && uiMan.IsWorldInteractionBlockedByUI())
|
||||
return;
|
||||
|
||||
HandleCubeClick();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ using BrewMonster.Scripts.Managers;
|
||||
using BrewMonster.Scripts.Task.UI;
|
||||
using BrewMonster.Scripts.UI;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
|
||||
public class CECUIManager : MonoSingleton<CECUIManager>
|
||||
@@ -366,6 +368,74 @@ public class CECUIManager : MonoSingleton<CECUIManager>
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Dialog names on <see cref="_uiStack"/> that are normal gameplay HUD and must NOT block world raycasts
|
||||
/// (the stack always has at least <c>Win_Hpmpxp</c> after <see cref="Awake"/>).
|
||||
/// </summary>
|
||||
private static readonly HashSet<string> HudStackDialogNames = new HashSet<string>(StringComparer.Ordinal)
|
||||
{
|
||||
"Win_Hpmpxp",
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Returns true when a modal / non-HUD dialog is open and world clicks should be ignored.
|
||||
/// </summary>
|
||||
public bool IsWorldInteractionBlockedByUI()
|
||||
{
|
||||
if (_uiStack == null || _uiStack.Count == 0)
|
||||
return false;
|
||||
|
||||
foreach (var name in _uiStack)
|
||||
{
|
||||
if (string.IsNullOrEmpty(name))
|
||||
continue;
|
||||
if (!HudStackDialogNames.Contains(name))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// True when the pointer hits UI that should consume the click (buttons, fields, scroll views).
|
||||
/// Unlike <see cref="EventSystem.IsPointerOverGameObject"/>, full-screen Images/Text with raycast
|
||||
/// but no interactive control do not block — so clicks can reach the world for NPC selection.
|
||||
/// </summary>
|
||||
public static bool IsPointerOverInteractiveUI()
|
||||
{
|
||||
var es = EventSystem.current;
|
||||
if (es == null)
|
||||
return false;
|
||||
|
||||
Vector2 pos = Input.mousePosition;
|
||||
if (Input.touchCount > 0)
|
||||
pos = Input.GetTouch(0).position;
|
||||
|
||||
var ped = new PointerEventData(es) { position = pos };
|
||||
var results = new List<RaycastResult>();
|
||||
es.RaycastAll(ped, results);
|
||||
if (results.Count == 0)
|
||||
return false;
|
||||
|
||||
foreach (var r in results)
|
||||
{
|
||||
var go = r.gameObject;
|
||||
if (go == null)
|
||||
continue;
|
||||
|
||||
if (go.GetComponentInParent<Selectable>() != null)
|
||||
return true;
|
||||
if (go.GetComponentInParent<TMP_InputField>() != null)
|
||||
return true;
|
||||
if (go.GetComponentInParent<InputField>() != null)
|
||||
return true;
|
||||
if (go.GetComponentInParent<ScrollRect>() != null)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// public CDlgMessageBox ShowMessageBox(MessageBoxData messageBoxData)
|
||||
// {
|
||||
// var msgBox = GetInGameUIMan().GetDialog("DlgMessageBox") as CDlgMessageBox;
|
||||
|
||||
Reference in New Issue
Block a user