Example #1
0
        /// <summary>
        /// 检查数据是否完整
        /// </summary>
        /// <returns><c>true</c>, if data validate was checked, <c>false</c> otherwise.</returns>
        private bool CheckDataValidate()
        {
            string playerDataPath     = CommonData.originDataPath + "PlayerData.json";
            string oriPlayerData      = DataHandler.LoadDataString(playerDataPath);
            bool   playerDataValidate = StringEncryption.Validate(oriPlayerData);

            string buyRecordDataPath = CommonData.originDataPath + "/BuyRecord.json";
            string oriBuyRecordData  = DataHandler.LoadDataString(buyRecordDataPath);
            bool   buyRecordValidate = StringEncryption.Validate(oriBuyRecordData);

            return(playerDataValidate && buyRecordValidate);
        }
Example #2
0
        public void LoadGameDatas()
        {
            string gameDataSource = DataHandler.LoadDataString("/Users/houlianghong/Desktop/MyGameData/关卡原始数据.csv");

            string[] gameLevelDataStrings = gameDataSource.Split(new string[] { "\n" }, System.StringSplitOptions.RemoveEmptyEntries);

            for (int i = 1; i < gameLevelDataStrings.Length; i++)
            {
                Debug.LogFormat("第{0}层", i - 1);
                HLHGameLevelData gameLevelData = InitGameLevelDatas(gameLevelDataStrings [i]);
                gameLevelDatas.Add(gameLevelData);
            }
        }
Example #3
0
        public void LoadGameDatas()
        {
            string gameDataSource = DataHandler.LoadDataString("/Users/houlianghong/Desktop/MyGameData/GameLevelData.csv");

            string[] gameLevelDataStrings = gameDataSource.Split(new string[] { "\n" }, System.StringSplitOptions.RemoveEmptyEntries);

            for (int i = 1; i < gameLevelDataStrings.Length; i++)
            {
                MyGameLevelData gameLevelData = new MyGameLevelData(gameLevelDataStrings [i], i - 1, allGoodsGroup);
                gameLevelDatas.Add(gameLevelData);
            }

            SaveGoodsInfoOfTrader();
        }
Example #4
0
        public static void InitSpellItemsFromData()
        {
            string skillScrollOriFilePath = "/Users/houlianghong/Desktop/MyGameData/技能卷轴原始数据.csv";

            string skillScrollDataString = DataHandler.LoadDataString(skillScrollOriFilePath);

            SkillScrollDataHelper loader = new SkillScrollDataHelper();

            loader.LoadAllItemsWithFullDataString(skillScrollDataString);

            string propertyGemstoneDataPath = CommonData.originDataPath + "/GameItems/SkillScrollDatas.json";

            DataHandler.SaveInstanceListToFile <SkillScrollModel>(loader.skillScrollModels, propertyGemstoneDataPath);

            Debug.Log("技能卷轴数据完成");
        }
        public static void InitSpellItemsFromData()
        {
            string propertyGemstoneOriFilePath = "/Users/houlianghong/Desktop/MyGameData/属性宝石原始数据.csv";

            string propertyGemstoneDataString = DataHandler.LoadDataString(propertyGemstoneOriFilePath);

            PropertyGemstoneDataHelper loader = new PropertyGemstoneDataHelper();

            loader.LoadAllItemsWithFullDataString(propertyGemstoneDataString);

            string propertyGemstoneDataPath = CommonData.originDataPath + "/GameItems/PropertyGemstoneDatas.json";

            DataHandler.SaveInstanceListToFile <PropertyGemstoneModel>(loader.propertyGemstoneModels, propertyGemstoneDataPath);

            Debug.Log("属性宝石数据完成");
        }
