static bool isAll(int questId) { QuestData quest = QuestData.GetData(questId); COM_QuestInst inst = GetQuestInst(questId); if (inst == null) { return(false); } if (quest == null) { return(false); } for (int i = 0; i < inst.targets_.Length; i++) { //QuestData questd = QuestData.GetData((int)inst.targets_[i].targetId_); if (inst.targets_[i].targetNum_ < int.Parse(quest.targetNum_[i])) { return(false); } } return(true); }
public static void UpdateQuest(COM_QuestInst questInst) { if (QuestListKind == null) { return; } QuestData qdata = QuestData.GetData(questInst.questId_); int i; for (i = 0; i < QuestListKind[(int)qdata.questKind_].Count; ++i) { if (QuestListKind[(int)qdata.questKind_][i].questId_ == qdata.id_) { QuestListKind[(int)qdata.questKind_][i] = questInst; break; } } for (i = 0; i < QuestList.Count; ++i) { if (QuestList[i].questId_ == questInst.questId_) { QuestList[i] = questInst; break; } } if (IsQuestFinish(questInst.questId_)) { isEffectF = true; isTaskF = true; sqid = questInst.questId_; //Èç¹ûÍê³ÉµÄÈÎÎñÊǵ±Ç°Ñ²ÂßµÄÈÎÎñ Í£Ö¹ if (Prebattle.Instance.clickedQuestId_ == sqid) { NetConnection.Instance.stopMove(); Prebattle.Instance.ChangeWalkEff(Prebattle.WalkState.WS_Normal); Prebattle.Instance.ResetCurrentQuest(); } } // for(int j =0;j<TrackQues.Count;j++) // { // if (TrackQues[j].questId_ == questInst.questId_) // TrackQues[j] = questInst; // } isDirty = true; if (OnQuestUpdate != null) { OnQuestUpdate(); } }
public static bool IsQuestFinish(int questId) { QuestData quest = QuestData.GetData(questId); COM_QuestInst inst = GetQuestInst(questId); if (null == inst) { return(false); } switch (quest.questType_) { case QuestType.QT_Battle: for (int i = 0; i < inst.targets_.Length; i++) { if (inst.targets_[i].targetNum_ >= 1) { return(true); } } // if (inst.questNum_ >= 1) // return true; break; case QuestType.QT_Dialog: return(true); case QuestType.QT_Item: case QuestType.QT_Other: case QuestType.QT_GiveBaby: case QuestType.QT_Kill: case QuestType.QT_KillAI: { if (isAll((int)questId)) { return(true); } } break; case QuestType.QT_GiveItem: if (isGiveItemAll((int)questId)) { return(true); } break; default: return(false); } return(false); }
public static void AcceptQuestOk(COM_QuestInst quest) { NewQuest = true; InsertQuestInst(quest); UpdateAcceptableQuests(); //AddTrackQues(quest); if (OnQuestUpdate != null) { OnQuestUpdate(); } isDirty = true; GuideManager.Instance.ProcEvent(ScriptGameEvent.SGE_NpcRenwuAccept, quest.questId_); EffectAPI.PlayUIEffect((EFFECT_ID)GlobalValue.EFFECT_AcceptQuest, ApplicationEntry.Instance.uiRoot.transform); }
int sor(COM_QuestInst q1, COM_QuestInst q2) { QuestData qdata = QuestData.GetData(q1.questId_); if (qdata.questKind_ == QuestKind.QK_Main) { return(1); } if (QuestSystem.IsQuestFinish(q1.questId_) && !QuestSystem.IsQuestFinish(q2.questId_)) { return(-1); } else { return(1); } return(0); }
public static void InsertQuestInst(COM_QuestInst quest) { if (QuestList == null) { return; } QuestData qdata0 = QuestData.GetData(quest.questId_); int i; for (i = 0; i < QuestList.Count; ++i) { QuestData qdata1 = QuestData.GetData(QuestList[i].questId_); if (qdata0.questKind_ > qdata1.questKind_) { break; } } QuestListKind[(int)qdata0.questKind_].Add(quest); QuestList.Insert(i, quest); UpdateAcceptableQuests(); }