protected override void LoadFromImg(NameSpaceDirectory imgDir)
        {
            var file = imgDir.GetChild(ProviderName.Split('.')[1] + ".img");

            foreach (var item in file as WzFileProperty)
            {
                var commodityBlob = item.Value as WzProperty;
                var templateId    = commodityBlob.GetInt32("SN");

                InsertItem(new CashCommodityTemplate(templateId)
                {
                    CommodityID = Convert.ToInt32(item.Key),
                    Bonus       = commodityBlob.GetInt32("Bonus"),
                    Gender      = commodityBlob.GetInt32("Gender"),
                    Count       = commodityBlob.GetInt32("Count"),
                    Period      = commodityBlob.GetInt32("Period"),
                    Priority    = commodityBlob.GetInt32("Priority"),
                    //ReqPOP = commodityBlob.GetInt32(""),
                    //ReqLVL = commodityBlob.GetInt32(""),
                    //PbCash = commodityBlob.GetInt32(""),
                    //PbGift = commodityBlob.GetInt32(""),
                    //PbPoint = commodityBlob.GetInt32(""),
                    CashItemSN     = commodityBlob.GetInt32("SN"),
                    ItemID         = commodityBlob.GetInt32("ItemId"),
                    Price          = commodityBlob.GetInt32("Price"),
                    OnSale         = commodityBlob.GetInt32("OnSale") > 0,
                    Classification = commodityBlob.GetInt32("Class"),
                });
            }
        }
Example #2
0
        protected override void LoadFromImg(NameSpaceDirectory imgDir)
        {
            var file = imgDir.GetChild(ProviderName.Split('.')[1] + ".img");

            foreach (var item in file as WzFileProperty)
            {
                var packageBlob = item.Value as WzProperty;
                var templateId  = Convert.ToInt32(item.Key);

                InsertItem(new CashPackageTemplate(templateId)
                {
                    SNList = ((WzProperty)packageBlob["SN"]).GetAllChildren().Values.Select(Convert.ToInt64).ToArray()
                });
            }
        }
