/*public override List<Entity> GetIdsFromZone(String zoneId, String zoneHtml) * { * String pattern = @"new Listview\({template: 'npc', id: 'npcs', name: LANG\.tab_npcs, tabs: tabsRelated, parent: 'lkljbjkb574', note: \$WH\.sprintf\(LANG\.lvnote_filterresults, '\/npcs\?filter=cr=6;crs=" + zoneId + @";crv=0'\), data: (.+)}\);"; * String creatureJSon = Tools.ExtractJsonFromWithPattern(zoneHtml, pattern); * * List<CreatureTemplateParsing> parsingArray = JsonConvert.DeserializeObject<List<CreatureTemplateParsing>>(creatureJSon); * List<Entity> tempArray = new List<Entity>(); * foreach (CreatureTemplateParsing creatureTemplateStruct in parsingArray) * { * Creature creature = new Creature(creatureTemplateStruct.id); * tempArray.Add(creature); * } * * return tempArray; * }*/ public override bool ParseSingleJson(int id = 0) { if (m_zoneTemplateData.id == 0 && id == 0) { return(false); } else if (m_zoneTemplateData.id == 0 && id != 0) { m_zoneTemplateData.id = id; } String zoneHtml = Tools.GetHtmlFromWowhead(GetWowheadUrl()); if (zoneHtml.Contains("inputbox-error")) { return(false); } String dataPattern = @"\$\.extend\(g_npcs\[" + m_creatureTemplateData.id + @"\], (.+)\);"; String modelPattern = @"ModelViewer\.show\(\{ type: [0-9]+, typeId: " + m_creatureTemplateData.id + @", displayId: ([0-9]+)"; String vendorPattern = @"new Listview\({template: 'item', id: 'sells', name: LANG.tab_sells, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \[Listview\.extraCols\.cost(?:, _)*\], note: \$WH\.sprintf\(LANG.lvnote_filterresults, '\/items\?filter=cr=129;crs=0;crv=" + m_creatureTemplateData.id + @"'\), data: (.+)}\);"; String creatureLootPattern = @"new Listview\({template: 'item', id: 'drops', name: LANG\.tab_drops, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \[Listview\.extraCols\.count, Listview\.extraCols\.percent(?:, Listview.extraCols.mode)?\], showLootSpecs: [0-9],sort:\['-percent', 'name'\], _totalCount: [0-9]+, computeDataFunc: Listview\.funcBox\.initLootTable, onAfterCreate: Listview\.funcBox\.addModeIndicator, data: (.+)}\);"; String creatureSkinningPattern = @"new Listview\(\{template: 'item', id: 'skinning', name: LANG\.tab_skinning, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \[Listview\.extraCols\.count, Listview\.extraCols\.percent\], sort:\['-percent', 'name'\], computeDataFunc: Listview\.funcBox\.initLootTable, note: \$WH\.sprintf\(LANG\.lvnote_npcskinning, [0-9]+\), _totalCount: ([0-9]+), data: (.+)}\);"; String creatureTemplateDataJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, dataPattern); CreatureTemplateParsing creatureTemplateData = JsonConvert.DeserializeObject <CreatureTemplateParsing>(creatureTemplateDataJSon); SetCreatureTemplateData(creatureTemplateData); String npcVendorJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, vendorPattern); if (npcVendorJSon != null) { NpcVendorParsing[] npcVendorDatas = JsonConvert.DeserializeObject <NpcVendorParsing[]>(npcVendorJSon); SetNpcVendorData(npcVendorDatas); } String creatureLootJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureLootPattern); if (creatureLootJSon != null) { CreatureLootParsing[] creatureLootDatas = JsonConvert.DeserializeObject <CreatureLootParsing[]>(creatureLootJSon); SetCreatureLootData(creatureLootDatas); } String creatureSkinningCount = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureSkinningPattern, 1); String creatureSkinningJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureSkinningPattern, 2); if (creatureSkinningJSon != null) { CreatureLootParsing[] creatureLootDatas = JsonConvert.DeserializeObject <CreatureLootParsing[]>(creatureSkinningJSon); SetCreatureSkinningData(creatureLootDatas, Int32.Parse(creatureSkinningCount)); } String modelId = Tools.ExtractJsonFromWithPattern(creatureHtml, modelPattern); m_modelid = modelId != null?Int32.Parse(modelId) : 0; return(true); }
public void SetCreatureTemplateData(CreatureTemplateParsing creatureData, String money, String creatureHealthDataJSon) { m_creatureTemplateData = creatureData; m_isBoss = false; m_faction = GetFactionFromReact(); if (m_creatureTemplateData.minlevel == 9999 || m_creatureTemplateData.maxlevel == 9999) { m_isBoss = true; m_creatureTemplateData.minlevel = 100; m_creatureTemplateData.maxlevel = 100; } m_subname = m_creatureTemplateData.tag ?? ""; m_creatureTemplateData.minGold = "0"; m_creatureTemplateData.maxGold = "0"; decimal averageMoney = 0; if (Decimal.TryParse(money, out averageMoney)) { int roundNumber = Math.Min((int)Math.Pow(10.0, (double)(money.Length - 1)), 10000); m_creatureTemplateData.minGold = (((int)Math.Floor(averageMoney / roundNumber)) * roundNumber).ToString(); m_creatureTemplateData.maxGold = (((int)Math.Ceiling(averageMoney / roundNumber)) * roundNumber).ToString(); } if (creatureHealthDataJSon != null) { m_creatureTemplateData.health = creatureHealthDataJSon.Replace(",", ""); } }
public void SetCreatureTemplateData(CreatureTemplateParsing creatureData) { m_creatureTemplateData = creatureData; m_isBoss = false; m_faction = GetFactionFromReact(); if (m_creatureTemplateData.minlevel == 9999 || m_creatureTemplateData.maxlevel == 9999) { m_isBoss = true; m_creatureTemplateData.minlevel = 100; m_creatureTemplateData.maxlevel = 100; } m_subname = m_creatureTemplateData.tag ?? ""; }
public override bool ParseSingleJson(int id = 0) { if (m_creatureTemplateData.id == 0 && id == 0) { return(false); } else if (m_creatureTemplateData.id == 0 && id != 0) { m_creatureTemplateData.id = id; } String creatureHtml = Tools.GetHtmlFromWowhead(GetWowheadUrl(), webClient); if (creatureHtml.Contains("inputbox-error")) { return(false); } String dataPattern = @"\$\.extend\(g_npcs\[" + m_creatureTemplateData.id + @"\], (.+)\);"; String modelPattern = @"ModelViewer\.show\(\{ type: [0-9]+, typeId: " + m_creatureTemplateData.id + @", displayId: ([0-9]+)"; String vendorPattern = @"new Listview\({template: 'item', id: 'sells', .+?, data: (.+)}\);"; String creatureHealthPattern = @"<div>(?:Health|Vie) : ((?:\d|,|\.)+)</div>"; String creatureLootPattern = @"new Listview\({template: 'item', id: 'drops', name: LANG\.tab_drops, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \['count', 'percent'(?:, ""mode"")?\], showLootSpecs: [0-9],sort:\['-percent', 'name'\], _totalCount: [0-9]+, computeDataFunc: Listview\.funcBox\.initLootTable, onAfterCreate: Listview\.funcBox\.addModeIndicator, data:(.+)}\);"; String creatureCurrencyPattern = @"new Listview\({template: 'currency', id: 'drop-currency', name: LANG\.tab_currencies, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \[Listview\.extraCols\.count, Listview\.extraCols\.percent\], sort:\['-percent', 'name'], _totalCount: [0-9]*, computeDataFunc: Listview\.funcBox\.initLootTable, onAfterCreate: Listview\.funcBox\.addModeIndicator, data: (.+)}\);"; String creatureSkinningPattern = @"new Listview\(\{template: 'item', id: 'skinning', name: LANG\.tab_skinning, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \[Listview\.extraCols\.count, Listview\.extraCols\.percent\], sort:\['-percent', 'name'\], computeDataFunc: Listview\.funcBox\.initLootTable, note: WH\.sprintf\(LANG\.lvnote_npcskinning, [0-9]+\), _totalCount: ([0-9]+), data: (.+)}\);"; String creatureTrainerPattern = @"new Listview\(\{template: 'spell', id: 'teaches-recipe', name: LANG\.tab_teaches, tabs: tabsRelated, parent: 'lkljbjkb574', visibleCols: \['source'\], data: (.+)\}\);"; String creatureQuestStarterPattern = @"new Listview\(\{template: 'quest', id: 'starts', name: LANG\.tab_starts, tabs: tabsRelated, parent: 'lkljbjkb574', data: (.+)\}\);"; String creatureQuestEnderPattern = @"new Listview\(\{template: 'quest', id: 'ends', name: LANG\.tab_ends, tabs: tabsRelated, parent: 'lkljbjkb574', data: (.+)\}\);"; String creatureMoneyPattern = @"money\\x3D([0-9]+)\\x5D"; String creatureTemplateDataJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, dataPattern); String creatureHealthDataJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureHealthPattern); String creatureMoneyData = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureMoneyPattern); CreatureTemplateParsing creatureTemplateData = JsonConvert.DeserializeObject <CreatureTemplateParsing>(creatureTemplateDataJSon); SetCreatureTemplateData(creatureTemplateData, creatureMoneyData, creatureHealthDataJSon); String npcVendorJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, vendorPattern); if (npcVendorJSon != null) { NpcVendorParsing[] npcVendorDatas = JsonConvert.DeserializeObject <NpcVendorParsing[]>(npcVendorJSon); SetNpcVendorData(npcVendorDatas); } String creatureLootJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureLootPattern); String creatureLootCurrencyJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureCurrencyPattern); if (creatureLootJSon != null || creatureLootCurrencyJSon != null) { CreatureLootItemParsing[] creatureLootDatas = creatureLootJSon != null?JsonConvert.DeserializeObject <CreatureLootItemParsing[]>(creatureLootJSon) : new CreatureLootItemParsing[0]; CreatureLootCurrencyParsing[] creatureLootCurrencyDatas = creatureLootCurrencyJSon != null?JsonConvert.DeserializeObject <CreatureLootCurrencyParsing[]>(creatureLootCurrencyJSon) : new CreatureLootCurrencyParsing[0]; SetCreatureLootData(creatureLootDatas, creatureLootCurrencyDatas); } String creatureSkinningCount = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureSkinningPattern, 0); String creatureSkinningJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureSkinningPattern, 1); if (creatureSkinningJSon != null) { CreatureLootItemParsing[] creatureLootDatas = JsonConvert.DeserializeObject <CreatureLootItemParsing[]>(creatureSkinningJSon); SetCreatureSkinningData(creatureLootDatas, Int32.Parse(creatureSkinningCount)); } String creatureTrainerJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureTrainerPattern); if (creatureTrainerJSon != null) { CreatureTrainerParsing[] creatureTrainerDatas = JsonConvert.DeserializeObject <CreatureTrainerParsing[]>(creatureTrainerJSon); m_creatureTrainerDatas = creatureTrainerDatas; } String creatureQuestStarterJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureQuestStarterPattern); if (creatureQuestStarterJSon != null) { QuestStarterEnderParsing[] creatureQuestStarterDatas = JsonConvert.DeserializeObject <QuestStarterEnderParsing[]>(creatureQuestStarterJSon); m_creatureQuestStarterDatas = creatureQuestStarterDatas; } String creatureQuestEnderJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureQuestEnderPattern); if (creatureQuestEnderJSon != null) { QuestStarterEnderParsing[] creatureQuestEnderDatas = JsonConvert.DeserializeObject <QuestStarterEnderParsing[]>(creatureQuestEnderJSon); m_creatureQuestEnderDatas = creatureQuestEnderDatas; } String modelId = Tools.ExtractJsonFromWithPattern(creatureHtml, modelPattern); m_modelid = modelId != null?Int32.Parse(modelId) : 0; return(true); }
public Creature(int id) { m_creatureTemplateData = new CreatureTemplateParsing(); m_creatureTemplateData.id = id; }
public Creature() { m_creatureTemplateData = new CreatureTemplateParsing(); m_creatureTemplateData.id = 0; }
public override bool ParseSingleJson(int id = 0) { if (m_creatureTemplateData.id == 0 && id == 0) { return(false); } else if (m_creatureTemplateData.id == 0 && id != 0) { m_creatureTemplateData.id = id; } bool optionSelected = false; String creatureHtml = Tools.GetHtmlFromWowhead(GetWowheadUrl(), webClient); if (creatureHtml.Contains("inputbox-error") || creatureHtml.Contains("database-detail-page-not-found-message")) { return(false); } String dataPattern = @"\$\.extend\(g_npcs\[" + m_creatureTemplateData.id + @"\], (.+)\);"; String creatureHealthPattern = @"<div>(?:Health|Vie): ((?:\d|,|\.)+)</div>"; String creatureMoneyPattern = @"\[money=([0-9]+)\]"; String creatureTemplateDataJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, dataPattern); if (creatureTemplateDataJSon != null) { CreatureTemplateParsing creatureTemplateData = JsonConvert.DeserializeObject <CreatureTemplateParsing>(creatureTemplateDataJSon); String creatureHealthDataJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureHealthPattern); String creatureMoneyData = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureMoneyPattern); SetCreatureTemplateData(creatureTemplateData, creatureMoneyData, creatureHealthDataJSon); // Without m_creatureTemplateData we can't really do anything, so return false if (m_creatureTemplateData == null) { return(false); } } if (IsCheckboxChecked("locale")) { optionSelected = true; } if (IsCheckboxChecked("template")) { String modelPattern = @"WH.Wow.ModelViewer.showLightbox\(\{\"type\":1,"typeId\":" + m_creatureTemplateData.id + @",\"displayId\":([0-9]+)\}\)"; String modelId = Tools.ExtractJsonFromWithPattern(creatureHtml, modelPattern); m_modelid = modelId != null?Int32.Parse(modelId) : 0; optionSelected = true; } if (IsCheckboxChecked("vendor")) { String vendorPattern = @"new Listview\(\{template: 'item', id: 'sells', name: WH.TERMS.sells,(.*), data: (.+)\}\);"; String npcVendorJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, vendorPattern, 1); if (npcVendorJSon != null) { NpcVendorParsing[] npcVendorDatas = JsonConvert.DeserializeObject <NpcVendorParsing[]>(npcVendorJSon); SetNpcVendorData(npcVendorDatas); optionSelected = true; } } if (IsCheckboxChecked("loot")) { String creatureLootPattern = @"new Listview\(\{template: 'item', id: 'drops', name: WH.TERMS.drops,(.*), data:(.+)\}\);"; String creatureCurrencyPattern = @"new Listview\({template: 'currency', id: 'drop-currency', name: WH.TERMS.currencies,(.*), data:(.+)\}\);"; String creatureLootJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureLootPattern, 1); String creatureLootCurrencyJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureCurrencyPattern, 1); if (creatureLootJSon != null || creatureLootCurrencyJSon != null) { CreatureLootItemParsing[] creatureLootDatas = creatureLootJSon != null?JsonConvert.DeserializeObject <CreatureLootItemParsing[]>(creatureLootJSon) : new CreatureLootItemParsing[0]; CreatureLootCurrencyParsing[] creatureLootCurrencyDatas = creatureLootCurrencyJSon != null?JsonConvert.DeserializeObject <CreatureLootCurrencyParsing[]>(creatureLootCurrencyJSon) : new CreatureLootCurrencyParsing[0]; SetCreatureLootData(creatureLootDatas, creatureLootCurrencyDatas); optionSelected = true; } } if (IsCheckboxChecked("skinning")) { String creatureSkinningPattern = @"new Listview\(\{template: 'item', id: 'skinning',.*_totalCount: ([0-9]+),.*data:(.+)\}\);"; String creatureSkinningCount = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureSkinningPattern, 0); String creatureSkinningJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureSkinningPattern, 1); if (creatureSkinningJSon != null) { CreatureLootItemParsing[] creatureLootDatas = JsonConvert.DeserializeObject <CreatureLootItemParsing[]>(creatureSkinningJSon); SetCreatureSkinningData(creatureLootDatas, Int32.Parse(creatureSkinningCount)); optionSelected = true; } } if (IsCheckboxChecked("trainer")) { String creatureTrainerPattern = @"new Listview\(\{template: 'spell', id: 'teaches-recipe', name: WH.TERMS.teaches, tabs: tabsRelated, parent: 'lkljbjkb574', visibleCols: \['source'\], data: (.+)\}\);"; String creatureTrainerJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureTrainerPattern); if (creatureTrainerJSon != null) { CreatureTrainerParsing[] creatureTrainerDatas = JsonConvert.DeserializeObject <CreatureTrainerParsing[]>(creatureTrainerJSon); m_creatureTrainerDatas = creatureTrainerDatas; optionSelected = true; } } if (IsCheckboxChecked("quest starter")) { String creatureQuestStarterPattern = @"new Listview\(\{template: 'quest', id: 'starts', name: WH.TERMS.starts, tabs: tabsRelated, parent: 'lkljbjkb574', data: (.+)\}\);"; String creatureQuestStarterJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureQuestStarterPattern); if (creatureQuestStarterJSon != null) { QuestStarterEnderParsing[] creatureQuestStarterDatas = JsonConvert.DeserializeObject <QuestStarterEnderParsing[]>(creatureQuestStarterJSon); m_creatureQuestStarterDatas = creatureQuestStarterDatas; optionSelected = true; } } if (IsCheckboxChecked("quest ender")) { String creatureQuestEnderPattern = @"new Listview\(\{template: 'quest', id: 'ends', name: WH.TERMS.ends, tabs: tabsRelated, parent: 'lkljbjkb574', data: (.+)\}\);"; String creatureQuestEnderJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureQuestEnderPattern); if (creatureQuestEnderJSon != null) { QuestStarterEnderParsing[] creatureQuestEnderDatas = JsonConvert.DeserializeObject <QuestStarterEnderParsing[]>(creatureQuestEnderJSon); m_creatureQuestEnderDatas = creatureQuestEnderDatas; optionSelected = true; } } if (optionSelected) { return(true); } else { return(false); } }
public override bool ParseSingleJson(int id = 0) { if (m_creatureTemplateData.id == 0 && id == 0) { return(false); } else if (m_creatureTemplateData.id == 0 && id != 0) { m_creatureTemplateData.id = id; } String creatureHtml = Tools.GetHtmlFromWowhead(GetWowheadUrl(), webClient); if (creatureHtml.Contains("inputbox-error") || creatureHtml.Contains("database-detail-page-not-found-message")) { return(false); } else { String dataPattern = @"\$\.extend\(g_npcs\[" + m_creatureTemplateData.id + @"\], (.+)\);"; String creatureHealthPattern = @"<div>(?:Health|Vie) : ((?:\d|,|\.)+)</div>"; String creatureMoneyPattern = @"\[money=([0-9]+)\]"; String creatureModelIdPattern = @"WH\.ModelViewer\.showLightbox\({"type":[0-9]+,"typeId":" + m_creatureTemplateData.id + @","displayId":([0-9]+)}\)"; String creatureTemplateDataJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, dataPattern); if (creatureTemplateDataJSon != null) { CreatureTemplateParsing creatureTemplateData = JsonConvert.DeserializeObject <CreatureTemplateParsing>(creatureTemplateDataJSon); String creatureHealthDataJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureHealthPattern); String creatureMoneyData = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureMoneyPattern); String creatureModelIdData = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureModelIdPattern); SetCreatureTemplateData(creatureTemplateData, creatureModelIdData, creatureMoneyData, creatureHealthDataJSon); // Without m_creatureTemplateData we can't really do anything, so return false if (m_creatureTemplateData == null) { return(false); } } if (IsCheckboxChecked("vendor")) { String vendorPattern = @"new Listview\({template: 'item', id: 'sells', .+?, data: (.+)}\);"; String npcVendorJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, vendorPattern); if (npcVendorJSon != null) { NpcVendorParsing[] npcVendorDatas = JsonConvert.DeserializeObject <NpcVendorParsing[]>(npcVendorJSon); SetNpcVendorData(npcVendorDatas); } } if (IsCheckboxChecked("loot")) { String creatureLootPattern = @"new Listview\({template: 'item', id: 'drops', name: LANG\.tab_drops, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \['count', 'percent'\], showLootSpecs: [0-9],sort:\['noteworthy', '-percent', 'name'\], _totalCount: [0-9]+, computeDataFunc: Listview\.funcBox\.initLootTable, onAfterCreate: Listview\.funcBox\.addModeIndicator, data:(.+)}\);"; String creatureCurrencyPattern = @"new Listview\({template: 'currency', id: 'drop-currency', name: LANG\.tab_currencies, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \[Listview\.extraCols\.count, Listview\.extraCols\.percent\], sort:\['-percent', 'name'], _totalCount: [0-9]*, computeDataFunc: Listview\.funcBox\.initLootTable, onAfterCreate: Listview\.funcBox\.addModeIndicator, data: (.+)}\);"; String creatureLootJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureLootPattern); String creatureLootCurrencyJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureCurrencyPattern); if (creatureLootJSon != null || creatureLootCurrencyJSon != null) { CreatureLootItemParsing[] creatureLootDatas = creatureLootJSon != null?JsonConvert.DeserializeObject <CreatureLootItemParsing[]>(creatureLootJSon) : new CreatureLootItemParsing[0]; CreatureLootCurrencyParsing[] creatureLootCurrencyDatas = creatureLootCurrencyJSon != null?JsonConvert.DeserializeObject <CreatureLootCurrencyParsing[]>(creatureLootCurrencyJSon) : new CreatureLootCurrencyParsing[0]; SetCreatureLootData(creatureLootDatas, creatureLootCurrencyDatas); } } if (IsCheckboxChecked("skinning")) { String creatureSkinningPattern = @"new Listview\(\{template: 'item', id: 'skinning', name: LANG\.tab_skinning, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \[Listview\.extraCols\.count, Listview\.extraCols\.percent\], sort:\['-percent', 'name'\], computeDataFunc: Listview\.funcBox\.initLootTable, note: WH\.sprintf\(LANG\.lvnote_npcskinning, [0-9]+\), _totalCount: ([0-9]+), data: (.+)}\);"; String creatureSkinningCount = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureSkinningPattern, 0); String creatureSkinningJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureSkinningPattern, 1); if (creatureSkinningJSon != null) { CreatureLootItemParsing[] creatureLootDatas = JsonConvert.DeserializeObject <CreatureLootItemParsing[]>(creatureSkinningJSon); SetCreatureSkinningData(creatureLootDatas, Int32.Parse(creatureSkinningCount)); } } if (IsCheckboxChecked("pickpocketing")) { String creaturePickpocketingPattern = @"new Listview\(\{template: 'item', id: 'pickpocketing', name: LANG\.tab_pickpocketing, tabs: tabsRelated, parent: 'lkljbjkb574', extraCols: \[Listview\.extraCols\.count, Listview\.extraCols\.percent\], sort:\['-percent', 'name'\], computeDataFunc: Listview\.funcBox\.initLootTable, note: WH\.sprintf\(LANG\.lvnote_npcpickpocketing, [0-9]+\), _totalCount: ([0-9]+), data:(.+)}\);"; String creaturePickpocketingCount = Tools.ExtractJsonFromWithPattern(creatureHtml, creaturePickpocketingPattern, 0); String creaturePickpocketingJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creaturePickpocketingPattern, 1); if (creaturePickpocketingJSon != null) { CreatureLootItemParsing[] creatureLootDatas = JsonConvert.DeserializeObject <CreatureLootItemParsing[]>(creaturePickpocketingJSon); SetCreaturePickpocketingData(creatureLootDatas, Int32.Parse(creaturePickpocketingCount)); } } if (IsCheckboxChecked("trainer")) { String creatureTrainerPattern = @"new Listview\(\{template: 'spell', id: 'teaches-recipe', name: LANG\.tab_teaches, tabs: tabsRelated, parent: 'lkljbjkb574', visibleCols: \['source'\], data: (.+)\}\);"; String creatureTrainerJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureTrainerPattern); if (creatureTrainerJSon != null) { CreatureTrainerParsing[] creatureTrainerDatas = JsonConvert.DeserializeObject <CreatureTrainerParsing[]>(creatureTrainerJSon); m_creatureTrainerDatas = creatureTrainerDatas; } } if (IsCheckboxChecked("quest starter")) { String creatureQuestStarterPattern = @"new Listview\(\{template: 'quest', id: 'starts', name: LANG\.tab_starts, tabs: tabsRelated, parent: 'lkljbjkb574', data: (.+)\}\);"; String creatureQuestStarterJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureQuestStarterPattern); if (creatureQuestStarterJSon != null) { QuestStarterEnderParsing[] creatureQuestStarterDatas = JsonConvert.DeserializeObject <QuestStarterEnderParsing[]>(creatureQuestStarterJSon); m_creatureQuestStarterDatas = creatureQuestStarterDatas; } } if (IsCheckboxChecked("quest ender")) { String creatureQuestEnderPattern = @"new Listview\(\{template: 'quest', id: 'ends', name: LANG\.tab_ends, tabs: tabsRelated, parent: 'lkljbjkb574', data: (.+)\}\);"; String creatureQuestEnderJSon = Tools.ExtractJsonFromWithPattern(creatureHtml, creatureQuestEnderPattern); if (creatureQuestEnderJSon != null) { QuestStarterEnderParsing[] creatureQuestEnderDatas = JsonConvert.DeserializeObject <QuestStarterEnderParsing[]>(creatureQuestEnderJSon); m_creatureQuestEnderDatas = creatureQuestEnderDatas; } } return(true); } }