fix bug move to select character scene then enter world again then player can't learn new skills
This commit is contained in:
@@ -176,12 +176,14 @@ namespace BrewMonster.Scripts.Skills
|
||||
//BMLogger.LogError("ProcessServiceList npcList.count:" + npcList.count);
|
||||
//BMLogger.LogError("ProcessServiceList m_allProfNPCs.count:" + m_allProfNPCs.Count);
|
||||
int i;
|
||||
bool sawProfSkillNpcInList = false;
|
||||
for (i = 0; i < npcList.count; i++)
|
||||
{
|
||||
int tid = npcList.list[i].tid;
|
||||
//BMLogger.LogError("ProcessServiceList tid:" + tid);
|
||||
if (m_allProfNPCs.Contains(tid))
|
||||
{
|
||||
sawProfSkillNpcInList = true;
|
||||
//BMLogger.LogError("m_skillLearnNPCNID : " + m_skillLearnNPCNID);
|
||||
//BMLogger.LogError("npcList.list[i].nid : " + npcList.list[i].nid);
|
||||
if (m_skillLearnNPCNID != npcList.list[i].nid)
|
||||
@@ -193,17 +195,25 @@ namespace BrewMonster.Scripts.Skills
|
||||
//NotifyObservers(change);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Same trainer instance as before — still refresh service skills (re-enter world / list refresh).
|
||||
SetCurServiceSkills(tid);
|
||||
var change = new CECSkillPanelChange(CECSkillPanelChange.enumChangeMask.CHANGE_SKILL_NPC, 0, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (i == npcList.count && m_skillLearnNPCNID != 0)
|
||||
if (i == npcList.count && m_skillLearnNPCNID != 0 && !sawProfSkillNpcInList)
|
||||
{
|
||||
m_skillLearnNPCNID = 0;
|
||||
SetCurServiceSkills(0);
|
||||
var change = new CECSkillPanelChange(CECSkillPanelChange.enumChangeMask.CHANGE_SKILL_NPC, 0, 0);
|
||||
//NotifyObservers(change);
|
||||
}
|
||||
m_npcListData.Clear();
|
||||
// Do not Clear m_npcListData: Initialize() may run ProcessServiceList again after Release();
|
||||
// clearing here left npcDataSize 0 on world re-entry. New packets replace m_npcListData in RecvNPCServiceList.
|
||||
}
|
||||
//BMLogger.LogError("HoangDev: m_npcListData.Size :"+ m_npcListData.Size);
|
||||
|
||||
@@ -320,10 +330,8 @@ namespace BrewMonster.Scripts.Skills
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
ProcessServiceList();
|
||||
}
|
||||
|
||||
ProcessServiceList();
|
||||
}
|
||||
private void InitSkillTreeRootMap(IEnumerable<int> rootSkills)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@ using BrewMonster.Scripts.Skills;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
|
||||
namespace BrewMonster.UI
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
@@ -129,7 +129,7 @@ namespace BrewMonster.UI
|
||||
{
|
||||
CreateOneRankDlg(taoistRank);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// ��ʼ�����������ڶԻ���һ���Է�����ڴ� / Initialize rank sub-dialogs once to avoid realloc
|
||||
@@ -214,7 +214,7 @@ namespace BrewMonster.UI
|
||||
CDlgSkillSubListItem subListItem = pSub;
|
||||
if(subListItem == null )
|
||||
{
|
||||
BMLogger.LogError("HoangDev: UpdateOneSubDlg subListItem is null for skillID " + skillID);
|
||||
// BMLogger.LogError("HoangDev: UpdateOneSubDlg subListItem is null for skillID " + skillID);
|
||||
return;
|
||||
}
|
||||
subListItem.UpdateSkill(skillID);
|
||||
|
||||
Reference in New Issue
Block a user