diff --git a/assets/EventConfig/Interacts.json b/assets/EventConfig/Interacts.json index 788713c..3ee0104 100644 --- a/assets/EventConfig/Interacts.json +++ b/assets/EventConfig/Interacts.json @@ -178,5 +178,27 @@ "transform": "Subway_PlayerPos_FromFortuneSquare02" } ] + }, + { + "event_id": 10000009, + "actions": [ + { + "$type": "OpenUi", + "ui": "UIYorozuyaPage", + "args": 0, + "store_template_id": 1161 + } + ] + }, + { + "event_id": 10000010, + "actions": [ + { + "$type": "OpenUi", + "ui": "UIMainStoryPage", + "args": 0, + "store_template_id": 1191 + } + ] } ] diff --git a/assets/FileCfg/ArchiveBattleQuestTemplateTb.json b/assets/FileCfg/ArchiveBattleQuestTemplateTb.json new file mode 100644 index 0000000..5e46c76 --- /dev/null +++ b/assets/FileCfg/ArchiveBattleQuestTemplateTb.json @@ -0,0 +1,342 @@ +[ + { + "ID": 107010011, + "QuestName": "QuestName_107010011", + "QuestDesc": "QuestDesc_107010011", + "Target": "QuestTarget_107010011", + "QuestType": 1, + "Chapter": 1, + "Difficulty": 1, + "MonsterLevel": 1, + "RecommendedLevel": 1, + "EBCDABBGHMF": 3, + "MLLPFMLKIKF": 0, + "HollowID": 19900014, + "FirstBattleEventID": 19900014, + "BattleEventID": 19900019, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 101000101, + "Slot2Avatar": -1, + "Slot3Avatar": -1, + "Buddy": 0, + "HGJGIMKPHLH": false, + "LHNGFLLKHED": 0, + "JGKFLKJNNHI": false, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + }, + { + "ID": 107010021, + "QuestName": "QuestName_107010021", + "QuestDesc": "QuestDesc_107010021", + "Target": "QuestTarget_107010021", + "QuestType": 1, + "Chapter": 1, + "Difficulty": 1, + "MonsterLevel": 1, + "RecommendedLevel": 1, + "EBCDABBGHMF": 3, + "MLLPFMLKIKF": 0, + "HollowID": 19900015, + "FirstBattleEventID": 19900015, + "BattleEventID": 19900015, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 101000201, + "Slot2Avatar": 101000202, + "Slot3Avatar": -1, + "Buddy": 0, + "HGJGIMKPHLH": false, + "LHNGFLLKHED": 0, + "JGKFLKJNNHI": false, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + }, + { + "ID": 107010031, + "QuestName": "QuestName_107010031", + "QuestDesc": "QuestDesc_107010031", + "Target": "QuestTarget_107010031", + "QuestType": 1, + "Chapter": 1, + "Difficulty": 1, + "MonsterLevel": 1, + "RecommendedLevel": 1, + "EBCDABBGHMF": 3, + "MLLPFMLKIKF": 0, + "HollowID": 19900016, + "FirstBattleEventID": 19900016, + "BattleEventID": 19900016, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 101000302, + "Slot2Avatar": 101000301, + "Slot3Avatar": -1, + "Buddy": 0, + "HGJGIMKPHLH": false, + "LHNGFLLKHED": 0, + "JGKFLKJNNHI": false, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + }, + { + "ID": 107010051, + "QuestName": "QuestName_107010051", + "QuestDesc": "QuestDesc_107010051", + "Target": "QuestTarget_107010051", + "QuestType": 1, + "Chapter": 1, + "Difficulty": 1, + "MonsterLevel": 6, + "RecommendedLevel": 6, + "EBCDABBGHMF": 3, + "MLLPFMLKIKF": 0, + "HollowID": 19900017, + "FirstBattleEventID": 19900017, + "BattleEventID": 19900017, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 101000501, + "Slot2Avatar": 101000502, + "Slot3Avatar": 101000503, + "Buddy": 101000504, + "HGJGIMKPHLH": true, + "LHNGFLLKHED": 2, + "JGKFLKJNNHI": true, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + }, + { + "ID": 107020021, + "QuestName": "QuestName_107020021", + "QuestDesc": "QuestDesc_107020021", + "Target": "QuestTarget_107020021", + "QuestType": 1, + "Chapter": 2, + "Difficulty": 1, + "MonsterLevel": 9, + "RecommendedLevel": 9, + "EBCDABBGHMF": 3, + "MLLPFMLKIKF": 0, + "HollowID": 10202101, + "FirstBattleEventID": 10202101, + "BattleEventID": 10202101, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 1000010101, + "Slot2Avatar": 1000010102, + "Slot3Avatar": 1000010103, + "Buddy": 1000010104, + "HGJGIMKPHLH": true, + "LHNGFLLKHED": 2, + "JGKFLKJNNHI": false, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + }, + { + "ID": 107020031, + "QuestName": "QuestName_107020031", + "QuestDesc": "QuestDesc_107020031", + "Target": "QuestTarget_107020031", + "QuestType": 1, + "Chapter": 2, + "Difficulty": 1, + "MonsterLevel": 9, + "RecommendedLevel": 9, + "EBCDABBGHMF": 3, + "MLLPFMLKIKF": 0, + "HollowID": 10202102, + "FirstBattleEventID": 10202102, + "BattleEventID": 10202102, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 1000010201, + "Slot2Avatar": 1000010202, + "Slot3Avatar": 1000010203, + "Buddy": 1000010204, + "HGJGIMKPHLH": true, + "LHNGFLLKHED": 2, + "JGKFLKJNNHI": false, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + }, + { + "ID": 107020041, + "QuestName": "QuestName_107020041", + "QuestDesc": "QuestDesc_107020041", + "Target": "QuestTarget_107020041", + "QuestType": 1, + "Chapter": 2, + "Difficulty": 1, + "MonsterLevel": 9, + "RecommendedLevel": 9, + "EBCDABBGHMF": 3, + "MLLPFMLKIKF": 0, + "HollowID": 10202103, + "FirstBattleEventID": 10202103, + "BattleEventID": 10202103, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 1000010301, + "Slot2Avatar": 1000010302, + "Slot3Avatar": 1000010303, + "Buddy": 1000010304, + "HGJGIMKPHLH": true, + "LHNGFLLKHED": 2, + "JGKFLKJNNHI": false, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + }, + { + "ID": 107030021, + "QuestName": "QuestName_107030021", + "QuestDesc": "QuestDesc_107030021", + "Target": "QuestTarget_107030021", + "QuestType": 1, + "Chapter": 3, + "Difficulty": 1, + "MonsterLevel": 11, + "RecommendedLevel": 11, + "EBCDABBGHMF": 4, + "MLLPFMLKIKF": 0, + "HollowID": 10202104, + "FirstBattleEventID": 10202104, + "BattleEventID": 10202104, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 1000010601, + "Slot2Avatar": 1000010602, + "Slot3Avatar": 1000010603, + "Buddy": 1000010604, + "HGJGIMKPHLH": true, + "LHNGFLLKHED": 2, + "JGKFLKJNNHI": false, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + }, + { + "ID": 107030031, + "QuestName": "QuestName_107030031", + "QuestDesc": "QuestDesc_107030031", + "Target": "QuestTarget_107030031", + "QuestType": 1, + "Chapter": 3, + "Difficulty": 1, + "MonsterLevel": 12, + "RecommendedLevel": 12, + "EBCDABBGHMF": 4, + "MLLPFMLKIKF": 0, + "HollowID": 10202106, + "FirstBattleEventID": 10202106, + "BattleEventID": 10202106, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 1000010701, + "Slot2Avatar": 1000010702, + "Slot3Avatar": 1000010703, + "Buddy": 1000010704, + "HGJGIMKPHLH": true, + "LHNGFLLKHED": 2, + "JGKFLKJNNHI": false, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + }, + { + "ID": 107030041, + "QuestName": "QuestName_107030041", + "QuestDesc": "QuestDesc_107030041", + "Target": "QuestTarget_107030041", + "QuestType": 1, + "Chapter": 3, + "Difficulty": 1, + "MonsterLevel": 13, + "RecommendedLevel": 13, + "EBCDABBGHMF": 4, + "MLLPFMLKIKF": 0, + "HollowID": 10202108, + "FirstBattleEventID": 10202108, + "BattleEventID": 10202108, + "GGAEGKMMGLN": 999, + "BattleRank": "1|101|208", + "Slot1Avatar": 1000010801, + "Slot2Avatar": 1000010802, + "Slot3Avatar": 1000010803, + "Buddy": 1000010804, + "HGJGIMKPHLH": true, + "LHNGFLLKHED": 2, + "JGKFLKJNNHI": false, + "KIFDIIKMIBJ": "Chapter0", + "EDECGDLJIEB": "UI/Sprite/A1DynamicLoad/Hollow/ImgMission/UnPacker/ImgMission01.png", + "JGBDOPDIDHA": "", + "DGLENAGIGBO": false, + "NPEBHOLENNI": 205, + "NEIIOOLBAPD": false, + "NABBCKLEDME": 0, + "FBDEJOEECMJ": "", + "CPJIMNGMCDO": 0 + } +] diff --git a/assets/FileCfg/ArchiveFileQuestTemplateTb.json b/assets/FileCfg/ArchiveFileQuestTemplateTb.json new file mode 100644 index 0000000..5d0c7f4 --- /dev/null +++ b/assets/FileCfg/ArchiveFileQuestTemplateTb.json @@ -0,0 +1,1229 @@ +[ + { + "ID": 1010001, + "ArchiveID": 1, + "IPNAHIKNOBJ": "ArchiveFileNum_11", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter00/Chapter00M1", + "ArchiveFileName": "QuestName_1010001", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [107012011, 107012012, 107012013, 107010011], + "AutoDistribution": true, + "EICPGAHLONI": true + }, + { + "ID": 1010002, + "ArchiveID": 1, + "IPNAHIKNOBJ": "ArchiveFileNum_12", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter00/Chapter00M2", + "ArchiveFileName": "QuestName_1010002", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [107012021, 107010021], + "AutoDistribution": true, + "EICPGAHLONI": true + }, + { + "ID": 1010003, + "ArchiveID": 1, + "IPNAHIKNOBJ": "ArchiveFileNum_13", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter00/Chapter00M3", + "ArchiveFileName": "QuestName_1010003", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [107012031, 107012032, 107010031, 107012033], + "AutoDistribution": true, + "EICPGAHLONI": true + }, + { + "ID": 1010004, + "ArchiveID": 1, + "IPNAHIKNOBJ": "ArchiveFileNum_14", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter00/Chapter00M4", + "ArchiveFileName": "QuestName_1010004", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [ + 107012041, 107012042, 107012043, 107012044, 107012045, 107012046, + 107012047 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1010005, + "ArchiveID": 1, + "IPNAHIKNOBJ": "ArchiveFileNum_15", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter00/Chapter00M5", + "ArchiveFileName": "QuestName_1010005", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [107012051, 107012052, 107012053, 107012054, 107012061], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1010006, + "ArchiveID": 1, + "IPNAHIKNOBJ": "ArchiveFileNum_16", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter00/Chapter00M6", + "ArchiveFileName": "QuestName_1010006", + "ArchiveFileNum": "6", + "ArchiveFileNiDs": [107012062, 107010051, 107012063], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1010007, + "ArchiveID": 1, + "IPNAHIKNOBJ": "ArchiveFileNum_17", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter00/Chapter00M7", + "ArchiveFileName": "QuestName_1010007", + "ArchiveFileNum": "7", + "ArchiveFileNiDs": [ + 107012064, 107012065, 107012071, 107012072, 107012073, 107012074 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1010008, + "ArchiveID": 1, + "IPNAHIKNOBJ": "ArchiveFileNum_18", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter00/Chapter00M8", + "ArchiveFileName": "QuestName_1010008", + "ArchiveFileNum": "8", + "ArchiveFileNiDs": [107012084, 107012081, 107012082, 107012083], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011001, + "ArchiveID": 2, + "IPNAHIKNOBJ": "ArchiveFileNum_21", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M1", + "ArchiveFileName": "QuestName_1011002", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [107022011, 107022021, 107022023, 107022024], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011003, + "ArchiveID": 2, + "IPNAHIKNOBJ": "ArchiveFileNum_22", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M2", + "ArchiveFileName": "QuestName_1011003", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [107022032, 107022031, 107020021], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011004, + "ArchiveID": 2, + "IPNAHIKNOBJ": "ArchiveFileNum_23", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M3", + "ArchiveFileName": "QuestName_1011004", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [107022041, 107020031], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011005, + "ArchiveID": 2, + "IPNAHIKNOBJ": "ArchiveFileNum_24", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M4", + "ArchiveFileName": "QuestName_1011005", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [107022042, 107020041, 107022051], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011007, + "ArchiveID": 2, + "IPNAHIKNOBJ": "ArchiveFileNum_25", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M4", + "ArchiveFileName": "QuestName_1011007", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [ + 107032015, 107022073, 107032012, 107032016, 107032017, 107032013 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011008, + "ArchiveID": 2, + "IPNAHIKNOBJ": "ArchiveFileNum_26", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M5", + "ArchiveFileName": "QuestName_1011008", + "ArchiveFileNum": "6", + "ArchiveFileNiDs": [107032014, 107032018], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011009, + "ArchiveID": 3, + "IPNAHIKNOBJ": "ArchiveFileNum_31", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M6", + "ArchiveFileName": "QuestName_1011009", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [107032021, 107032023, 107030021], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011010, + "ArchiveID": 3, + "IPNAHIKNOBJ": "ArchiveFileNum_32", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M7", + "ArchiveFileName": "QuestName_1011010", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [107032031, 107030031], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011011, + "ArchiveID": 3, + "IPNAHIKNOBJ": "ArchiveFileNum_33", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M7", + "ArchiveFileName": "QuestName_1011011", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [107032022, 107030041, 107032062, 107032063], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011012, + "ArchiveID": 3, + "IPNAHIKNOBJ": "ArchiveFileNum_34", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M7", + "ArchiveFileName": "QuestName_1011012", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [107032019, 107032071], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011013, + "ArchiveID": 3, + "IPNAHIKNOBJ": "ArchiveFileNum_35", + "DifficultyLv": 0, + "ShowType": 0, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M8", + "ArchiveFileName": "QuestName_1011013", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [107032020, 107032072, 107032084], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1011014, + "ArchiveID": 3, + "IPNAHIKNOBJ": "ArchiveFileNum_36", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M9", + "ArchiveFileName": "QuestName_1011014", + "ArchiveFileNum": "6", + "ArchiveFileNiDs": [ + 107032083, 107032081, 107032086, 107032087, 107032085, 107032088 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012001, + "ArchiveID": 6, + "IPNAHIKNOBJ": "ArchiveFileNum_41", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M1", + "ArchiveFileName": "QuestName_1012001", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [107042011, 107042012, 107042013, 107042014, 107042015], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012002, + "ArchiveID": 6, + "IPNAHIKNOBJ": "ArchiveFileNum_42", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M2", + "ArchiveFileName": "QuestName_1012002", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [107042021, 107042022], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012003, + "ArchiveID": 6, + "IPNAHIKNOBJ": "ArchiveFileNum_43", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M3", + "ArchiveFileName": "QuestName_1012003", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [107042031, 107042032, 107042034], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012004, + "ArchiveID": 6, + "IPNAHIKNOBJ": "ArchiveFileNum_44", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M4", + "ArchiveFileName": "QuestName_1012004", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [107042041, 107042042, 107042044, 107042045], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012005, + "ArchiveID": 6, + "IPNAHIKNOBJ": "ArchiveFileNum_45", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M5", + "ArchiveFileName": "QuestName_1012005", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [107042051, 107042052, 107042053, 107042055], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012006, + "ArchiveID": 6, + "IPNAHIKNOBJ": "ArchiveFileNum_46", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M6", + "ArchiveFileName": "QuestName_1012006", + "ArchiveFileNum": "6", + "ArchiveFileNiDs": [107042061, 107042062], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012007, + "ArchiveID": 7, + "IPNAHIKNOBJ": "ArchiveFileNum_51", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M7", + "ArchiveFileName": "QuestName_1012007", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [107052011, 107052012], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012008, + "ArchiveID": 7, + "IPNAHIKNOBJ": "ArchiveFileNum_52", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M8", + "ArchiveFileName": "QuestName_1012008", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [107052021, 107052023, 107052024, 107052025], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012009, + "ArchiveID": 7, + "IPNAHIKNOBJ": "ArchiveFileNum_53", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M9", + "ArchiveFileName": "QuestName_1012009", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [107052031, 107052032, 107052033], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1012010, + "ArchiveID": 7, + "IPNAHIKNOBJ": "ArchiveFileNum_54", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter02/Chapter02M10", + "ArchiveFileName": "QuestName_1012010", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [107052041, 107052042], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1019002, + "ArchiveID": 1001, + "IPNAHIKNOBJ": "ArchiveFileNum_22", + "DifficultyLv": 0, + "ShowType": 2, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter01/Chapter01M2", + "ArchiveFileName": "QuestName_1019002", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [107020071], + "AutoDistribution": false, + "EICPGAHLONI": false + }, + { + "ID": 1100001, + "ArchiveID": 10001, + "IPNAHIKNOBJ": "ArchiveFileNum_11", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterSoldier11M1", + "ArchiveFileName": "QuestName_1100001", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [ + 108012011, 108012012, 108012013, 108012014, 108012015, 108012017, + 108012018 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100002, + "ArchiveID": 10001, + "IPNAHIKNOBJ": "ArchiveFileNum_12", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterSoldier11M1", + "ArchiveFileName": "QuestName_1100002", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [108012021, 108012022, 108012023, 108012025, 108012026], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100003, + "ArchiveID": 10001, + "IPNAHIKNOBJ": "ArchiveFileNum_13", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterSoldier11M1", + "ArchiveFileName": "QuestName_1100003", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [ + 108012031, 108012032, 108012034, 108012042, 108012043, 108012051, + 108012053, 108012062, 108012063 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100004, + "ArchiveID": 10001, + "IPNAHIKNOBJ": "ArchiveFileNum_14", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterSoldier11M1", + "ArchiveFileName": "QuestName_1100004", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [108010041, 108012042, 108012043], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100005, + "ArchiveID": 10001, + "IPNAHIKNOBJ": "ArchiveFileNum_15", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterSoldier11M1", + "ArchiveFileName": "QuestName_1100005", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [108012051, 108010051, 108012053], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100006, + "ArchiveID": 10001, + "IPNAHIKNOBJ": "ArchiveFileNum_16", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterSoldier11M1", + "ArchiveFileName": "QuestName_1100006", + "ArchiveFileNum": "6", + "ArchiveFileNiDs": [108010061, 108012062, 108012063], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100101, + "ArchiveID": 10002, + "IPNAHIKNOBJ": "ArchiveFileNum_21", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterNekomiyaM1", + "ArchiveFileName": "QuestName_1100101", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [108022011, 108022021, 108022023, 108022025, 108022026], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100102, + "ArchiveID": 10002, + "IPNAHIKNOBJ": "ArchiveFileNum_22", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterNekomiyaM1", + "ArchiveFileName": "QuestName_1100102", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [108022021, 108020021, 108022023, 108022025, 108022026], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100103, + "ArchiveID": 10002, + "IPNAHIKNOBJ": "ArchiveFileNum_23", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterNekomiyaM1", + "ArchiveFileName": "QuestName_1100103", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [ + 108022031, 108022032, 108022033, 108022034, 108022035, 108022037, + 108022038 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100104, + "ArchiveID": 10002, + "IPNAHIKNOBJ": "ArchiveFileNum_24", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterNekomiyaM1", + "ArchiveFileName": "QuestName_1100104", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [ + 108022041, 108022042, 108022043, 108022044, 108022051, 108022053, + 108022054, 108022061 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100105, + "ArchiveID": 10002, + "IPNAHIKNOBJ": "ArchiveFileNum_25", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterNekomiyaM1", + "ArchiveFileName": "QuestName_1100105", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [108022051, 108020051, 108022053, 108022054], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100106, + "ArchiveID": 10002, + "IPNAHIKNOBJ": "ArchiveFileNum_26", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterNekomiyaM1", + "ArchiveFileName": "QuestName_1100106", + "ArchiveFileNum": "6", + "ArchiveFileNiDs": [108022061], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1100201, + "ArchiveID": 5, + "IPNAHIKNOBJ": "ArchiveFileNum_31", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterGeminiM1", + "ArchiveFileName": "QuestName_1100201", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [108032011, 108032016], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 1800001, + "ArchiveID": 8001, + "IPNAHIKNOBJ": "ArchiveFileNum_22", + "DifficultyLv": 0, + "ShowType": 2, + "RecommendedHitTypes": [], + "Video": "Yorozuya/Metro/MetroDaySunny", + "ArchiveFileName": "QuestName_1800001", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [108000001], + "AutoDistribution": false, + "EICPGAHLONI": false + }, + { + "ID": 1800002, + "ArchiveID": 8001, + "IPNAHIKNOBJ": "ArchiveFileNum_22", + "DifficultyLv": 0, + "ShowType": 2, + "RecommendedHitTypes": [], + "Video": "Yorozuya/Metro/MetroDaySunny", + "ArchiveFileName": "QuestName_1800002", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [108000002], + "AutoDistribution": false, + "EICPGAHLONI": false + }, + { + "ID": 1800003, + "ArchiveID": 8001, + "IPNAHIKNOBJ": "ArchiveFileNum_22", + "DifficultyLv": 0, + "ShowType": 2, + "RecommendedHitTypes": [], + "Video": "Yorozuya/Metro/MetroDaySunny", + "ArchiveFileName": "QuestName_1800003", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [108000003], + "AutoDistribution": false, + "EICPGAHLONI": false + }, + { + "ID": 1800004, + "ArchiveID": 8001, + "IPNAHIKNOBJ": "ArchiveFileNum_22", + "DifficultyLv": 0, + "ShowType": 2, + "RecommendedHitTypes": [], + "Video": "Yorozuya/Metro/MetroDaySunny", + "ArchiveFileName": "QuestName_1800004", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [108000004], + "AutoDistribution": false, + "EICPGAHLONI": false + }, + { + "ID": 12210301, + "ArchiveID": 10, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M1", + "ArchiveFileName": "QuestName_12210301", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1221030101, 1221030102, 1221030103], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210302, + "ArchiveID": 10, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M2", + "ArchiveFileName": "QuestName_12210302", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [1221030201, 1221030202, 1221030204, 1221030205], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210303, + "ArchiveID": 10, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M3", + "ArchiveFileName": "QuestName_12210303", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [1221030301, 1221030302], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210304, + "ArchiveID": 10, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M4", + "ArchiveFileName": "QuestName_12210304", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [1221030401, 1221030403], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210305, + "ArchiveID": 10, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M4", + "ArchiveFileName": "QuestName_12210305", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [1221030502, 1221030503], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210306, + "ArchiveID": 11, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M5", + "ArchiveFileName": "QuestName_12210306", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1221030601, 1221030602, 1221030603, 1221030605], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210307, + "ArchiveID": 11, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M6", + "ArchiveFileName": "QuestName_12210307", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [1221030701, 1221030703], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210308, + "ArchiveID": 11, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M7", + "ArchiveFileName": "QuestName_12210308", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [1221030801, 1221030802, 1221030803], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210309, + "ArchiveID": 11, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M8", + "ArchiveFileName": "QuestName_12210309", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [1221030901, 1221030903, 1221030904], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210310, + "ArchiveID": 11, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M9", + "ArchiveFileName": "QuestName_12210310", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [1221031002, 1221031003], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210311, + "ArchiveID": 11, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M10", + "ArchiveFileName": "QuestName_12210311", + "ArchiveFileNum": "6", + "ArchiveFileNiDs": [1221031101, 1221031103, 1221031104], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12210312, + "ArchiveID": 11, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter03/Chapter03M11", + "ArchiveFileName": "QuestName_12210312", + "ArchiveFileNum": "7", + "ArchiveFileNiDs": [1221031201, 1221031202, 1221031203, 1221031204], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215101, + "ArchiveID": 4, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter1_5/Chapter1_5M1", + "ArchiveFileName": "QuestName_12215101", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1221510101, 1221510102], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215102, + "ArchiveID": 4, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter1_5/Chapter1_5M2", + "ArchiveFileName": "QuestName_12215102", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [1221510202, 1221510204, 1221510205], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215103, + "ArchiveID": 4, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter1_5/Chapter1_5M3", + "ArchiveFileName": "QuestName_12215103", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [1221510301, 1221510302, 1221510304], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215201, + "ArchiveID": 8, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M1", + "ArchiveFileName": "QuestName_12215201", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1221520101, 1221520102, 1221520103, 1221520104], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215202, + "ArchiveID": 8, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M2", + "ArchiveFileName": "QuestName_12215202", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [1221520201, 1221520202, 1221520203], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215203, + "ArchiveID": 8, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M1", + "ArchiveFileName": "QuestName_12215203", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [1221520301, 1221520302, 1221520303], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215204, + "ArchiveID": 8, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M3", + "ArchiveFileName": "QuestName_12215204", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [ + 1221520401, 1221520402, 1221520403, 1221520404, 1221520405 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215205, + "ArchiveID": 8, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M4", + "ArchiveFileName": "QuestName_12215205", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [ + 1221520501, 1221520506, 1221520502, 1221520504, 1221520505 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215301, + "ArchiveID": 9, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M5", + "ArchiveFileName": "QuestName_12215301", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1221530101, 1221530102, 1221530103], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215302, + "ArchiveID": 9, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M5", + "ArchiveFileName": "QuestName_12215302", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [1221530201, 1221530203, 1221530205], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215303, + "ArchiveID": 9, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M6", + "ArchiveFileName": "QuestName_12215303", + "ArchiveFileNum": "3", + "ArchiveFileNiDs": [1221530302, 1221530303, 1221530304], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215304, + "ArchiveID": 9, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M5", + "ArchiveFileName": "QuestName_12215304", + "ArchiveFileNum": "4", + "ArchiveFileNiDs": [1221530402], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12215305, + "ArchiveID": 9, + "IPNAHIKNOBJ": "", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/Chapter2_5/Chapter2_5M7", + "ArchiveFileName": "QuestName_12215305", + "ArchiveFileNum": "5", + "ArchiveFileNiDs": [1221530501, 1221530502, 1221530503], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220301, + "ArchiveID": 10004, + "IPNAHIKNOBJ": "ArchiveFileNum_41", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterGraceM1", + "ArchiveFileName": "QuestName_12220301", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1222030151, 1222030152, 1222030153], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220302, + "ArchiveID": 10004, + "IPNAHIKNOBJ": "ArchiveFileNum_42", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterGraceM1", + "ArchiveFileName": "QuestName_12220302", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [1222030251, 1222030252, 1222030253], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220303, + "ArchiveID": 10004, + "IPNAHIKNOBJ": "ArchiveFileNum_43", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterGraceM1", + "ArchiveFileName": "QuestName_12220303", + "ArchiveFileNum": "2", + "ArchiveFileNiDs": [ + 1222030351, 1222030352, 1222030353, 1222030354, 1222030355 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220401, + "ArchiveID": 10005, + "IPNAHIKNOBJ": "ArchiveFileNum_11", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterKoledaM1", + "ArchiveFileName": "QuestName_12220401", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [ + 1222040101, 1222040102, 1222040103, 1222040104, 1222040105 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220402, + "ArchiveID": 10005, + "IPNAHIKNOBJ": "ArchiveFileNum_12", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterKoledaM1", + "ArchiveFileName": "QuestName_12220402", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [ + 1222040201, 1222040202, 1222040203, 1222040205, 1222040207 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220403, + "ArchiveID": 10005, + "IPNAHIKNOBJ": "ArchiveFileNum_13", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterKoledaM1", + "ArchiveFileName": "QuestName_12220403", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [ + 1222040301, 1222040303, 1222040305, 1222040307, 1222040308, 1222040309 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220501, + "ArchiveID": 10006, + "IPNAHIKNOBJ": "ArchiveFileNum_11", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterLycaonM1", + "ArchiveFileName": "QuestName_12220501", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1222050101, 1222050103, 1222050104], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220502, + "ArchiveID": 10006, + "IPNAHIKNOBJ": "ArchiveFileNum_12", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterLycaonM1", + "ArchiveFileName": "QuestName_12220502", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1222050201, 1222050202, 1222050203, 1222050204], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220503, + "ArchiveID": 10006, + "IPNAHIKNOBJ": "ArchiveFileNum_13", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterLycaonM1", + "ArchiveFileName": "QuestName_12220503", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [ + 1222050302, 1222050303, 1222050305, 1222050306, 1222050307, 1222050308 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220601, + "ArchiveID": 10007, + "IPNAHIKNOBJ": "ArchiveFileNum_11", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterRinaM1", + "ArchiveFileName": "QuestName_12220601", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1222060101, 1222060102, 1222060103, 1222060104], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220602, + "ArchiveID": 10007, + "IPNAHIKNOBJ": "ArchiveFileNum_12", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterRinaM1", + "ArchiveFileName": "QuestName_12220602", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [1222060201, 1222060202, 1222060203], + "AutoDistribution": false, + "EICPGAHLONI": true + }, + { + "ID": 12220603, + "ArchiveID": 10007, + "IPNAHIKNOBJ": "ArchiveFileNum_13", + "DifficultyLv": 0, + "ShowType": 1, + "RecommendedHitTypes": [], + "Video": "MainStory/PageVideo/ChapterPersonal/ChapterRinaM1", + "ArchiveFileName": "QuestName_12220603", + "ArchiveFileNum": "1", + "ArchiveFileNiDs": [ + 1222060301, 1222060302, 1222060303, 1222060304, 1222060306, 1222060307 + ], + "AutoDistribution": false, + "EICPGAHLONI": true + } +] diff --git a/nap_data/src/action/mod.rs b/nap_data/src/action/mod.rs index dae2e81..81451f8 100644 --- a/nap_data/src/action/mod.rs +++ b/nap_data/src/action/mod.rs @@ -38,4 +38,5 @@ macro_rules! actions { actions! { SwitchSection; + OpenUi; } diff --git a/nap_data/src/action/open_ui.rs b/nap_data/src/action/open_ui.rs new file mode 100644 index 0000000..bd6e011 --- /dev/null +++ b/nap_data/src/action/open_ui.rs @@ -0,0 +1,19 @@ +use serde::Deserialize; + +#[derive(Deserialize, Debug)] +pub struct ConfigOpenUi { + pub ui: String, + pub args: i32, + pub store_template_id: i32, +} + +impl ConfigOpenUi { + pub fn to_protocol(&self) -> ::proto::ActionOpenUi { + ::proto::ActionOpenUi { + ui: self.ui.clone(), + args: self.args, + store_template_id: self.store_template_id, + ..Default::default() + } + } +} diff --git a/nap_data/src/tables/archive_battle_quest_template.rs b/nap_data/src/tables/archive_battle_quest_template.rs new file mode 100644 index 0000000..27b70c4 --- /dev/null +++ b/nap_data/src/tables/archive_battle_quest_template.rs @@ -0,0 +1,28 @@ +use serde::Deserialize; + +template_id!(ArchiveBattleQuest u32 id); + +#[derive(Deserialize, Debug)] +#[serde(rename_all = "PascalCase")] +pub struct ArchiveBattleQuestTemplate { + #[serde(rename = "ID")] + pub id: ArchiveBattleQuestID, + pub quest_name: String, + pub quest_desc: String, + pub target: String, + pub quest_type: u32, + pub chapter: u32, + pub difficulty: u32, + pub monster_level: u32, + #[serde(rename = "HollowID")] + pub hollow_id: u32, + #[serde(rename = "FirstBattleEventID")] + pub first_battle_event_id: u32, + #[serde(rename = "BattleEventID")] + pub battle_event_id: u32, + pub battle_rank: String, + pub slot1_avatar: i32, + pub slot2_avatar: i32, + pub slot3_avatar: i32, + pub buddy: i32, +} diff --git a/nap_data/src/tables/archive_file_quest_template.rs b/nap_data/src/tables/archive_file_quest_template.rs new file mode 100644 index 0000000..28842d7 --- /dev/null +++ b/nap_data/src/tables/archive_file_quest_template.rs @@ -0,0 +1,20 @@ +use serde::Deserialize; + +template_id!(ArchiveFileQuest u32 id); + +#[derive(Deserialize, Debug)] +#[serde(rename_all = "PascalCase")] +pub struct ArchiveFileQuestTemplate { + #[serde(rename = "ID")] + pub id: ArchiveFileQuestID, + #[serde(rename = "ArchiveID")] + pub archive_id: u32, + pub difficulty_lv: u32, + pub show_type: u32, + pub recommended_hit_types: Vec, + pub video: String, + pub archive_file_name: String, + pub archive_file_num: String, + pub archive_file_ni_ds: Vec, + pub auto_distribution: bool, +} diff --git a/nap_data/src/tables/mod.rs b/nap_data/src/tables/mod.rs index 9b0a8e5..921eef8 100644 --- a/nap_data/src/tables/mod.rs +++ b/nap_data/src/tables/mod.rs @@ -84,4 +84,6 @@ template_tables! { WeaponTemplate; MainCityObjectTemplate; MainCityDefaultObjectTemplate; + ArchiveFileQuestTemplate; + ArchiveBattleQuestTemplate; } diff --git a/nap_gameserver/src/handlers/client_systems.rs b/nap_gameserver/src/handlers/client_systems.rs index d4cec5f..8a35629 100644 --- a/nap_gameserver/src/handlers/client_systems.rs +++ b/nap_gameserver/src/handlers/client_systems.rs @@ -124,6 +124,22 @@ pub async fn on_player_operation( }) } +pub async fn on_player_system_parameter_change( + _session: &NetSession, + _player: &mut Player, + req: PlayerSystemParameterChangeCsReq, +) -> NetResult { + tracing::info!( + "PlayerSystemParameterChange(type={}, param={})", + req.r#type, + req.params, + ); + + Ok(PlayerSystemParameterChangeScRsp { + retcode: Retcode::RetSucc.into(), + }) +} + pub async fn on_pop_up_window_seen( _session: &NetSession, _player: &mut Player, diff --git a/nap_gameserver/src/handlers/mod.rs b/nap_gameserver/src/handlers/mod.rs index ecc5c1e..e791399 100644 --- a/nap_gameserver/src/handlers/mod.rs +++ b/nap_gameserver/src/handlers/mod.rs @@ -98,6 +98,7 @@ req_handlers! { world::LeaveCurDungeon; world::InteractWithUnit; world::EnterSection; + world::ArchiveQuestsSeen; client_systems::ReportUiLayoutPlatform; client_systems::PlayerOperation; client_systems::UnlockNewbieGroup; @@ -105,6 +106,7 @@ req_handlers! { client_systems::PopUpWindowSeen; client_systems::ReportSystemSettingsChange; client_systems::InteractWithSceneObject; + client_systems::PlayerSystemParameterChange; perform::PerformTrigger; perform::PerformEnd; perform::PerformJump; @@ -115,6 +117,8 @@ req_handlers! { item::WeaponDress; item::WeaponUnDress; event_graph::RunEventGraph; + quest::BeginArchiveBattleQuest; + quest::FinishArchiveQuest; } notify_handlers! { diff --git a/nap_gameserver/src/handlers/perform.rs b/nap_gameserver/src/handlers/perform.rs index 0842d0b..8b8b6eb 100644 --- a/nap_gameserver/src/handlers/perform.rs +++ b/nap_gameserver/src/handlers/perform.rs @@ -1,5 +1,3 @@ -use super::core::NetError; - use crate::logic::{ game::{GameInstance, LogicError}, procedure::ProcedureAction, @@ -12,14 +10,12 @@ pub async fn on_perform_trigger( player: &mut Player, req: PerformTriggerCsReq, ) -> NetResult { - let GameInstance::Fresh(fresh_game) = &mut player.game_instance else { - return Err(NetError::from(Retcode::RetFail)); - }; - - fresh_game - .procedure_mgr - .on_action(ProcedureAction::PerformTrigger) - .map_err(LogicError::from)?; + if let GameInstance::Fresh(fresh_game) = &mut player.game_instance { + fresh_game + .procedure_mgr + .on_action(ProcedureAction::PerformTrigger) + .map_err(LogicError::from)?; + } Ok(PerformTriggerScRsp { retcode: Retcode::RetSucc.into(), @@ -32,14 +28,12 @@ pub async fn on_perform_end( player: &mut Player, _req: PerformEndCsReq, ) -> NetResult { - let GameInstance::Fresh(fresh_game) = &mut player.game_instance else { - return Err(NetError::from(Retcode::RetFail)); - }; - - fresh_game - .procedure_mgr - .on_action(ProcedureAction::PerformEnd) - .map_err(LogicError::from)?; + if let GameInstance::Fresh(fresh_game) = &mut player.game_instance { + fresh_game + .procedure_mgr + .on_action(ProcedureAction::PerformEnd) + .map_err(LogicError::from)?; + } Ok(PerformEndScRsp { retcode: Retcode::RetSucc.into(), diff --git a/nap_gameserver/src/handlers/quest.rs b/nap_gameserver/src/handlers/quest.rs index b48e5ca..b53ecad 100644 --- a/nap_gameserver/src/handlers/quest.rs +++ b/nap_gameserver/src/handlers/quest.rs @@ -1,3 +1,10 @@ +use data::tables::{self, ArchiveBattleQuestID}; + +use crate::logic::{ + game::{GameInstance, HollowGame, LogicError}, + ELocalPlayType, EQuestType, +}; + use super::*; pub async fn on_get_quest_data( @@ -8,7 +15,15 @@ pub async fn on_get_quest_data( Ok(GetQuestDataScRsp { retcode: Retcode::RetSucc.into(), quest_type: req.quest_type, - quest_data: Some(QuestData::default()), + quest_data: Some(QuestData { + quest_collection_list: vec![QuestCollection { + quest_type: EQuestType::ArchiveFile as u32, + quest_id_list: tables::archive_file_quest_template_tb::iter() + .map(|tmpl| tmpl.id.value()) + .collect(), + ..Default::default() + }], + }), }) } @@ -19,7 +34,25 @@ pub async fn on_get_yorozuya_info( ) -> NetResult { Ok(GetYorozuyaInfoScRsp { retcode: Retcode::RetSucc.into(), - yorozuya_info: Some(YorozuyaInfo::default()), + yorozuya_info: Some(YorozuyaInfo { + odohdljfdlf: vec![1001], + apmojjlcooa: vec![1001], + npgjhahijkb: vec![100001, 100101, 100401, 109901], + eoljpdnjgeg: vec![ + Ofhlkjeakif { + nnkcanmllod: 199030, + kkjlnkehddj: Some(Cgpajijemlj::default()), + ..Default::default() + }, + Ofhlkjeakif { + nnkcanmllod: 199035, + ggnbpiofdpp: 110103, + kkjlnkehddj: Some(Cgpajijemlj::default()), + ..Default::default() + }, + ], + ..Default::default() + }), }) } @@ -30,6 +63,49 @@ pub async fn on_get_archive_info( ) -> NetResult { Ok(GetArchiveInfoScRsp { retcode: Retcode::RetSucc.into(), - archive_info: Some(ArchiveInfo::default()), + archive_info: Some(ArchiveInfo { + hollow_archive_id_list: (1..99999).collect(), + videotaps_info: tables::archive_file_quest_template_tb::iter() + .map(|tmpl| VideotapeInfo { + archive_file_id: tmpl.id.value(), + finished: true, + ..Default::default() + }) + .collect(), + ..Default::default() + }), + }) +} + +pub async fn on_begin_archive_battle_quest( + session: &NetSession, + player: &mut Player, + req: BeginArchiveBattleQuestCsReq, +) -> NetResult { + let quest_id = ArchiveBattleQuestID::new(req.quest_id).ok_or(Retcode::RetFail)?; + + player.game_instance = GameInstance::Hollow( + HollowGame::create_archive_battle(quest_id, ELocalPlayType::ArchiveBattle, &req.avatars) + .map_err(LogicError::from)?, + ); + + let world_init_notify = player.game_instance.create_world_init_notify()?; + session.notify(world_init_notify).await?; + + Ok(BeginArchiveBattleQuestScRsp { + retcode: Retcode::RetSucc.into(), + quest_id: req.quest_id, + }) +} + +pub async fn on_finish_archive_quest( + _session: &NetSession, + _player: &mut Player, + req: FinishArchiveQuestCsReq, +) -> NetResult { + Ok(FinishArchiveQuestScRsp { + retcode: Retcode::RetSucc.into(), + quest_id: req.quest_id, + ..Default::default() }) } diff --git a/nap_gameserver/src/handlers/world.rs b/nap_gameserver/src/handlers/world.rs index 12707c0..57c5ef8 100644 --- a/nap_gameserver/src/handlers/world.rs +++ b/nap_gameserver/src/handlers/world.rs @@ -169,7 +169,7 @@ pub async fn on_start_trial_fighting_mission( let quest_id = TrainingQuestID::new(req.quest_id).ok_or(Retcode::RetFail)?; player.game_instance = GameInstance::Hollow( - HollowGame::create_training_game(quest_id, ELocalPlayType::TrainingRoomFight) + HollowGame::create_training_game(quest_id, ELocalPlayType::TrainingRoomFight, &req.avatars) .map_err(LogicError::from)?, ); @@ -258,3 +258,14 @@ pub async fn on_enter_section( retcode: Retcode::RetSucc.into(), }) } + +pub async fn on_archive_quests_seen( + _session: &NetSession, + _player: &mut Player, + _req: ArchiveQuestsSeenCsReq, +) -> NetResult { + Ok(ArchiveQuestsSeenScRsp { + retcode: Retcode::RetSucc.into(), + ..Default::default() + }) +} diff --git a/nap_gameserver/src/logic/battle/avatar.rs b/nap_gameserver/src/logic/battle/avatar.rs new file mode 100644 index 0000000..c7206a9 --- /dev/null +++ b/nap_gameserver/src/logic/battle/avatar.rs @@ -0,0 +1,23 @@ +use std::collections::HashMap; + +use crate::logic::BaseProperty; +use proto::InLevelAvatarData; + +pub struct InLevelAvatarDataItem { + pub avatar_id: u32, + pub mp_property_override: HashMap, +} + +impl InLevelAvatarDataItem { + pub fn to_client(&self) -> InLevelAvatarData { + InLevelAvatarData { + avatar_id: self.avatar_id, + mp_property_override_map: self + .mp_property_override + .iter() + .map(|(prop, value)| (*prop as u32, *value)) + .collect(), + ..Default::default() + } + } +} diff --git a/nap_gameserver/src/logic/battle/mod.rs b/nap_gameserver/src/logic/battle/mod.rs new file mode 100644 index 0000000..8168d89 --- /dev/null +++ b/nap_gameserver/src/logic/battle/mod.rs @@ -0,0 +1,4 @@ +mod avatar; +pub use avatar::InLevelAvatarDataItem; +mod team; +pub use team::TeamDataItem; diff --git a/nap_gameserver/src/logic/battle/team.rs b/nap_gameserver/src/logic/battle/team.rs new file mode 100644 index 0000000..5241feb --- /dev/null +++ b/nap_gameserver/src/logic/battle/team.rs @@ -0,0 +1,21 @@ +use std::collections::HashMap; + +use super::InLevelAvatarDataItem; + +pub struct TeamDataItem { + pub avatar_member_list: Vec, +} + +impl TeamDataItem { + pub fn new(avatars: &[u32]) -> Self { + Self { + avatar_member_list: avatars + .iter() + .map(|id| InLevelAvatarDataItem { + avatar_id: *id, + mp_property_override: HashMap::new(), + }) + .collect(), + } + } +} diff --git a/nap_gameserver/src/logic/enums.rs b/nap_gameserver/src/logic/enums.rs index 13bc10f..c762a4c 100644 --- a/nap_gameserver/src/logic/enums.rs +++ b/nap_gameserver/src/logic/enums.rs @@ -14,6 +14,20 @@ pub enum ESceneType { MultiFight = 5, } +#[allow(dead_code)] +#[derive(Debug, PartialEq, Eq, Clone, Copy)] +#[repr(u32)] +pub enum EQuestType { + ArchiveFile = 1, + DungeonInner = 2, + Hollow = 3, + Manual = 4, + MainCity = 5, + HollowChallenge = 6, + ArchiveBattle = 7, + Knowledge = 8, +} + #[derive(Debug, Default, PartialEq, Eq, Clone, Copy, FromPrimitive)] #[repr(u32)] pub enum ESystem { @@ -159,3 +173,89 @@ pub enum ELocalPlayType { #[default] Unknown = 0, } + +#[allow(dead_code)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +#[repr(u32)] +pub enum BaseProperty { + CurHP = 0, + MaxHpFinal = 36, + AddedDamageRatioFire = 52, + AddedDamageRatioElecBattle = 583, + FeverGetRatio = 45, + AtkBattle = 560, + MaxArmor = 18, + ElementMysteryBattle = 577, + DamageTakeRatio = 42, + Defence = 3, + CritRes = 23, + MaxShield = 20, + CritDmgBattle = 565, + DamageTakeRatioBattle = 573, + BreakStunBattle = 561, + AddedElementAccumulationRatio = 48, + CurSP = 7, + DefBattle = 562, + CritResBattle = 564, + CritDmg = 6, + ElementMystery = 46, + AddedDamageRatioEtherBattle = 584, + EnduranceBattle = 569, + CritBattle = 563, + CurBuddyBattery = 56, + MaxHP = 1, + CurBreakPoint = 27, + Unknown = 4294967295, + SPRecover = 31, + PenRatio = 21, + ResistBreakLevel = 35, + CritDmgRes = 24, + AddedDamageRatioPhysics = 51, + AddedDamageRatioFireBattle = 581, + AddedDamageRatioBattle = 572, + PenDelta = 22, + AutoRecoverStunRate = 37, + AddedDamageRatioIce = 53, + SpGetRatio = 44, + MaxBuddyBattery = 57, + AddedDamageRatioEther = 55, + HpHealRatioBattle = 571, + AddedDamageRatioIceBattle = 582, + Level = 49, + ElementAbnormalPower = 50, + StunMaxBase = 551, + Attack = 2, + MaxSP = 8, + CurMaxHpHealPercent = 32, + MaxStunRuntime = 33, + AllDamageResistBattle = 574, + AddedDamageRatio = 41, + AddedElementAccumulationRatioBattle = 578, + Custom = 10, + Crit = 4, + SpGetRatioBattle = 575, + ResistBreakPoint = 28, + AddedDamageRatioElec = 54, + MaxStun = 12, + HpMaxBase = 550, + CurStun = 11, + CurrentArmor = 17, + HpRecoverRate = 47, + ElementAbnormalPowerBattle = 579, + FeverGetRatioBattle = 576, + CritDmgResBattle = 566, + SpRecoverBattle = 570, + CurEndurance = 25, + PenDeltaBattle = 568, + AccumulationValue = 58, + MaxEndurance = 26, + DestroyRecoverStunRate = 38, + HpHealRatio = 40, + SpMaxBase = 552, + PenRatioBattle = 567, + AddedDamageRatioPhysicsBattle = 580, + BreakStun = 13, + CurrentShield = 19, + Luck = 5, + AllDamageResist = 43, +} diff --git a/nap_gameserver/src/logic/game/hollow.rs b/nap_gameserver/src/logic/game/hollow.rs index e9de395..403f4a6 100644 --- a/nap_gameserver/src/logic/game/hollow.rs +++ b/nap_gameserver/src/logic/game/hollow.rs @@ -1,9 +1,12 @@ use common::util; -use data::tables::TrainingQuestID; +use data::tables::{ArchiveBattleQuestID, TrainingQuestID}; use proto::{DungeonInfo, DungeonItemData, FightSceneInfo, SceneInfo, WeatherPoolInfo}; use thiserror::Error; -use crate::logic::{ELocalPlayType, ESceneType, TimePeriodType, WeatherType}; +use crate::logic::{ + battle::{InLevelAvatarDataItem, TeamDataItem}, + ELocalPlayType, ESceneType, TimePeriodType, WeatherType, +}; use super::NapGameMode; @@ -17,12 +20,14 @@ pub struct HollowGame { pub weather: WeatherType, pub play_type: ELocalPlayType, pub start_timestamp: i64, + pub team_data: TeamDataItem, } impl HollowGame { pub fn create_training_game( training_quest_id: TrainingQuestID, play_type: ELocalPlayType, + avatars: &[u32], ) -> Result { let template = training_quest_id.template(); @@ -33,6 +38,25 @@ impl HollowGame { weather: WeatherType::SunShine, start_timestamp: util::cur_timestamp() as i64, play_type, + team_data: TeamDataItem::new(avatars), + }) + } + + pub fn create_archive_battle( + archive_battle_quest_id: ArchiveBattleQuestID, + play_type: ELocalPlayType, + avatars: &[u32], + ) -> Result { + let template = archive_battle_quest_id.template(); + + Ok(Self { + quest_id: template.id.value(), + battle_event_id: template.battle_event_id, + time_period: TimePeriodType::Morning, + weather: WeatherType::SunShine, + start_timestamp: util::cur_timestamp() as i64, + play_type, + team_data: TeamDataItem::new(avatars), }) } } @@ -64,6 +88,12 @@ impl NapGameMode for HollowGame { quest_id: self.quest_id, start_timestamp: self.start_timestamp, dungeon_item_data: Some(DungeonItemData::default()), + avatar_list: self + .team_data + .avatar_member_list + .iter() + .map(InLevelAvatarDataItem::to_client) + .collect(), ..Default::default() }) } diff --git a/nap_gameserver/src/logic/mod.rs b/nap_gameserver/src/logic/mod.rs index 896e019..fdb810e 100644 --- a/nap_gameserver/src/logic/mod.rs +++ b/nap_gameserver/src/logic/mod.rs @@ -1,3 +1,4 @@ +pub mod battle; mod enums; pub mod game; pub mod item; diff --git a/nap_proto/out/_.rs b/nap_proto/out/_.rs index ddd8554..c9ddf27 100644 --- a/nap_proto/out/_.rs +++ b/nap_proto/out/_.rs @@ -2406,7 +2406,7 @@ pub struct Khhjipglbll { pub bcbcjioepod: u32, #[xor(2704)] #[prost(uint32, tag = "1")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[prost(uint32, repeated, tag = "11")] pub avatars: ::prost::alloc::vec::Vec, #[xor(9370)] @@ -2760,7 +2760,7 @@ pub struct Iedkhplmbab { pub struct StartTrialFightingMissionCsReq { #[xor(15246)] #[prost(uint32, tag = "1")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[xor(3842)] #[prost(uint32, tag = "11")] pub quest_id: u32, @@ -2797,14 +2797,14 @@ pub struct Eoaebmjlfjc { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Kkhghlppoig { +pub struct EquippedBuddyData { #[xor(8856)] #[prost(uint32, tag = "9")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[prost(enumeration = "Hneekphmejf", tag = "6")] pub r#type: i32, #[prost(map = "uint32, int32", tag = "10")] - pub alekplcmphb: ::std::collections::HashMap, + pub mp_property_override_map: ::std::collections::HashMap, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -3406,7 +3406,7 @@ pub struct Neokggopbin { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Mgbedipfojl { +pub struct FinishArchiveQuestCsReq { #[xor(3231)] #[prost(uint32, tag = "9")] pub jgeikifpcgd: u32, @@ -4014,7 +4014,7 @@ pub struct Kggckaadkjm { #[prost(uint32, tag = "1")] pub mdnhahnfmfl: u32, #[prost(bool, tag = "3")] - pub nkjbgnkkpng: bool, + pub finished: bool, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -5741,7 +5741,7 @@ pub struct Bkdlnnmapab { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Enmeegdlemb { #[prost(string, tag = "1")] - pub ihbneikffdi: ::prost::alloc::string::String, + pub ui: ::prost::alloc::string::String, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -5916,7 +5916,7 @@ pub struct Lpjpfoaehlg { pub lbmgeignmef: u32, #[xor(2510)] #[prost(uint32, tag = "8")] - pub fgfnllpgggj: u32, + pub buddy: u32, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -6541,7 +6541,7 @@ pub struct FightSceneInfo { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Mbanldjmddn { #[prost(bool, tag = "15")] - pub nkjbgnkkpng: bool, + pub finished: bool, } #[derive(proto_gen::CmdID)] #[cmdid(361)] @@ -7338,7 +7338,7 @@ pub struct Afocbghbdof { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Cohnoafnclg { +pub struct BeginArchiveBattleQuestScRsp { #[xor(4259)] #[prost(uint32, tag = "15")] pub quest_id: u32, @@ -8687,7 +8687,7 @@ pub struct Hffgnonoabe { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Mcmgogphgkg { +pub struct BeginArchiveBattleQuestCsReq { #[prost(uint32, repeated, tag = "4")] pub avatars: ::prost::alloc::vec::Vec, #[xor(12182)] @@ -8695,9 +8695,9 @@ pub struct Mcmgogphgkg { pub quest_id: u32, #[xor(1830)] #[prost(uint32, tag = "11")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[prost(bool, tag = "1")] - pub aepdmkdbagc: bool, + pub is_story: bool, #[prost(uint32, repeated, tag = "2")] pub olcifcglpdd: ::prost::alloc::vec::Vec, #[xor(421)] @@ -9176,7 +9176,7 @@ pub struct Bijjamapnjm { pub struct Bffgkjikbhp { #[xor(3555)] #[prost(uint32, tag = "14")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[xor(10954)] #[prost(uint32, tag = "1")] pub lbmgeignmef: u32, @@ -9395,7 +9395,7 @@ pub struct Kmkbpddeaoe { pub struct Bhmhgadoncc { #[xor(5509)] #[prost(uint32, tag = "14")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[xor(10314)] #[prost(int32, tag = "12")] pub nledmfjbmmo: i32, @@ -9614,7 +9614,7 @@ pub struct Gfpehbhpgfb { #[prost(uint32, repeated, tag = "1")] pub hfjhobiicil: ::prost::alloc::vec::Vec, #[prost(bool, tag = "13")] - pub aepdmkdbagc: bool, + pub is_story: bool, #[prost(message, optional, tag = "5")] pub bojcpfdbolc: ::core::option::Option, #[xor(11432)] @@ -10824,7 +10824,7 @@ pub struct Gccdaofpapp { pub struct Ihilkekkdmh { #[xor(10553)] #[prost(uint32, tag = "13")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[xor(13840)] #[prost(int32, tag = "1")] pub retcode: i32, @@ -12181,15 +12181,15 @@ pub struct Dpnalcomaii { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Boempcpfihm { +pub struct ActionOpenUi { #[prost(string, tag = "1")] - pub ihbneikffdi: ::prost::alloc::string::String, + pub ui: ::prost::alloc::string::String, #[prost(int32, tag = "2")] - pub dhglgonmiao: i32, + pub args: i32, #[prost(string, tag = "3")] pub hacnhcflago: ::prost::alloc::string::String, #[prost(int32, tag = "4")] - pub boanjgbnpff: i32, + pub store_template_id: i32, #[prost(int32, tag = "5")] pub npc_id: i32, } @@ -12833,7 +12833,7 @@ pub struct Okkjjhonnik { pub ajichmhgblg: u32, #[xor(1870)] #[prost(uint32, tag = "7")] - pub fgfnllpgggj: u32, + pub buddy: u32, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -14101,9 +14101,9 @@ pub struct Ignclnpdace { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Mopakjdnaeh { #[prost(string, tag = "1")] - pub ihbneikffdi: ::prost::alloc::string::String, + pub ui: ::prost::alloc::string::String, #[prost(int32, tag = "2")] - pub dhglgonmiao: i32, + pub args: i32, #[prost(bool, tag = "3")] pub epaolkkakhi: bool, } @@ -16216,7 +16216,7 @@ pub struct Feanepokfam { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Onlmpmgcdle { #[prost(message, repeated, tag = "13")] - pub lmailahlomk: ::prost::alloc::vec::Vec, + pub lmailahlomk: ::prost::alloc::vec::Vec, } #[derive(proto_gen::CmdID)] #[cmdid(5211)] @@ -16365,7 +16365,7 @@ pub struct QuestCollection { #[prost(message, optional, tag = "7")] pub dlenflnoonh: ::core::option::Option, #[prost(uint32, repeated, tag = "4")] - pub gcofmlljpja: ::prost::alloc::vec::Vec, + pub quest_id_list: ::prost::alloc::vec::Vec, #[prost(message, optional, tag = "1")] pub kolondhkmjk: ::core::option::Option, } @@ -17122,7 +17122,7 @@ pub struct Jkmjmnfkelj { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Jjclogiljmd { #[prost(string, tag = "1")] - pub ihbneikffdi: ::prost::alloc::string::String, + pub ui: ::prost::alloc::string::String, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -17266,7 +17266,7 @@ pub struct Ilehibpgief { pub struct Fjppbkgebcl { #[xor(7354)] #[prost(uint32, tag = "8")] - pub fgfnllpgggj: u32, + pub buddy: u32, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -17776,7 +17776,7 @@ pub struct Ccmffanlhla { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Dffaeiahhog { +pub struct PlayerSystemParameterChangeScRsp { #[xor(14083)] #[prost(int32, tag = "8")] pub retcode: i32, @@ -19751,13 +19751,13 @@ pub struct Bobbdnnaego { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Ndljgkedcnp { #[prost(string, tag = "1")] - pub ihbneikffdi: ::prost::alloc::string::String, + pub ui: ::prost::alloc::string::String, #[prost(int32, tag = "2")] - pub dhglgonmiao: i32, + pub args: i32, #[prost(string, tag = "3")] pub hacnhcflago: ::prost::alloc::string::String, #[prost(int32, tag = "4")] - pub boanjgbnpff: i32, + pub store_template_id: i32, #[prost(int32, tag = "5")] pub npc_id: i32, } @@ -20383,7 +20383,7 @@ pub struct Knfggjeaoce { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Ncognndobmn { +pub struct PlayerSystemParameterChangeCsReq { #[prost(message, optional, tag = "15")] pub jplnecfjldo: ::core::option::Option, #[prost(message, optional, tag = "9")] @@ -20840,7 +20840,7 @@ pub struct Ghgbhljlmde { pub bikhplpcalp: ::std::collections::HashMap, #[xor(4986)] #[prost(uint32, tag = "6")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[xor(1495)] #[prost(uint32, tag = "5")] pub ihgcjhffkdf: u32, @@ -20969,7 +20969,7 @@ pub struct Acobofkfjgj { pub struct Oidkngmaipi { #[xor(8441)] #[prost(uint32, tag = "14")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[prost(enumeration = "Hneekphmejf", tag = "7")] pub ddogpdoomde: i32, } @@ -21192,7 +21192,7 @@ pub struct Labghjgfhhh { pub lbmgeignmef: u32, #[xor(13505)] #[prost(uint32, tag = "4")] - pub fgfnllpgggj: u32, + pub buddy: u32, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -21227,7 +21227,7 @@ pub struct Gmgoddaldob { #[prost(uint32, tag = "1")] pub pmnjlmekmbc: u32, #[prost(uint32, tag = "2")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[prost(bool, tag = "3")] pub majldghlkab: bool, #[prost(bytes = "vec", tag = "4")] @@ -21511,9 +21511,9 @@ pub struct Mbhjjoafcmc { #[prost(uint32, repeated, tag = "6")] pub hlkfieldkif: ::prost::alloc::vec::Vec, #[prost(message, repeated, tag = "1")] - pub phdpcbhbkcp: ::prost::alloc::vec::Vec, + pub phdpcbhbkcp: ::prost::alloc::vec::Vec, #[prost(uint32, repeated, tag = "10")] - pub onfjkhpdlfh: ::prost::alloc::vec::Vec, + pub hollow_archive_id_list: ::prost::alloc::vec::Vec, #[prost(uint32, repeated, tag = "13")] pub nmnbkjicjlb: ::prost::alloc::vec::Vec, #[xor(7038)] @@ -21885,7 +21885,7 @@ pub struct Hfmncckhjlb { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Eaccimcclnk { +pub struct ArchiveQuestsSeenCsReq { #[prost(bool, tag = "8")] pub ehmopjccohg: bool, #[prost(bool, tag = "7")] @@ -22137,7 +22137,7 @@ pub struct Kakpeoaekgb { pub struct Mbchikbhcmp { #[xor(8473)] #[prost(uint32, tag = "10")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[prost(bool, tag = "6")] pub aobemkmdkgo: bool, #[prost(message, repeated, tag = "14")] @@ -22404,7 +22404,7 @@ pub struct Aecgodfnpao { pub lbmgeignmef: u32, #[xor(7503)] #[prost(uint32, tag = "12")] - pub fgfnllpgggj: u32, + pub buddy: u32, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -22612,7 +22612,7 @@ pub struct Ghojoimpnad { pub ndcnfidonje: u32, #[xor(8060)] #[prost(uint32, tag = "2")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[xor(15324)] #[prost(uint32, tag = "1")] pub lbmgeignmef: u32, @@ -23095,7 +23095,7 @@ pub struct Jjmnjckodgk { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Fopnijbcimm { #[prost(map = "uint32, message", tag = "1")] - pub foicfpfnlcf: ::std::collections::HashMap, + pub foicfpfnlcf: ::std::collections::HashMap, #[prost(uint32, repeated, tag = "6")] pub ajnocghpbmj: ::prost::alloc::vec::Vec, #[prost(bool, tag = "12")] @@ -23364,7 +23364,7 @@ pub struct Nnibknhmkde { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Chkdmaeaocp { +pub struct ArchiveBattleRecord { #[xor(7803)] #[prost(uint32, tag = "4")] pub star: u32, @@ -23372,9 +23372,9 @@ pub struct Chkdmaeaocp { pub mmphbfghfgm: bool, #[xor(4540)] #[prost(uint32, tag = "14")] - pub dgekhcijgbg: u32, + pub archive_battle_id: u32, #[prost(bool, tag = "7")] - pub nkjbgnkkpng: bool, + pub finished: bool, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -23680,9 +23680,9 @@ pub struct ArchiveInfo { #[prost(uint32, repeated, tag = "11")] pub hlkfieldkif: ::prost::alloc::vec::Vec, #[prost(message, repeated, tag = "6")] - pub feogoaegcbi: ::prost::alloc::vec::Vec, + pub videotaps_info: ::prost::alloc::vec::Vec, #[prost(uint32, repeated, tag = "13")] - pub onfjkhpdlfh: ::prost::alloc::vec::Vec, + pub hollow_archive_id_list: ::prost::alloc::vec::Vec, } #[derive(proto_gen::CmdID)] #[derive(proto_gen::XorFields)] @@ -24257,7 +24257,7 @@ pub struct Enaagloodio { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Ecjcmfjjgdp { #[prost(int32, tag = "1")] - pub fgfnllpgggj: i32, + pub buddy: i32, #[prost(int32, repeated, tag = "2")] pub jpncidefiba: ::prost::alloc::vec::Vec, #[prost(message, optional, tag = "3")] @@ -25751,13 +25751,13 @@ pub struct DungeonInfo { #[prost(message, optional, tag = "3")] pub ncfafdpojjh: ::core::option::Option, #[prost(message, optional, tag = "8")] - pub kplhefeipee: ::core::option::Option, + pub kplhefeipee: ::core::option::Option, #[prost(bool, tag = "1724")] pub gjhgpapkmod: bool, #[prost(bool, tag = "1109")] pub jgkfjmdinmo: bool, #[prost(message, repeated, tag = "13")] - pub avatar_list: ::prost::alloc::vec::Vec, + pub avatar_list: ::prost::alloc::vec::Vec, #[prost(message, optional, tag = "522")] pub chnhoilfkhf: ::core::option::Option, #[prost(message, optional, tag = "1725")] @@ -25769,7 +25769,7 @@ pub struct DungeonInfo { #[prost(map = "uint32, int32", tag = "7")] pub njfikojmpcm: ::std::collections::HashMap, #[prost(message, repeated, tag = "1395")] - pub lmailahlomk: ::prost::alloc::vec::Vec, + pub lmailahlomk: ::prost::alloc::vec::Vec, #[prost(message, optional, tag = "2")] pub dungeon_item_data: ::core::option::Option, #[prost(message, optional, tag = "5")] @@ -26194,7 +26194,7 @@ pub struct Aliigncbcfb {} #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Dbnojaajdon { +pub struct ArchiveQuestsSeenScRsp { #[xor(11593)] #[prost(int32, tag = "9")] pub retcode: i32, @@ -26340,7 +26340,7 @@ pub struct Occfagjmjhn { #[prost(int32, tag = "4")] pub retcode: i32, #[prost(bool, tag = "10")] - pub nkjbgnkkpng: bool, + pub finished: bool, } #[derive(proto_gen::CmdID)] #[cmdid(5102)] @@ -27252,7 +27252,7 @@ pub struct Aicalelcmii { pub kplhkiofbah: bool, #[xor(3343)] #[prost(uint32, tag = "7")] - pub fgfnllpgggj: u32, + pub buddy: u32, } #[derive(proto_gen::CmdID)] #[cmdid(4100)] @@ -27673,11 +27673,11 @@ pub struct Dehlcmioiab { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Nkceooipggh { +pub struct InLevelAvatarData { #[prost(uint32, repeated, tag = "8")] pub fnaikfegocl: ::prost::alloc::vec::Vec, #[prost(map = "uint32, int32", tag = "14")] - pub alekplcmphb: ::std::collections::HashMap, + pub mp_property_override_map: ::std::collections::HashMap, #[prost(bool, tag = "1")] pub mbpdoanjkll: bool, #[xor(643)] @@ -28507,9 +28507,9 @@ pub struct Fboeclefepn { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Chjlipfffoi { #[prost(string, tag = "1")] - pub ihbneikffdi: ::prost::alloc::string::String, + pub ui: ::prost::alloc::string::String, #[prost(int32, tag = "2")] - pub dhglgonmiao: i32, + pub args: i32, #[prost(bool, tag = "3")] pub epaolkkakhi: bool, } @@ -28678,7 +28678,7 @@ pub struct Bkkmkacnhne {} #[derive(Clone, PartialEq, ::prost::Message)] pub struct Dpijpabbknc { #[prost(message, optional, tag = "1")] - pub fgfnllpgggj: ::core::option::Option, + pub buddy: ::core::option::Option, #[prost(enumeration = "Afnpekehlge", tag = "2")] pub ddogpdoomde: i32, } @@ -29127,16 +29127,16 @@ pub struct Jpmennlmodg { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Pbpbmholoae { +pub struct VideotapeInfo { #[prost(uint32, repeated, tag = "15")] pub ekodopfdjlg: ::prost::alloc::vec::Vec, #[prost(bool, tag = "10")] - pub nkjbgnkkpng: bool, + pub finished: bool, #[prost(message, repeated, tag = "9")] - pub innfphigkka: ::prost::alloc::vec::Vec, + pub archive_battle_record_list: ::prost::alloc::vec::Vec, #[xor(16282)] #[prost(uint32, tag = "6")] - pub gafdanggnna: u32, + pub archive_file_id: u32, #[prost(bool, tag = "2")] pub npnlfgmlmin: bool, } @@ -29634,7 +29634,7 @@ pub struct Jlgmobeofhe { pub jipabmjagbi: u32, #[xor(12923)] #[prost(uint32, tag = "4")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[xor(11558)] #[prost(uint32, tag = "14")] pub pmnjlmekmbc: u32, @@ -30566,7 +30566,7 @@ pub struct Jcfdccfejcg { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Jaokcopjeip { #[prost(int32, tag = "1")] - pub fgfnllpgggj: i32, + pub buddy: i32, #[prost(int64, tag = "2")] pub cjehpadgajn: i64, #[prost(int32, tag = "3")] @@ -32098,7 +32098,7 @@ pub struct Ecpbnceekbi { #[prost(message, optional, tag = "11")] pub ahbfgomcdjm: ::core::option::Option, #[prost(uint32, repeated, tag = "12")] - pub gcofmlljpja: ::prost::alloc::vec::Vec, + pub quest_id_list: ::prost::alloc::vec::Vec, #[prost(uint32, repeated, tag = "13")] pub ficgeelfmck: ::prost::alloc::vec::Vec, #[prost(message, optional, tag = "14")] @@ -32158,7 +32158,7 @@ pub struct Hphfnebchnb { pub struct Hoeafbihgpd { #[xor(1739)] #[prost(uint32, tag = "3")] - pub fgfnllpgggj: u32, + pub buddy: u32, } #[derive(proto_gen::CmdID)] #[cmdid(3238)] @@ -33219,13 +33219,13 @@ pub struct Hhgehefgpcj { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Gkegfnbpiok { #[prost(map = "uint32, int32", tag = "6")] - pub alekplcmphb: ::std::collections::HashMap, + pub mp_property_override_map: ::std::collections::HashMap, #[xor(4076)] #[prost(uint32, tag = "2")] pub star: u32, #[xor(15011)] #[prost(uint32, tag = "3")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[xor(810)] #[prost(uint32, tag = "5")] pub exp: u32, @@ -33399,7 +33399,7 @@ pub struct Jcincgmdflc { pub olcifcglpdd: ::prost::alloc::vec::Vec, #[xor(3275)] #[prost(uint32, tag = "11")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[xor(10845)] #[prost(uint32, tag = "13")] pub quest_id: u32, @@ -33523,7 +33523,7 @@ pub struct Lolghlmjgko { #[prost(message, repeated, tag = "1")] pub pjbbjhfmmih: ::prost::alloc::vec::Vec, #[prost(map = "uint32, int32", tag = "9")] - pub alekplcmphb: ::std::collections::HashMap, + pub mp_property_override_map: ::std::collections::HashMap, #[xor(4487)] #[prost(uint32, tag = "2")] pub template_id: u32, @@ -33683,7 +33683,7 @@ pub struct Kjknmlmfnka { #[derive(proto_gen::XorFields)] #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct Pcopkafjdjh { +pub struct FinishArchiveQuestScRsp { #[xor(408)] #[prost(int32, tag = "3")] pub retcode: i32, @@ -33777,14 +33777,14 @@ pub struct Jhinopamaoa { pub avatars: ::prost::alloc::vec::Vec, #[xor(6842)] #[prost(uint32, tag = "14")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[prost(uint32, repeated, tag = "3")] pub obpdhglkbgk: ::prost::alloc::vec::Vec, #[xor(8158)] #[prost(uint32, tag = "12")] pub fafoahnaohk: u32, #[prost(bool, tag = "9")] - pub aepdmkdbagc: bool, + pub is_story: bool, #[prost(string, tag = "15")] pub aljacgiaang: ::prost::alloc::string::String, #[xor(15965)] @@ -34487,10 +34487,10 @@ pub struct Jiflifhgkhk { #[prost(uint32, tag = "7")] pub quest_id: u32, #[prost(bool, tag = "13")] - pub aepdmkdbagc: bool, + pub is_story: bool, #[xor(7590)] #[prost(uint32, tag = "5")] - pub fgfnllpgggj: u32, + pub buddy: u32, #[prost(bool, tag = "14")] pub jcflmpbcojd: bool, } @@ -34811,7 +34811,7 @@ pub struct Odpikgleomb { #[prost(enumeration = "HollowEntityType", tag = "2")] pub llafhjgdfjn: i32, #[prost(bool, tag = "3")] - pub nkjbgnkkpng: bool, + pub finished: bool, #[prost(bool, tag = "4")] pub ajlemkdmjaj: bool, } @@ -41921,7 +41921,7 @@ pub enum ActionType { ModifyAimRectComponent = 2199, RemoveFromPool = 2200, ActivateSegmentInteract = 2201, - RecordUseInitiativeItem = 2202, + RecordUseBuddy = 2202, ModifyMultiHollowOutFloor = 2203, SetMultiHollowOutView = 2204, NextDropClueEvent = 2207, @@ -42322,7 +42322,7 @@ impl ActionType { ActionType::ModifyAimRectComponent => "MODIFY_AIM_RECT_COMPONENT", ActionType::RemoveFromPool => "REMOVE_FROM_POOL", ActionType::ActivateSegmentInteract => "ACTIVATE_SEGMENT_INTERACT", - ActionType::RecordUseInitiativeItem => "RECORD_USE_INITIATIVE_ITEM", + ActionType::RecordUseBuddy => "RECORD_USE_buddy", ActionType::ModifyMultiHollowOutFloor => "MODIFY_MULTI_HOLLOW_OUT_FLOOR", ActionType::SetMultiHollowOutView => "SET_MULTI_HOLLOW_OUT_VIEW", ActionType::NextDropClueEvent => "NEXT_DROP_CLUE_EVENT", @@ -42720,7 +42720,7 @@ impl ActionType { "MODIFY_AIM_RECT_COMPONENT" => Some(Self::ModifyAimRectComponent), "REMOVE_FROM_POOL" => Some(Self::RemoveFromPool), "ACTIVATE_SEGMENT_INTERACT" => Some(Self::ActivateSegmentInteract), - "RECORD_USE_INITIATIVE_ITEM" => Some(Self::RecordUseInitiativeItem), + "RECORD_USE_buddy" => Some(Self::RecordUseBuddy), "MODIFY_MULTI_HOLLOW_OUT_FLOOR" => Some(Self::ModifyMultiHollowOutFloor), "SET_MULTI_HOLLOW_OUT_VIEW" => Some(Self::SetMultiHollowOutView), "NEXT_DROP_CLUE_EVENT" => Some(Self::NextDropClueEvent),