Exemple #1
0
        public void Restore()
        {
            byte[] data = ArchiveMgr.Instance.GetData(TutorialDataArchiveKey);

            if (null != data)
            {
                TutorialData.Deserialize(data);
            }

            data = ArchiveMgr.Instance.GetData(MetalScanDataArchiveKey);

            if (null != data)
            {
                MetalScanData.Deserialize(data);
            }

            data = ArchiveMgr.Instance.GetData(MessageDataArchveKey);

            if (null != data)
            {
                MessageData.Deserialize(data);
            }

            data = ArchiveMgr.Instance.GetData(MonsterHandbookDataArchveKey);

            if (null != data)
            {
                MonsterHandbookData.Deserialize(data);
            }
        }
    public static void LoadData()
    {
        SqliteDataReader    reader = LocalDatabase.Instance.ReadFullTable("book");
        MonsterHandbookData info   = null;

        while (reader.Read())
        {
            int    id            = Convert.ToInt32(reader.GetString(reader.GetOrdinal("ID")));
            string monsterIDsStr = reader.GetString(reader.GetOrdinal("MonsterID"));
            int    modelID       = Convert.ToInt32(reader.GetString(reader.GetOrdinal("ModelID")));
            int    nameID        = Convert.ToInt32(reader.GetString(reader.GetOrdinal("Name")));
            int    descriptionID = Convert.ToInt32(reader.GetString(reader.GetOrdinal("Content")));

            string[] monsterIDsStrs = monsterIDsStr.Split(new char[] { ',' });
            int[]    monsterIDs     = new int[monsterIDsStrs.Length];
            for (int i = 0; i < monsterIDsStrs.Length; i++)
            {
                monsterIDs[i] = Convert.ToInt32(monsterIDsStrs[i]);
            }

            info = new MonsterHandbookData(id,
                                           monsterIDs,
                                           modelID,
                                           PELocalization.GetString(nameID),
                                           PELocalization.GetString(descriptionID));
            AllMonsterHandbookDataDic.Add(id, info);
            AllMonsterIDDic.Add(id, monsterIDs);
        }
    }
Exemple #3
0
 public void New()
 {
     MetalScanData.Clear();
     //lz-2016.07.25 添加清空方法,在新游戏的时候清空保存的用户数据
     MessageData.Clear();
     TutorialData.Clear();
     MonsterHandbookData.Clear();
 }
    void RPC_S2C_MonsterBook(uLink.BitStream stream, uLink.NetworkMessageInfo info)
    {
        bool ownerData = stream.Read <bool>();

        if (ownerData)
        {
            MonsterHandbookData.Deserialize(stream.Read <byte[]>());
        }
        else
        {
            MonsterHandbookData.AddMhByKilledMonsterID(stream.Read <int>());
        }
    }
