private void parseDemandKill(string DemandKill, ref _MISSION_INFO MissionInfo) { try { if (!DemandKill.Equals("nil")) { MatchCollection matches = StringRegex.Matches(DemandKill); if (matches.Count == 0) { LogManager.LogError("--------------------客户端配置中不存在匹配的所需杀怪。--------------------"); } foreach (Match match in matches) { string matchstr = match.Value; string[] DemandItemstr = matchstr.Split(new string[1] { "," }, StringSplitOptions.None); uint npcId = Convert.ToUInt32(FormatString(DemandItemstr[0])); int npcCount = Convert.ToInt32(FormatString(DemandItemstr[1])); string npcName = FormatString(DemandItemstr[2]); _DBC_CREATURE_ATT MissionNPC = CDataBaseSystem.Instance.GetDataBase <_DBC_CREATURE_ATT>((int)DataBaseStruct.DBC_CREATURE_ATT).Search_Index_EQU((int)npcId); QuestDemandKill newDemandKill = new QuestDemandKill(); newDemandKill.pDemandKill.m_uNPCID = npcId; newDemandKill.pDemandKill.m_yCount = (byte)npcCount; if (MissionNPC.pName == npcName) { newDemandKill.szNPCName = MissionNPC.pName; } else { newDemandKill.szNPCName = npcName; LogManager.LogWarning("--------------------数据库NPC名称与脚本名称不一致。暂以数据库为准。--------------------"); } MissionInfo.m_vecQuestDemandKill.Add(newDemandKill); } } } catch (Exception ex) { CDataBaseSystem.StrError += "--------------------parseDemandKill方法出错。--------------------"; CDataBaseSystem.StrError += ex.ToString(); throw new Exception(CDataBaseSystem.StrError); } }
public void resetCurrentMonsterInfo() { mCurrentMonsterInfo = new CMonsterInstanceInfo(); if (mMonsterTable == null) { return; } _DBC_CREATURE_ATT monsterAttr = mMonsterTable.Search_Index_EQU(AllMonsterNpcID[mCurrentSelectMonsterIndex]); if (monsterAttr == null) { return; } mCurrentMonsterInfo.m_popupIndex = mCurrentSelectMonsterIndex; mCurrentMonsterInfo.m_iCampId = monsterAttr.nCamp; mCurrentMonsterInfo.m_iLevel = monsterAttr.nLevel; mCurrentMonsterInfo.m_dwObjectId = (uint)AllMonsterNpcID[mCurrentSelectMonsterIndex]; }
public void AddActor(int ID, CMonsterInstanceInfo theMonsterInfo, Vector3 pos, Quaternion rot) { _DBC_CREATURE_ATT monsterAttr = mMonsterTable.Search_Index_EQU(ID); if (monsterAttr == null) { return; } _DBC_CHARACTER_MODEL CharModel = CDataBaseSystem.Instance.GetDataBase <_DBC_CHARACTER_MODEL>((int)DataBaseStruct.DBC_CHARACTER_MODEL).Search_Index_EQU(monsterAttr.nModelID); if (CharModel == null) { return; } GFX.GfxActor actor = (GFX.GfxActor)GFX.GFXObjectManager.Instance.createObject(CharModel.m_pszModelName, GFX.GFXObjectType.ACTOR); actor.position = pos; actor.rotation = rot; actor.setRenderInterfaceCreateEvt(new GFX.OnRenderInterfaceEvent(OnActorCreate)); CMonsterInstanceInfo monsterInfo = new CMonsterInstanceInfo(); CMonsterInstanceInfo.Copy(theMonsterInfo, monsterInfo); mAllActor.Add(actor, monsterInfo); }
// Use this for initialization void Start() { NPCEditorScriptEnable = true; InitAI(); if (mDBCSystem == null) { mDBCSystem = CDataBaseSystem.Instance; mDBCSystem.Initial(DBStruct.s_dbToLoad, DBStruct.GetResources); } mMonsterTable = mDBCSystem.GetDataBase <_DBC_CREATURE_ATT>((int)DataBaseStruct.DBC_CREATURE_ATT); int lineCount = mMonsterTable.StructDict.Count; AllMonsterNpcNames = new string[lineCount]; AllMonsterNpcID = new int[lineCount]; int j = 0; foreach (int i in mMonsterTable.StructDict.Keys) { _DBC_CREATURE_ATT monsterAttr = mMonsterTable.Search_Index_EQU(i); if (monsterAttr != null) { AllMonsterNpcNames[j] = monsterAttr.nID.ToString() + "=" + monsterAttr.pName; AllMonsterNpcID[j] = monsterAttr.nID; } else { AllMonsterNpcNames[j] = "none"; AllMonsterNpcID[j] = -1; } IDToPopupIndex[AllMonsterNpcID[j]] = j; j++; } mNPCType[0] = "Monster"; mNPCType[1] = "NPC"; mCurrentSelectMonsterIndex = 0; resetCurrentMonsterInfo(); }
void OnGUI() { if (NPCEditorScript.NPCEditorScriptEnable == false) { return; } GUILayout.BeginHorizontal("box"); GUILayout.Label("怪物NPC"); int oldIndex = mNPCScript.mCurrentSelectMonsterIndex; mNPCScript.mCurrentSelectMonsterIndex = EditorGUILayout.Popup(mNPCScript.mCurrentSelectMonsterIndex, mNPCScript.AllMonsterNpcNames); if (oldIndex != mNPCScript.mCurrentSelectMonsterIndex || mNPCScript.mCurrentMonsterInfo == null) { mNPCScript.resetCurrentMonsterInfo(); } GUILayout.EndHorizontal(); _DBC_CREATURE_ATT monsterAttr = mNPCScript.mMonsterTable.Search_Index_EQU(mNPCScript.AllMonsterNpcID[mNPCScript.mCurrentSelectMonsterIndex]); if (monsterAttr == null) { return; } GUILayout.BeginHorizontal("box"); if (GUILayout.Button("打开文件")) { openINIFile(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("名字(不能修改)"); EditorGUILayout.TextField(monsterAttr.pName); GUILayout.Label("等级"); mNPCScript.mCurrentMonsterInfo.m_iLevel = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iLevel); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("复活时间"); mNPCScript.mCurrentMonsterInfo.m_iRefreshTime = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iRefreshTime); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("阵营ID"); mNPCScript.mCurrentMonsterInfo.m_iCampId = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iCampId); GUILayout.Label("名誉ID"); mNPCScript.mCurrentMonsterInfo.m_iReputationID = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iReputationID); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("基础AI类型"); mNPCScript.mCurrentMonsterInfo.m_iBaseAIId = EditorGUILayout.Popup(mNPCScript.mCurrentMonsterInfo.m_iBaseAIId, mNPCScript.mBaseAIString); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("AI文件"); mNPCScript.mCurrentMonsterInfo.m_iAdvanceAIId = EditorGUILayout.Popup(mNPCScript.mCurrentMonsterInfo.m_iAdvanceAIId, mNPCScript.mAdvanceAIString); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("脚本文件"); mNPCScript.mCurrentMonsterInfo.m_EvenId = EditorGUILayout.Popup(mNPCScript.mCurrentMonsterInfo.m_EvenId + 1, mNPCScript.mScriptFileString) - 1; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("群ID"); mNPCScript.mCurrentMonsterInfo.m_iGroupId = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iGroupId); GUILayout.Label("队伍ID"); mNPCScript.mCurrentMonsterInfo.m_iTeamId = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iTeamId); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("实例名"); mNPCScript.mCurrentMonsterInfo.m_strInstanceName = EditorGUILayout.TextField(mNPCScript.mCurrentMonsterInfo.m_strInstanceName); // GUILayout.Label("GUID"); // mNPCScript.mCurrentMonsterInfo.m_dwMonsterGUID = (uint)EditorGUILayout.IntField((int)mNPCScript.mCurrentMonsterInfo.m_dwMonsterGUID); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("巡逻路线ID"); mNPCScript.mCurrentMonsterInfo.m_iLineid = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iLineid); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("头衔"); mNPCScript.mCurrentMonsterInfo.m_strTitleName = EditorGUILayout.TextField(mNPCScript.mCurrentMonsterInfo.m_strTitleName); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("NPC类型"); mNPCScript.mCurrentMonsterInfo.m_iType = EditorGUILayout.Popup(mNPCScript.mCurrentMonsterInfo.m_iType, mNPCScript.mNPCType); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("店铺1"); mNPCScript.mCurrentMonsterInfo.m_iShopArray[0] = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iShopArray[0]); GUILayout.Label("店铺2"); mNPCScript.mCurrentMonsterInfo.m_iShopArray[1] = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iShopArray[1]); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("店铺3"); mNPCScript.mCurrentMonsterInfo.m_iShopArray[2] = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iShopArray[2]); GUILayout.Label("店铺4"); mNPCScript.mCurrentMonsterInfo.m_iShopArray[3] = EditorGUILayout.IntField(mNPCScript.mCurrentMonsterInfo.m_iShopArray[3]); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); if (GUILayout.Button("修改")) { save(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); if (GUILayout.Button("保存到文件")) { saveToFile(); } GUILayout.EndHorizontal(); }
public void ParseMission(int missionId, int scriptId) { ScriptMissionInfo = MissionStruct.Instance.GetMissionInfo(missionId); if (!ScriptMissionInfo.m_bFill) { string FileName = CScriptSvm.Instance.GetMissionScriptFile(scriptId); if (FileName != string.Empty) { MissionStruct.Instance.OpenScript(FileName); } else { _DBC_MISSION_LIST MissionList = CDataBaseSystem.Instance.GetDataBase <_DBC_MISSION_LIST>((int)DataBaseStruct.DBC_MISSION_LIST).Search_Index_EQU(scriptId); if (MissionList != null) { _DBC_MISSION_DATA MissionData = CDataBaseSystem.Instance.GetDataBase <_DBC_MISSION_DATA>((int)DataBaseStruct.DBC_MISSION_DATA).Search_Index_EQU(MissionList.nMissionID); if (MissionData != null) { _DBC_MISSION_REWARD MissionReward = CDataBaseSystem.Instance.GetDataBase <_DBC_MISSION_REWARD>((int)DataBaseStruct.DBC_MISSION_REWARD).Search_Index_EQU(MissionList.nReward); if (MissionReward != null) { _DBC_MISSION_DIALOG MissionDialog = CDataBaseSystem.Instance.GetDataBase <_DBC_MISSION_DIALOG>((int)DataBaseStruct.DBC_MISSION_DIALOG).Search_Index_EQU(MissionList.nDialog); if (MissionDialog != null) { ScriptMissionInfo.m_nLevel = MissionData.nMissionLevel; ScriptMissionInfo.m_nKind = MissionData.nMissionKind; ScriptMissionInfo.m_nElite = 0; ScriptMissionInfo.m_nOKFail = 1; ScriptMissionInfo.m_nLimitTime = -1; ScriptMissionInfo.m_nRound = -1; ScriptMissionInfo.m_nBill = -1; //固定奖励 if (MissionReward.nItem1ID != -1 && MissionReward.nItem1Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionReward.nItem1ID); if (pItem != null) { SMissionBonus rewardItem = new SMissionBonus(); rewardItem.m_ItemBonus.m_uItemID = (uint)MissionReward.nItem1ID; rewardItem.m_ItemBonus.m_yCount = MissionReward.nItem1Num; rewardItem.m_nType = ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_ITEM; newRewardItem.pItemData = rewardItem; newRewardItem.bSelected = 0; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newRewardItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestRewardItem.Add(newRewardItem); } } if (MissionReward.nItem2ID != -1 && MissionReward.nItem2Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionReward.nItem2ID); if (pItem != null) { SMissionBonus rewardItem = new SMissionBonus(); rewardItem.m_ItemBonus.m_uItemID = (uint)MissionReward.nItem2ID; rewardItem.m_ItemBonus.m_yCount = MissionReward.nItem2Num; rewardItem.m_nType = ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_ITEM; newRewardItem.pItemData = rewardItem; newRewardItem.bSelected = 0; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newRewardItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestRewardItem.Add(newRewardItem); } } //选择奖励物品 if (MissionReward.nRandomItem1ID != -1 && MissionReward.nRandomItem1Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionReward.nRandomItem1ID); if (pItem != null) { SMissionBonus rewardItem = new SMissionBonus(); rewardItem.m_ItemBonus.m_uItemID = (uint)MissionReward.nRandomItem1ID; rewardItem.m_ItemBonus.m_yCount = MissionReward.nRandomItem1Num; rewardItem.m_nType = ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_ITEM_RADIO; newRewardItem.pItemData = rewardItem; newRewardItem.bSelected = 0; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newRewardItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestRewardItem.Add(newRewardItem); } } if (MissionReward.nRandomItem2ID != -1 && MissionReward.nRandomItem2Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionReward.nRandomItem2ID); if (pItem != null) { SMissionBonus rewardItem = new SMissionBonus(); rewardItem.m_ItemBonus.m_uItemID = (uint)MissionReward.nRandomItem2ID; rewardItem.m_ItemBonus.m_yCount = MissionReward.nRandomItem2Num; rewardItem.m_nType = ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_ITEM_RADIO; newRewardItem.pItemData = rewardItem; newRewardItem.bSelected = 0; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newRewardItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestRewardItem.Add(newRewardItem); } } if (MissionReward.nRandomItem3ID != -1 && MissionReward.nRandomItem3Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionReward.nRandomItem3ID); if (pItem != null) { SMissionBonus rewardItem = new SMissionBonus(); rewardItem.m_ItemBonus.m_uItemID = (uint)MissionReward.nRandomItem3ID; rewardItem.m_ItemBonus.m_yCount = MissionReward.nRandomItem3Num; rewardItem.m_nType = ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_ITEM_RADIO; newRewardItem.pItemData = rewardItem; newRewardItem.bSelected = 0; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newRewardItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestRewardItem.Add(newRewardItem); } } if (MissionReward.nRandomItem4ID != -1 && MissionReward.nRandomItem4Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionReward.nRandomItem4ID); if (pItem != null) { SMissionBonus rewardItem = new SMissionBonus(); rewardItem.m_ItemBonus.m_uItemID = (uint)MissionReward.nRandomItem4ID; rewardItem.m_ItemBonus.m_yCount = MissionReward.nRandomItem4Num; rewardItem.m_nType = ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_ITEM_RADIO; newRewardItem.pItemData = rewardItem; newRewardItem.bSelected = 0; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newRewardItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestRewardItem.Add(newRewardItem); } } if (MissionReward.nMoney > 0) { SMissionBonus rewardItem = new SMissionBonus(); rewardItem.m_uMoney = (uint)MissionReward.nMoney; rewardItem.m_nType = ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_MONEY; newRewardItem.pItemData = rewardItem; newRewardItem.bSelected = 0; ScriptMissionInfo.m_vecQuestRewardItem.Add(newRewardItem); } if (MissionReward.nExp > 0) { SMissionBonus rewardItem = new SMissionBonus(); rewardItem.m_uExp = (uint)MissionReward.nExp; rewardItem.m_nType = ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_EXP; newRewardItem.pItemData = rewardItem; newRewardItem.bSelected = 0; ScriptMissionInfo.m_vecQuestRewardItem.Add(newRewardItem); } //交任务需要的物品 if (MissionData.nFinishItem1ID != -1 && MissionData.nFinishItem1Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionData.nFinishItem1ID); newDemandItem.pDemandItem = new SMissionBonusItem(); newDemandItem.pDemandItem.m_uItemID = (uint)MissionData.nFinishItem1ID; newDemandItem.pDemandItem.m_yCount = MissionData.nFinishItem1Num; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newDemandItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestDemandItem.Add(newDemandItem); } if (MissionData.nFinishItem2ID != -1 && MissionData.nFinishItem2Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionData.nFinishItem2ID); newDemandItem.pDemandItem = new SMissionBonusItem(); newDemandItem.pDemandItem.m_uItemID = (uint)MissionData.nFinishItem2ID; newDemandItem.pDemandItem.m_yCount = MissionData.nFinishItem2Num; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newDemandItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestDemandItem.Add(newDemandItem); } if (MissionData.nFinishItem3ID != -1 && MissionData.nFinishItem3Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionData.nFinishItem3ID); newDemandItem.pDemandItem = new SMissionBonusItem(); newDemandItem.pDemandItem.m_uItemID = (uint)MissionData.nFinishItem3ID; newDemandItem.pDemandItem.m_yCount = MissionData.nFinishItem3Num; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newDemandItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestDemandItem.Add(newDemandItem); } if (MissionData.nFinishItem4ID != -1 && MissionData.nFinishItem4Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionData.nFinishItem4ID); newDemandItem.pDemandItem = new SMissionBonusItem(); newDemandItem.pDemandItem.m_uItemID = (uint)MissionData.nFinishItem4ID; newDemandItem.pDemandItem.m_yCount = MissionData.nFinishItem4Num; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newDemandItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestDemandItem.Add(newDemandItem); } if (MissionData.nFinishItem5ID != -1 && MissionData.nFinishItem5Num > 0) { CObject_Item pItem = ObjectSystem.Instance.NewItem((uint)MissionData.nFinishItem5ID); newDemandItem.pDemandItem = new SMissionBonusItem(); newDemandItem.pDemandItem.m_uItemID = (uint)MissionData.nFinishItem5ID; newDemandItem.pDemandItem.m_yCount = MissionData.nFinishItem5Num; pItem.SetTypeOwner(ITEM_OWNER.IO_QUESTVIRTUALITEM); newDemandItem.pItemImpl = pItem; ScriptMissionInfo.m_vecQuestDemandItem.Add(newDemandItem); } //交任务需要杀怪 if (MissionData.nMissionType != (int)GAMEDEFINE.MISSION_TYPE.MISSION_TYPE_SHOUJI) { if (MissionData.nMonster1ID != -1 && MissionData.nMonster1Num > 0) { _DBC_CREATURE_ATT MissionNpc = CDataBaseSystem.Instance.GetDataBase <_DBC_CREATURE_ATT>((int)DataBaseStruct.DBC_CREATURE_ATT).Search_Index_EQU(MissionData.nMonster1ID); if (MissionNpc != null) { newDemandKill.pDemandKill = new SMissionDemandKill(); newDemandKill.pDemandKill.m_uNPCID = (uint)MissionData.nMonster1ID; newDemandKill.pDemandKill.m_yCount = (byte)MissionData.nMonster1Num; newDemandKill.szNPCName = MissionNpc.pName; ScriptMissionInfo.m_vecQuestDemandKill.Add(newDemandKill); } } if (MissionData.nMonster2ID != -1 && MissionData.nMonster2Num > 0) { _DBC_CREATURE_ATT MissionNpc = CDataBaseSystem.Instance.GetDataBase <_DBC_CREATURE_ATT>((int)DataBaseStruct.DBC_CREATURE_ATT).Search_Index_EQU(MissionData.nMonster2ID); if (MissionNpc != null) { newDemandKill.pDemandKill = new SMissionDemandKill(); newDemandKill.pDemandKill.m_uNPCID = (uint)MissionData.nMonster2ID; newDemandKill.pDemandKill.m_yCount = (byte)MissionData.nMonster2Num; newDemandKill.szNPCName = MissionNpc.pName; ScriptMissionInfo.m_vecQuestDemandKill.Add(newDemandKill); } } if (MissionData.nMonster3ID != -1 && MissionData.nMonster3Num > 0) { _DBC_CREATURE_ATT MissionNpc = CDataBaseSystem.Instance.GetDataBase <_DBC_CREATURE_ATT>((int)DataBaseStruct.DBC_CREATURE_ATT).Search_Index_EQU(MissionData.nMonster3ID); if (MissionNpc != null) { newDemandKill.pDemandKill = new SMissionDemandKill(); newDemandKill.pDemandKill.m_uNPCID = (uint)MissionData.nMonster3ID; newDemandKill.pDemandKill.m_yCount = (byte)MissionData.nMonster3Num; newDemandKill.szNPCName = MissionNpc.pName; ScriptMissionInfo.m_vecQuestDemandKill.Add(newDemandKill); } } if (MissionData.nMonster4ID != -1 && MissionData.nMonster4Num > 0) { _DBC_CREATURE_ATT MissionNpc = CDataBaseSystem.Instance.GetDataBase <_DBC_CREATURE_ATT>((int)DataBaseStruct.DBC_CREATURE_ATT).Search_Index_EQU(MissionData.nMonster4ID); if (MissionNpc != null) { newDemandKill.pDemandKill = new SMissionDemandKill(); newDemandKill.pDemandKill.m_uNPCID = (uint)MissionData.nMonster4ID; newDemandKill.pDemandKill.m_yCount = (byte)MissionData.nMonster4Num; newDemandKill.szNPCName = MissionNpc.pName; ScriptMissionInfo.m_vecQuestDemandKill.Add(newDemandKill); } } } // 添加任务追踪时的描述 //if (MissionData.nTargetTraceComplete != null && MissionData.nTargetTraceComplete != "") //{ // ScriptMissionInfo.m_vecTraceDescList.Add(MissionData.nTargetTraceComplete); //} //if (MissionData.nTargetTraceOne != null && MissionData.nTargetTraceOne != "") //{ // ScriptMissionInfo.m_vecTraceDescList.Add(MissionData.nTargetTraceOne); //} //if (MissionData.nTargetTraceTwo != null && MissionData.nTargetTraceTwo != "") //{ // ScriptMissionInfo.m_vecTraceDescList.Add(MissionData.nTargetTraceTwo); //} //if (MissionData.nTargetTraceThree != null && MissionData.nTargetTraceThree != "") //{ // ScriptMissionInfo.m_vecTraceDescList.Add(MissionData.nTargetTraceThree); //} //if (MissionData.nTargetTraceFour != null && MissionData.nTargetTraceFour != "") //{ // ScriptMissionInfo.m_vecTraceDescList.Add(MissionData.nTargetTraceFour); //} //if (MissionData.nTargetTraceFive != null && MissionData.nTargetTraceFive != "") //{ // ScriptMissionInfo.m_vecTraceDescList.Add(MissionData.nTargetTraceFive); //} if (ScriptMissionInfo.m_misName == string.Empty) { ScriptMissionInfo.m_misName = MissionDialog.szMissionName; } if (ScriptMissionInfo.m_misDesc == string.Empty) { ScriptMissionInfo.m_misDesc = MissionDialog.szMissionDesc; } } } } } } ScriptMissionInfo.m_bFill = true; } }