1079 lines
45 KiB
C#
1079 lines
45 KiB
C#
|
using System;
|
|||
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using Games.GlobeDefine;
|
|||
|
using Games.Item;
|
|||
|
using Games.Mission;
|
|||
|
using GCGame;
|
|||
|
using GCGame.Table;
|
|||
|
using Module.Log;
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
|
|||
|
public class MissionItemLogic : UIItemBase
|
|||
|
{
|
|||
|
public Text m_MissionTitle; //任务追踪标题
|
|||
|
|
|||
|
public Text m_MissionInfo1; //任务追踪信息
|
|||
|
public Text m_MissionInfo2; //任务追踪信息
|
|||
|
public Text m_MissionInfo3; //任务追踪信息
|
|||
|
public Text m_MissionInfo4; //任务追踪信息
|
|||
|
public Text m_MissionFail; //任务失败
|
|||
|
public Button _BtnTeamMission;
|
|||
|
public GameObject Award;
|
|||
|
public Image AwardIconQuility;
|
|||
|
public Image AwardIcon;
|
|||
|
public Text AwardNum;
|
|||
|
public Image _MissionTypeIcon;
|
|||
|
public List<Sprite> _MissionTypeIconList;
|
|||
|
public GameObject _BtnFly;
|
|||
|
public int serverMissionOverTime; //任务结束时间初始化为0
|
|||
|
public int missionReaminTime; //任务剩余时间
|
|||
|
|
|||
|
public bool isLimitTimeMission;
|
|||
|
public int m_CurMissionIndex; //当前正在进行的任务(多个条件)条件的下标
|
|||
|
|
|||
|
public bool isMissionFailed;
|
|||
|
|
|||
|
public GameObject _EffectPanel;
|
|||
|
public Transform tipShowPoint;
|
|||
|
|
|||
|
public int _rewDataId = -1;
|
|||
|
|
|||
|
private float countTime;
|
|||
|
|
|||
|
private bool isNdeesCountTime;
|
|||
|
|
|||
|
private bool isNeedIncLevel;
|
|||
|
|
|||
|
|
|||
|
private int m_MissionID = -1;
|
|||
|
|
|||
|
public int MissionID
|
|||
|
{
|
|||
|
get { return m_MissionID; }
|
|||
|
set { m_MissionID = value; }
|
|||
|
}
|
|||
|
|
|||
|
private void Update()
|
|||
|
{
|
|||
|
if (isNdeesCountTime)
|
|||
|
{
|
|||
|
countTime += Time.deltaTime;
|
|||
|
if (countTime >= 1.0f)
|
|||
|
{
|
|||
|
countTime = 1 - countTime;
|
|||
|
var missionLeaveTime = GameManager.gameManager.MissionManager.GetServerMissionOverTime(m_MissionID);
|
|||
|
if (missionLeaveTime <= 0) isNdeesCountTime = false;
|
|||
|
m_MissionFail.text =
|
|||
|
StrDictionary.GetClientDictionaryString("#{42502}", Utils.GetTimeStr(missionLeaveTime));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override void Show(Hashtable hash)
|
|||
|
{
|
|||
|
base.Show();
|
|||
|
m_MissionID = (int) hash["InitObj"];
|
|||
|
InitMission(m_MissionID);
|
|||
|
ShowAwardIcon(m_MissionID);
|
|||
|
}
|
|||
|
|
|||
|
public void ShowAwardIcon(int MissionID)
|
|||
|
{
|
|||
|
_rewDataId = -1; //每次都要初始化一次
|
|||
|
var rewDataNum = 0;
|
|||
|
var missionBase = TableManager.GetMissionBaseByID(MissionID);
|
|||
|
if (missionBase == null)
|
|||
|
{
|
|||
|
Award.SetActive(false);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//师门第十环
|
|||
|
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_INSEC)
|
|||
|
{
|
|||
|
//是否是第十环(安全起见,读MissionLimit的轮次限制,万一脑袋一抽又要换次数)
|
|||
|
var missionLimit = TableManager.GetMissionLimitByID(missionBase.NextMission);
|
|||
|
|
|||
|
var _rewList =
|
|||
|
TableManager.GetBonusForSectByID(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level);
|
|||
|
var _curRound = GameManager.gameManager.MissionManager.GetMissionTruns(MissionID) *
|
|||
|
missionLimit.OneTurnCount;
|
|||
|
for (var index = 0; index < _rewList.Count; index++)
|
|||
|
if (_rewList[index].RoundId == _curRound)
|
|||
|
{
|
|||
|
_rewDataId = _rewList[index].ToolID1;
|
|||
|
rewDataNum = _rewList[index].ToolNum1;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
var bonus = TableManager.GetMissionBonusByID(missionBase.BonusID);
|
|||
|
if (bonus == null)
|
|||
|
{
|
|||
|
Award.SetActive(false);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
_rewDataId =
|
|||
|
bonus.GetProfessionItemIDbyIndex(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession);
|
|||
|
rewDataNum =
|
|||
|
bonus.GetProfessionNumbyIndex(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession);
|
|||
|
}
|
|||
|
|
|||
|
var commonItem = TableManager.GetCommonItemByID(_rewDataId);
|
|||
|
if (commonItem == null)
|
|||
|
{
|
|||
|
Award.SetActive(false);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
AwardNum.gameObject.SetActive(false);
|
|||
|
if (commonItem.ClassID != (int) ItemClass.EQUIP && rewDataNum > 0)
|
|||
|
{
|
|||
|
AwardNum.gameObject.SetActive(true);
|
|||
|
AwardNum.text = rewDataNum.ToString();
|
|||
|
}
|
|||
|
|
|||
|
Award.SetActive(true);
|
|||
|
if (AwardIconQuility.gameObject && AwardIconQuility.gameObject.activeInHierarchy)
|
|||
|
LoadAssetBundle.Instance.SetImageSprite(AwardIconQuility, Utils.GetItemQualityFrame(commonItem));
|
|||
|
if (AwardIcon.gameObject && AwardIcon.gameObject.activeInHierarchy)
|
|||
|
{
|
|||
|
LoadAssetBundle.Instance.SetImageSprite(AwardIcon, commonItem.Icon);
|
|||
|
if (commonItem.QualityEffect > 0)
|
|||
|
CommonItemContainerItem.ShowQualityEffect(true, commonItem.QualityEffect, AwardIcon.transform);
|
|||
|
else
|
|||
|
CommonItemContainerItem.ShowQualityEffect(false, commonItem.QualityEffect, AwardIcon.transform);
|
|||
|
}
|
|||
|
|
|||
|
var btn = Award.GetComponent<Button>();
|
|||
|
if (btn != null)
|
|||
|
btn.onClick.AddListener(delegate
|
|||
|
{
|
|||
|
ItemTooltipsLogic.ShowItemTooltip(_rewDataId, ItemTooltipsLogic.ShowType.Info,
|
|||
|
Award.transform.position);
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 通过任务ID获取当前任务需要完成的条件数量
|
|||
|
/// </summary>
|
|||
|
/// <param name="nMissionId"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public int GetCurMissionTypeCount(int nMissionId)
|
|||
|
{
|
|||
|
var missionBase = TableManager.GetMissionBaseByID(nMissionId);
|
|||
|
if (missionBase == null)
|
|||
|
return 0;
|
|||
|
|
|||
|
_MissionTypeIcon.overrideSprite =
|
|||
|
_MissionTypeIconList
|
|||
|
[missionBase.MissionType < _MissionTypeIconList.Count - 1 ? missionBase.MissionType : 0];
|
|||
|
|
|||
|
var missionLogic = TableManager.GetMissionLogicByID(missionBase.LogicID);
|
|||
|
if (missionLogic == null)
|
|||
|
return 0;
|
|||
|
|
|||
|
var m_MissionCount = 0;
|
|||
|
for (var index = 0; index < missionLogic.getLogicTypeCount(); index++)
|
|||
|
{
|
|||
|
var m_MissionType = missionLogic.GetLogicTypebyIndex(index);
|
|||
|
if (m_MissionType != -1) //不为空 不为限时任务
|
|||
|
m_MissionCount++;
|
|||
|
}
|
|||
|
|
|||
|
return m_MissionCount;
|
|||
|
}
|
|||
|
|
|||
|
public void InitMission(int missionID)
|
|||
|
{
|
|||
|
//初始化任务之前 先获取人物属性
|
|||
|
if (!Singleton<ObjManager>.GetInstance().MainPlayer) return;
|
|||
|
|
|||
|
isMissionFailed = false;
|
|||
|
isLimitTimeMission = false;
|
|||
|
if (m_MissionFail.gameObject.activeInHierarchy) m_MissionFail.gameObject.SetActive(false);
|
|||
|
|
|||
|
//判断任务的完成条件是否要完成条件
|
|||
|
var missionBase = TableManager.GetMissionBaseByID(missionID);
|
|||
|
if (missionBase == null) return;
|
|||
|
|
|||
|
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_GUIDE)
|
|||
|
{
|
|||
|
var guidMissionBase = TableManager.GetMissionGuidBaseByID(m_MissionID);
|
|||
|
if (guidMissionBase != null)
|
|||
|
if (guidMissionBase.OptionType == 2) //寻路
|
|||
|
_BtnFly.SetActive(true);
|
|||
|
|
|||
|
if (GetGuidMissionRemainTimes(MissionID) <= 0)
|
|||
|
{
|
|||
|
if (GameManager.gameManager.MissionManager.MissionList.m_aMission.ContainsKey(missionID))
|
|||
|
GameManager.gameManager.MissionManager.MissionList.m_aMission.Remove(missionID);
|
|||
|
gameObject.SetActive(false);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
InitGuidMissionItem(missionID);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var missionLogic = TableManager.GetMissionLogicByID(missionBase.LogicID);
|
|||
|
if (missionLogic == null) return;
|
|||
|
|
|||
|
m_MissionTitle.text = GameManager.gameManager.MissionManager.GetModifiedMissionTitle(missionID);
|
|||
|
var m_Count = GetCurMissionTypeCount(missionID);
|
|||
|
for (var index = 0; index < m_Count; index++)
|
|||
|
if (missionBase.MissionType != (int) MISSIONTYPE.MISSION_ONEDRONG //一条龙特殊判断(MissionLogic只有类型9限时)
|
|||
|
&& missionLogic.GetLogicTypebyIndex(index) == (int) TableType.Table_MissionInTime
|
|||
|
) //普通计时任务(MissionLogic最多三个,最后一个为计时任务)
|
|||
|
--m_Count; //计时任务不算在子任务里面,这边要计算子任务的SizeDelta
|
|||
|
var misState = (MissionState) GameManager.gameManager.MissionManager.GetMissionState(missionID);
|
|||
|
|
|||
|
//展示场景的先修改一下
|
|||
|
//if (m_MissionID == 0 && misState == MissionState.Mission_Accepted)
|
|||
|
//{
|
|||
|
// OnItemClick();
|
|||
|
//}
|
|||
|
|
|||
|
if (GameManager.gameManager.MissionManager.MissionList.m_aMission.ContainsKey(m_MissionID))
|
|||
|
{
|
|||
|
var MDLine = TableManager.GetMissionDictionaryByID(missionID);
|
|||
|
if (MDLine == null)
|
|||
|
//_BtnFly.SetActive(false);
|
|||
|
return;
|
|||
|
|
|||
|
//飞鞋
|
|||
|
var isCanReachTarget = true;
|
|||
|
|
|||
|
//判断当前任务是否是限时任务
|
|||
|
for (var index = 0; index < GetCurMissionTypeCount(m_MissionID); index++)
|
|||
|
if (missionLogic.GetLogicTypebyIndex(index) == (int) TableType.Table_MissionInTime) //限时任务
|
|||
|
{
|
|||
|
m_MissionFail.text = StrDictionary.GetClientDictionaryString("#{42502}",
|
|||
|
Utils.GetTimeStr(GameManager.gameManager.MissionManager.GetServerMissionOverTime(m_MissionID)));
|
|||
|
isLimitTimeMission = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
if (GameManager.gameManager.MissionManager.MissionList.m_aMission[missionID].m_yStatus ==
|
|||
|
(int) MissionState.Mission_NotAccept) m_Count = 1;
|
|||
|
|
|||
|
|
|||
|
m_MissionInfo1.gameObject.SetActive(m_Count >= 1);
|
|||
|
m_MissionInfo2.gameObject.SetActive(m_Count >= 2);
|
|||
|
m_MissionInfo3.gameObject.SetActive(m_Count >= 3);
|
|||
|
m_MissionInfo4.gameObject.SetActive(m_Count >= 4);
|
|||
|
switch (m_Count)
|
|||
|
{
|
|||
|
case 1:
|
|||
|
m_MissionInfo1.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 0,
|
|||
|
ref isCanReachTarget);
|
|||
|
break;
|
|||
|
|
|||
|
case 2:
|
|||
|
m_MissionInfo1.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 0,
|
|||
|
ref isCanReachTarget);
|
|||
|
m_MissionInfo2.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 1,
|
|||
|
ref isCanReachTarget);
|
|||
|
break;
|
|||
|
|
|||
|
case 3:
|
|||
|
m_MissionInfo1.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 0,
|
|||
|
ref isCanReachTarget);
|
|||
|
m_MissionInfo2.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 1,
|
|||
|
ref isCanReachTarget);
|
|||
|
m_MissionInfo3.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 2,
|
|||
|
ref isCanReachTarget);
|
|||
|
break;
|
|||
|
|
|||
|
case 4:
|
|||
|
m_MissionInfo1.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 0,
|
|||
|
ref isCanReachTarget);
|
|||
|
m_MissionInfo2.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 1,
|
|||
|
ref isCanReachTarget);
|
|||
|
m_MissionInfo3.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 2,
|
|||
|
ref isCanReachTarget);
|
|||
|
m_MissionInfo4.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 3,
|
|||
|
ref isCanReachTarget);
|
|||
|
break;
|
|||
|
default:
|
|||
|
m_MissionInfo1.gameObject.SetActive(false);
|
|||
|
m_MissionInfo2.gameObject.SetActive(false);
|
|||
|
m_MissionInfo3.gameObject.SetActive(false);
|
|||
|
m_MissionInfo4.gameObject.SetActive(false);
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
var isCanfly = (MDLine.IsCanFly > 0) & isCanReachTarget;
|
|||
|
_BtnFly.SetActive(isCanfly);
|
|||
|
|
|||
|
if (isLimitTimeMission)
|
|||
|
{
|
|||
|
//开启计时面板
|
|||
|
m_MissionFail.gameObject.SetActive(true);
|
|||
|
|
|||
|
if (gameObject.activeInHierarchy) isNdeesCountTime = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (!isLimitTimeMission) m_MissionFail.gameObject.SetActive(false);
|
|||
|
}
|
|||
|
|
|||
|
if (misState == MissionState.Mission_Failed)
|
|||
|
{
|
|||
|
setMissionFailed();
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//当前任务ID就是未接取的任务ID
|
|||
|
if (missionID != -1)
|
|||
|
{
|
|||
|
var missionLimit = TableManager.GetMissionLimitByID(missionBase.LimitID);
|
|||
|
var isCanReachTarget = true;
|
|||
|
if (missionBase != null && missionLimit != null)
|
|||
|
{
|
|||
|
//设置下个任务的标题
|
|||
|
m_MissionTitle.text = GameManager.gameManager.MissionManager.GetModifiedMissionTitle(missionID);
|
|||
|
m_MissionInfo1.text =
|
|||
|
GameManager.gameManager.MissionManager.GetModifiedMissionTarget(missionID, 0,
|
|||
|
ref isCanReachTarget);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
AbandonCurMission();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_CIRCLE)
|
|||
|
_BtnTeamMission.gameObject.SetActive(true);
|
|||
|
else
|
|||
|
_BtnTeamMission.gameObject.SetActive(false);
|
|||
|
}
|
|||
|
|
|||
|
public void InitGuidMissionItem(int missionId)
|
|||
|
{
|
|||
|
var guidBase = TableManager.GetMissionGuidBaseByID(missionId);
|
|||
|
if (guidBase == null) return;
|
|||
|
|
|||
|
//设置对应描述
|
|||
|
_BtnTeamMission.gameObject.SetActive(false);
|
|||
|
m_MissionFail.gameObject.SetActive(false);
|
|||
|
m_MissionInfo2.gameObject.SetActive(false);
|
|||
|
m_MissionInfo3.gameObject.SetActive(false);
|
|||
|
m_MissionInfo4.gameObject.SetActive(false);
|
|||
|
|
|||
|
//设置标题
|
|||
|
m_MissionTitle.text = GameManager.gameManager.MissionManager.GetModifiedMissionTitle(missionId);
|
|||
|
_MissionTypeIcon.overrideSprite = _MissionTypeIconList[(int) MISSIONTYPE.MISSION_GUIDE];
|
|||
|
//设置描述 又是一个特殊处理,因为试炼副本不限制次数,这边只显示配置的描述
|
|||
|
if (guidBase.GuidMissionType == (int) GuidMissionType.TestingCopy)
|
|||
|
m_MissionInfo1.text = guidBase.MissionDesc;
|
|||
|
else
|
|||
|
m_MissionInfo1.text = string.Format(guidBase.MissionDesc, GetGuidMissionRemainTimes(missionId));
|
|||
|
}
|
|||
|
|
|||
|
public int GetGuidMissionRemainTimes(int _guidMissionId)
|
|||
|
{
|
|||
|
var guidMissionBase = TableManager.GetMissionGuidBaseByID(_guidMissionId);
|
|||
|
if (guidMissionBase == null) return 0;
|
|||
|
|
|||
|
if (guidMissionBase.ActivityType == (int) ActivityDataManager.Activity_Type.ACTIVITY_TYPE_EQUIP_COPY)
|
|||
|
{
|
|||
|
var times = ActivityDataManager.Instance.GetActivityCompleteTimes((int) ActivityDataManager.Activity_Type
|
|||
|
.ACTIVITY_TYPE_EQUIP_COPY);
|
|||
|
return times < 0 ? 0 : times;
|
|||
|
}
|
|||
|
|
|||
|
if (guidMissionBase.GuidMissionType == (int) GuidMissionType.Advance
|
|||
|
|| guidMissionBase.GuidMissionType == (int) GuidMissionType.MainMission)
|
|||
|
{
|
|||
|
var times = ActivityDataManager.Instance.GetActivityCompleteTimes(guidMissionBase.ActivityType);
|
|||
|
if (times == -1)
|
|||
|
return GetNewCopyBaseLimitTimes(_guidMissionId);
|
|||
|
return GetNewCopyBaseLimitTimes(_guidMissionId) - times > 0
|
|||
|
? GetNewCopyBaseLimitTimes(_guidMissionId) - times
|
|||
|
: 0;
|
|||
|
}
|
|||
|
|
|||
|
if (guidMissionBase.GuidMissionType == (int) GuidMissionType.TestingCopy) return 99; //特殊处理 不限制次数
|
|||
|
|
|||
|
{
|
|||
|
var times = ActivityDataManager.Instance.GetActivityCompleteTimes(guidMissionBase.ActivityType);
|
|||
|
if (times < 0)
|
|||
|
{
|
|||
|
return guidMissionBase.LimitTimes;
|
|||
|
}
|
|||
|
|
|||
|
times = guidMissionBase.LimitTimes - times;
|
|||
|
return times > 0 ? times : 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//获取副本剩余次数(需要根据等级判断)
|
|||
|
public int GetNewCopyBaseLimitTimes(int _GuidMissionBaseId)
|
|||
|
{
|
|||
|
var missionGuidBase = TableManager.GetMissionGuidBaseByID(_GuidMissionBaseId);
|
|||
|
if (missionGuidBase == null) return 0;
|
|||
|
var _TotalTimes = 0;
|
|||
|
switch (missionGuidBase.GuidMissionType)
|
|||
|
{
|
|||
|
case (int) GuidMissionType.Advance:
|
|||
|
{
|
|||
|
var tabDic = TableManager.GetNewCopyBase().Values;
|
|||
|
foreach (var tab in tabDic)
|
|||
|
if (tab.Type == 1
|
|||
|
&& GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level >= tab.UnLockLevel)
|
|||
|
{
|
|||
|
var fuben = TableManager.GetFubenByID(tab.Id);
|
|||
|
if (fuben != null) _TotalTimes += fuben.ChallengeTimes;
|
|||
|
}
|
|||
|
|
|||
|
return _TotalTimes;
|
|||
|
}
|
|||
|
case (int) GuidMissionType.Equip:
|
|||
|
{
|
|||
|
var stroyCopy = TableManager.GetStroyCopyByID(1);
|
|||
|
if (stroyCopy != null
|
|||
|
&& GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level >= stroyCopy.Level
|
|||
|
&& GameManager.gameManager.MissionManager.IsMissionHaveDone(stroyCopy.LimitMissionId))
|
|||
|
{
|
|||
|
var fuben = TableManager.GetFubenByID(stroyCopy.EasyFubenId);
|
|||
|
if (fuben != null) _TotalTimes += fuben.RewardsTimes;
|
|||
|
}
|
|||
|
|
|||
|
return _TotalTimes;
|
|||
|
}
|
|||
|
case (int) GuidMissionType.MainMission:
|
|||
|
{
|
|||
|
var tabDic = TableManager.GetNewCopyBase().Values;
|
|||
|
foreach (var tab in tabDic)
|
|||
|
if (tab.Type == 2
|
|||
|
&& GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level >= tab.UnLockLevel)
|
|||
|
{
|
|||
|
var fuben = TableManager.GetFubenByID(tab.Id);
|
|||
|
if (fuben != null) _TotalTimes += fuben.ChallengeTimes;
|
|||
|
}
|
|||
|
|
|||
|
return _TotalTimes;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
public void setMissionFailed()
|
|||
|
{
|
|||
|
m_MissionFail.text = StrDictionary.GetClientDictionaryString("#{42500}");
|
|||
|
isMissionFailed = true;
|
|||
|
|
|||
|
var missionBase = TableManager.GetMissionBaseByID(m_MissionID);
|
|||
|
if (missionBase == null)
|
|||
|
return;
|
|||
|
|
|||
|
if (missionBase.CanAbadon == 0) //不能主动放弃任务 服务器直接删除
|
|||
|
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{7018}"), "", findAccepterAgain,
|
|||
|
CloseMessageBox);
|
|||
|
else //可以主动放弃的
|
|||
|
MessageBoxLogic.OpenOKBox(StrDictionary.GetClientDictionaryString("#{7011}"), "", AbandonCurMission);
|
|||
|
if (Singleton<ObjManager>.GetInstance().MainPlayer != null)
|
|||
|
Singleton<ObjManager>.GetInstance().MainPlayer.StopMove();
|
|||
|
if (GameManager.gameManager != null) GameManager.gameManager.AutoSearch.Stop();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public override void Refresh()
|
|||
|
{
|
|||
|
//InitMission(m_MissionID);
|
|||
|
}
|
|||
|
|
|||
|
// 点击MissionItem
|
|||
|
public override void OnItemClick()
|
|||
|
{
|
|||
|
MissionItemClick(false);
|
|||
|
}
|
|||
|
|
|||
|
public void OnBtnFly()
|
|||
|
{
|
|||
|
MissionItemClick(true);
|
|||
|
}
|
|||
|
|
|||
|
public void MissionItemClick(bool isFly)
|
|||
|
{
|
|||
|
if (GameManager.gameManager.m_RunningScene == 658)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData("#{79512}"); //请退出场景后再进行此项操作!
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
base.OnItemClick();
|
|||
|
|
|||
|
var missionBase = TableManager.GetMissionBaseByID(m_MissionID);
|
|||
|
if (missionBase == null)
|
|||
|
return;
|
|||
|
|
|||
|
if (Singleton<ObjManager>.Instance.MainPlayer.IsInPaoShang() &&
|
|||
|
missionBase.MissionType != (int) MISSIONTYPE.MISSION_GUILDPAOSHANG)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#34013}"));
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
MissionDialogAndLeftTabsLogic.Instance().OnMissionItemClick(m_MissionID);
|
|||
|
|
|||
|
var missionDic = TableManager.GetMissionDictionaryByID(m_MissionID);
|
|||
|
var missionIndex = GameManager.gameManager.MissionManager.getCurMissionIndex(m_MissionID);
|
|||
|
var missionState = GameManager.gameManager.MissionManager.GetMissionState(m_MissionID);
|
|||
|
var guildSceneId = TableManager.GetGuildOtherByID(0).SceneId;
|
|||
|
|
|||
|
if (GameManager.gameManager.ActiveScene.IsCopyScene()
|
|||
|
&& GameManager.gameManager.RunningScene != guildSceneId //非帮派副本场景
|
|||
|
&& GameManager.gameManager.RunningScene != 718 //718出生副本
|
|||
|
&& missionBase.MissionType != (int) MISSIONTYPE.MISSION_BRANCH
|
|||
|
&& missionBase.MissionType != (int) MISSIONTYPE.MISSION_GUIDE)
|
|||
|
{
|
|||
|
if (missionState != (int) MissionState.Mission_Completed)
|
|||
|
{
|
|||
|
if (missionDic != null && missionDic.GetTargetNpcSceneIDbyIndex(missionIndex) !=
|
|||
|
GameManager.gameManager.RunningScene)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{2463}"));
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var mainPlayer = ObjManager.Instance.MainPlayer;
|
|||
|
if (mainPlayer == null || !mainPlayer.isAutoCombat)
|
|||
|
{
|
|||
|
if (SkillBarLogic.Instance() != null)
|
|||
|
SkillBarLogic.Instance().OnDoAutoFightClick();
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (missionDic.CompleteNpcSceneID != GameManager.gameManager.RunningScene)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{2463}"));
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
//打开对应的UI
|
|||
|
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_GUIDE)
|
|||
|
{
|
|||
|
var guidMissionBase = TableManager.GetMissionGuidBaseByID(m_MissionID);
|
|||
|
if (guidMissionBase == null)
|
|||
|
{
|
|||
|
LogModule.ErrorLog("guidMissionBase is null , id is :" + m_MissionID);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (guidMissionBase.OptionType == 2) //寻路
|
|||
|
{
|
|||
|
if (guidMissionBase.ActivityType ==
|
|||
|
(int) ActivityDataManager.Activity_Type.ACTIVITY_MISSIONINSECTION) //师门特殊处理
|
|||
|
{
|
|||
|
var autosearchId =
|
|||
|
GlobeVar.GetMasterAutosearchId(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr
|
|||
|
.Profession);
|
|||
|
var searchTab = TableManager.GetAutoSearchByID(autosearchId);
|
|||
|
if (searchTab == null) return;
|
|||
|
//接受任务后自动寻路
|
|||
|
var pos = new Vector3();
|
|||
|
pos.x = searchTab.X;
|
|||
|
pos.z = searchTab.Z;
|
|||
|
var sceneId = searchTab.DstSceneID;
|
|||
|
var targetPoint = new AutoSearchPoint(sceneId, pos.x, pos.z);
|
|||
|
if (GameManager.gameManager && GameManager.gameManager.AutoSearch)
|
|||
|
{
|
|||
|
if (isFly)
|
|||
|
{
|
|||
|
var pointPos = MissionManager.GetMissionFlyPos(searchTab.DataId);
|
|||
|
targetPoint.ChangeMapType = AutoSearchPoint.ChangeMap_Type.MISSIONFLY;
|
|||
|
if (pointPos != Vector3.zero)
|
|||
|
{
|
|||
|
targetPoint.PosX = pointPos.x;
|
|||
|
targetPoint.PosZ = pointPos.z;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
GameManager.gameManager.AutoSearch.BuildPath(targetPoint);
|
|||
|
var RoleBase = TableManager.GetRoleBaseAttrByID(searchTab.DataId);
|
|||
|
if (null != RoleBase && null != GameManager.gameManager.AutoSearch.Path)
|
|||
|
{
|
|||
|
GameManager.gameManager.AutoSearch.Path.AutoSearchTargetName = RoleBase.Name;
|
|||
|
GameManager.gameManager.AutoSearch.Path.autoSearchRadius = RoleBase.DialogRadius;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else if (guidMissionBase.ActivityType ==
|
|||
|
(int) ActivityDataManager.Activity_Type.ACTIVITY_TYPE_DRAGONWAR)
|
|||
|
{
|
|||
|
if (GameManager.gameManager.PlayerDataPool.IsHaveGuild() == false)
|
|||
|
{
|
|||
|
// 加入帮派提醒
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{6707}"));
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//帮派等级小于4返回
|
|||
|
var guidTab = TableManager.GetGuildOtherByID(0);
|
|||
|
if (guidTab == null)
|
|||
|
{
|
|||
|
LogModule.ErrorLog("guidTab is null");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (GameManager.gameManager.PlayerDataPool.GuildInfo.GuildLevel < guidTab.RobberNeedGuildLevel)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{6709}"));
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var activityBase = TableManager.GetActivityBaseByID(guidMissionBase.ActivityId);
|
|||
|
var paramaters = activityBase.Parameter.Split('|');
|
|||
|
var roleId = int.Parse(paramaters[0]);
|
|||
|
var posX = float.Parse(paramaters[1]);
|
|||
|
var posZ = float.Parse(paramaters[2]);
|
|||
|
|
|||
|
GameManager.gameManager.AutoSearch.BackGuild(
|
|||
|
GameManager.gameManager.PlayerDataPool.GuildInfo.GuildGuid, int.Parse(paramaters[0]),
|
|||
|
float.Parse(paramaters[1]), float.Parse(paramaters[2]));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
GameManager.gameManager.MissionManager.MissionPathFinder(guidMissionBase.EnterId,
|
|||
|
GlobeVar.INVALID_GUID, isFly);
|
|||
|
}
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
switch (guidMissionBase.GuidMissionType)
|
|||
|
{
|
|||
|
case (int) GuidMissionType.Advance:
|
|||
|
{
|
|||
|
UIManager.ShowUI(UIInfo.CopyScenePanelCtr, delegate(bool bSucess, object patam)
|
|||
|
{
|
|||
|
if (bSucess) CopyScenePanelCtr.Instance.OnMenuItemClick(1);
|
|||
|
});
|
|||
|
}
|
|||
|
break;
|
|||
|
case (int) GuidMissionType.Equip:
|
|||
|
{
|
|||
|
UIManager.ShowUI(UIInfo.CopyScenePanelCtr, delegate(bool bSucess, object patam)
|
|||
|
{
|
|||
|
if (bSucess) CopyScenePanelCtr.Instance.OnMenuItemClick(0);
|
|||
|
});
|
|||
|
}
|
|||
|
break;
|
|||
|
case (int) GuidMissionType.TestingCopy:
|
|||
|
{
|
|||
|
UIManager.ShowUI(UIInfo.CopyScenePanelCtr, delegate(bool bSucess, object patam)
|
|||
|
{
|
|||
|
if (bSucess) CopyScenePanelCtr.Instance.OnMenuItemClick(2);
|
|||
|
});
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
UIManager.ShowUI(UIInfo.Activity, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) ActivityController.Instance().ShowItemByActId(guidMissionBase.ActivityId);
|
|||
|
});
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//支线任务
|
|||
|
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_BRANCH)
|
|||
|
{
|
|||
|
//if(GameManager.gameManager.ActiveScene.IsCopyScene())
|
|||
|
//{
|
|||
|
// GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{46352}"));
|
|||
|
// return;
|
|||
|
//}
|
|||
|
|
|||
|
if (GameManager.gameManager.MissionManager.GetMissionState(m_MissionID) ==
|
|||
|
(int) MissionState.Mission_Completed)
|
|||
|
{
|
|||
|
GameManager.gameManager.MissionManager.CompleteMission(m_MissionID);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
var missionLogic = TableManager.GetMissionLogicByID(missionBase.LogicID);
|
|||
|
if (missionLogic != null)
|
|||
|
{
|
|||
|
var missionBranch = TableManager.GetMissionBranchByID(missionLogic.GetLogicIDbyIndex(0));
|
|||
|
if (missionBranch != null)
|
|||
|
{
|
|||
|
switch (missionBranch.UIType)
|
|||
|
{
|
|||
|
case (int) BRANCHTYPE.MoSaic: //宝石镶嵌
|
|||
|
UIManager.ShowUI(UIInfo.EquipEnhance, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) EquipEnhanceRoot.Instance().TryOpen(2);
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.EnchanceEquip: //强化界面
|
|||
|
UIManager.ShowUI(UIInfo.EquipEnhance, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) EquipEnhanceRoot.Instance().TryOpen(1);
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.EnchanceEquipCiTiaoXiLian: //词条洗练界面
|
|||
|
UIManager.ShowUI(UIInfo.EquipEnhance, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) EquipEnhanceRoot.Instance().TryOpen(0);
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.EnchanceEquipBaseXiLian: //基础洗练界面
|
|||
|
UIManager.ShowUI(UIInfo.EquipEnhance, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess)
|
|||
|
{
|
|||
|
EquipEnhanceRoot.Instance().TryOpen(0);
|
|||
|
if (EquipEnhanceXilian.Instance())
|
|||
|
{
|
|||
|
EquipEnhanceXilian.Instance()._TagPanel.ShowPage(1);
|
|||
|
EquipEnhanceXilian.Instance().OnXilianPage(1);
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.PetXiLian: //宠物洗练界面
|
|||
|
UIManager.ShowUI(UIInfo.PetMainWndPath, delegate(bool bSuccess, object param)
|
|||
|
{
|
|||
|
if (bSuccess && PetMainWnd.Instance != null)
|
|||
|
{
|
|||
|
LogModule.ErrorLog("Show pet clear");
|
|||
|
PetMainWnd.Instance.ShowPage(1, 0);
|
|||
|
}
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.PetAttr: //宠物属性功能界面
|
|||
|
UIManager.ShowUI(UIInfo.PetMainWndPath, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess && PetMainWnd.Instance != null)
|
|||
|
{
|
|||
|
LogModule.ErrorLog("Show pet clear");
|
|||
|
PetMainWnd.Instance.ShowPage(0, 0);
|
|||
|
}
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.GuidList:
|
|||
|
UIManager.ShowUI(UIInfo.GuildMainWnd);
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.AdvanceMount:
|
|||
|
UIManager.ShowUI(UIInfo.AdvanceMountPanel, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess)
|
|||
|
{
|
|||
|
AdvanceMountPanelCtr.Instance.SetAdvanceType(
|
|||
|
(int) AdvanceBase.AdvanceType.Ride);
|
|||
|
|
|||
|
AdvanceMountPanelCtr.Instance.menuItemPanelCtr.OnMenuItemClick(
|
|||
|
AdvanceMenuItemPanelCtr.MenuItemOptType.Advance);
|
|||
|
}
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.AdvanceWing:
|
|||
|
UIManager.ShowUI(UIInfo.AdvanceMountPanel, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess)
|
|||
|
{
|
|||
|
AdvanceMountPanelCtr.Instance.SetAdvanceType(
|
|||
|
(int) AdvanceBase.AdvanceType.Wing);
|
|||
|
|
|||
|
AdvanceMountPanelCtr.Instance.OnMenuItemClick(AdvanceMenuItemPanelCtr
|
|||
|
.MenuItemOptType.Advance);
|
|||
|
}
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.MarketList:
|
|||
|
UIManager.ShowUI(UIInfo.MarketRoot, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) MarketLogic.Instance()._TagPanel.ShowPage(1);
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.MarketSelf:
|
|||
|
UIManager.ShowUI(UIInfo.MarketRoot, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess)
|
|||
|
{
|
|||
|
MarketLogic.Instance()._TagPanel.ShowPage(0);
|
|||
|
if (MarketSystemLogic.Instance())
|
|||
|
{
|
|||
|
MarketSystemLogic.Instance()._TagPanel.ShowPage(1);
|
|||
|
MarketSystemLogic.Instance().OnTabPage(1);
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.MainCopy:
|
|||
|
UIManager.ShowUI(UIInfo.CopyScenePanelCtr, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) CopyScenePanelCtr.Instance.OnMenuItemClick(1);
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.AdvanceCopy:
|
|||
|
UIManager.ShowUI(UIInfo.CopyScenePanelCtr, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) CopyScenePanelCtr.Instance.OnMenuItemClick(2);
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.EquipCopy:
|
|||
|
UIManager.ShowUI(UIInfo.CopyScenePanelCtr, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) CopyScenePanelCtr.Instance.OnMenuItemClick(0);
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.Activity:
|
|||
|
UIManager.ShowUI(UIInfo.Activity);
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.LiveSkill:
|
|||
|
UIManager.ShowUI(UIInfo.SkillInfo, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) SkillRootLogic.Instance().ShowTagPage(2);
|
|||
|
});
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.Chat:
|
|||
|
UIManager.ShowUI(UIInfo.ChatInfoRoot);
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.DreamIsLand:
|
|||
|
CommunityLogic.ShowMyCommunityRoot();
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.Team:
|
|||
|
{
|
|||
|
if (MissionDialogAndLeftTabsLogic.Instance())
|
|||
|
{
|
|||
|
MissionDialogAndLeftTabsLogic.Instance()._TagPanel.ShowPage(1);
|
|||
|
MissionDialogAndLeftTabsLogic.Instance().BtnCreateTeam();
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.TestingCopy:
|
|||
|
{
|
|||
|
UIManager.ShowUI(UIInfo.CopyScenePanelCtr, delegate(bool bSucess, object patam)
|
|||
|
{
|
|||
|
if (bSucess) CopyScenePanelCtr.Instance.OnMenuItemClick(2);
|
|||
|
});
|
|||
|
}
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.GetItem:
|
|||
|
{
|
|||
|
if (!string.IsNullOrEmpty(missionBranch.ClientParam))
|
|||
|
{
|
|||
|
var id = Convert.ToInt32(missionBranch.ClientParam);
|
|||
|
MissionItemGetPath.Show(id, tipShowPoint.position);
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case (int) BRANCHTYPE.Guide:
|
|||
|
{
|
|||
|
var id = Convert.ToInt32(missionBranch.ClientParam);
|
|||
|
GuideLogic.StartGuide(id);
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
UIManager.ShowUI(UIInfo.Activity);
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//帮会货运任务直接打开界面
|
|||
|
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_GUILDTRANSPORT)
|
|||
|
{
|
|||
|
if (isMissionFailed)
|
|||
|
{
|
|||
|
if (missionBase.CanAbadon == 0) //不能主动放弃任务 服务器直接删除
|
|||
|
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{7018}"), "",
|
|||
|
findAccepterAgain, CloseMessageBox);
|
|||
|
else //可以主动放弃的
|
|||
|
MessageBoxLogic.OpenOKBox(StrDictionary.GetClientDictionaryString("#{7011}"), "",
|
|||
|
AbandonCurMission);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
GuildTransport.GuildTransportClick(missionBase, Singleton<ObjManager>.Instance.MainPlayer.GUID);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//帮会跑商任务
|
|||
|
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_GUILDPAOSHANG)
|
|||
|
{
|
|||
|
if (isMissionFailed)
|
|||
|
MessageBoxLogic.OpenOKBox(StrDictionary.GetClientDictionaryString("#{7011}"), "", AbandonCurMission);
|
|||
|
else
|
|||
|
GameManager.gameManager.AutoSearch.RoadSignManager.AutoMoveStart();
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//跨服押镖
|
|||
|
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_CROSSSERVERPOST)
|
|||
|
{
|
|||
|
if (GameManager.gameManager.RunningScene == GlobeVar.CROSSSERVER_SIGNPOSTSCENE)
|
|||
|
{
|
|||
|
var point = new AutoSearchPoint(GameManager.gameManager.RunningScene,
|
|||
|
Singleton<SignPostManager>.Instance.GhattyCurrPosition.x,
|
|||
|
Singleton<SignPostManager>.Instance.GhattyCurrPosition.z);
|
|||
|
if (GameManager.gameManager && GameManager.gameManager.AutoSearch)
|
|||
|
GameManager.gameManager.AutoSearch.BuildPath(point, false, "");
|
|||
|
}
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//帮会战龙堂
|
|||
|
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_GUILDDRAGONWAR)
|
|||
|
{
|
|||
|
if ((MissionState) GameManager.gameManager.MissionManager.GetMissionState(m_MissionID) ==
|
|||
|
MissionState.Mission_Completed)
|
|||
|
{
|
|||
|
GameManager.gameManager.MissionManager.MissionPathFinder(m_MissionID,
|
|||
|
GameManager.gameManager.PlayerDataPool.GuildInfo.GuildGuid, isFly);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (GameManager.gameManager.PlayerDataPool.DragonWar_destanceGuildGuid != GlobeVar.INVALID_GUID)
|
|||
|
{
|
|||
|
GameManager.gameManager.MissionManager.MissionPathFinder(m_MissionID,
|
|||
|
GameManager.gameManager.PlayerDataPool.DragonWar_destanceGuildGuid, isFly);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//组队跟随,不响应
|
|||
|
if (GameManager.gameManager.PlayerDataPool.IsFollowTeam)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5128}"));
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//当前等级不够,不响应
|
|||
|
isNeedIncLevel = GameManager.gameManager.MissionManager.IsStopedMission(m_MissionID);
|
|||
|
if (isNeedIncLevel)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{44046}"));
|
|||
|
//打开活动面板
|
|||
|
UIManager.ShowUI(UIInfo.Activity, delegate(bool bSucess, object param)
|
|||
|
{
|
|||
|
if (bSucess) ActivityController.Instance().OnToggleOn(0);
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (!isMissionFailed) //任务未失败的时候点击正常寻路
|
|||
|
{
|
|||
|
if (GameManager.gameManager.MissionManager != null)
|
|||
|
{
|
|||
|
if (GameManager.gameManager.MissionManager.GetMissionState(m_MissionID) ==
|
|||
|
(int) MissionState.Mission_Completed)
|
|||
|
if (missionDic != null)
|
|||
|
if (missionDic.CompleteNpcDataID == -1)
|
|||
|
{
|
|||
|
GameManager.gameManager.MissionManager.CompleteMission(m_MissionID);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (GameManager.gameManager.MissionManager.MissionPathFinder(m_MissionID, GlobeVar.INVALID_GUID, isFly)
|
|||
|
) return;
|
|||
|
}
|
|||
|
|
|||
|
var other = TableManager.GetGuildOtherByID(0);
|
|||
|
//在副本中的话点击开始挂机
|
|||
|
var sceneClass = TableManager.GetSceneClassByID(GameManager.gameManager.RunningScene);
|
|||
|
if (sceneClass != null)
|
|||
|
if (sceneClass.Type == 2 && (other == null || other.SceneId != sceneClass.SceneID)) // 副本
|
|||
|
{
|
|||
|
var mainPlayer = ObjManager.Instance.MainPlayer;
|
|||
|
if (mainPlayer == null || !mainPlayer.isAutoCombat)
|
|||
|
if (SkillBarLogic.Instance() != null)
|
|||
|
SkillBarLogic.Instance().OnDoAutoFightClick();
|
|||
|
}
|
|||
|
}
|
|||
|
else //任务失败,弹出删除任务对话框
|
|||
|
{
|
|||
|
MessageBoxLogic.OpenOKBox(StrDictionary.GetClientDictionaryString("#{7011}"), "", AbandonCurMission);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void findAccepterAgain()
|
|||
|
{
|
|||
|
if (GameManager.gameManager.MissionManager != null)
|
|||
|
{
|
|||
|
var missionBase = TableManager.GetMissionBaseByID(m_MissionID);
|
|||
|
if (missionBase != null) GameManager.gameManager.MissionManager.MissionPathFinder(m_MissionID);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void AbandonCurMission()
|
|||
|
{
|
|||
|
if (GameManager.gameManager.MissionManager != null)
|
|||
|
GameManager.gameManager.MissionManager.AbandonMission(m_MissionID);
|
|||
|
CloseMessageBox();
|
|||
|
}
|
|||
|
|
|||
|
public void BtnTeamMission()
|
|||
|
{
|
|||
|
if (GameManager.gameManager.PlayerDataPool.TeamInfo.TeamID >= 0)
|
|||
|
UIManager.ShowUI(UIInfo.TeamInfoRoot);
|
|||
|
else
|
|||
|
UIManager.ShowUI(UIInfo.TeamCreateRoot);
|
|||
|
}
|
|||
|
|
|||
|
public void BtnAutoComplateCircle()
|
|||
|
{
|
|||
|
//UIManager.ShowUI(UIInfo.AutoComplateCircle);
|
|||
|
var req = new ReqAutoCompleteCircleMission();
|
|||
|
req._flag = 1;
|
|||
|
req.SendMsg();
|
|||
|
}
|
|||
|
|
|||
|
public void CloseMessageBox()
|
|||
|
{
|
|||
|
UIManager.CloseUI(UIInfo.MessageBox);
|
|||
|
}
|
|||
|
|
|||
|
public void ShowEffect(bool isShow)
|
|||
|
{
|
|||
|
_EffectPanel.SetActive(isShow);
|
|||
|
}
|
|||
|
|
|||
|
public void ClickItem(bool isOK)
|
|||
|
{
|
|||
|
if (isOK)
|
|||
|
OnItemClick();
|
|||
|
}
|
|||
|
|
|||
|
private enum GuidMissionType
|
|||
|
{
|
|||
|
Equip = 0,
|
|||
|
MainMission = 1,
|
|||
|
Advance = 2,
|
|||
|
TestingCopy = 11
|
|||
|
}
|
|||
|
}
|