Exemple #5
0
 void ISerializable.Serialize(PeRecordWriter w)
 {
     if (w.key == TutorialDataArchiveKey)
     {
         w.binaryWriter.Write(TutorialData.Serialize());
     }
     else if (w.key == MetalScanDataArchiveKey)
     {
         w.binaryWriter.Write(MetalScanData.Serialize());
     }
     else if (w.key == MessageDataArchveKey)
     {
         w.binaryWriter.Write(MessageData.Serialize());
     }
     else if (w.key == MonsterHandbookDataArchveKey)
     {
         w.binaryWriter.Write(MonsterHandbookData.Serialize());
     }
 }
    private void MhListItemSelectEvent(UIListItem item)
    {
        if (item == this.m_BackupSelectItem)
        {
            return;
        }
        if (null != this.m_BackupSelectItem)
        {
            this.m_BackupSelectItem.CancelSelect();
        }
        this.m_BackupSelectItem = item;

        if (MonsterHandbookData.ActiveMhDataID.Contains(item.ID))
        {
            MonsterHandbookData info = MonsterHandbookData.AllMonsterHandbookDataDic[item.ID];
            this.SetNewModel(info.ModelID);
            this.UpdateDescription(info.Description);
            this.UpdateName(info.Name);
        }
        else
        {
            this.ResetAllLabel();
        }
    }
    void OnEntityDeath(SkEntity entity, SkEntity caster)
    {
        CommonCmpt common = entity.GetComponent <CommonCmpt>();

        if (common != null)
        {
            if (common.entityProto.proto == EEntityProto.Doodad)
            {
                DestroyEntity(entity, 30.0f);
            }

            if (common.entityProto.proto == EEntityProto.Monster)
            {
                MonsterHandbookData.AddMhByKilledMonsterID(common.entityProto.protoId);
                if (common.GetComponent <TowerCmpt>() == null)
                {
                    float    reviveTime = 10;
                    PeEntity mon        = entity.GetComponent <PeEntity>();
                    if (mon != null)
                    {
                        if (StroyManager.Instance != null)
                        {
                            if (StroyManager.Instance.m_RecordKillMons.Count != 0)
                            {
                                foreach (var item in StroyManager.Instance.m_RecordKillMons.Values)
                                {
                                    if (item.type == KillMons.Type.fixedId && SceneEntityCreatorArchiver.Instance.GetEntityByFixedSpId(item.monId) == mon)
                                    {
                                        reviveTime = (item.reviveTime == 0 ? reviveTime : item.reviveTime);
                                        break;
                                    }
                                    else if (item.type == KillMons.Type.protoTypeId && Vector3.Distance(mon.position, item.center) <= item.radius &&
                                             (item.monId == -999 ? true : common.entityProto.protoId == item.monId))
                                    {
                                        reviveTime = (item.reviveTime == 0 ? reviveTime : item.reviveTime);
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    DestroyEntity(entity, reviveTime);
                }
            }

            NpcCmpt npc = entity.GetComponent <NpcCmpt>();
            if (common.entityProto.proto == EEntityProto.Npc)
            {
                if (GameUI.Instance != null)
                {
                    if (GameUI.Instance.mNpcWnd.IsOpen() && GameUI.Instance.mNpcWnd.m_CurSelNpc.commonCmpt == common)
                    {
                        GameUI.Instance.mNpcWnd.Hide();
                    }
                }
                if (npc != null && npc.Type != ENpcType.Follower && npc.ReviveTime > 0)
                {
                    ReviveEntity(entity, 10.0f);
                }
                if (npc.ReviveTime <= 0)
                {
                    PeEntity npcentity = npc.GetComponent <PeEntity>();
                    if (MissionManager.Instance != null && MissionManager.Instance.m_PlayerMission != null)
                    {
                        MissionManager.Instance.m_PlayerMission.SetMissionState(npcentity, NpcMissionState.Max);
                    }

                    NpcMissionData missionData = npcentity.GetUserData() as NpcMissionData;
                    if (missionData != null)
                    {
                        missionData.m_MissionList.Clear();
                    }
                }
            }
            else if (common.entityProto.proto == EEntityProto.RandomNpc)
            {
                if (npc != null && !npc.IsServant)
                {
                    if (npc.ReviveTime > 0)
                    {
                        if (PeGameMgr.IsMultiStory)
                        {
                            if (entity._net is AiAdNpcNetwork)
                            {
                                int tempid            = ((AiAdNpcNetwork)(entity._net)).ExternId;
                                RandomNpcDb.Item item = RandomNpcDb.Get(tempid);
                                if (item != null)
                                {
                                    if (item.reviveTime != -1)
                                    {
                                        ReviveEntity(entity, item.reviveTime);
                                    }
                                }
                            }
                        }
                        else
                        {
                            ReviveEntity(entity, npc.ReviveTime);
                        }
                    }
                }

                //follower revive
//				if (npc != null && npc.IsServant)
//				{
//					ReviveEntity(entity, npc.ReviveTime + npc.FollowerReviceTime);
//				}
            }
        }
    }
    public static void LoadAllData()
    {
        if (s_localDatabase != null)
        {
            return;
        }

#if UNITY_EDITOR
        System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
        sw.Start();
#endif
        s_localDatabase = LoadDb();
        SkillSystem.SkData.LoadData();
        Pathea.Effect.EffectData.LoadData();
        Pathea.Projectile.ProjectileData.LoadData();
        Pathea.RequestRelation.LoadData();
        Pathea.CampData.LoadData();
        Pathea.ThreatData.LoadData();
        Pathea.DamageData.LoadData();
        HumanSoundData.LoadData();
        ItemDropData.LoadData();

        PELocalization.LoadData();

        NaturalResAsset.NaturalRes.LoadData();
        //SkillAsset.EffCastData.LoadData();
        //SkillAsset.EffSkill.LoadData();
        //SkillAsset.MergeSkill.LoadData();
        //AnimData.LoadData();
        //AnimSoundData.LoadData();

        AiAsset.AiData.LoadData();

        SoundAsset.SESoundBuff.LoadData();
        SoundAsset.SESoundStory.LoadData();
        //CharacterData.LoadCharacterData();
        StoryDoodadMap.LoadData();
        StoreRepository.LoadData();
        NpcMissionDataRepository.LoadData();
        //PlayerAttribute.LoadData();
        MissionRepository.LoadData();
        TalkRespository.LoadData();
        //NpcRandomRepository.LoadData();
        ShopRespository.LoadData();
        WareHouseManager.LoadData();
        //HeroTalkRepository.LoadData();
        MutiPlayRandRespository.LoadData();
        PromptRepository.LoadData();

        //MapIconData.LoadDate();
        //MapMaskData.LoadDate();
        CampPatrolData.LoadDate();
        Camp.LoadData();
        RepProcessor.LoadData();

        CloudManager.LoadData();
        //BattleUnitData.LoadData();
        TutorialData.LoadData();
        //RepairMachineManager.LoadData();
        MapMaskData.LoadDate();
        MessageData.LoadData();         //lz-2016.07.13 Add it
        MonsterHandbookData.LoadData(); //lz-2016.07.20 Add it
        StoryRepository.LoadData();
        RMRepository.LoadRandMission();
        MisInitRepository.LoadData();
        CameraRepository.LoadCameraPlot();
        AdRMRepository.LoadData();
        VCConfig.InitConfig();
        Cutscene.LoadData();

//		BuildBrushData.LoadBrush();
        BSPattern.LoadBrush();
        BSVoxelMatMap.Load();
        BSBlockMatMap.Load();
        BlockBuilding.LoadBuilding();
        LifeFormRule.LoadData();
        PlantInfo.LoadData();
        MetalScanData.LoadData();
        BattleConstData.LoadData();
        CustomCharactor.CustomMetaData.LoadData();
        SkillTreeInfo.LoadData();
        VArtifactUtil.LoadData();
        Pathea.ActionRelationData.LoadActionRelation();

        //colony
        CSInfoMgr.LoadData();
        ProcessingObjInfo.LoadData();
        CSTradeInfoData.LoadData();
        CampTradeIdData.LoadData();
        AbnormalTypeTreatData.LoadData();
        CSMedicineSupport.LoadData();
        //RandomItemMgr
        RandomItemDataMgr.LoadData();
        FecesData.LoadData();
        //randomdungeon
        RandomDungeonDataBase.LoadData();
        AbnormalData.LoadData();
        PEAbnormalNoticeData.LoadData();

        RelationInfo.LoadData();
        EquipSetData.LoadData();
        SuitSetData.LoadData();

        CheatData.LoadData();

        Pathea.NpcProtoDb.Load();
        Pathea.MonsterProtoDb.Load();
        Pathea.MonsterRandomDb.Load();
        Pathea.MonsterGroupProtoDb.Load();
        Pathea.RandomNpcDb.Load();
        Pathea.PlayerProtoDb.Load();
        Pathea.TowerProtoDb.Load();
        Pathea.DoodadProtoDb.Load();
        Pathea.AttPlusNPCData.Load();
        Pathea.AttPlusBuffDb.Load();
        Pathea.NpcTypeDb.Load();
        Pathea.NpcRandomTalkDb.Load();
        Pathea.NpcThinkDb.LoadData();
        Pathea.NpcEatDb.LoadData();
        Pathea.NpcRobotDb.Load();
        Pathea.NPCScheduleData.Load();
        Pathea.NpcVoiceDb.LoadData();
        InGameAidData.LoadData(); //lz-2016.08.21 add it
        MountsSkillDb.LoadData();

#if UNITY_EDITOR
        sw.Stop();
        Debug.Log("Database Loaded : " + sw.ElapsedMilliseconds);
        sw.Reset();
#else
        Debug.Log("Database Loaded");
#endif
    }