private static bool CheckCondition(int questid, QuestConditionParam qcp) { uint rst = UInt32.MaxValue; PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>(); switch (qcp.mConditionType) { case QuestConditionType.Level: rst = (uint)pdm.GetLevel(); break; case QuestConditionType.Money_: rst = pdm.GetProceeds((ProceedsType)qcp.mArg1); break; case QuestConditionType.Exp: rst = (uint)pdm.GetExp(); break; case QuestConditionType.Item: rst = 0; break; case QuestConditionType.Stage_Unlock: rst = Convert.ToUInt32(pdm.IsStageUnlock(qcp.mArg1) ? 1 : 0); break; case QuestConditionType.Stage_Grade: rst = (uint)pdm.GetStageGrade(qcp.mArg1); break; case QuestConditionType.Battle_Score: rst = pdm.GetGrade(); break; case QuestConditionType.Wing_Level: rst = pdm.GetWingLevel(qcp.mArg1); break; case QuestConditionType.Cost_Diamond: rst = pdm.GetRMBUsed(); break; case QuestConditionType.Passted_Stage: rst = pdm.GetStagePassTimes(qcp.mArg1); if (rst > 0) { GameDebug.Log("Passted_Stage:" + rst); } break; case QuestConditionType.Passted_Zone: rst = pdm.GetZonePassTimes(qcp.mArg1); break; case QuestConditionType.Quest: rst = Convert.ToUInt32(pdm.IsQuestFinish(qcp.mArg1) ? 1 : 0); break; case QuestConditionType.Top_Level: { return(pdm.GetLevel() <= qcp.mValue); } case QuestConditionType.Tower_Floor: { GameDebug.Log("Tower_Floor" + pdm.GetChallengMaxFloor()); return(pdm.GetChallengMaxFloor() >= qcp.mArg1); } default: { int totalProgress = pdm.GetQuestTotalProgress(questid); int progress = pdm.getQuestProgress(questid); if (totalProgress != 0 && progress != 0) { if (totalProgress == progress) { return(true); } if (totalProgress < progress) { GameDebug.LogError("任务当前进度大于总进度 任务ID = " + questid); return(false); } } } break; } if (UInt32.MaxValue == rst || qcp.mValue < 0) { return(false); } return(rst >= (uint)qcp.mValue); }