public static void CreateStoryLineNpcFromID(int npcID, Vector3 position) { Mono.Data.SqliteClient.SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("NPC"); NpcMissionDataRepository.Reset(); while (reader.Read()) { int id = Convert.ToInt32(reader.GetString(reader.GetOrdinal("NPC_ID"))); int protoId = Convert.ToInt32(reader.GetString(reader.GetOrdinal("PrototypeNPC"))); if (id == npcID) { PeEntity entity = PeCreature.Instance.CreateNpc(id, protoId, Vector3.zero, Quaternion.identity, Vector3.one); if (entity == null) { continue; } InitNpcWithDb(entity, reader); NpcMissionData nmd = NpcMissionDataRepository.GetMissionData(entity.Id); entity.SetUserData(nmd); SetNpcShopIcon(entity); entity.position = position; break; } } }
void AddMissionItem(int missionId) { MissionSelItem_N AddItem = Instantiate(mPrefab) as MissionSelItem_N; AddItem.gameObject.name = "ItemName" + mSelIndex; mSelIndex++; AddItem.transform.parent = mUITable.transform; AddItem.transform.localPosition = Vector3.zero; AddItem.transform.localRotation = Quaternion.identity; AddItem.transform.localScale = Vector3.one; string strtitle = MissionRepository.GetMissionNpcListName(missionId, false); if (missionId == MissionManager.m_SpecialMissionID9) { if (EntityCreateMgr.Instance.IsRandomNpc(m_CurSelNpc)) { NpcMissionData missionData = m_CurSelNpc.GetUserData() as NpcMissionData; if (null != missionData && (missionData.mCurComMisNum >= missionData.mCompletedMissionCount || UINPCTalk.m_QuickZM)) { strtitle = "[ffff00]" + strtitle + "[-]"; } } } AddItem.SetMission(missionId, strtitle, this, m_Player); mMissionItemList.Add(AddItem); }
public static object Deserialize(uLink.BitStream stream, params object[] codecOptions) { var mission = new NpcMissionData(); mission.mCurComMisNum = stream.Read <byte>(); mission.mCompletedMissionCount = stream.Read <int>(); mission.m_RandomMission = stream.Read <int>(); mission.m_RecruitMissionNum = stream.Read <int>(); mission.m_Rnpc_ID = stream.Read <int>(); mission.m_CurMissionGroup = stream.Read <int>(); mission.m_CurGroupTimes = stream.Read <int>(); mission.m_QCID = stream.Read <int>(); mission.m_Pos = stream.Read <Vector3>(); int[] missionList = stream.Read <int[]>(); mission.m_MissionList.Clear(); mission.m_MissionList.AddRange(missionList); int[] missionReplyList = stream.Read <int[]>(); mission.m_MissionListReply.Clear(); mission.m_MissionListReply.AddRange(missionReplyList); int[] missionRecruitList = stream.Read <int[]>(); mission.m_RecruitMissionList.Clear(); mission.m_RecruitMissionList.AddRange(missionRecruitList); return(mission); }
public static void AddMissionData(int npcId, NpcMissionData data) { if (dicMissionData.ContainsKey(npcId)) { dicMissionData[npcId] = data; return; } dicMissionData.Add(npcId, data); }
public static void AddReplyMission(int npcid, int id) { NpcMissionData npc = GetMissionData(npcid); if (npc == null) { return; } npc.AddMissionListReply(id); }
public void InitRadioData() { if (!InitRadio) { PeEntity chenZhenEntity = EntityMgr.Instance.Get(m_ChenZhenID); if (chenZhenEntity) { m_ChenZhenMissionData = chenZhenEntity.GetUserData() as NpcMissionData; } InitRadio = true; } }
void Import(byte[] buffer) { MemoryStream ms = new MemoryStream(buffer); BinaryReader _in = new BinaryReader(ms); /*int readVersion = */ _in.ReadInt32(); int count = _in.ReadInt32(); for (int i = 0; i < count; i++) { mActivelist.Add(_in.ReadInt32()); } count = _in.ReadInt32(); for (int i = 0; i < count; i++) { NpcMissionData data = new NpcMissionData(); int npcid = _in.ReadInt32(); if (npcid == -1) { continue; } data.m_Rnpc_ID = _in.ReadInt32(); data.m_QCID = _in.ReadInt32(); data.m_CurMissionGroup = _in.ReadInt32(); data.m_CurGroupTimes = _in.ReadInt32(); data.mCurComMisNum = _in.ReadByte(); data.mCompletedMissionCount = _in.ReadInt32(); data.m_RandomMission = _in.ReadInt32(); data.m_RecruitMissionNum = _in.ReadInt32(); int num = _in.ReadInt32(); for (int j = 0; j < num; j++) { data.m_MissionList.Add(_in.ReadInt32()); } num = _in.ReadInt32(); for (int j = 0; j < num; j++) { data.m_MissionListReply.Add(_in.ReadInt32()); } mNpcList.Add(npcid); NpcMissionDataRepository.AddMissionData(npcid, data); } _in.Close(); ms.Close(); }
void RefreshState() { NpcMissionData missionData = mCommon.Entity.GetUserData() as NpcMissionData; if (missionData == null) { mMissionState = NpcMissionState.Max; } else { MissionManager.Instance.m_PlayerMission.UpdateNpcMissionTex(mCommon.Entity); } }
public void SetCurSelNpc(PeEntity npc, bool sayHalo = false) { if (PeCreature.Instance.mainPlayer == null) { return; } m_Player = PeCreature.Instance.mainPlayer; m_CurSelNpc = npc;// NpcManager.Instance.GetNpcScript(name); if (null == m_CurSelNpc) { return; } if (sayHalo && m_CurSelNpc != mSayHalotarget) { mSayHalotarget = m_CurSelNpc; mSayHalo = true; } //NpcMissionData nmd = NpcMissionDataRepository.GetMissionData(npc.Id); //m_CurSelNpc.SetUserData(nmd); NpcMissionData missionData = m_CurSelNpc.GetUserData() as NpcMissionData; if (missionData == null) { return; } if (missionData.mInFollowMission) { return; } m_CurSelNpc.CmdFaceToPoint(PeCreature.Instance.mainPlayer.ExtGetPos()); m_CurSelNpc.CmdStartTalk(); StroyManager.Instance.SetTalking(m_CurSelNpc); m_CurSelNpc.SayHiRandom(); UpdateMission(); ChangeHeadTex(m_CurSelNpc); if (ReviveOpenHandler != null) { ReviveOpenHandler(m_CurSelNpc); } }
public bool IsRandomNpc(PeEntity npc) { if (npc == null) { return(false); } NpcMissionData missionData = npc.GetUserData() as NpcMissionData; if (missionData == null) { return(false); } return(missionData.m_bRandomNpc); }
void ResetMissionList() { mSelIndex = 0; for (int i = mMissionItemList.Count - 1; i >= 0; i--) { mMissionItemList[i].transform.parent = null; Destroy(mMissionItemList[i].gameObject); } mMissionItemList.Clear(); for (int i = 0; i < m_MissionList.Count; i++) { if (m_MissionList[i] == MissionManager.m_SpecialMissionID9) { NpcMissionData missionData = m_CurSelNpc.GetUserData() as NpcMissionData; if (null == missionData) { return; } if (missionData.mCurComMisNum < missionData.mCompletedMissionCount) { continue; } } AddMissionItem(m_MissionList[i]); } for (int i = 0; i < m_MissionListReply.Count; i++) { AddMissionReplyItem(m_MissionListReply[i]); } if (m_bShowShop) { AddShopItem(-1); } if (m_bShowStorage) { ShowStorage(); } AddCloseItem(-2); // ReposTable(); mUITable.Reposition(); }
//to judge if a building is rendered //public bool IsRendered(BuildingID buildingNo) //{ // if (renderManager.ContainsKey(buildingNo)) // return renderManager[buildingNo]; // else // return true; //} public void Export(BinaryWriter bw) { bw.Write(createdNpcIdList.Count); for (int i = 0; i < createdNpcIdList.Count; i++) { BuildingNpcIdStand ite = createdNpcIdList [i]; int npcid = ite.npcId; NpcMissionData data = NpcMissionDataRepository.GetMissionData(npcid); if (data == null) { bw.Write(-1); } else { bw.Write(npcid); bw.Write(data.m_Rnpc_ID); bw.Write(data.m_QCID); bw.Write(data.m_CurMissionGroup); bw.Write(data.m_CurGroupTimes); bw.Write(data.mCurComMisNum); bw.Write(data.mCompletedMissionCount); bw.Write(data.m_RandomMission); bw.Write(data.m_RecruitMissionNum); bw.Write(data.m_MissionList.Count); for (int m = 0; m < data.m_MissionList.Count; m++) { bw.Write(data.m_MissionList [m]); } bw.Write(data.m_MissionListReply.Count); for (int m = 0; m < data.m_MissionListReply.Count; m++) { bw.Write(data.m_MissionListReply [m]); } bw.Write(ite.isStand); bw.Write(ite.rotY); } } bw.Write(mCreatedNpcBuildingID.Count); foreach (BuildingID b in mCreatedNpcBuildingID.Keys) { bw.Write(b.townId); bw.Write(b.buildingNo); } }
public static void LoadData() { Mono.Data.SqliteClient.SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("NPCMission"); while (reader.Read()) { NpcMissionData missionData = new NpcMissionData(); int id = System.Convert.ToInt32(reader.GetString(reader.GetOrdinal("NPC_ID"))); string strTemp = reader.GetString(reader.GetOrdinal("missionlist")); string[] missionlist = strTemp.Split(','); for (int i = 0; i < missionlist.Length; i++) { if (missionlist[i] != "0") { missionData.m_MissionList.Add(System.Convert.ToInt32(missionlist[i])); } } strTemp = reader.GetString(reader.GetOrdinal("missionlistreply")); string[] missionlistreply = strTemp.Split(','); for (int i = 0; i < missionlistreply.Length; i++) { if (missionlistreply[i] != "0") { missionData.AddMissionListReply(System.Convert.ToInt32(missionlistreply[i])); } } strTemp = reader.GetString(reader.GetOrdinal("Colony_RecruitMissionID")); missionlist = strTemp.Split(','); for (int i = 0; i < missionlist.Length; i++) { if (missionlist[i] != "0") { missionData.m_CSRecruitMissionList.Add(Convert.ToInt32(missionlist[i])); } } NpcMissionDataRepository.AddMissionData(id, missionData); } LoadNpcRandomMissionData(); LoadAdRandMisNpcData(); }
//public VATownNpcInfo GetNpcInfoByPos(IntVector2 posXZ) //{ // if (!npcInfoMap.ContainsKey(posXZ)) // { // return null; // } // return npcInfoMap[posXZ]; //} public void Export(BinaryWriter bw) { bw.Write(createdNpcIdList.Count); for (int i = 0; i < createdNpcIdList.Count; i++) { int npcid = createdNpcIdList [i]; NpcMissionData data = NpcMissionDataRepository.GetMissionData(npcid); if (data == null) { bw.Write(-1); } else { bw.Write(npcid); bw.Write(data.m_Rnpc_ID); bw.Write(data.m_QCID); bw.Write(data.m_CurMissionGroup); bw.Write(data.m_CurGroupTimes); bw.Write(data.mCurComMisNum); bw.Write(data.mCompletedMissionCount); bw.Write(data.m_RandomMission); bw.Write(data.m_RecruitMissionNum); bw.Write(data.m_MissionList.Count); for (int m = 0; m < data.m_MissionList.Count; m++) { bw.Write(data.m_MissionList [m]); } bw.Write(data.m_MissionListReply.Count); for (int m = 0; m < data.m_MissionListReply.Count; m++) { bw.Write(data.m_MissionListReply [m]); } } } bw.Write(createdPosList.Count); for (int i = 0; i < createdPosList.Count; i++) { IntVector2 posXZ = createdPosList [i]; bw.Write(posXZ.x); bw.Write(posXZ.y); } }
public void Export(BinaryWriter bw) { bw.Write(Version); bw.Write(mActivelist.Count); for (int i = 0; i < mActivelist.Count; i++) { bw.Write((int)mActivelist [i]); } bw.Write(mNpcList.Count); for (int i = 0; i < mNpcList.Count; i++) { NpcMissionData data = NpcMissionDataRepository.GetMissionData(mNpcList[i]); if (data == null) { bw.Write(-1); } else { bw.Write(mNpcList[i]); bw.Write(data.m_Rnpc_ID); bw.Write(data.m_QCID); bw.Write(data.m_CurMissionGroup); bw.Write(data.m_CurGroupTimes); bw.Write(data.mCurComMisNum); bw.Write(data.mCompletedMissionCount); bw.Write(data.m_RandomMission); bw.Write(data.m_RecruitMissionNum); bw.Write(data.m_MissionList.Count); for (int m = 0; m < data.m_MissionList.Count; m++) { bw.Write(data.m_MissionList[m]); } bw.Write(data.m_MissionListReply.Count); for (int m = 0; m < data.m_MissionListReply.Count; m++) { bw.Write(data.m_MissionListReply[m]); } } } }
void CreateWithProto(int id, int protoId) { PeEntity entity = PeEntityCreator.Instance.CreateNpc(id, protoId, transform.position, Quaternion.identity, Vector3.one); PeMousePickCmpt pmp = entity.GetCmpt <PeMousePickCmpt>(); if (null != pmp) { pmp.mousePick.eventor.Subscribe(NpcMouseEventHandler); } NpcMissionData useData = new NpcMissionData(); useData.m_bRandomNpc = true; useData.m_Rnpc_ID = protoId; useData.m_QCID = 1; useData.m_MissionList.Add(191); entity.SetUserData(useData); }
public void RemoveForcedServant(NpcCmpt forcedServant) { if (mForcedFollowers.Contains(forcedServant)) { mForcedFollowers.Remove(forcedServant); } else { return; } NpcMissionData missionData = forcedServant.Follwerentity.GetUserData() as NpcMissionData; missionData.mInFollowMission = false; if (forcedServant.GetComponent <PeEntity>() == null) { return; } if (!MissionManager.Instance.m_PlayerMission.followers.Contains(forcedServant)) { StroyManager.Instance.RemoveReq(forcedServant.GetComponent <PeEntity>(), EReqType.FollowTarget); } }
public static void CreateStoryLineNpc() { Mono.Data.SqliteClient.SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("NPC"); NpcMissionDataRepository.Reset(); while (reader.Read()) { int id = Convert.ToInt32(reader.GetString(reader.GetOrdinal("NPC_ID"))); int protoId = Convert.ToInt32(reader.GetString(reader.GetOrdinal("PrototypeNPC"))); if (PeGameMgr.IsMultiStory) { return; // string strTemp = reader.GetString(reader.GetOrdinal("startpoint")); // string[] pos = strTemp.Split(','); // if (pos.Length < 3) // { // Debug.LogError("Npc's StartPoint is Error"); // } // else // { // float x = System.Convert.ToSingle(pos[0]); // float y = System.Convert.ToSingle(pos[1]); // float z = System.Convert.ToSingle(pos[2]); // Vector3 startPos = new Vector3(x, y, z); // PlayerNetwork.MainPlayer.RequestCreateStNpc(id, startPos,protoId); // } // continue; } PeEntity entity = PeCreature.Instance.CreateNpc(id, protoId, Vector3.zero, Quaternion.identity, Vector3.one); if (entity == null) { continue; } InitNpcWithDb(entity, reader); NpcMissionData nmd = NpcMissionDataRepository.GetMissionData(entity.Id); entity.SetUserData(nmd); SetNpcShopIcon(entity); } }
public static void CreateTutorialLineNpc() { Mono.Data.SqliteClient.SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("NPC"); while (reader.Read()) { int id = Convert.ToInt32(reader.GetString(reader.GetOrdinal("NPC_ID"))); int protoId = Convert.ToInt32(reader.GetString(reader.GetOrdinal("PrototypeNPC"))); string strTemp = reader.GetString(reader.GetOrdinal("training_pos")); if (strTemp != "0,0,0") { string[] strPos = strTemp.Split(','); Vector3 pos = Vector3.zero; if (strPos.Length < 3) { Debug.LogError("Npc's StartPoint is Error at NPC_ID=" + id); } else { pos.x = System.Convert.ToSingle(strPos[0]); pos.y = System.Convert.ToSingle(strPos[1]); pos.z = System.Convert.ToSingle(strPos[2]); } PeEntity entity = PeCreature.Instance.CreateNpc(id, protoId, pos, Quaternion.identity, Vector3.one); if (entity == null) { continue; } SetNpcMoney(entity, reader.GetString(reader.GetOrdinal("money"))); AddWeaponItem(entity, reader.GetString(reader.GetOrdinal("weapon")), reader.GetString(reader.GetOrdinal("item"))); SetNpcAbility(entity, reader.GetString(reader.GetOrdinal("speciality"))); NpcMissionData nmd = NpcMissionDataRepository.GetMissionData(entity.Id); entity.SetUserData(nmd); SetNpcShopIcon(entity); } } }
public void Import(byte[] buffer) { LogManager.Info("TownNpcManager.Instance.Import()"); Clear(); if (buffer.Length == 0) { return; } MemoryStream ms = new MemoryStream(buffer); BinaryReader _in = new BinaryReader(ms); int iSize = _in.ReadInt32(); for (int i = 0; i < iSize; i++) { NpcMissionData data = new NpcMissionData(); int npcid = _in.ReadInt32(); if (npcid == -1) { continue; } data.m_Rnpc_ID = _in.ReadInt32(); data.m_QCID = _in.ReadInt32(); data.m_CurMissionGroup = _in.ReadInt32(); data.m_CurGroupTimes = _in.ReadInt32(); data.mCurComMisNum = _in.ReadByte(); data.mCompletedMissionCount = _in.ReadInt32(); data.m_RandomMission = _in.ReadInt32(); data.m_RecruitMissionNum = _in.ReadInt32(); int num = _in.ReadInt32(); for (int j = 0; j < num; j++) { data.m_MissionList.Add(_in.ReadInt32()); } num = _in.ReadInt32(); for (int j = 0; j < num; j++) { data.m_MissionListReply.Add(_in.ReadInt32()); } createdNpcIdList.Add(npcid); NpcMissionDataRepository.AddMissionData(npcid, data); } iSize = _in.ReadInt32(); for (int i = 0; i < iSize; i++) { int x = _in.ReadInt32(); int z = _in.ReadInt32(); createdPosList.Add(new IntVector2(x, z)); } _in.Close(); ms.Close(); }
public void OnMutexBtnClick(int missionId) { ActiveWnd(); if (missionId == -3)//npcstorage { if (null == m_CurSelNpc) { Debug.LogError("open storage, but npc is null"); } NpcStorage storage = null; if (GameConfig.IsMultiMode) { storage = NpcStorageMgr.GetStorage(m_Player.Id); } else { storage = NpcStorageMgr.GetSinglePlayerStorage(); } if (null == storage) { Debug.LogError(m_CurSelNpc + " is has no storage."); } //storage.Open(m_CurSelNpc); Hide(); } if (missionId == -1) // shop { NpcMissionData userdata = m_CurSelNpc.GetUserData() as NpcMissionData; if (userdata == null) { return; } int npcid = 0; if (PeGameMgr.IsStory) { npcid = m_CurSelNpc.Id; } else { if (userdata.m_bRandomNpc) { npcid = userdata.m_Rnpc_ID; } else { npcid = m_CurSelNpc.Id; } } if (!GameConfig.IsMultiMode) { if (GameUI.Instance.mShopWnd.UpdataShop(StoreRepository.GetNpcStoreData(npcid))) { GameUI.Instance.mShopWnd.Show(); } } else { // to do-- send msg to server //m_CurSelNpc.mNpcId for npc, npcid for store // if (!userdata.m_bRandomNpc) // { // Debug.Log("nr==null"); // return; // } //m_Player.GetShop(m_CurSelNpc.Id, userdata.m_Rnpc_ID); if (null != PlayerNetwork.mainPlayer) { PlayerNetwork.mainPlayer.RequestShopData(m_CurSelNpc.Id); } } } else if (missionId == -2) { OnClose(); } else { if (m_MissionList.Contains(missionId)) { if (!MissionManager.Instance.CheckCSCreatorMis(missionId)) { return; } if (!MissionManager.Instance.CheckHeroMis()) { return; } if (MissionManager.Instance.IsTempLimit(missionId)) { if (GameUI.Instance.mNPCTalk.isPlayingTalk == false) { GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(new List <int> { 4080 }); GameUI.Instance.mNPCTalk.PreShow(); } else { GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(new List <int> { 4080 }, null, false); } Hide(); return; } BtnClickMission = missionId; if (MissionRepository.HaveTalkOP(missionId)) { Hide(); GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(missionId, 1); GameUI.Instance.mNPCTalk.NormalOrSP(0); GameUI.Instance.mNPCTalk.PreShow(); } else { MissionManager.Instance.SetGetTakeMission(missionId, m_CurSelNpc, MissionManager.TakeMissionType.TakeMissionType_Get); Hide(); } BtnClickMission = 0; } else if (m_MissionListReply.Contains(missionId)) { if (MissionManager.Instance.IsReplyMission(missionId)) { if (PeGameMgr.IsMulti) { MissionManager.Instance.RequestCompleteMission(missionId); } else { MissionManager.Instance.CompleteMission(missionId); UpdateMission(); } } else { if (MissionRepository.HaveTalkIN(missionId)) { Hide(); GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(missionId, 2); GameUI.Instance.mNPCTalk.PreShow(); } } } } }
public override void Show() { if (!canShow) { return; } if (null == m_CurSelNpc) { return; } if (m_CurSelNpc.NpcCmpt != null && m_CurSelNpc.NpcCmpt.CsBacking) { NpcOnColonyRoad(); return; } //#if UNITY_5 // if (GameUI.Instance.mNPCTalk.isActiveAndEnabled) //#else // if (GameUI.Instance.mNPCTalk.active) //#endif // { // m_CurSelNpc.CmdStopTalk(); // //StroyManager.Instance.RemoveReq(m_CurSelNpc, EReqType.Dialogue); // return; // } //NpcMissionData nmd = NpcMissionDataRepository.GetMissionData(m_CurSelNpc.Id); //m_CurSelNpc.SetUserData(nmd); NpcMissionData missionData = m_CurSelNpc.GetUserData() as NpcMissionData; if (missionData == null) { return; } if (missionData.mInFollowMission) { m_CurSelNpc.CmdStopTalk(); StroyManager.Instance.RemoveReq(m_CurSelNpc, EReqType.Dialogue); return; } //if (m_CurSelNpc.m_bReturn) // return; // mUITable.Reposition(); // base.Show (); // mUITable.Reposition(); // Show(); PlayerStartAudio(); base.Show(); // mUITable.Reposition(); // if (mTweener != null) // { // mTweener.Reset(); // mTweener.Play(true); // } // mUITable.Reposition(); //m_CurSelNpc.SetStateType(NpcObject_N.StateType.StateType_Takling); // Invoke("ReposTable", 0.2f); //mRepos = true; }
public void AddMission(Pathea.PeEntity npc) { if (!Pathea.PeGameMgr.IsMulti) { return; } NpcMissionData missionData = Pathea.PeEntityExt.PeEntityExt.GetUserData(npc) as NpcMissionData; if (missionData == null) { return; } MissionCommonData mcd; if (npc.proto == Pathea.EEntityProto.Npc) { foreach (var item in missionData.m_MissionList) { if (!m_GetableMissonMap.ContainsKey(item)) { continue; } ; mcd = MissionManager.GetMissionCommonData(item); if (mcd == null) { continue; } UIMissionMgr.GetableMisView gmv = new UIMissionMgr.GetableMisView(item, mcd.m_MissionName, npc.position, npc.Id); gmv.TargetNpcInfo.mName = npc.enityInfoCmpt.characterName.fullName; gmv.TargetNpcInfo.mNpcIcoStr = string.IsNullOrEmpty(npc.enityInfoCmpt.faceIconBig) ? "npc_big_Unknown" : npc.enityInfoCmpt.faceIconBig; UIMissionMgr.Instance.AddGetableMission(gmv, true); } foreach (var item in missionData.m_MissionListReply) { if (!m_MissonMap.ContainsKey(item)) { continue; } mcd = MissionManager.GetMissionCommonData(item); if (mcd == null) { continue; } Dictionary <string, string> missionFlagType = MissionManager.Instance.m_PlayerMission.GetMissionFlagType(item); if (missionFlagType == null) { continue; } UIMissionMgr.MissionView mv = new UIMissionMgr.MissionView(); mv.mMissionID = mcd.m_ID; mv.mMissionType = mcd.m_Type; mv.mMissionTitle = mcd.m_MissionName; npc = Pathea.EntityMgr.Instance.Get(mcd.m_iNpc); if (npc != null) { mv.mMissionStartNpc.mName = npc.enityInfoCmpt.characterName.fullName; mv.mMissionStartNpc.mNpcIcoStr = string.IsNullOrEmpty(npc.enityInfoCmpt.faceIconBig) ? "npc_big_Unknown" : npc.enityInfoCmpt.faceIconBig; } npc = Pathea.EntityMgr.Instance.Get(mcd.m_iReplyNpc); if (npc != null) { mv.mMissionEndNpc.mName = npc.enityInfoCmpt.characterName.fullName; mv.mMissionEndNpc.mNpcIcoStr = string.IsNullOrEmpty(npc.enityInfoCmpt.faceIconBig) ? "npc_big_Unknown" : npc.enityInfoCmpt.faceIconBig; mv.mEndMisPos = npc.position; mv.mAttachOnId = npc.Id; mv.NeedArrow = true; } MissionManager.Instance.ParseMissionFlag(mcd, missionFlagType, mv); UIMissionMgr.Instance.AddMission(mv, true); UIMissionMgr.Instance.RefalshMissionWnd(); } } else if (npc.proto == Pathea.EEntityProto.RandomNpc && Pathea.PeGameMgr.IsStory) { if (missionData.m_RandomMission != 0) { mcd = MissionManager.GetMissionCommonData(missionData.m_RandomMission); if (mcd != null) { if (m_GetableMissonMap.ContainsKey(missionData.m_RandomMission)) { UIMissionMgr.GetableMisView gmv = new UIMissionMgr.GetableMisView(missionData.m_RandomMission, mcd.m_MissionName, npc.position, npc.Id); gmv.TargetNpcInfo.mName = npc.enityInfoCmpt.characterName.fullName; gmv.TargetNpcInfo.mNpcIcoStr = string.IsNullOrEmpty(npc.enityInfoCmpt.faceIconBig) ? "npc_big_Unknown" : npc.enityInfoCmpt.faceIconBig; UIMissionMgr.Instance.AddGetableMission(gmv, true); } if (m_MissonMap.ContainsKey(missionData.m_RandomMission)) { Dictionary <string, string> missionFlagType = MissionManager.Instance.m_PlayerMission.GetMissionFlagType(missionData.m_RandomMission); if (missionFlagType != null) { UIMissionMgr.MissionView mv = new UIMissionMgr.MissionView(); mv.mMissionID = mcd.m_ID; mv.mMissionType = mcd.m_Type; mv.mMissionTitle = mcd.m_MissionName; npc = Pathea.EntityMgr.Instance.Get(mcd.m_iNpc); if (npc != null) { mv.mMissionStartNpc.mName = npc.enityInfoCmpt.characterName.fullName; mv.mMissionStartNpc.mNpcIcoStr = string.IsNullOrEmpty(npc.enityInfoCmpt.faceIconBig) ? "npc_big_Unknown" : npc.enityInfoCmpt.faceIconBig; } npc = Pathea.EntityMgr.Instance.Get(mcd.m_iReplyNpc); if (npc != null) { mv.mMissionEndNpc.mName = npc.enityInfoCmpt.characterName.fullName; mv.mMissionEndNpc.mNpcIcoStr = string.IsNullOrEmpty(npc.enityInfoCmpt.faceIconBig) ? "npc_big_Unknown" : npc.enityInfoCmpt.faceIconBig; mv.mEndMisPos = npc.position; mv.mAttachOnId = npc.Id; mv.NeedArrow = true; } MissionManager.Instance.ParseMissionFlag(mcd, missionFlagType, mv); UIMissionMgr.Instance.AddMission(mv, true); UIMissionMgr.Instance.RefalshMissionWnd(); } } } } } }
void AddCSCreatorMission(NpcMissionData missionData) { //if (GameConfig.IsMultiMode) //{ // return; //} CSCreator creator = CSMain.GetCreator(CSConst.ciDefMgCamp); if (creator == null) { return; } if (creator.Assembly == null) { return; } if (m_CurSelNpc != null) { if (m_CurSelNpc.Id < 20000 && m_CurSelNpc.Id > 19990) //冒险模式当中的声望任务id { return; } } int speMisID = 0; if (!m_CurSelNpc.IsRecruited()) { if (!creator.CanAddNpc()) { speMisID = MissionManager.m_SpecialMissionID31; } else { speMisID = MissionManager.m_SpecialMissionID16; } } if (missionData.m_CSRecruitMissionList.Count < 1) { if (speMisID != 0) { m_MissionList.Add(speMisID); } return; } if (missionData.m_CSRecruitMissionList[0] <= 0) { return; } for (int i = 0; i < missionData.m_CSRecruitMissionList.Count; i++) { if (!MissionManager.Instance.HadCompleteMission(missionData.m_CSRecruitMissionList[i])) { return; } } if (speMisID != 0) { m_MissionList.Add(speMisID); } }
public void NpcMouseEventHandler(object sender, MousePickable.RMouseClickEvent e) { Pathea.PeEntity npc = e.mousePickable.GetComponent <Pathea.PeEntity>(); if (npc == null) { return; } float dist = Vector3.Distance(npc.position, GetPlayerPos()); if (dist > 7) { return; } if (IsRandomNpc(npc) && npc.IsDead()) { if (npc.Id == 9203 || npc.Id == 9204) { return; } if (npc.Id == 9214 || npc.Id == 9215) { if (!MissionManager.Instance.HasMission(MissionManager.m_SpecialMissionID10)) { return; } } if (GameConfig.IsMultiMode) { //if (null != PlayerFactory.mMainPlayer) // PlayerFactory.mMainPlayer.RequestDeadObjItem(npc.OwnerView); } else { //if (GameUI.Instance.mItemGetGui.UpdateItem(npc)) //{ // GameUI.Instance.mItemGetGui.Show(); //} } if (npc.IsRecruited()) { GameUI.Instance.mRevive.ShowServantRevive(npc); } return; } if (IsRandomNpc(npc) && npc.IsFollower()) { return; } if (!npc.GetTalkEnable()) { return; } if (IsRandomNpc(npc) && !npc.IsDead()) { NpcMissionData missionData = npc.GetUserData() as NpcMissionData; if (null != missionData) { if (!MissionManager.Instance.HasMission(missionData.m_RandomMission)) { if (PeGameMgr.IsStory) { RMRepository.CreateRandomMission(missionData.m_RandomMission); } else if (PeGameMgr.IsMultiAdventure || PeGameMgr.IsMultiBuild) { PlayerNetwork.mainPlayer.RPCServer(EPacketType.PT_InGame_NewMission, missionData.m_RandomMission, npc.Id); } else { AdRMRepository.CreateRandomMission(missionData.m_RandomMission); } } } } GameUI.Instance.mNpcWnd.SetCurSelNpc(npc); GameUI.Instance.mNpcWnd.Show(); }
public void Import(byte[] buffer) { //LogManager.Error("BuildingInfoManager.Instance.Import()"); Clear(); if (buffer.Length == 0) { return; } MemoryStream ms = new MemoryStream(buffer); BinaryReader _in = new BinaryReader(ms); int iSize = _in.ReadInt32(); for (int i = 0; i < iSize; i++) { NpcMissionData data = new NpcMissionData(); int npcid = _in.ReadInt32(); if (npcid == -1) { continue; } data.m_Rnpc_ID = _in.ReadInt32(); data.m_QCID = _in.ReadInt32(); data.m_CurMissionGroup = _in.ReadInt32(); data.m_CurGroupTimes = _in.ReadInt32(); data.mCurComMisNum = _in.ReadByte(); data.mCompletedMissionCount = _in.ReadInt32(); data.m_RandomMission = _in.ReadInt32(); data.m_RecruitMissionNum = _in.ReadInt32(); int num = _in.ReadInt32(); for (int j = 0; j < num; j++) { data.m_MissionList.Add(_in.ReadInt32()); } num = _in.ReadInt32(); for (int j = 0; j < num; j++) { data.m_MissionListReply.Add(_in.ReadInt32()); } bool isStand = _in.ReadBoolean(); float rotY = _in.ReadSingle(); createdNpcIdList.Add(new BuildingNpcIdStand(npcid, isStand, rotY)); NpcMissionDataRepository.AddMissionData(npcid, data); } iSize = _in.ReadInt32(); for (int i = 0; i < iSize; i++) { BuildingID no = new BuildingID(); no.townId = _in.ReadInt32(); no.buildingNo = _in.ReadInt32(); mCreatedNpcBuildingID.Add(no, 0); } _in.Close(); ms.Close(); //loadRecord = LOADMARK; }
public void UpdateMission() { canShow = true; if (m_Player == null) { return; } if (m_CurSelNpc == null) { return; } m_MissionList.Clear(); m_MissionListReply.Clear(); int id = 0; m_bShowShop = false; m_bShowStorage = false; NpcMissionData missionData = m_CurSelNpc.GetUserData() as NpcMissionData; if (null == missionData) { return; } int npcid = 0; if (PeGameMgr.IsStory) { npcid = m_CurSelNpc.Id; } else { if (missionData.m_bRandomNpc) { npcid = missionData.m_Rnpc_ID; } else { npcid = m_CurSelNpc.Id; } } if (!PeGameMgr.IsTutorial) { StoreData sd = StoreRepository.GetNpcStoreData(npcid); if (sd != null && sd.itemList.Count > 0) { m_bShowShop = true; } } for (int i = 0; i < missionData.m_MissionList.Count; i++) { id = missionData.m_MissionList[i]; if (!CheckAddMissionListID(id, missionData)) { continue; } id = StroyManager.Instance.ParseIDByColony(id); m_MissionList.Add(id); } if (!AdQuestChainLimit(AdRMRepository.m_AdRandomGroup[missionData.m_QCID]) && CheckAddMissionListID(missionData.m_RandomMission, missionData)) { m_MissionList.Add(missionData.m_RandomMission); } for (int i = 0; i < missionData.m_MissionListReply.Count; i++) { if (!CheckAddMissionReplyID(missionData.m_MissionListReply[i])) { continue; } m_MissionListReply.Add(missionData.m_MissionListReply[i]); } //if (!m_MissionListReply.Contains(missionData.m_RandomMission) && CheckAddMissionReplyID(missionData.m_RandomMission)) // m_MissionListReply.Add(missionData.m_RandomMission); AddCSCreatorMission(missionData); ResetMissionList(); }
public void DeleteMission(Pathea.PeEntity npc) { if (!Pathea.PeGameMgr.IsMulti) { return; } NpcMissionData missionData = Pathea.PeEntityExt.PeEntityExt.GetUserData(npc) as NpcMissionData; if (missionData == null) { return; } if (npc.proto == Pathea.EEntityProto.Npc) { foreach (var item in missionData.m_MissionList) { if (!MissionManager.Instance.IsGetTakeMission(item)) { continue; } if (!m_GetableMissonMap.ContainsKey(item)) { continue; } if (e_DelGetableMission != null) { e_DelGetableMission(m_GetableMissonMap[item]); } } foreach (var item in missionData.m_MissionListReply) { if (MissionManager.Instance.HadCompleteMission(item)) { continue; } if (!m_MissonMap.ContainsKey(item)) { continue; } if (e_DeleteMission != null) { e_DeleteMission(m_MissonMap[item]); } } } else if (npc.proto == Pathea.EEntityProto.RandomNpc && Pathea.PeGameMgr.IsStory) { if (missionData.m_RandomMission != 0) { if (m_GetableMissonMap.ContainsKey(missionData.m_RandomMission)) { if (e_DelGetableMission != null) { e_DelGetableMission(m_GetableMissonMap[missionData.m_RandomMission]); } } if (m_MissonMap.ContainsKey(missionData.m_RandomMission)) { if (e_DeleteMission != null) { e_DeleteMission(m_MissonMap[missionData.m_RandomMission]); } } } } }
/// <summary> /// 兼容任务数据 /// </summary> private static void CompatibleMissionData(PeEntity entity) { if (entity == null || !entity.commonCmpt) { return; } //lz-2017.03.06 找andy任务兼容以前存档 : 接任务列表 NpcMissionData missionData = entity.commonCmpt.userData as NpcMissionData; if (null != missionData) { if (entity.Id == 9007) { if (!missionData.m_MissionList.Contains(10054)) { missionData.m_MissionList.Add(10054); } if (!missionData.m_MissionList.Contains(10055)) { missionData.m_MissionList.Add(10055); } } if (entity.Id == 9041) { //andy接任务列表兼容 if (!missionData.m_MissionList.Contains(10053)) { missionData.m_MissionList.Add(10053); } //交任务列表兼容 if (!missionData.m_MissionListReply.Contains(10053)) { missionData.m_MissionListReply.Add(10053); } } //10055,10060,10061,10066,10056,10057,10058,10059 if (entity.Id == 9037) { if (!missionData.m_MissionList.Contains(10055)) { missionData.m_MissionList.Add(10055); } if (!missionData.m_MissionList.Contains(10056)) { missionData.m_MissionList.Add(10056); } if (!missionData.m_MissionList.Contains(10057)) { missionData.m_MissionList.Add(10057); } if (!missionData.m_MissionList.Contains(10058)) { missionData.m_MissionList.Add(10058); } if (!missionData.m_MissionList.Contains(10059)) { missionData.m_MissionList.Add(10059); } if (!missionData.m_MissionList.Contains(10060)) { missionData.m_MissionList.Add(10060); } if (!missionData.m_MissionList.Contains(10061)) { missionData.m_MissionList.Add(10061); } if (!missionData.m_MissionList.Contains(10066)) { missionData.m_MissionList.Add(10066); } } } }
public bool CheckAddMissionListID(int id, NpcMissionData missionData) { CSCreator creator; if (id == 0) { return(false); } if (id == MissionManager.m_SpecialMissionID9 || MissionManager.HasRandomMission(id)) { for (int m = 0; m < missionData.m_RecruitMissionList.Count; m++) { if (!MissionManager.Instance.HadCompleteMission(missionData.m_RecruitMissionList[m])) { return(false); } } if (RMRepository.m_RandomFieldMap.ContainsKey(id)) { if (missionData.mCurComMisNum >= RMRepository.m_RandomFieldMap[id].TargetIDMap.Count) { return(false); } } } else if (id == MissionManager.m_SpecialMissionID59 || id == MissionManager.m_SpecialMissionID60) { if (MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID58) && !MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID63)) { creator = CSMain.GetCreator(CSConst.ciDefMgCamp); if (creator == null) { if (!MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID61)) { if (PeGameMgr.IsMulti) { MissionManager.Instance.RequestCompleteMission(MissionManager.m_SpecialMissionID67); } else { MissionManager.Instance.CompleteMission(MissionManager.m_SpecialMissionID67); } GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(MissionManager.m_SpecialMissionID61, 1); GameUI.Instance.mNPCTalk.PreShow(); } return(false); } if (creator.Assembly == null) { if (!MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID61)) { if (PeGameMgr.IsMulti) { MissionManager.Instance.RequestCompleteMission(MissionManager.m_SpecialMissionID67); } else { MissionManager.Instance.CompleteMission(MissionManager.m_SpecialMissionID67); } GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(MissionManager.m_SpecialMissionID61, 1); GameUI.Instance.mNPCTalk.PreShow(); } return(false); } int npcnum = StroyManager.Instance.GetMgCampNpcCount(); int creatornum = CSMain.s_MgCreator.GetEmptyBedCnt(); //若基地空床位<X,则弹出对话床位不足(任务506) if (creatornum < npcnum) { if (!MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID62)) { GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(MissionManager.m_SpecialMissionID62, 1); GameUI.Instance.mNPCTalk.PreShow(); } return(false); } //若基地床位>=X,则在对话后把地球营地所有NPC招募到基地(任务507) else { if (!MissionManager.Instance.HadCompleteMission(MissionManager.m_SpecialMissionID63)) { GameUI.Instance.mNPCTalk.UpdateNpcTalkInfo(MissionManager.m_SpecialMissionID63, 1); GameUI.Instance.mNPCTalk.PreShow(); } return(false); } } } if (!MissionManager.Instance.IsGetTakeMission(id)) { return(false); } return(true); }