Example #6
0
        public static void InitSpellItemsFromData()
        {
            string spellItemDataPath = "/Users/houlianghong/Desktop/MyGameData/拼写物品原始数据.csv";

            string spellItemDataString = DataHandler.LoadDataString(spellItemDataPath);

            SpellItemDataHelper loader = new SpellItemDataHelper();

            loader.LoadAllItemsWithFullDataString(spellItemDataString);

            string spellITemDataPath = CommonData.originDataPath + "/GameItems/SpellItemDatas.json";

            DataHandler.SaveInstanceListToFile <SpellItemModel>(loader.spellItemModels, spellITemDataPath);

            Debug.Log("拼写物品数据完成");
        }
        public static void InitSpellItemsFromData()
        {
            /******************** 注意: *******************/
            // 1. 原始数据格式必须使用【消耗品原始数据表(02_resume_design)】导出的csv文件,原始表格尾部不能有空行
            // 2. 原始数据存放的地址根据实际地址进行修改
            string consumablesOriFilePath = "/Users/houlianghong/Desktop/MyGameData/消耗品原始数据.csv";
            /******************** 注意: *******************/

            string consumablesDataString = DataHandler.LoadDataString(consumablesOriFilePath);

            ConsumablesDataHelper loader = new ConsumablesDataHelper();

            loader.LoadAllItemsWithFullDataString(consumablesDataString);

            string consumablesDataPath = CommonData.originDataPath + "/GameItems/ConsumablesDatas.json";

            DataHandler.SaveInstanceListToFile <ConsumablesModel>(loader.consumablesModels, consumablesDataPath);

            Debug.Log("消耗品数据完成");
        }
        public static void LoadAllProverbData()
        {
            List <HLHSentenceAndPoem> saps = new List <HLHSentenceAndPoem>();

            string oriProverbData = DataHandler.LoadDataString(sapOriFilePath);

            string[] sapbDatasArray = oriProverbData.Split(new char[] { '\n' }, System.StringSplitOptions.RemoveEmptyEntries);

            for (int i = 1; i < sapbDatasArray.Length; i++)
            {
                string sapData = sapbDatasArray[i];

                HLHSentenceAndPoem sap = GenerateHLHProverb(sapData);

                saps.Add(sap);
            }

            //string formatData = JsonHelper.ToJson<HLHProverb>(proverbs.ToArray());

            DataHandler.SaveInstanceListToFile <HLHSentenceAndPoem>(saps, sapTargetFilePath);
        }
        public static void LoadNewItemDataFromLocalFile()
        {
            string newItemDataPath = "/Users/houlianghong/Desktop/MyGameData/物品设计.csv";

            string fullItemDataString = DataHandler.LoadDataString(newItemDataPath);

            NewItemDataLoader loader = new NewItemDataLoader();

            loader.LoadAllItemsWithFullDataString(fullItemDataString);

            for (int i = 0; i < loader.newItemModels.Count; i++)
            {
                ItemModel im = loader.newItemModels [i];

                Debug.Log(im);
            }

            string newItemModelsDataPath = CommonData.originDataPath + "/NewItemDatas.json";

            DataHandler.SaveInstanceListToFile <ItemModel> (loader.newItemModels, newItemModelsDataPath);
        }
Example #10
0
        static private ItemModel[] ItemsToJson()
        {
            string csv = DataHandler.LoadDataString("itemsData.csv");

            string[] dataArray = csv.Split(new string[] { "\n" }, System.StringSplitOptions.RemoveEmptyEntries);

            List <ItemModel> allItem = new List <ItemModel> ();

            for (int i = 1; i < dataArray.Length; i++)
            {
                string[] itemStr = dataArray [i].Split(',');

                ItemModel itemModel = new ItemModel();

                itemModel.itemId   = System.Convert.ToInt32(itemStr [0]);
                itemModel.itemName = itemStr[1];
                itemModel.itemGeneralDescription = itemStr[2];
                itemModel.spriteName             = itemStr[3];
                itemModel.itemType          = (ItemType)System.Convert.ToInt16(itemStr[4]);
                itemModel.itemNameInEnglish = itemStr[5];
                itemModel.attackGain        = System.Convert.ToInt16(itemStr[6]);
//				itemModel.attackSpeedGain = System.Convert.ToInt16(itemStr[7]);
                itemModel.armorGain       = System.Convert.ToInt16(itemStr[8]);
                itemModel.magicResistGain = System.Convert.ToInt16(itemStr[9]);
                itemModel.critGain        = System.Convert.ToInt16(itemStr[10]);
                itemModel.dodgeGain       = System.Convert.ToInt16(itemStr[11]);
                itemModel.healthGain      = System.Convert.ToInt16(itemStr[12]);
                itemModel.manaGain        = System.Convert.ToInt16(itemStr [13]);
//				itemModel.equipmentType = (EquipmentType)System.Convert.ToInt16 (itemStr [14]);

                allItem.Add(itemModel);
            }

            ItemModel[] ItemArray = new ItemModel[allItem.Count];

            allItem.CopyTo(ItemArray);


            return(ItemArray);
        }
