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"), }); } }
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() }); } }
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); } } }