static int _m_FireTouchEvent(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); NpcPlayer __cl_gen_to_be_invoked = (NpcPlayer)translator.FastGetCSObj(L, 1); try { { bool __cl_gen_ret = __cl_gen_to_be_invoked.FireTouchEvent( ); LuaAPI.lua_pushboolean(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } }
public bool GoToNpcPos(uint mapId, uint npcId, Task relateTask, uint npcExcelId = 0) { Actor localPlayer = Game.Instance.GetLocalPlayer(); if (localPlayer == null) { return(false); } if (localPlayer.IsDead() == true) { return(false); } InstanceManager.Instance.IsAutoFighting = false; mCounter++; mTargetPathNodes.Clear(); RunningTargetPathNode = null; if (mapId == SceneHelp.Instance.CurSceneID) { NpcPlayer targetNpc = null; if (relateTask != null && relateTask.CurrentGoal == GameConst.GOAL_INTERACT) { targetNpc = NpcManager.Instance.GetNpcByNpcExcelId(npcExcelId); } if (targetNpc == null) { targetNpc = NpcManager.Instance.GetNpcByNpcId(npcId); } NpcManager.Instance.NavigatingNpcId = npcId; if (targetNpc != null) { if (targetNpc.IsLocalPlayerCloseEnoughToEnter) { bool touchRet = targetNpc.FireTouchEvent(); NpcManager.Instance.NavigatingNpcId = 0; if (touchRet == true) { return(true); } } } TargetPathNode path = new TargetPathNode(); path.SceneId = SceneHelp.Instance.CurSceneID; path.LineId = SceneHelp.Instance.CurLine; path.TargetNpcId = npcId; path.RelateTask = relateTask; mTargetPathNodes.AddLast(path); return(true); } else { //TriggerCollider targetTrigger = TriggerManager.Instance.GetShortestPortalTrigger(mapId); //if(targetTrigger == null) //{ // targetTrigger = TriggerManager.Instance.GetShortestPortalTrigger(0); //} //if (targetTrigger != null) //{ // TargetPathNode path = new TargetPathNode(); // path.SceneId = SceneHelp.Instance.CurSceneID; // path.TargetTriggerId = (uint)targetTrigger.TriggerInfo.Id; // path.WantEnterMapId = mapId; // path.RelateTask = relateTask; // mTargetPathNodes.AddLast(path); //} TargetPathNode path2 = new TargetPathNode(); path2.SceneId = mapId; path2.LineId = 0; path2.TargetNpcId = npcId; path2.RelateTask = relateTask; mTargetPathNodes.AddLast(path2); // 如果没有找到传送门则直接传过去 //if (targetTrigger == null) { JumpToScene(true, mapId, 0, relateTask); } return(true); } }