Example #11
0
        public static void GenerateNewEquipmentData()
        {
            /******************** 注意: *******************/
            // 1. 原始数据格式必须使用【装备原始数据表(01_equip_design)】导出的csv文件,原始表格尾部不能有空行
            // 2. 原始数据存放的地址根据实际地址进行修改
            string newItemDataSourcePath = "/Users/houlianghong/Desktop/MyGameData/装备原始数据.csv";
            /******************** 注意: *******************/



            string newItemDataString = DataHandler.LoadDataString(newItemDataSourcePath);

            NewItemDataLoader loader = new NewItemDataLoader();

            loader.LoadAllItemsWithFullDataString(newItemDataString);

            string newItemModelsDataPath = CommonData.originDataPath + "/GameItems/EquipmentDatas.json";

            DataHandler.SaveInstanceListToFile <EquipmentModel> (loader.newItemModels, newItemModelsDataPath);

            Debug.Log("装备数据完成");
        }
Example #12
0
        private static void LoadCET4WordsData()
        {
            string wordsPath = "/Users/houlianghong/Desktop/MyGameData/CET4.csv";

            string wordsString = DataHandler.LoadDataString(wordsPath);

            string[] wordsStrings = wordsString.Split(new string[] { "\n" }, System.StringSplitOptions.RemoveEmptyEntries);

            itemsProperties.Clear();

            for (int i = 1; i < wordsStrings.Length; i++)
            {
                string[] wordDataArray  = wordsStrings [i].Split(new char[] { ',' });
                string   wordId         = (i - 1).ToString();
                string   spell          = wordDataArray[0].Replace("'", "''");
                string   phoneticSymbol = wordDataArray [1].Replace('+', ',').Replace("'", "''");
                string   explaination   = wordDataArray [2].Replace('+', ',');
                string   example        = "";

                itemsProperties.Add(new string[] { wordId, spell, phoneticSymbol, explaination, example, "0", "0" });
            }
        }
Example #13
0
        public static void EncodeData()
        {
            string playerDataPath   = CommonData.originDataPath + "/PlayerData_ori.json";
            string targetDataPath_1 = CommonData.originDataPath + "/PlayerData.json";
            string targetDataPath_2 = CommonData.originDataPath + "/OriginalPlayerData.json";

            string source = DataHandler.LoadDataString(playerDataPath);

            string encode = StringEncryption.Encode(source);

            DataHandler.SaveDataString(encode, targetDataPath_1);
            DataHandler.SaveDataString(encode, targetDataPath_2);


            string buyRecordDataPath   = CommonData.originDataPath + "/BuyRecord_ori.json";
            string buyRecordTargetPath = CommonData.originDataPath + "/BuyRecord.json";

            source = DataHandler.LoadDataString(buyRecordDataPath);

            encode = StringEncryption.Encode(source);

            DataHandler.SaveDataString(encode, buyRecordTargetPath);
        }
