public void StartInteract(bool isShowPauseAutoFightingTips = false) { // 帮派篝火要判断背包是否已满 if (mClass == "guild_league_fire") { if (ItemManager.Instance.BagIsFull(1) == true) { UINotice.Instance.ShowMessage(DBConstText.GetText("BAG_IS_FULL")); return; } } // 跨服boss大宝箱 if (mClass == "span_boss_big_box" || mClass == "span_boss_little_box") { if (CheckCanGetServerBossBox(true) == false) { return; } } Actor localPlayer = Game.GetInstance().GetLocalPlayer(); if (localPlayer == null) { return; } if (mCollectMode == ECollectMode.Click) { CollectionObjectManager.Instance.HideCollectionBar(mId); } ClientEventMgr.Instance.FireEvent((int)ClientEvent.SHOW_INTERACT_BUTTON, new CEventEventParamArgs(false, "", mInteractButtonPic, mId)); if (mCollectTime > 0) { localPlayer.Stop(); localPlayer.MoveCtrl.TryWalkAlongStop(); TargetPathManager.Instance.TaskNavigationActive(false); InstanceManager.Instance.PauseAutoFighting(isShowPauseAutoFightingTips); localPlayer.BeginInteraction("action_1"); //localPlayer.AttackCtrl.Attack(1414); InterruptCollect(false); CommonSliderHelper.Start((int)mCollectTime, "", mInteractButtonPic, SendInterruptCollect, SendFinishCollect, false); mIsCollecting = true; SendStartInteract(); } else { SendFinishCollect(); } }
public void InterruptCollect(bool executeCallback) { if (mIsCollecting == true) { CommonSliderHelper.Interrupt(executeCallback); mIsCollecting = false; Actor localPlayer = Game.GetInstance().GetLocalPlayer(); if (localPlayer != null) { localPlayer.Stop(); localPlayer.MoveCtrl.TryWalkAlongStop(); } } }
void OnTouchExit() { // 护送NPC不处理 if (IsEscortNPC == true) { return; } mIsClickedTouch = false; mIsTouching = false; // 把对话关掉 DialogManager.GetInstance().SkipDialog(); UIManager.GetInstance().CloseSysWindow("UINpcDialogWindow"); SetSelectEffect(false); TurnToOriginalDir(); ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_NPCLEAVED, new CEventBaseArgs(UID)); ClientEventMgr.Instance.FireEvent((int)ClientEvent.INTERACT_TASK_NPC_UNTOUCHED, new CEventBaseArgs(this)); CommonSliderHelper.Interrupt(); }
/// <summary> /// 开始互动(读条) /// </summary> public void StartInteract(System.Action finishCallback) { Actor localPlayer = Game.GetInstance().GetLocalPlayer(); if (localPlayer == null) { return; } localPlayer.Stop(); localPlayer.MoveCtrl.TryWalkAlongStop(); string localPlayerInteractionAni = "action_1"; if (string.IsNullOrEmpty(Define.FunctionParams[4]) == false) { localPlayerInteractionAni = Define.FunctionParams[4]; } bool ret = localPlayer.BeginInteraction(localPlayerInteractionAni); if (ret == false) { return; } // 如果该NPC配置有交互动画,则先播放,完毕后再处理回调 string npcInteractionAni = string.Empty; if (string.IsNullOrEmpty(Define.FunctionParams[5]) == false) { npcInteractionAni = Define.FunctionParams[5]; } if (string.IsNullOrEmpty(npcInteractionAni) == false) { Play(npcInteractionAni); } CommonSliderHelper.Interrupt(); int second = 0; int.TryParse(Define.FunctionParams[0], out second); bool canBeInterruptedWhenBeAttacked = true; int canBeInterruptedWhenBeAttackedUint = 0; int.TryParse(Define.FunctionParams[3], out canBeInterruptedWhenBeAttackedUint); if (canBeInterruptedWhenBeAttackedUint > 0) { canBeInterruptedWhenBeAttacked = true; } else { canBeInterruptedWhenBeAttacked = false; } CommonSliderHelper.Start(second, Define.ConstBtnText, Define.ConstBtnPic, () => { Play(EAnimation.idle); }, () => { if (mIsDestroy == true) { return; } SafeCoroutine.CoroutineManager.StartCoroutine(InteractEndCoroutine(npcInteractionAni, finishCallback)); }, canBeInterruptedWhenBeAttacked); localPlayer.CanBeInterruptedWhenInInteractionAndBeAttacked = canBeInterruptedWhenBeAttacked; ClientEventMgr.Instance.FireEvent((int)ClientEvent.INTERACT_TASK_NPC_UNTOUCHED, new CEventBaseArgs(this)); TargetPathManager.Instance.TaskNavigationActive(false); }