少年修仙传客户端代码仓库
client_Hale
2019-04-09 ccaf79ac3d2bfe9e5aa7d28873b738c96499e776
382 奇遇场景 创建NPC. 触发对话逻辑
4个文件已修改
47 ■■■■■ 已修改文件
Fight/GameActor/GA_NpcClientFunc.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/MapTransferUtility.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/AdventureStage.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralDefine.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcClientFunc.cs
@@ -96,6 +96,10 @@
                    }
                }
            }
            else if (AdventureStage.Instance.IsInAdventureStage)
            {
                NPCInteractProcessor.InvokeEvent(E_NpcType.Func, NpcConfig.NPCID, ServerInstID);
            }
        }
    }
Fight/MapTransferUtility.cs
@@ -268,6 +268,16 @@
        var _curStage = StageLoad.Instance.currentStage as DungeonStage;
        if (AdventureStage.Instance.IsInAdventureStage)
        {
            GActor _actor = GAMgr.Instance.GetCloserNPC(_hero.Pos, NpcID);
            if (_actor != null)
            {
                MoveToExistNpc(NpcID, _actor);
                yield break;
            }
        }
        // 判断是否能够得到到达指定点
        // 获取NPC位置数据
        GAStaticDefine.NPCLocation _npcLocation;
Fight/Stage/Dungeon/AdventureStage.cs
@@ -8,6 +8,7 @@
    public bool IsInAdventureStage { get; private set; }
    private Vector3 m_CacheHeroPos;
    private GA_NpcClientFunc m_Npc;
    public void Enter()
    {
@@ -39,10 +40,18 @@
        CameraController.Instance.Apply();
        yield return null;
        WindowCenter.Instance.Close<LoadingWin>();
        m_Npc = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientFunc>(10904012, E_ActorGroup.FuncNpc);
        m_Npc.Pos = new Vector3(189.101f, 62.47324f, 26.147f);
        NPCInteractProcessor.s_NpcInteractEvent -= OnNpcTalkEvent;
        NPCInteractProcessor.s_NpcInteractEvent += OnNpcTalkEvent;
    }
    private IEnumerator _Exit()
    {
        NPCInteractProcessor.s_NpcInteractEvent -= OnNpcTalkEvent;
        GAMgr.Instance.ServerDie(m_Npc.ServerInstID);
        GAMgr.Instance.Release(m_Npc);
        WindowCenter.Instance.Open<LoadingWin>();
        var _async = SceneManager.UnloadSceneAsync("Map000_Xsdt");
        yield return _async;
@@ -59,4 +68,19 @@
        yield return null;
        WindowCenter.Instance.Close<LoadingWin>();
    }
    private void OnNpcTalkEvent(E_NpcType type, int npcid, uint sid)
    {
        if (E_NpcType.Func == type)
        {
            if (m_Npc != null)
            {
                if (m_Npc.NpcConfig.NPCID == npcid
                 && m_Npc.ServerInstID == sid)
                {
                    Debug.Log("触发了谈话....");
                }
            }
        }
    }
}
System/GeneralConfig/GeneralDefine.cs
@@ -191,6 +191,7 @@
    public static int mainWinTopCloseTime { get; private set; }
    public static List<int> equipDecomposeScreen = new List<int>();
    public static Dictionary<int, float> AtkTypeIncreasePushDis = new Dictionary<int, float>();
    public static void Init()
    {
@@ -760,6 +761,14 @@
            mainWinTopCloseTime = GetInt("AutomaticSwitch");
            equipDecomposeScreen.AddRange(GetIntArray("EquipDecomposeScreen", 2));
            func = FuncConfigConfig.Get("AtkTypeIncreasePushDis");
            var _ks = func.Numerical1.Split('|');
            var _vs = func.Numerical2.Split('|');
            for (i = 0; i < _ks.Length; ++i)
            {
                AtkTypeIncreasePushDis[int.Parse(_ks[i])] = int.Parse(_vs[i]) * Constants.F_DELTA;
            }
        }
        catch (Exception ex)
        {