Example #14
0
        public static void InitPuzzleDatas()
        {
            string sourceDataFilePath = "/Users/houlianghong/Desktop/MyGameData/PuzzlesData.csv";

            string sourcePuzzleData = DataHandler.LoadDataString(sourceDataFilePath);

            List <Puzzle> puzzles = new List <Puzzle>();

            string[] puzzleDataArray = sourcePuzzleData.Split(new char[] { '\n' });

            for (int i = 1; i < puzzleDataArray.Length; i++)
            {
                Puzzle puzzle = GeneratePuzzleFromDataString(puzzleDataArray[i]);
                Debug.Log(puzzle.question);
                puzzles.Add(puzzle);
            }

            string targetFilePath = CommonData.originDataPath + "/PuzzleDatas.json";

            DataHandler.SaveInstanceListToFile <Puzzle>(puzzles, targetFilePath);

            Debug.Log("puzzles finish!");
        }
        /// <summary>
        /// 读取地图数据,并将数据转化为自定义的MapData模型
        /// </summary>
        /// <returns>The map.</returns>
        /// <param name="mapDataPath">Map data path.</param>
        private static HLHMapData ReadMap(string mapDataPath, FileInfo fi)
        {
            // 读取原始json数据
            string oriMapDataString = DataHandler.LoadDataString(mapDataPath);
            // MiniJson解析json数据
            Dictionary <string, object> oriMapDataDic = Json.Deserialize(oriMapDataString) as Dictionary <string, object>;

            // 获取地图宽高
            int mapHeight = int.Parse(oriMapDataDic ["height"].ToString());
            int mapWidth  = int.Parse(oriMapDataDic ["width"].ToString());

            Debug.LogFormat("name:{0},height:{1},width:{2}", fi.Name, mapHeight, mapWidth);

            // 获取标准地图块宽高
            int mapTileHeight = int.Parse(oriMapDataDic ["tileheight"].ToString());
            int mapTileWidth  = int.Parse(oriMapDataDic ["tilewidth"].ToString());


            // 获取地图上所有图层的数据
            List <object> layersDataArray = (List <object>)oriMapDataDic ["layers"];
            List <object> tileSetsArray   = (List <object>)oriMapDataDic ["tilesets"];

            // 所有构建地图使用的图层
            List <MapLayer> mapLayers = new List <MapLayer> ();
            // 所有地图附加信息图层
            List <MapAttachedInfoLayer> attachedInfoLayers = new List <MapAttachedInfoLayer> ();

            // 地图块图集名称
            string tileSetsImageName = string.Empty;
            // 地图块数据(内含walkable info array)
            MapTilesInfo tileInfo = null;

            Dictionary <string, object> tileSetInfo = null;

            int[,] mapWalkableInfoArray = new int[mapWidth, mapHeight];

            for (int m = 0; m < mapWidth; m++)
            {
                for (int n = 0; n < mapHeight; n++)
                {
                    mapWalkableInfoArray[m, n] = 1;
                }
            }

            for (int j = 0; j < layersDataArray.Count; j++)
            {
                Dictionary <string, object> layerDataDic = layersDataArray [j] as Dictionary <string, object>;

                List <MapTile> tileDatas = new List <MapTile> ();


                //获取当前层的类型名称
                string layerType = layerDataDic ["type"].ToString();

                // 当前层为地图层
                if (layerType.Equals("tilelayer"))
                {
                    List <object> tileDataArray = (List <object>)layerDataDic["data"];

                    string layerName = layerDataDic["name"].ToString();

                    if (layerName.Equals("FloorLayer"))
                    {
                        Dictionary <string, object> tileSetsNameDic = layerDataDic["properties"] as Dictionary <string, object>;
                        tileSetsImageName = tileSetsNameDic["TilesetImageName"].ToString();
                        tileInfo          = GetMapTilesInfoWithName(tileSetsImageName);
                    }


                    if (tileSetInfo == null)
                    {
                        for (int k = 0; k < tileSetsArray.Count; k++)
                        {
                            Dictionary <string, object> tempTileSetInfo = tileSetsArray[k] as Dictionary <string, object>;
                            string sourceName = tempTileSetInfo["source"] as string;
                            if (sourceName.Contains(tileSetsImageName))
                            {
                                tileSetInfo = tempTileSetInfo;
                                break;
                            }
                        }
                    }


                    //获取当前层使用的地图块的firstGid
                    int firstGid = int.Parse(tileSetInfo["firstgid"].ToString());


                    for (int k = 0; k < tileDataArray.Count; k++)
                    {
                        int row = mapHeight - k / mapWidth - 1;
                        int col = k % mapWidth;

                        int tileIndex = int.Parse(tileDataArray [k].ToString()) - firstGid;


                        if (tileIndex >= 0)
                        {
                            bool canWalk = false;
                            //Debug.LogFormat("mapName:{0},layerName:{1},tileIndex:{2},firstGid:{3}",fi.Name, layerName, tileIndex,firstGid);
                            canWalk = tileInfo.walkableInfoArray [tileIndex] == 1;

                            int miniMapInfo = tileInfo.miniMapInfoArray[tileIndex];

                            MapTile tile = new MapTile(new Vector2(col, row), tileIndex, canWalk, miniMapInfo);
                            tileDatas.Add(tile);

                            if (layerName == "DecorationLayer")
                            {
                                mapWalkableInfoArray[col, row] = 0;
                            }
                        }
                    }

                    MapLayer layer = new MapLayer(layerName, tileDatas);
                    mapLayers.Add(layer);
                }

                // 当前层为事件层
                if (layerType.Equals("objectgroup"))
                {
                    string layerName = layerDataDic ["name"].ToString();

                    List <MapAttachedInfoTile> attachedInfoTiles = new List <MapAttachedInfoTile> ();

                    List <object> attachedInfoList = (List <object>)layerDataDic ["objects"];

                    //int monsterCount = 0;

                    for (int k = 0; k < attachedInfoList.Count; k++)
                    {
                        Dictionary <string, object> attachedInfo = attachedInfoList [k] as Dictionary <string, object>;
                        string type = attachedInfo ["type"].ToString();

                        //Debug.Log(type);
                        //if(type=="monster"){
                        //	monsterCount++;
                        //}

                        float posX = float.Parse(attachedInfo ["x"].ToString());
                        float posY = float.Parse(attachedInfo ["y"].ToString());

                        int col = Mathf.RoundToInt(posX / mapTileWidth);
                        int row = mapHeight - Mathf.RoundToInt(posY / mapTileHeight);

                        Vector2 pos = new Vector2(col, row);

                        if (mapWalkableInfoArray[col, row] == 0 && type != "doorGear" && type != "keyDoorGear")
                        {
                            Debug.LogFormat("地图:{0},事件位置和某种装饰位置重合:[{1}/{2},事件类型:{3}](如果装饰不是墙体,则不是错误)", fi.Name, col, mapHeight - row - 1, type);
                        }

                        Dictionary <string, object> properties       = null;
                        MapAttachedInfoTile         attachedInfoTile = null;
                        List <KVPair> kvPairs = new List <KVPair> ();

                        if (!attachedInfo.ContainsKey("properties"))
                        {
                            attachedInfoTile = new MapAttachedInfoTile(type, pos, kvPairs);
                            attachedInfoTiles.Add(attachedInfoTile);
                            continue;
                        }

                        properties = attachedInfo ["properties"] as Dictionary <string, object>;

                        IDictionaryEnumerator dicEnumerator = properties.GetEnumerator();

                        while (dicEnumerator.MoveNext())
                        {
                            string key   = dicEnumerator.Key.ToString();
                            string value = dicEnumerator.Value.ToString();
//							Debug.LogFormat ("key:{0},value:{1}",key,value);

                            KVPair kv = new KVPair(key, value);

                            kvPairs.Add(kv);
                        }

                        attachedInfoTile = new MapAttachedInfoTile(type, pos, kvPairs);

                        attachedInfoTiles.Add(attachedInfoTile);
                    }

                    MapAttachedInfoLayer attachedInfoLayer = new MapAttachedInfoLayer(layerName, attachedInfoTiles);

                    attachedInfoLayers.Add(attachedInfoLayer);
                }
            }

            HLHMapData mapData = new HLHMapData(mapHeight, mapWidth, tileSetsImageName, mapLayers, attachedInfoLayers);

            return(mapData);
        }
        private void WordsDataToDataBase(string wordsFilePath, string wordsTableName, MySQLiteHelper sql)
        {
            bool isSimpleWordsTableExist = sql.CheckTableExist(wordsTableName);

            if (isSimpleWordsTableExist)
            {
                sql.DeleteTable(wordsTableName);;
            }

            // isFamiliar 是否熟悉,熟悉为1,不熟悉为0

            sql.CreateTable(wordsTableName,
                            new string[] {
                "wordId",
                "spell",
                "phoneticSymbol",
                "explaination",
                "sentenceEN",
                "sentenceCH",
                "pronouncationURL",
                "wordLength",
                "learnedTimes",
                "ungraspTimes",
                "isFamiliar",
                "backupPronounciationURL"
            },
                            new string[] {
                "PRIMARY KEY NOT NULL",
                "NOT NULL",
                "NOT NULL",
                "NOT NULL",
                "NOT NULL",
                "NOT NULL",
                "NOT NULL",
                "NOT NULL",
                "NOT NULL",
                "NOT NULL",
                "NOT NULL",
                "NOT NULL"
            },
                            new string[] {
                "INTEGER",
                "TEXT",
                "TEXT",
                "TEXT",
                "TEXT",
                "TEXT",
                "TEXT",
                "INTEGER DEFAULT 0",
                "INTEGER DEFAULT 0",
                "INTEGER DEFAULT 0",
                "INTEGER DEFAULT 0",
                "TEXT"
            });



            string simpleWordsData = DataHandler.LoadDataString(wordsFilePath);

            string[] simpleWordsDataArray = simpleWordsData.Split(new char[] { '\n' }, System.StringSplitOptions.RemoveEmptyEntries);


            sql.BeginTransaction();

            for (int i = 1; i < simpleWordsDataArray.Length; i++)
            {
                string singleWordData = simpleWordsDataArray [i];


                string[] datas = singleWordData.Split(new char[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries);

                string wordId                  = (i - 1).ToString();
                string spell                   = "'" + datas [0].Replace("'", "''") + "'";
                string explaination            = "'" + ExplainationNormalization(datas [1]) + "'";
                string phoneticSymbol          = "'" + datas [2].Replace("'", "''") + "'";
                string sentenceEN              = "'" + datas [3].Replace("'", "''").Replace('+', ',') + "'";
                string sentenceCH              = "'" + datas [4].Replace("'", "''").Replace('+', ',') + "'";
                string pronounciationURL       = "'" + datas [5] + "'";
                string backupPronounciationURL = string.Format("'https://ssl.gstatic.com/dictionary/static/sounds/oxford/{0}--_gb_1.mp3'", datas[0]);

                string wordLength = (spell.Length - 2).ToString();

                string[] wordInput = new string[] { wordId, spell, phoneticSymbol, explaination, sentenceEN, sentenceCH, pronounciationURL, wordLength, "0", "0", "0", backupPronounciationURL };

                sql.InsertValues(wordsTableName, wordInput);
            }


            sql.EndTransaction();
        }
Example #17
0
        private static MonsterModel[] LoadMonsterModels(string monsterDataPath)
        {
            string monsterDataString = DataHandler.LoadDataString(monsterDataPath);

            string[] monsterDatas = monsterDataString.Split(new char[] { '\n' }, System.StringSplitOptions.None);

            MonsterModel[] monsterModels = new MonsterModel[monsterDatas.Length - 1];

            for (int i = 1; i < monsterDatas.Length; i++)
            {
                string monsterData = monsterDatas [i];

                MonsterModel mm = new MonsterModel();

                monsterModels [i - 1] = mm;

                string[] detailDatas = monsterData.Split(new char[] { ',' }, System.StringSplitOptions.None);

                mm.monsterId = int.Parse(detailDatas [0]);

                mm.monsterName = detailDatas [1];

                mm.monsterSkeName = detailDatas [3];

                mm.attackInterval = float.Parse(detailDatas [5]);

                mm.gold = int.Parse(detailDatas [6]);

                mm.experience = int.Parse(detailDatas [7]);

                mm.maxHealth = int.Parse(detailDatas [8]);

                mm.attack = int.Parse(detailDatas [9]);

                mm.armor = int.Parse(detailDatas [10]);

                mm.magicAttack = int.Parse(detailDatas [11]);

                mm.magicResist = int.Parse(detailDatas [12]);

                mm.crit = float.Parse(detailDatas [13]);

                mm.dodge = float.Parse(detailDatas [14]);

                mm.armorDecrease = int.Parse(detailDatas [15]);

                mm.magicResistDecrease = int.Parse(detailDatas [16]);

                mm.critHurtScaler = float.Parse(detailDatas [17]);

                mm.attackSpeedLevel = int.Parse(detailDatas[18]);

                mm.evaluate = int.Parse(detailDatas[19]);

                mm.story = detailDatas[20];

                mm.monsterSays[0] = detailDatas[21].Replace('+', ',');

                mm.monsterSays[1] = detailDatas[22].Replace('+', ',');

                mm.monsterSays[2] = detailDatas[23].Replace('+', ',');

                //PropertyType type = GetProperty(int.Parse(detailDatas[21]));
                //float value = float.Parse(detailDatas[22]);

                //mm.puzzleCorrectDecrease = new PropertySet(type, value);

                //type = GetProperty(int.Parse(detailDatas[23]));
                //value = float.Parse(detailDatas[24]);

                //mm.puzzleWrongIncrease = new PropertySet(type, value);
            }

            return(monsterModels);
        }