mirror of
https://github.com/theBowja/GenshinData-1.git
synced 2025-04-28 18:18:13 +09:00
manually add domains haha
This commit is contained in:
parent
7126cfa04d
commit
a6df2b6178
2210
[Obfuscated] ExcelBinOutput/AnimalCodexExcelConfigData.json
Normal file
2210
[Obfuscated] ExcelBinOutput/AnimalCodexExcelConfigData.json
Normal file
File diff suppressed because it is too large
Load Diff
1183
[Obfuscated] ExcelBinOutput/InvestigationMonsterConfigData.json
Normal file
1183
[Obfuscated] ExcelBinOutput/InvestigationMonsterConfigData.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
const xdungeon = getExcel('DungeonExcelConfigData');
|
||||
let xdungeon = getExcel('DungeonExcelConfigData');
|
||||
const xpreview = getExcel('RewardPreviewExcelConfigData');
|
||||
const xdungeonentry = getExcel('DungeonEntryExcelConfigData'); // adventure handbook
|
||||
const xdisplay = getExcel('DisplayItemExcelConfigData');
|
||||
@ -30,6 +30,8 @@ function getDomainTypeTextMapHash(domaintype) {
|
||||
"UI_DUNGEON_ENTRY_361", // "Momiji-Dyed Court"
|
||||
"UI_DUNGEON_ENTRY_310", // "Violet Court"
|
||||
"UI_DUNGEON_ENTRY_368", // "Court of Flowing Sand"
|
||||
"UI_DUNGEON_ENTRY_433", // "Slumbering Court"
|
||||
"UI_DUNGEON_ENTRY_516", // "The Lost Valley"
|
||||
*/
|
||||
function getDomainEntranceTextMapHash(englishname) {
|
||||
englishname = englishname.toLowerCase();
|
||||
@ -64,7 +66,9 @@ function getDomainEntranceTextMapHash(englishname) {
|
||||
else if(englishname.includes('sunken sands') || englishname.includes('altar of sands') || englishname.includes('sand burial'))
|
||||
return mapping("UI_DUNGEON_ENTRY_368");
|
||||
else if(englishname.includes('necropolis'))
|
||||
return mapping("UI_DUNGEON_ENTRY_433")
|
||||
return mapping("UI_DUNGEON_ENTRY_433");
|
||||
else if(englishname.includes('machine nest'))
|
||||
return mapping("UI_DUNGEON_ENTRY_516");
|
||||
else
|
||||
console.log('no domain entrance mapping found for '+englishname);
|
||||
}
|
||||
@ -79,7 +83,7 @@ function isSundaySpecial(englishname) {
|
||||
function collateDomain(lang) {
|
||||
const language = getLanguage(lang);
|
||||
const xmat = getExcel('MaterialExcelConfigData');
|
||||
|
||||
xdungeon = moredungeons.concat(xdungeon);
|
||||
let mydomain = xdungeon.reduce((accum, obj) => {
|
||||
if(obj.Type !== "DUNGEON_DAILY_FIGHT" || obj.StateType !== "DUNGEON_STATE_RELEASE") return accum;
|
||||
if(isSundaySpecial(getLanguage('EN')[obj.NameTextMapHash])) return accum;
|
||||
@ -99,7 +103,8 @@ function collateDomain(lang) {
|
||||
data.region = language[xcity.find(city => city.CityId === obj.CityID).CityNameTextMapHash];
|
||||
|
||||
data.recommendedlevel = obj.ShowLevel;
|
||||
// data.recommendedelements = obj.RecommendElementTypes.filter(ele => ele !== 'None').map(ele => language[xmanualtext.find(man => man.TextMapId === ele).TextMapContentTextMapHash]);
|
||||
if(typeof obj.RecommendElementTypes[0] === 'string')
|
||||
data.recommendedelements = obj.RecommendElementTypes.filter(ele => ele !== 'None').map(ele => language[xmanualtext.find(man => man.TextMapId === ele).TextMapContentTextMapHash]);
|
||||
data.daysofweek = getDayWeekList(obj.Id, language);
|
||||
if(data.daysofweek.length === 0) delete data.daysofweek;
|
||||
|
||||
@ -122,7 +127,8 @@ function collateDomain(lang) {
|
||||
return { name: language[disp.NameTextMapHash], rarity: disp.RankLevel+'' };
|
||||
}
|
||||
});
|
||||
// data.disorder = xdisorder.filter(d => d.Id+'' === Object.keys(obj.LevelConfigMap)[0]).map(d => language[d.DescTextMapHash]);
|
||||
if(obj.disorderoverride) data.disorder = language[obj.disorderoverride];
|
||||
//data.disorder = xdisorder.filter(d => d.Id+'' === Object.keys(obj.LevelConfigMap)[0]).map(d => language[d.DescTextMapHash]);
|
||||
data.imagename = obj.EntryPicPath;
|
||||
|
||||
let filename = makeFileName(getLanguage('EN')[obj.NameTextMapHash]);
|
||||
@ -158,3 +164,64 @@ function cleanupDungeonFile() {
|
||||
}
|
||||
|
||||
cleanupDungeonFile();
|
||||
|
||||
// Fire, Water, Ice, Rock, Electric, Wind, Grass
|
||||
|
||||
let moredungeons = [
|
||||
{ // machine nest 1
|
||||
Id: 99991,
|
||||
Type: "DUNGEON_DAILY_FIGHT",
|
||||
StateType: "DUNGEON_STATE_RELEASE",
|
||||
NameTextMapHash: 4233644080,
|
||||
DescTextMapHash: 1269716077,
|
||||
CityID: 2,
|
||||
ShowLevel: 59,
|
||||
RecommendElementTypes: ['Fire', 'Electric', 'Rock', 'Wind'],
|
||||
LimitLevel: 30,
|
||||
PassRewardPreviewID: 22443,
|
||||
EntryPicPath: 'UI_DungeonPic_CycleDungeonChasm',
|
||||
disorderoverride: 4145618250
|
||||
},
|
||||
{ // machine nest 2
|
||||
Id: 99992,
|
||||
Type: "DUNGEON_DAILY_FIGHT",
|
||||
StateType: "DUNGEON_STATE_RELEASE",
|
||||
NameTextMapHash: 1948966872,
|
||||
DescTextMapHash: 1269716077,
|
||||
CityID: 2,
|
||||
ShowLevel: 59,
|
||||
RecommendElementTypes: ['Fire', 'Electric', 'Rock', 'Wind'],
|
||||
LimitLevel: 35,
|
||||
PassRewardPreviewID: 22444,
|
||||
EntryPicPath: 'UI_DungeonPic_CycleDungeonChasm',
|
||||
disorderoverride: 4145618250
|
||||
},
|
||||
{ // machine nest 3
|
||||
Id: 99993,
|
||||
Type: "DUNGEON_DAILY_FIGHT",
|
||||
StateType: "DUNGEON_STATE_RELEASE",
|
||||
NameTextMapHash: 2797186184,
|
||||
DescTextMapHash: 1269716077,
|
||||
CityID: 2,
|
||||
ShowLevel: 59,
|
||||
RecommendElementTypes: ['Fire', 'Electric', 'Rock', 'Wind'],
|
||||
LimitLevel: 40,
|
||||
PassRewardPreviewID: 22445,
|
||||
EntryPicPath: 'UI_DungeonPic_CycleDungeonChasm',
|
||||
disorderoverride: 4145618250
|
||||
},
|
||||
{ // machine nest 4
|
||||
Id: 99994,
|
||||
Type: "DUNGEON_DAILY_FIGHT",
|
||||
StateType: "DUNGEON_STATE_RELEASE",
|
||||
NameTextMapHash: 1531297112,
|
||||
DescTextMapHash: 1269716077,
|
||||
CityID: 2,
|
||||
ShowLevel: 59,
|
||||
RecommendElementTypes: ['Fire', 'Electric', 'Rock', 'Wind'],
|
||||
LimitLevel: 45,
|
||||
PassRewardPreviewID: 22446,
|
||||
EntryPicPath: 'UI_DungeonPic_CycleDungeonChasm',
|
||||
disorderoverride: 4145618250
|
||||
},
|
||||
];
|
@ -53,6 +53,11 @@ const monsterMap = {
|
||||
"bless necropolis iii": ['thunder hound', 'thunder hound whelp', 'el hili shooter'],
|
||||
"bless necropolis iv": ['thunder hound', 'thunder hound whelp', 'crack axe mita'],
|
||||
|
||||
"bless machine nest i": ['ru guard', 'ru destroy'],
|
||||
"bless machine nest ii": ['ru guard', 'ru scout', 'ru cruiser', 'ru destroy'],
|
||||
"bless machine nest iii": ['ru scout', 'ru cruiser', 'ru destroy'],
|
||||
"bless machine nest iv": ['ru grader', 'ru cruiser', 'ru destroy'],
|
||||
|
||||
"forge alt sand i": ['hy slime', 'la hy slime', 'py slime', 'la py slime'],
|
||||
"forge alt sand ii": ['la hy slime', 'la py slime'],
|
||||
"forge alt sand iii": ['la hy slime', 'la py slime', 'hy ab mage', 'py ab mage'],
|
||||
|
@ -31,6 +31,7 @@ function collateEnemy(lang) {
|
||||
let mymonster = xcodex.reduce((accum, obj) => {
|
||||
if(obj.Type !== 'CODEX_MONSTER') return accum;
|
||||
if(obj.IsDeleteWatcherAfterFinish) return accum;
|
||||
if(obj.Id === 29010101) obj.Id = 29010104; // use correct stormterror
|
||||
let mon = xmonster.find(m => m.Id === obj.Id);
|
||||
let des = xdescribe.find(d => d.Id === obj.DescribeId);
|
||||
let spe = xspecial.find(s => s.SpecialNameLabID === des.SpecialNameLabID);
|
||||
@ -63,7 +64,7 @@ function collateEnemy(lang) {
|
||||
// Abyss Lector: Violet Lightning, Abyss Herald: Wicked Torrents, Abyss Lector: Fathomless Flames
|
||||
// Hydro Cicin, Electro Cicin, Cryo Cicin
|
||||
data.rewardpreview = [];
|
||||
} else if(obj.Id === 29010101) { // dvalin lvl90
|
||||
} else if(obj.Id === 29010104) { // dvalin lvl90
|
||||
let rewardpreview = xpreview.find(pre => pre.Id === 15005).PreviewItems.filter(pre => pre.Id);
|
||||
data.rewardpreview = mapRewardList(rewardpreview, language);
|
||||
} else if(obj.Id === 29020101) { // wolfboss lvl90
|
||||
@ -93,6 +94,7 @@ function collateEnemy(lang) {
|
||||
|
||||
let sub = obj.SubType || 'CODEX_SUBTYPE_ELEMENTAL';
|
||||
sub = sub.slice(sub.lastIndexOf('_')+1);
|
||||
// console.log(obj.Id);
|
||||
// console.log(sub);
|
||||
sub = xmanualtext.find(m => m.TextMapId === `UI_CODEX_ANIMAL_CATEGORY_${sub}`).TextMapContentTextMapHash;
|
||||
data.enemytype = mon.SecurityLevel || 'COMMON';
|
||||
@ -128,6 +130,7 @@ function collateEnemy(lang) {
|
||||
stats.base.defense = mon.DefenseBase;
|
||||
stats.curve = {};
|
||||
try {
|
||||
// if(obj.Id === 29010101) console.log(mon.PropGrowCurves);
|
||||
stats.curve.hp = mon.PropGrowCurves.find(ele => ele.Type === 'FIGHT_PROP_BASE_HP').GrowCurve;
|
||||
stats.curve.attack = mon.PropGrowCurves.find(ele => ele.Type === 'FIGHT_PROP_BASE_ATTACK').GrowCurve;
|
||||
stats.curve.defense = mon.PropGrowCurves.find(ele => ele.Type === 'FIGHT_PROP_BASE_DEFENSE').GrowCurve;
|
||||
@ -236,6 +239,11 @@ function fixAnimalCodexSubType() {
|
||||
let match = out.find(ele => ele.Id === ob.KABAHENDGOO); // replace with ID
|
||||
match.SubType = ob.JKOLEMPKHMI; // replace with CODEX_SUBTYPE_HILICHURL
|
||||
}
|
||||
// manual fixes for 2.6 update
|
||||
out.find(ele => ele.Id === 22080101).SubType = "CODEX_SUBTYPE_ABYSS";
|
||||
out.find(ele => ele.Id === 24010401).SubType = "CODEX_SUBTYPE_AUTOMATRON";
|
||||
out.find(ele => ele.Id === 26090101).SubType = "CODEX_SUBTYPE_BEAST";
|
||||
|
||||
out = JSON.stringify(out, null, '\t');
|
||||
fs.writeFileSync('../ExcelBinOutput/AnimalCodexExcelConfigData.json', out);
|
||||
}
|
||||
|
@ -1,6 +1,26 @@
|
||||
/*
|
||||
MATERIAL_AVATAR_MATERIAL is talent level-up material, etc.
|
||||
|
||||
check MaterialSourceDataExcelConfigData should have
|
||||
{
|
||||
Id: 114007,
|
||||
DungeonList: [
|
||||
4320,
|
||||
4321,
|
||||
4322,
|
||||
4323
|
||||
],
|
||||
TextList: [
|
||||
4083257751,
|
||||
4201531456,
|
||||
3807357581,
|
||||
2886122308,
|
||||
3675025673,
|
||||
2276455088
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
|
||||
const filter = ['MATERIAL_EXCHANGE', 'MATERIAL_WOOD', 'MATERIAL_AVATAR_MATERIAL', 'MATERIAL_EXP_FRUIT',
|
||||
@ -60,8 +80,10 @@ function collateMaterial(lang) {
|
||||
let dungeonlist = tmp.DungeonList.filter(ele => ele !== 0);
|
||||
if(dungeonlist > 0) {
|
||||
if(dungeonlist.length > 1) console.log(`${data.name} drops from more than one dungeon!`);
|
||||
data.dropdomain = language[xdungeon.find(ele => ele.Id === dungeonlist[0]).DisplayNameTextMapHash]; // artifact domains don't have DisplayNameTextMapHash
|
||||
data.daysofweek = getDayWeekList(dungeonlist[0], language);
|
||||
if(xdungeon.find(ele => ele.Id === dungeonlist[0])) {
|
||||
// data.dropdomain = language[xdungeon.find(ele => ele.Id === dungeonlist[0]).DisplayNameTextMapHash]; // artifact domains don't have DisplayNameTextMapHash
|
||||
// data.daysofweek = getDayWeekList(dungeonlist[0], language);
|
||||
}
|
||||
}
|
||||
// get fishing locations
|
||||
if(getLanguage('EN')[obj.TypeDescTextMapHash] === 'Fish') {
|
||||
@ -78,7 +100,8 @@ function collateMaterial(lang) {
|
||||
return poolAccum;
|
||||
}, []);
|
||||
}
|
||||
data.source = tmp.TextList.map(ele => language[ele]).filter(ele => ele !== '');
|
||||
const sourcelist = tmp.TextList.concat(tmp.JumpList);
|
||||
data.source = sourcelist.map(ele => language[ele]).filter(ele => ele !== ''); // TextList/JumpList
|
||||
|
||||
data.imagename = obj.Icon;
|
||||
if(!data.imagename) console.log(data.name+' has no icon');
|
||||
@ -116,4 +139,4 @@ function cleanupMaterialSourceFile() {
|
||||
fs.writeFileSync('../ExcelBinOutput/MaterialSourceDataExcelConfigData.json', data);
|
||||
}
|
||||
|
||||
cleanupMaterialSourceFile();
|
||||
// cleanupMaterialSourceFile();
|
@ -12,6 +12,7 @@ function collateNamecard(lang) {
|
||||
|
||||
data.name = language[obj.NameTextMapHash];
|
||||
data.description = sanitizeDescription(language[obj.DescTextMapHash]);
|
||||
data.sortorder = obj.Id;
|
||||
|
||||
let sauce = xsource.find(ele => ele.Id === obj.Id);
|
||||
data.source = sauce.TextList.map(ele => language[ele]).filter(ele => ele !== '');
|
||||
|
@ -5,9 +5,9 @@ const xavatar = getExcel('AvatarExcelConfigData');
|
||||
|
||||
// for AvatarCostumeExcelConfigData
|
||||
const propertyMap = {
|
||||
Id: 'KBBEOGFDOOL',
|
||||
AvatarId: 'LDPMEMMAELP', // 10000003
|
||||
IconName: 'BBPJLOILMEA' // UI_AvatarIcon_QinCostumeSea
|
||||
Id: 'OBACDKHOCAM', // 200301
|
||||
AvatarId: 'BPAMNILGFPK', // 10000003
|
||||
IconName: 'DANEMGDCNIM' // UI_AvatarIcon_QinCostumeSea
|
||||
}
|
||||
|
||||
// taken from collateCharacter.js
|
||||
|
@ -108,17 +108,18 @@ function exportData(folder, collateFunc, englishonly, skipwrite) {
|
||||
// exportCurve('weapons', 'WeaponCurveExcelConfigData')
|
||||
// exportData('artifacts', require('./collateArtifact.js'));
|
||||
// exportData('foods', require('./collateFood'));
|
||||
// exportData('materials', require('./collateMaterial')); // run twice
|
||||
// exportData('materials', require('./collateMaterial'), false); // change: used both TextList/JumpList. temp removed dropdomain/daysofweek
|
||||
exportData('domains', require('./collateDomain')); // run twice // remember to add back recommendedelements and disorder and entrypicpath
|
||||
// exportData('enemies', require('./collateEnemy'));
|
||||
// exportData('domains', require('./collateDomainMonsterList')); // run only after both domains and enemies have run. sync. must do after domain
|
||||
// exportData('enemies', require('./collateEnemy'), true);
|
||||
// exportCurve('enemies', 'MonsterCurveExcelConfigData');
|
||||
|
||||
// exportData('outfits', require('./collateOutfit'));
|
||||
exportData('domains', require('./collateDomainMonsterList')); // MUST do run only after both domains and enemies have run. sync.
|
||||
|
||||
// exportData('outfits', require('./collateOutfit')); // Fix obfuscated keys!
|
||||
// exportData('windgliders', require('./collateWindGlider'));
|
||||
// exportData('animals', require('./collateAnimal'));
|
||||
// exportData('namecards', require('./collateNamecard')); // not done
|
||||
// exportData('geographies', require('./collateGeography')); // not done
|
||||
// exportData('namecards', require('./collateNamecard'));
|
||||
// exportData('geographies', require('./collateGeography'));
|
||||
// exportData('achievements', require('./collateAchievement'));
|
||||
// exportData('achievementgroups', require('./collateAchievementGroup'));
|
||||
// exportData('commissions', require('./collateCommission'), true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user