Esempio n. 1
0
    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;
            }
        }
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
    public static void AddMissionData(int npcId, NpcMissionData data)
    {
        if (dicMissionData.ContainsKey(npcId))
        {
            dicMissionData[npcId] = data;
            return;
        }

        dicMissionData.Add(npcId, data);
    }
Esempio n. 5
0
    public static void AddReplyMission(int npcid, int id)
    {
        NpcMissionData npc = GetMissionData(npcid);

        if (npc == null)
        {
            return;
        }

        npc.AddMissionListReply(id);
    }
Esempio n. 6
0
 public void InitRadioData()
 {
     if (!InitRadio)
     {
         PeEntity chenZhenEntity = EntityMgr.Instance.Get(m_ChenZhenID);
         if (chenZhenEntity)
         {
             m_ChenZhenMissionData = chenZhenEntity.GetUserData() as NpcMissionData;
         }
         InitRadio = true;
     }
 }
Esempio n. 7
0
    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();
    }
Esempio n. 8
0
        void RefreshState()
        {
            NpcMissionData missionData = mCommon.Entity.GetUserData() as NpcMissionData;

            if (missionData == null)
            {
                mMissionState = NpcMissionState.Max;
            }
            else
            {
                MissionManager.Instance.m_PlayerMission.UpdateNpcMissionTex(mCommon.Entity);
            }
        }
Esempio n. 9
0
    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);
        }
    }
Esempio n. 10
0
    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);
    }
Esempio n. 11
0
    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();
    }
Esempio n. 12
0
    //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);
        }
    }
Esempio n. 13
0
    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();
    }
Esempio n. 14
0
    //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);
        }
    }
Esempio n. 15
0
    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]);
                }
            }
        }
    }
Esempio n. 16
0
    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);
    }
Esempio n. 17
0
        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);
            }
        }
Esempio n. 18
0
    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);
        }
    }
Esempio n. 19
0
    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);
            }
        }
    }
Esempio n. 20
0
    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();
    }
Esempio n. 21
0
    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();
                    }
                }
            }
        }
    }
Esempio n. 22
0
    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;
    }
Esempio n. 23
0
    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();
                        }
                    }
                }
            }
        }
    }
Esempio n. 24
0
    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);
        }
    }
Esempio n. 25
0
    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();
    }
Esempio n. 26
0
    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;
    }
Esempio n. 27
0
    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();
    }
Esempio n. 28
0
    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]);
                    }
                }
            }
        }
    }
Esempio n. 29
0
            /// <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);
                        }
                    }
                }
            }
Esempio n. 30
0
    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);
    }