From b2865aa711abef93cf2e84fbe6bb33d6d4ae021d Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期三, 22 五月 2019 11:51:49 +0800
Subject: [PATCH] 3644 【2.0】【bug】跨服灵草园采集出错
---
Fight/GameActor/GA_NpcCollect.cs | 15 +++++++++++++++
System/MainInterfacePanel/MainCollectBehaviour.cs | 11 ++---------
Fight/PrepareHandler.cs | 6 ------
3 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/Fight/GameActor/GA_NpcCollect.cs b/Fight/GameActor/GA_NpcCollect.cs
index f02d35c..f46a9e6 100644
--- a/Fight/GameActor/GA_NpcCollect.cs
+++ b/Fight/GameActor/GA_NpcCollect.cs
@@ -301,6 +301,21 @@
}
PrepareHandler.Instance.Leave(this);
+
+ GA_Hero _hero = PlayerDatas.Instance.hero;
+ if (_hero != null)
+ {
+ if (_hero.SelectTarget != null && ServerInstID == _hero.SelectTarget.ServerInstID)
+ {
+ SelectionManager.Release(SelectionManager.E_Type.Green);
+ _hero.SelectTarget = null;
+ }
+
+ if (_hero.LockTarget == this)
+ {
+ _hero.LockTarget = null;
+ }
+ }
}
public override bool CanBeSelected()
diff --git a/Fight/PrepareHandler.cs b/Fight/PrepareHandler.cs
index 74cf798..5ad5a9f 100644
--- a/Fight/PrepareHandler.cs
+++ b/Fight/PrepareHandler.cs
@@ -96,12 +96,6 @@
public void HandleCallback(E_NpcType type, int npcID, uint sid)
{
- var _target = GAMgr.Instance.GetBySID(sid);
- if (!(_target is GA_NpcCollect))
- {
- return;
- }
-
var _hero = PlayerDatas.Instance.hero;
if (_hero != null)
{
diff --git a/System/MainInterfacePanel/MainCollectBehaviour.cs b/System/MainInterfacePanel/MainCollectBehaviour.cs
index f10cc10..5bbc4d6 100644
--- a/System/MainInterfacePanel/MainCollectBehaviour.cs
+++ b/System/MainInterfacePanel/MainCollectBehaviour.cs
@@ -82,15 +82,8 @@
{
if (collectNpcId != 0 && serverInstanceId != 0)
{
- var _npc = GAMgr.Instance.GetBySID(serverInstanceId);
- if (_npc is GA_NpcCollect)
- {
- PrepareHandler.Instance.HandleCallback(E_NpcType.Collect, collectNpcId, serverInstanceId);
- }
- else if (_npc is GA_NpcClientCollect)
- {
- ClientCollectUtility.HandleCallback(E_NpcType.Collect, collectNpcId, serverInstanceId);
- }
+ PrepareHandler.Instance.HandleCallback(E_NpcType.Collect, collectNpcId, serverInstanceId);
+ ClientCollectUtility.HandleCallback(E_NpcType.Collect, collectNpcId, serverInstanceId);
// NPCInteractProcessor.InvokeEvent(E_NpcType.Collect, collectNpcId, serverInstanceId);
}
}
--
Gitblit v1.8.0