Example #3
0
        protected override void LoadFromImg(NameSpaceDirectory imgDir)
        {
            var mapDir = imgDir.GetChild(ProviderName) as NameSpaceDirectory;

            foreach (var mapCatDir in mapDir.SubDirectories)
            {
                foreach (var imgFile in mapCatDir.Files)
                {
                    var nMapId = int.Parse(imgFile.Name.Substring(0, 9));
                    var pEntry = new MapTemplate(nMapId);

                    // get info node data
                    if (imgFile.GetChild("info") is WzProperty infoNode)
                    {
                        pEntry.ForcedReturn = infoNode.GetInt32("forcedReturn");
                        pEntry.ReturnMap    = infoNode.GetInt32("returnMap");
                        pEntry.FlyMap       = infoNode.GetInt32("fly") > 0;
                        pEntry.Town         = infoNode.GetInt32("town") > 0;

                        pEntry.OnFirstUserEnter = infoNode.GetString("onFirstUserEnter");
                        pEntry.OnUserEnter      = infoNode.GetString("onUserEnter");

                        pEntry.DecHP       = infoNode.GetInt32("decHP");
                        pEntry.DecMP       = infoNode.GetInt32("decMP");
                        pEntry.DecInterval = infoNode.GetInt32("decInterval");
                        pEntry.ProtectItem = infoNode.GetInt32("protectItem");
                        pEntry.TimeLimit   = infoNode.GetInt32("timeLimit");
                        pEntry.FieldLimit  = (FieldOpt)infoNode.GetInt32("fieldLimit");
                        pEntry.FieldType   = (FieldType)infoNode.GetInt32("fieldType");
                    }

                    // get foothold node data
                    if (imgFile.GetChild("foothold") is WzProperty fhNode)
                    {
                        var fhs = new List <MapFootholdTemplate>();
                        foreach (var fhNodeKvp in fhNode.GetAllChildren())
                        {
                            var page = fhNodeKvp.Value as WzProperty;
                            foreach (var mass in page.GetAllChildren())
                            {
                                fhs.AddRange(((WzProperty)mass.Value).GetAllChildren()
                                             .Values
                                             .Cast <WzProperty>()
                                             .Select(fhImgData =>
                                                     new MapFootholdTemplate(Convert.ToInt32(fhImgData.Name))
                                {
                                    Next = fhImgData.GetInt8("next"),
                                    Prev = fhImgData.GetInt8("prev"),
                                    X1   = fhImgData.GetInt16("x1"),
                                    X2   = fhImgData.GetInt16("x2"),
                                    Y1   = fhImgData.GetInt16("y1"),
                                    Y2   = fhImgData.GetInt16("y2")
                                }));
                            }
                        }

                        pEntry.Footholds = fhs.ToArray();
                    }

                    // get portal node data
                    if (imgFile.GetChild("portal") is WzProperty portalNodes)
                    {
                        pEntry.Portals = portalNodes.GetAllChildren()
                                         .Values
                                         .Cast <WzProperty>()
                                         .Select(portalData =>
                                                 new MapPortalTemplate(Convert.ToInt32(portalData.GetName()))
                        {
                            nIndex      = Convert.ToInt32(portalData.GetName()),
                            sPortalName = portalData.GetString("pn"),
                            sTargetName = portalData.GetString("tn"),
                            Script      = portalData.GetString("script"),
                            nPortalType = portalData.GetInt32("pt"),
                            nTargetMap  = portalData.GetInt32("tm"),
                            nX          = portalData.GetInt16("x"),
                            nY          = portalData.GetInt16("y")
                        })
                                         .ToArray();
                    }

                    // get life node data
                    if (imgFile.GetChild("life") is WzProperty lifeNodes)
                    {
                        pEntry.Life = lifeNodes.GetAllChildren()
                                      .Values
                                      .Cast <WzProperty>()
                                      .Select(lifeData =>
                                              new MapLifeTemplate(lifeData.GetInt32("id"))
                        {
                            CY       = lifeData.GetInt16("cy"),
                            Hide     = lifeData.GetInt32("hide") > 0,
                            F        = lifeData.GetInt32("f") > 0,
                            Foothold = lifeData.GetInt16("fh"),
                            MobTime  = lifeData.GetInt32("mobTime"),
                            Type     = lifeData.GetString("type"),
                            RX0      = lifeData.GetInt16("rx0"),
                            RX1      = lifeData.GetInt16("rx1"),
                            X        = lifeData.GetInt16("x"),
                            Y        = lifeData.GetInt16("y"),
                        })
                                      .ToArray();
                    }

                    // get reactor node data
                    if (imgFile.GetChild("reactor") is WzProperty reactorNodes)
                    {
                        pEntry.Reactors = reactorNodes.GetAllChildren()
                                          .Values
                                          .Cast <WzProperty>()
                                          .Where(item => !item.Name.Equals("trashremove") && !item.Name.Equals("endevent"))
                                          .Select(reactorData =>
                                                  new MapReactorTemplate(reactorData.GetInt32("id"))
                        {
                            SpawnIndex  = Convert.ToInt32(reactorData.Name),
                            Name        = reactorData.GetString("name"),
                            F           = reactorData.GetInt32("f") > 0,
                            ReactorTime = reactorData.GetInt32("reactorTime"),
                            X           = reactorData.GetInt16("x"),
                            Y           = reactorData.GetInt16("y")
                        })
                                          .ToArray();
                    }

                    InsertItem(pEntry);

                    imgFile.Unload();
                }
            }
        }
        protected override void LoadFromImg(NameSpaceDirectory imgDir)
        {
            var file = imgDir.GetChild(ProviderName.Split('.')[1] + ".img");

            foreach (var item in file as WzFileProperty)
            {
                foreach (var dirFileEntry in item.Value as WzProperty)
                {
                    var recipeProductId = Convert.ToInt32(dirFileEntry.Key);
                    var recipeBlob      = dirFileEntry.Value as WzProperty;

                    ItemMakeTemplate pEntry = new ItemMakeTemplate(recipeProductId)
                    {
                        CatalystID    = recipeBlob.GetInt32("catalyst"),
                        ItemNum       = recipeBlob.GetInt32("itemNum"),
                        Meso          = recipeBlob.GetInt32("meso"),
                        ReqLevel      = recipeBlob.GetInt32("reqLevel"),
                        ReqSkillLevel = recipeBlob.GetInt32("reqSkillLevel"),
                        TUC           = recipeBlob.GetInt32("tuc"),
                        ReqItem       = recipeBlob.GetInt32("reqItem"),
                    };

                    if (recipeBlob.GetChild("randomReward") is WzProperty randRewardProp)
                    {
                        var rewards = new List <ItemMakeRandomReward>();

                        foreach (WzProperty randomRewardEntry in randRewardProp.GetAllChildren().Values)
                        {
                            rewards.Add(new ItemMakeRandomReward
                            {
                                ItemID  = randomRewardEntry.GetInt32("item"),
                                ItemNum = randomRewardEntry.GetInt32("itemNum"),
                                Prob    = randomRewardEntry.GetInt32("prob")
                            });
                        }

                        pEntry.RandomReward = rewards.ToArray();
                    }

                    if (recipeBlob.GetChild("recipe") is WzProperty recipeProp)
                    {
                        var recipes = new List <ItemMakeRecipe>();

                        foreach (WzProperty rewardEntry in recipeProp.GetAllChildren().Values)
                        {
                            if (rewardEntry["item"] is null)
                            {
                                continue;                                                          // nexon forgot a value
                            }
                            recipes.Add(new ItemMakeRecipe
                            {
                                Count  = rewardEntry.GetInt32("count"),
                                ItemID = rewardEntry.GetInt32("item"),
                            });
                        }

                        pEntry.Recipe = recipes.ToArray();
                    }


                    InsertItem(pEntry);
                }
            }
        }