From 8be42d2ffb3f5e169b6f5035dbc9b4753d3f2df7 Mon Sep 17 00:00:00 2001 From: xeon Date: Sat, 20 Jan 2024 15:42:08 +0300 Subject: [PATCH] Implement MazeMapInfo and EnterMaze (map and teleport), better excel classes --- RPG.GameCore/Enums/AttackDamageType.cs | 13 + RPG.GameCore/Enums/AvatarBaseType.cs | 12 + RPG.GameCore/Enums/MainMissionType.cs | 9 + RPG.GameCore/Enums/MapEntryType.cs | 8 + RPG.GameCore/Enums/RequirementType.cs | 11 + RPG.GameCore/Excel/AvatarExcelRow.cs | 49 - RPG.GameCore/Excel/AvatarRow.cs | 53 + RPG.GameCore/Excel/ExcelTables.cs | 2 +- RPG.GameCore/Excel/ExcelType.cs | 3 +- RPG.GameCore/Excel/MainMissionRow.cs | 50 +- RPG.GameCore/Excel/MapEntryRow.cs | 34 + RPG.GameCore/RPG.GameCore.csproj | 3 + RPG.GameCore/Types/FixPoint.cs | 5 + RPG.GameCore/Types/GCINNHHNFMP.cs | 8 + RPG.GameCore/Types/TextID.cs | 8 + .../data/excel/MapEntryExcelTable.json | 1601 +++++++++++++++++ RPG.Network.Proto/Retcode.cs | 186 ++ RPG.Network.Proto/messages.proto | 2 +- .../Modules/AdventureModule.cs | 67 +- .../Modules/AvatarModule.cs | 2 +- 20 files changed, 2048 insertions(+), 78 deletions(-) create mode 100644 RPG.GameCore/Enums/AttackDamageType.cs create mode 100644 RPG.GameCore/Enums/AvatarBaseType.cs create mode 100644 RPG.GameCore/Enums/MainMissionType.cs create mode 100644 RPG.GameCore/Enums/MapEntryType.cs create mode 100644 RPG.GameCore/Enums/RequirementType.cs delete mode 100644 RPG.GameCore/Excel/AvatarExcelRow.cs create mode 100644 RPG.GameCore/Excel/AvatarRow.cs create mode 100644 RPG.GameCore/Excel/MapEntryRow.cs create mode 100644 RPG.GameCore/Types/FixPoint.cs create mode 100644 RPG.GameCore/Types/GCINNHHNFMP.cs create mode 100644 RPG.GameCore/Types/TextID.cs create mode 100644 RPG.GameCore/data/excel/MapEntryExcelTable.json create mode 100644 RPG.Network.Proto/Retcode.cs diff --git a/RPG.GameCore/Enums/AttackDamageType.cs b/RPG.GameCore/Enums/AttackDamageType.cs new file mode 100644 index 0000000..61ac67c --- /dev/null +++ b/RPG.GameCore/Enums/AttackDamageType.cs @@ -0,0 +1,13 @@ +namespace RPG.GameCore.Enums; +public enum AttackDamageType +{ + Unknow = 0, + Physical = 1, + Fire = 2, + Ice = 3, + Thunder = 4, + Wind = 5, + Quantum = 6, + Imaginary = 7, + Heal = 8, +} diff --git a/RPG.GameCore/Enums/AvatarBaseType.cs b/RPG.GameCore/Enums/AvatarBaseType.cs new file mode 100644 index 0000000..c00a804 --- /dev/null +++ b/RPG.GameCore/Enums/AvatarBaseType.cs @@ -0,0 +1,12 @@ +namespace RPG.GameCore.Enums; +public enum AvatarBaseType +{ + Unknown = 0, + Warrior = 1, + Rogue = 2, + Mage = 3, + Shaman = 4, + Warlock = 5, + Knight = 6, + Priest = 7, +} diff --git a/RPG.GameCore/Enums/MainMissionType.cs b/RPG.GameCore/Enums/MainMissionType.cs new file mode 100644 index 0000000..357d7a4 --- /dev/null +++ b/RPG.GameCore/Enums/MainMissionType.cs @@ -0,0 +1,9 @@ +namespace RPG.GameCore.Enums; +public enum MainMissionType +{ + None, + Main, + Branch, + Daily, + Maze +} diff --git a/RPG.GameCore/Enums/MapEntryType.cs b/RPG.GameCore/Enums/MapEntryType.cs new file mode 100644 index 0000000..97ff57b --- /dev/null +++ b/RPG.GameCore/Enums/MapEntryType.cs @@ -0,0 +1,8 @@ +namespace RPG.GameCore.Enums; +public enum MapEntryType +{ + Unknown, + Town, + Mission, + Explore +} diff --git a/RPG.GameCore/Enums/RequirementType.cs b/RPG.GameCore/Enums/RequirementType.cs new file mode 100644 index 0000000..012520d --- /dev/null +++ b/RPG.GameCore/Enums/RequirementType.cs @@ -0,0 +1,11 @@ +namespace RPG.GameCore.Enums; +public enum RequirementType // AEGBKHMFGPO +{ + Unknown, + Auto, + Sequence, + Client, + MultiSequence, + PlayerLevel, + WorldLevel +} diff --git a/RPG.GameCore/Excel/AvatarExcelRow.cs b/RPG.GameCore/Excel/AvatarExcelRow.cs deleted file mode 100644 index d99ac3e..0000000 --- a/RPG.GameCore/Excel/AvatarExcelRow.cs +++ /dev/null @@ -1,49 +0,0 @@ -using RPG.GameCore.Excel.Attributes; - -namespace RPG.GameCore.Excel; - -[ExcelTable("AvatarExcelTable.json", ExcelType.Avatar)] -public class AvatarExcelRow : ExcelRow -{ - public override uint Id => AvatarID; - - public uint AvatarID { get; set; } - public uint AdventurePlayerID { get; set; } - public string AvatarVOTag { get; set; } = string.Empty; - public uint Rarity { get; set; } - public string JsonPath { get; set; } = string.Empty; - public uint NatureID { get; set; } - public string DamageType { get; set; } = string.Empty; - public SPValue SPNeed { get; set; } = new(); - public uint ExpGroup { get; set; } - public uint MaxPromotion { get; set; } - public uint MaxRank { get; set; } - public List RankUpCostList { get; set; } = []; - public uint MaxRankRepay { get; set; } - public List SkillList { get; set; } = []; - public string AvatarBaseType { get; set; } = string.Empty; - public string DefaultAvatarImagePath { get; set; } = string.Empty; - public string DefaultAvatarModelPath { get; set; } = string.Empty; - public string DefaultAvatarHeadIconPath { get; set; } = string.Empty; - public string DefaultAvatarHalfImagePath { get; set; } = string.Empty; - public string AvatarSideIconPath { get; set; } = string.Empty; - public string ActionAvatarHeadIconPath { get; set; } = string.Empty; - public string DefaultAvatarQHeadIconPath { get; set; } = string.Empty; - public string AvatarBaseTypeIconPath { get; set; } = string.Empty; - public string AvatarDialogHalfImagePath { get; set; } = string.Empty; - public string UltraSkillCutInPrefabPath { get; set; } = string.Empty; - public string UIAvatarModelPath { get; set; } = string.Empty; - public string ManikinJsonPath { get; set; } = string.Empty; - public string AIPath { get; set; } = string.Empty; - public string SkilltreePrefabPath { get; set; } = string.Empty; - public bool Release { get; set; } - public string SideAvatarHeadIconPath { get; set; } = string.Empty; - public string WaitingAvatarHeadIconPath { get; set; } = string.Empty; - public string AvatarCutinImgPath { get; set; } = string.Empty; - public string AvatarCutinBgImgPath { get; set; } = string.Empty; - - public class SPValue - { - public long RawValue { get; set; } - } -} diff --git a/RPG.GameCore/Excel/AvatarRow.cs b/RPG.GameCore/Excel/AvatarRow.cs new file mode 100644 index 0000000..73326dc --- /dev/null +++ b/RPG.GameCore/Excel/AvatarRow.cs @@ -0,0 +1,53 @@ +using System.Text.Json.Serialization; +using RPG.GameCore.Enums; +using RPG.GameCore.Excel.Attributes; +using RPG.GameCore.Types; + +namespace RPG.GameCore.Excel; + +[ExcelTable("AvatarExcelTable.json", ExcelType.Avatar)] +public class AvatarRow : ExcelRow +{ + public override uint Id => AvatarID; + + public uint AvatarID { get; set; } // 0x10 + public TextID AvatarName { get; set; } // 0x14 + public TextID AvatarFullName { get; set; } // 0x18 + public uint AdventurePlayerID { get; set; } // 0x1C + public string AvatarVOTag { get; set; } = string.Empty; // 0x20 + public uint Rarity { get; set; } // 0x28 + public string JsonPath { get; set; } = string.Empty; // 0x30 + public uint NatureID { get; set; } // 0x38 + [JsonConverter(typeof(JsonStringEnumConverter))] + public AttackDamageType DamageType { get; set; } // 0x3C + public FixPoint SPNeed { get; set; } // 0x40 + public uint ExpGroup { get; set; } // 0x48 + public uint MaxPromotion { get; set; } // 0x4C + public uint MaxRank { get; set; } // 0x50 + public string[] RankUpCostList { get; set; } = []; // 0x58 + public uint MaxRankRepay { get; set; } // 0x60 + public uint[] SkillList { get; set; } // 0x68 + [JsonConverter(typeof(JsonStringEnumConverter))] + public AvatarBaseType AvatarBaseType { get; set; } // 0x70 + public string DefaultAvatarImagePath { get; set; } = string.Empty; // 0x78 + public string DefaultAvatarModelPath { get; set; } = string.Empty; // 0x80 + public string DefaultAvatarHeadIconPath { get; set; } = string.Empty; // 0x88 + public string DefaultAvatarHalfImagePath { get; set; } = string.Empty; // 0x90 + public string AvatarSideIconPath { get; set; } = string.Empty; // 0x98 + public string ActionAvatarHeadIconPath { get; set; } = string.Empty; // 0xA0 + public string DefaultAvatarQHeadIconPath { get; set; } = string.Empty; // 0xA8 + public string AvatarBaseTypeIconPath { get; set; } = string.Empty; // 0xB0 + public string AvatarDialogHalfImagePath { get; set; } = string.Empty; // 0xB8 + public string UltraSkillCutInPrefabPath { get; set; } = string.Empty; // 0xC0 + public string UIAvatarModelPath { get; set; } = string.Empty; // 0xC8 + public string ManikinJsonPath { get; set; } = string.Empty; // 0xD0 + public TextID AvatarDesc { get; set; } // 0xD8 + public string AIPath { get; set; } = string.Empty; // 0xE0 + public string SkilltreePrefabPath { get; set; } = string.Empty; // 0xE8 + public GCINNHHNFMP[] DamageTypeResistance { get; set; } = []; // 0xF0 + public bool Release { get; set; } // 0xF8 + public string SideAvatarHeadIconPath { get; set; } = string.Empty; // 0x100 + public string WaitingAvatarHeadIconPath { get; set; } = string.Empty; // 0x108 + public string AvatarCutinImgPath { get; set; } = string.Empty; // 0x110 + public string AvatarCutinBgImgPath { get; set; } = string.Empty; // 0x118 +} diff --git a/RPG.GameCore/Excel/ExcelTables.cs b/RPG.GameCore/Excel/ExcelTables.cs index 4551f5f..829b153 100644 --- a/RPG.GameCore/Excel/ExcelTables.cs +++ b/RPG.GameCore/Excel/ExcelTables.cs @@ -15,7 +15,7 @@ public class ExcelTables _logger = logger; } - public TExcelRow? GetExcelRow(ExcelType type, int id) where TExcelRow : ExcelRow + public TExcelRow? GetExcelRow(ExcelType type, uint id) where TExcelRow : ExcelRow { if (_tables == null) throw new InvalidOperationException("GetExcelRow called when ExcelTables not loaded."); diff --git a/RPG.GameCore/Excel/ExcelType.cs b/RPG.GameCore/Excel/ExcelType.cs index 9f0266d..3943752 100644 --- a/RPG.GameCore/Excel/ExcelType.cs +++ b/RPG.GameCore/Excel/ExcelType.cs @@ -2,5 +2,6 @@ public enum ExcelType { Avatar, - MainMission + MainMission, + MapEntry } diff --git a/RPG.GameCore/Excel/MainMissionRow.cs b/RPG.GameCore/Excel/MainMissionRow.cs index 7d69ac0..c7c6d39 100644 --- a/RPG.GameCore/Excel/MainMissionRow.cs +++ b/RPG.GameCore/Excel/MainMissionRow.cs @@ -1,10 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Xml.Linq; +using System.Text.Json.Serialization; +using RPG.GameCore.Enums; using RPG.GameCore.Excel.Attributes; +using RPG.GameCore.Types; namespace RPG.GameCore.Excel; @@ -13,22 +10,27 @@ public class MainMissionRow : ExcelRow { public override uint Id => MainMissionID; - public uint MainMissionID { get; set; } - public string Type { get; set; } = string.Empty; - public bool IsLoop { get; set; } - public List NextMainMissionList { get; set; } = []; - public string TakeType { get; set; } = string.Empty; - public uint TakeParamInt1 { get; set; } - public List TakeParamIntList { get; set; } = []; - public string BeginType { get; set; } = string.Empty; - public uint BeginParamInt1 { get; set; } - public List BeginParamIntList { get; set; } = []; - public List StartSubMissionList { get; set; } = []; - public List FinishSubMissionList { get; set; } = []; - public uint NextTrackMainMission { get; set; } - public uint TrackWeight { get; set; } - public bool IsShowStartHint { get; set; } - public bool IsShowFinishHint { get; set; } - public int RewardID { get; set; } - public int DisplayRewardID { get; set; } + public uint MainMissionID { get; set; } // 0x10 + [JsonConverter(typeof(JsonStringEnumConverter))] + public MainMissionType Type { get; set; } // 0x14 + public bool IsLoop { get; set; } // 0x18 + public uint[] NextMainMissionList { get; set; } = []; // 0x20 + public TextID Name { get; set; } // 0x28 + [JsonConverter(typeof(JsonStringEnumConverter))] + public RequirementType TakeType { get; set; } // 0x2C + public uint TakeParamInt1 { get; set; } // 0x30 + public uint[] TakeParamIntList { get; set; } = []; // 0x38 + [JsonConverter(typeof(JsonStringEnumConverter))] + public RequirementType BeginType { get; set; } // 0x40 + public uint BeginParamInt1 { get; set; } // 0x44 + public TextID BeginDesc { get; set; } // 0x48 + public uint[] BeginParamIntList { get; set; } = []; // 0x50 + public uint[] StartSubMissionList { get; set; } = []; // 0x58 + public uint[] FinishSubMissionList { get; set; } = []; // 0x60 + public uint NextTrackMainMission { get; set; } // 0x68 + public uint TrackWeight { get; set; } // 0x6C + public bool IsShowStartHint { get; set; } // 0x70 + public bool IsShowFinishHint { get; set; } // 0x71 + public uint RewardID { get; set; } // 0x74 + public uint DisplayRewardID { get; set; } // 0x78 } diff --git a/RPG.GameCore/Excel/MapEntryRow.cs b/RPG.GameCore/Excel/MapEntryRow.cs new file mode 100644 index 0000000..91cb0e5 --- /dev/null +++ b/RPG.GameCore/Excel/MapEntryRow.cs @@ -0,0 +1,34 @@ +using System.Text.Json.Serialization; +using RPG.GameCore.Enums; +using RPG.GameCore.Excel.Attributes; +using RPG.GameCore.Types; + +namespace RPG.GameCore.Excel; + +[ExcelTable("MapEntryExcelTable.json", ExcelType.MapEntry)] +public class MapEntryRow : ExcelRow +{ + public override uint Id => ID; + + public uint ID { get; set; } // 0x10 + [JsonConverter(typeof(JsonStringEnumConverter))] + public MapEntryType EntranceType { get; set; } // 0x14 + public uint IsShowInMapMenu { get; set; } // 0x18 + public uint EntranceGroupID { get; set; } // 0x1C + public TextID Name { get; set; } // 0x20 + public TextID MapEntranceName { get; set; } // 0x24 + public TextID Desc { get; set; } // 0x28 + public string ImagePath { get; set; } = string.Empty; // 0x30 + public uint[] MiniMapIconHintList { get; set; } = []; // 0x38 + public uint ShowReward { get; set; } // 0x40 + public uint PlaneID { get; set; } // 0x44 + public uint FloorID { get; set; } // 0x48 + public uint StartGroupID { get; set; } // 0x4C + public uint StartAnchorID { get; set; } // 0x50 + public uint TargetMission { get; set; } // 0x54 + public uint[] TargetMainMissionList { get; set; } = []; // 0x58 + public uint[] BeginMainMissionList { get; set; } = []; // 0x60 + public uint[] FinishMainMissionList { get; set; } = []; // 0x68 + public uint[] FinishQuestList { get; set; } = []; // 0x70 + public uint UnlockQuest { get; set; } // 0x78 +} diff --git a/RPG.GameCore/RPG.GameCore.csproj b/RPG.GameCore/RPG.GameCore.csproj index bb682dd..64a59b3 100644 --- a/RPG.GameCore/RPG.GameCore.csproj +++ b/RPG.GameCore/RPG.GameCore.csproj @@ -21,6 +21,9 @@ PreserveNewest + + PreserveNewest + diff --git a/RPG.GameCore/Types/FixPoint.cs b/RPG.GameCore/Types/FixPoint.cs new file mode 100644 index 0000000..2ad0e32 --- /dev/null +++ b/RPG.GameCore/Types/FixPoint.cs @@ -0,0 +1,5 @@ +namespace RPG.GameCore.Types; +public struct FixPoint +{ + public long RawValue { get; } +} diff --git a/RPG.GameCore/Types/GCINNHHNFMP.cs b/RPG.GameCore/Types/GCINNHHNFMP.cs new file mode 100644 index 0000000..54ef8bd --- /dev/null +++ b/RPG.GameCore/Types/GCINNHHNFMP.cs @@ -0,0 +1,8 @@ +using RPG.GameCore.Enums; + +namespace RPG.GameCore.Types; +public class GCINNHHNFMP +{ + public AttackDamageType LDIGCDHLBGE { get; set; } // 0x10 + public FixPoint BNHLMJGNADI { get; set; } // 0x18 +} diff --git a/RPG.GameCore/Types/TextID.cs b/RPG.GameCore/Types/TextID.cs new file mode 100644 index 0000000..8d52805 --- /dev/null +++ b/RPG.GameCore/Types/TextID.cs @@ -0,0 +1,8 @@ +using System.Text.Json.Serialization; + +namespace RPG.GameCore.Types; +public struct TextID +{ + [JsonPropertyName("hash")] + public int Hash { get; set; } +} diff --git a/RPG.GameCore/data/excel/MapEntryExcelTable.json b/RPG.GameCore/data/excel/MapEntryExcelTable.json new file mode 100644 index 0000000..43e51ef --- /dev/null +++ b/RPG.GameCore/data/excel/MapEntryExcelTable.json @@ -0,0 +1,1601 @@ +{ + "1000001": { + "ID": 1000001, + "EntranceType": 4, + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": 807309910 + }, + "MapEntranceName": { + "hash": -622442446 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 10000, + "FloorID": 10000000, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010101 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010101": { + "ID": 1010101, + "EntranceType": "Town", + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": 28883702 + }, + "MapEntranceName": { + "hash": -622443438 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 10101, + "FloorID": 10101001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010101 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010102": { + "ID": 1010102, + "EntranceType": "Town", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 10101, + "FloorID": 10101002, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010103": { + "ID": 1010103, + "EntranceType": "Town", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 10101, + "FloorID": 10101003, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010104": { + "ID": 1010104, + "EntranceType": "Town", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 10101, + "FloorID": 10101004, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010105": { + "ID": 1010105, + "EntranceType": "Town", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 10101, + "FloorID": 10101005, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010106": { + "ID": 1010106, + "EntranceType": "Town", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 10101, + "FloorID": 10101006, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010107": { + "ID": 1010107, + "EntranceType": "Town", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 10101, + "FloorID": 10101007, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010201": { + "ID": 1010201, + "EntranceType": "Town", + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": -1234672261 + }, + "MapEntranceName": { + "hash": -622443537 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 10102, + "FloorID": 10102001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010301 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010202": { + "ID": 1010202, + "EntranceType": "Town", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 10102, + "FloorID": 10102002, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "1010203": { + "ID": 1010203, + "EntranceType": "Town", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneVallige.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 10102, + "FloorID": 10102003, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "2010101": { + "ID": 2010101, + "EntranceType": "Mission", + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": 2026273467 + }, + "MapEntranceName": { + "hash": -622411857 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 9001011, + "PlaneID": 20101, + "FloorID": 20101001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010503 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "2011101": { + "ID": 2011101, + "EntranceType": "Mission", + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": 2026273498 + }, + "MapEntranceName": { + "hash": 681550058 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 9001012, + "PlaneID": 20111, + "FloorID": 20111001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [ + 1010203 + ], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010203 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "2012101": { + "ID": 2012101, + "EntranceType": "Mission", + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": 2026273533 + }, + "MapEntranceName": { + "hash": -904736859 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 9001013, + "PlaneID": 20121, + "FloorID": 20121001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [ + 1010404 + ], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010500 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "2012201": { + "ID": 2012201, + "EntranceType": "Mission", + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": -1005137800 + }, + "MapEntranceName": { + "hash": -904736760 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 9001012, + "PlaneID": 20122, + "FloorID": 20122001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [ + 1010503 + ], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010414 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "2012301": { + "ID": 2012301, + "EntranceType": "Mission", + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": 1743948531 + }, + "MapEntranceName": { + "hash": -904736793 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 9001013, + "PlaneID": 20123, + "FloorID": 20123001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [ + 1010701 + ], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010700 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "2013101": { + "ID": 2013101, + "EntranceType": "Mission", + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": 2026273564 + }, + "MapEntranceName": { + "hash": 399225056 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 9001014, + "PlaneID": 20131, + "FloorID": 20131001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [ + 1010803 + ], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010803 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "2013201": { + "ID": 2013201, + "EntranceType": "Mission", + "IsShowInMapMenu": 1, + "EntranceGroupID": 0, + "Name": { + "hash": -1005137769 + }, + "MapEntranceName": { + "hash": 399225155 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 9001015, + "PlaneID": 20132, + "FloorID": 20132001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [ + 1010809 + ], + "BeginMainMissionList": [], + "FinishMainMissionList": [ + 1010812 + ], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3000101": { + "ID": 3000101, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30101, + "FloorID": 30101001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3000201": { + "ID": 3000201, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30102, + "FloorID": 30102001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3000301": { + "ID": 3000301, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30103, + "FloorID": 30103001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3000401": { + "ID": 3000401, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30104, + "FloorID": 30104001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3000501": { + "ID": 3000501, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30105, + "FloorID": 30105001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3000601": { + "ID": 3000601, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30106, + "FloorID": 30106001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3000701": { + "ID": 3000701, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30107, + "FloorID": 30107001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3000801": { + "ID": 3000801, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30108, + "FloorID": 30108001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3000901": { + "ID": 3000901, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30109, + "FloorID": 30109001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001001": { + "ID": 3001001, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30110, + "FloorID": 30110001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001101": { + "ID": 3001101, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30111, + "FloorID": 30111001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001201": { + "ID": 3001201, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30112, + "FloorID": 30112001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001301": { + "ID": 3001301, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30113, + "FloorID": 30113001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001401": { + "ID": 3001401, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30114, + "FloorID": 30114001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001501": { + "ID": 3001501, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30115, + "FloorID": 30115001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001601": { + "ID": 3001601, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30116, + "FloorID": 30116001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001701": { + "ID": 3001701, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30117, + "FloorID": 30117001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001801": { + "ID": 3001801, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30118, + "FloorID": 30118001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3001901": { + "ID": 3001901, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30119, + "FloorID": 30119001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "3002001": { + "ID": 3002001, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 30120, + "FloorID": 30120001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9020101": { + "ID": 9020101, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 90201, + "FloorID": 90201001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9020201": { + "ID": 9020201, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 90202, + "FloorID": 90201002, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9030101": { + "ID": 9030101, + "EntranceType": "Explore", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 90301, + "FloorID": 90301001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999801": { + "ID": 9999801, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 0, + "PlaneID": 99998, + "FloorID": 99998, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999802": { + "ID": 9999802, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 0, + "PlaneID": 90002, + "FloorID": 90002, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999803": { + "ID": 9999803, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 0, + "PlaneID": 90002, + "FloorID": 9000201, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999811": { + "ID": 9999811, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 6, + 7 + ], + "ShowReward": 0, + "PlaneID": 99998, + "FloorID": 99998001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999601": { + "ID": 9999601, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 99996, + "FloorID": 99996001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999602": { + "ID": 9999602, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 99996, + "FloorID": 99996002, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999603": { + "ID": 9999603, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 99996, + "FloorID": 99996003, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999604": { + "ID": 9999604, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 99996, + "FloorID": 99996004, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999605": { + "ID": 9999605, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 99996, + "FloorID": 99996005, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999606": { + "ID": 9999606, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 99996, + "FloorID": 99996006, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999607": { + "ID": 9999607, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 99996, + "FloorID": 99996007, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999608": { + "ID": 9999608, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [ + 4 + ], + "ShowReward": 0, + "PlaneID": 99996, + "FloorID": 99996008, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + }, + "9999901": { + "ID": 9999901, + "EntranceType": "Mission", + "IsShowInMapMenu": 0, + "EntranceGroupID": 0, + "Name": { + "hash": 1354018532 + }, + "MapEntranceName": { + "hash": 1354018532 + }, + "Desc": { + "hash": 1354018532 + }, + "ImagePath": "SpriteOutput/LevelDetailPic/PicSceneMaze01.png", + "MiniMapIconHintList": [], + "ShowReward": 0, + "PlaneID": 99999, + "FloorID": 99999001, + "StartGroupID": 0, + "StartAnchorID": 0, + "TargetMission": 0, + "TargetMainMissionList": [], + "BeginMainMissionList": [], + "FinishMainMissionList": [], + "FinishQuestList": [], + "UnlockQuest": 0 + } +} \ No newline at end of file diff --git a/RPG.Network.Proto/Retcode.cs b/RPG.Network.Proto/Retcode.cs new file mode 100644 index 0000000..5d28f07 --- /dev/null +++ b/RPG.Network.Proto/Retcode.cs @@ -0,0 +1,186 @@ +namespace RPG.Network.Proto; +public static class Retcode +{ + public const uint RET_SUCC = 0; + public const uint RET_FAIL = 1; + public const uint RET_SERVER_INTERNAL_ERROR = 2; + public const uint RET_TIMEOUT = 3; + public const uint RET_REPEATED_REQ = 4; + public const uint RET_REQ_PARA_INVALID = 5; + public const uint RET_PLAYER_DATA_ERROR = 6; + public const uint RET_PLAYER_CLIENT_PAUSED = 7; + public const uint RET_REPEATE_LOGIN = 1000; + public const uint RET_RETRY_LOGIN = 1001; + public const uint RET_WAIT_LOGIN = 1002; + public const uint RET_NOT_IN_WHITE_LIST = 1003; + public const uint RET_IN_BLACK_LIST = 1004; + public const uint RET_ACCOUNT_VERIFY_ERROR = 1005; + public const uint RET_ACCOUNT_PARA_ERROR = 1006; + public const uint RET_ANTI_ADDICT_LOGIN = 1007; + public const uint RET_CHECK_SUM_ERROR = 1008; + public const uint RET_QUEST_REWARD_ALREADY_TAKEN = 1100; + public const uint RET_QUEST_NOT_ACCEPT = 1101; + public const uint RET_QUEST_NOT_FINISH = 1102; + public const uint RET_QUEST_STATUS_ERROR = 1103; + public const uint RET_AVATAR_NOT_EXIST = 1200; + public const uint RET_AVATAR_RES_EXP_NOT_ENOUGH = 1201; + public const uint RET_AVATAR_EXP_REACH_PROMOTION_LIMIT = 1202; + public const uint RET_AVATAR_REACH_MAX_PROMOTION = 1203; + public const uint RET_SKILLTREE_CONFIG_NOT_EXIST = 1204; + public const uint RET_SKILLTREE_ALREADY_UNLOCK = 1205; + public const uint RET_SKILLTREE_PRE_LOCKED = 1206; + public const uint RET_SKILLTREE_LEVEL_NOT_MEET = 1207; + public const uint RET_SKILLTREE_RANK_NOT_MEET = 1208; + public const uint RET_AVATAR_DRESS_NO_EQUIPMENT = 1209; + public const uint RET_AVATAR_EXP_ITEM_NOT_EXIST = 1210; + public const uint RET_SKILLTREE_POINT_UNLOCK = 1211; + public const uint RET_SKILLTREE_POINT_LEVEL_UPGRADE_NOT_MATCH = 1212; + public const uint RET_SKILLTREE_POINT_LEVEL_REACH_MAX = 1213; + public const uint RET_WORLD_LEVEL_NOT_MEET = 1214; + public const uint RET_PLAYER_LEVEL_NOT_MEET = 1215; + public const uint RET_ITEM_NOT_EXIST = 1300; + public const uint RET_ITEM_COST_NOT_ENOUGH = 1301; + public const uint RET_ITEM_COST_TOO_MUCH = 1302; + public const uint RET_ITEM_NO_COST = 1303; + public const uint RET_ITEM_NOT_ENOUGH = 1304; + public const uint RET_ITEM_INVALID = 1305; + public const uint RET_ITEM_CONFIG_NOT_EXIST = 1306; + public const uint RET_SCOIN_NOT_ENOUGH = 1307; + public const uint RET_ITEM_REWARD_EXCEED_LIMIT = 1308; + public const uint RET_ITEM_INVALID_USE = 1309; + public const uint RET_ITEM_USE_CONFIG_NOT_EXIST = 1310; + public const uint RET_REWARD_CONFIG_NOT_EXIST = 1311; + public const uint RET_ITEM_EXCEED_LIMIT = 1312; + public const uint RET_ITEM_COUNT_INVALID = 1313; + public const uint RET_ITEM_USE_TARGET_TYPE_INVALID = 1314; + public const uint RET_ITEM_USE_SATIETY_FULL = 1315; + public const uint RET_ITEM_COMPOSE_NOT_EXIST = 1316; + public const uint RET_EQUIPMENT_ALREADY_DRESSED = 1350; + public const uint RET_EQUIPMENT_NOT_EXIST = 1351; + public const uint RET_EQUIPMENT_REACH_LEVEL_LIMIT = 1352; + public const uint RET_EQUIPMENT_CONSUME_SELF = 1353; + public const uint RET_EQUIPMENT_ALREADY_LOCKED = 1354; + public const uint RET_EQUIPMENT_ALREADY_UNLOCKED = 1355; + public const uint RET_EQUIPMENT_LOCKED = 1356; + public const uint RET_EQUIPMENT_SELECT_NUM_OVER_LIMIT = 1357; + public const uint RET_EQUIPMENT_RANK_UP_MUST_CONSUME_SAME_TID = 1358; + public const uint RET_EQUIPMENT_PROMOTION_REACH_MAX = 1359; + public const uint RET_EQUIPMENT_RANK_UP_REACH_MAX = 1360; + public const uint RET_EQUIPMENT_LEVEL_REACH_MAX = 1361; + public const uint RET_EQUIPMENT_EXCEED_LIMIT = 1362; + public const uint RET_LINEUP_INVALID_INDEX = 1400; + public const uint RET_LINEUP_INVALID_MEMBER_POS = 1401; + public const uint RET_LINEUP_SWAP_NOT_EXIST = 1402; + public const uint RET_LINEUP_AVATAR_ALREADY_IN = 1403; + public const uint RET_LINEUP_CREATE_AVATAR_ERROR = 1404; + public const uint RET_LINEUP_AVATAR_INIT_ERROR = 1405; + public const uint RET_LINEUP_NOT_EXIST = 1406; + public const uint RET_LINEUP_ONLY_ONE_MEMBER = 1407; + public const uint RET_LINEUP_SAME_LEADER_SLOT = 1408; + public const uint RET_LINEUP_NO_LEADER_SELECT = 1409; + public const uint RET_LINEUP_SWAP_SAME_SLOT = 1410; + public const uint RET_LINEUP_AVATAR_NOT_EXIST = 1411; + public const uint RET_LINEUP_TRIAL_AVATAR_CAN_NOT_QUIT = 1412; + public const uint RET_LINEUP_VIRTUAL_LINEUP_PLANE_NOT_MATCH = 1413; + public const uint RET_LINEUP_NOT_VALID_LEADER = 1414; + public const uint RET_LINEUP_SAME_INDEX = 1415; + public const uint RET_LINEUP_IS_EMPTY = 1416; + public const uint RET_LINEUP_NAME_FORMAT_ERROR = 1417; + public const uint RET_MAIL_NOT_EXIST = 1700; + public const uint RET_MAIL_RANGE_INVALID = 1701; + public const uint RET_MAIL_MAIL_ID_INVALID = 1702; + public const uint RET_MAIL_NO_MAIL_TAKE_ATTACHMENT = 1703; + public const uint RET_MAIL_NO_MAIL_TO_DEL = 1704; + public const uint RET_STAGE_SETTLE_ERROR = 1800; + public const uint RET_STAGE_CONFIG_NOT_EXIST = 1801; + public const uint RET_STAGE_NOT_FOUND = 1802; + public const uint RET_STAGE_COCOON_PROP_NOT_VALID = 1804; + public const uint RET_STAGE_COCOON_WAVE_NOT_VALID = 1805; + public const uint RET_STAGE_PROP_ID_NOT_EQUAL = 1806; + public const uint RET_STAGE_COCOON_WAVE_OVER = 1807; + public const uint RET_CHAPTER_LOCK = 1900; + public const uint RET_CHAPTER_CHALLENGE_NUM_NOT_ENOUGH = 1901; + public const uint RET_CHAPTER_REWARD_ID_NOT_EXIST = 1902; + public const uint RET_CHAPTER_REWARD_ALREADY_TAKEN = 1903; + public const uint RET_BATTLE_STAGE_NOT_MATCH = 2000; + public const uint RET_IN_BATTLE_NOW = 2001; + public const uint RET_BATTLE_CHEAT = 2002; + public const uint RET_BATTLE_FAIL = 2003; + public const uint RET_BATTLE_NO_LINEUP = 2004; + public const uint RET_BATTLE_LINEUP_EMPTY = 2005; + public const uint RET_BATTLE_VERSION_NOT_MATCH = 2006; + public const uint RET_LACK_EXCHANGE_STAMINA_TIMES = 2100; + public const uint RET_LACK_STAMINA = 2101; + public const uint RET_STAMINA_FULL = 2102; + public const uint RET_AUTHKEY_SIGN_TYPE_ERROR = 2103; + public const uint RET_AUTHKEY_SIGN_VER_ERROR = 2104; + public const uint RET_NICKNAME_FORMAT_ERROR = 2105; + public const uint RET_SENSITIVE_WORDS = 2106; + public const uint RET_LEVEL_REWARD_HAS_TAKEN = 2107; + public const uint RET_LEVEL_REWARD_LEVEL_ERROR = 2108; + public const uint RET_LANGUAGE_INVALID = 2109; + public const uint RET_MAZE_NOT_FINISH = 2200; + public const uint RET_MAZE_LACK_TICKET = 2201; + public const uint RET_MAZE_NOT_UNLOCK = 2202; + public const uint RET_MAZE_DIFFICULTY_LIMIT = 2203; + public const uint RET_MAZE_NO_ABILITY = 2204; + public const uint RET_MAZE_NO_PLANE = 2205; + public const uint RET_MAZE_STAGE_DISMATCH = 2206; + public const uint RET_MAZE_MAP_NOT_EXIST = 2207; + public const uint RET_MAZE_TYPE_NOT_EXIST = 2208; + public const uint RET_MAZE_ALREADY_FINISH = 2209; + public const uint RET_MAZE_PROP_NOT_EXIST = 2210; + public const uint RET_MAZE_POSITION_TOO_FAR = 2211; + public const uint RET_MAZE_SKILL_CAST_CNT_REACH_MAX = 2212; + public const uint RET_MAZE_MP_NOT_ENOUGH = 2213; + public const uint RET_SPRING_NOT_ENABLE = 2214; + public const uint RET_SPRING_REFRESH_IN_CD = 2215; + public const uint RET_SPRING_TOO_FAR = 2216; + public const uint RET_MAZE_NO_FLOOR = 2217; + public const uint RET_NOT_IN_MAZE = 2218; + public const uint RET_PLANE_ID_NOT_MATCH = 2219; + public const uint RET_FLOOR_ID_NOT_MATCH = 2220; + public const uint RET_SAVEPOINTS_TIMES_ZERO = 2221; + public const uint RET_PLOT_NOT_UNLOCK = 2300; + public const uint RET_MISSION_NOT_EXIST = 2400; + public const uint RET_MISSION_ALREADY_DONE = 2401; + public const uint RET_DAILY_TASK_NOT_FINISH = 2402; + public const uint RET_DAILY_TASK_REWARD_HAS_TAKEN = 2403; + public const uint RET_MISSION_NOT_FINISH = 2404; + public const uint RET_MISSION_NOT_DOING = 2405; + public const uint RET_MISSION_FINISH_WAY_NOT_MATCH = 2406; + public const uint RET_MISSION_SCENE_NOT_MATCH = 2407; + public const uint RET_ADVENTURE_MAP_NOT_EXIST = 2500; + public const uint RET_SCENE_ENTITY_NOT_EXIST = 2600; + public const uint RET_NOT_IN_SCENE = 2601; + public const uint RET_SCENE_MONSTER_NOT_EXIST = 2602; + public const uint RET_INTERACT_CONFIG_NOT_EXIST = 2603; + public const uint RET_UNSUPPORTED_PROP_STATE = 2604; + public const uint RET_SCENE_ENTRY_ID_NOT_MATCH = 2605; + public const uint RET_ASSIST_MONSTER_COUNT_LIMIT = 2607; + public const uint RET_SCENE_USE_SKILL_FAIL = 2608; + public const uint RET_PROP_IS_HIDDEN = 2609; + public const uint RET_LOADING_SUCC_ALREADY = 2610; + public const uint RET_SCENE_ENTITY_TYPE_INVALID = 2611; + public const uint RET_INTERACT_TYPE_INVALID = 2612; + public const uint RET_INTERACT_NOT_IN_REGION = 2613; + public const uint RET_INTERACT_SUB_TYPE_INVALID = 2614; + public const uint RET_NOT_LEADER_ENTITY = 2615; + public const uint RET_BUY_TIMES_LIMIT = 2700; + public const uint RET_BUY_LIMIT_TYPE = 2701; + public const uint RET_SHOP_NOT_OPEN = 2702; + public const uint RET_GOODS_NOT_OPEN = 2703; + public const uint RET_TUTORIAL_NOT_UNLOCK = 2751; + public const uint RET_TUTORIAL_UNLOCK_ALREADY = 2752; + public const uint RET_TUTORIAL_FINISH_ALREADY = 2753; + public const uint RET_TUTORIAL_PRE_NOT_UNLOCK = 2754; + public const uint RET_TUTORIAL_PLAYER_LEVEL_NOT_MATCH = 2755; + public const uint RET_TUTORIAL_TUTORIAL_NOT_FOUND = 2756; + public const uint RET_CHALLENGE_NOT_EXIST = 2801; + public const uint RET_CHALLENGE_NOT_UNLOCK = 2802; + public const uint RET_CHALLENGE_ALREADY = 2803; + public const uint RET_CHALLENGE_LINEUP_EDIT_FORBIDDEN = 2804; + public const uint RET_CHALLENGE_LINEUP_EMPTY = 2805; + public const uint RET_CHALLENGE_NOT_DOING = 2806; + public const uint RET_CHALLENGE_NOT_FINISH = 2807; +} diff --git a/RPG.Network.Proto/messages.proto b/RPG.Network.Proto/messages.proto index 17e53a0..17352a3 100644 --- a/RPG.Network.Proto/messages.proto +++ b/RPG.Network.Proto/messages.proto @@ -386,7 +386,7 @@ enum BattleEndStatus { BATTLE_END_QUIT = 3; } -enum Retcode { +enum ERetcode { RET_SUCC = 0; RET_FAIL = 1; RET_SERVER_INTERNAL_ERROR = 2; diff --git a/RPG.Services.Gameserver/Modules/AdventureModule.cs b/RPG.Services.Gameserver/Modules/AdventureModule.cs index 2467a8a..9e0d71f 100644 --- a/RPG.Services.Gameserver/Modules/AdventureModule.cs +++ b/RPG.Services.Gameserver/Modules/AdventureModule.cs @@ -1,10 +1,18 @@ -using RPG.Network.Proto; +using RPG.GameCore.Excel; +using RPG.Network.Proto; using RPG.Services.Gameserver.Modules.Attributes; using RPG.Services.Gameserver.Session; namespace RPG.Services.Gameserver.Modules; internal class AdventureModule : BaseModule { + private readonly ExcelTables _tables; + + public AdventureModule(ExcelTables excelTables) + { + _tables = excelTables; + } + [OnCommand(CmdType.CmdGetCurSceneInfoCsReq)] public Task OnCmdGetCurSceneInfoCsReq(PlayerSession session, ReadOnlyMemory _) { @@ -23,4 +31,61 @@ internal class AdventureModule : BaseModule return Task.CompletedTask; } + + [OnCommand(CmdType.CmdGetMazeMapInfoCsReq)] + public Task OnCmdGetMazeMapInfoCsReq(PlayerSession session, ReadOnlyMemory body) + { + GetMazeMapInfoCsReq req = GetMazeMapInfoCsReq.Parser.ParseFrom(body.Span); + + Send(session, CmdType.CmdGetMazeMapInfoScRsp, new GetMazeMapInfoScRsp + { + Retcode = 0, + EntryId = req.EntryId, + + // TODO: + LightenSectionList = { }, + MazeGroupList = { }, + MazePropList = { } + }); + + return Task.CompletedTask; + } + + [OnCommand(CmdType.CmdEnterMazeCsReq)] + public Task OnCmdEnterMazeCsReq(PlayerSession session, ReadOnlyMemory body) + { + EnterMazeCsReq req = EnterMazeCsReq.Parser.ParseFrom(body.Span); + + MapEntryRow? entry = _tables.GetExcelRow(ExcelType.MapEntry, req.EntryId); + if (entry == null) + { + Send(session, CmdType.CmdEnterMazeScRsp, new EnterMazeScRsp + { + Retcode = Retcode.RET_MAZE_MAP_NOT_EXIST + }); + return Task.CompletedTask; + } + + Send(session, CmdType.CmdEnterMazeScRsp, new EnterMazeScRsp + { + Retcode = 0, + Maze = new Maze + { + MapEntryId = entry.ID, + Id = entry.PlaneID, + Floor = new MazeFloor + { + FloorId = entry.FloorID, + Scene = new SceneInfo + { + EntryId = entry.ID, + PlaneId = entry.PlaneID, + FloorId = entry.FloorID + } + } + }, + }); + + return Task.CompletedTask; + } } diff --git a/RPG.Services.Gameserver/Modules/AvatarModule.cs b/RPG.Services.Gameserver/Modules/AvatarModule.cs index 9a9e754..532292f 100644 --- a/RPG.Services.Gameserver/Modules/AvatarModule.cs +++ b/RPG.Services.Gameserver/Modules/AvatarModule.cs @@ -25,7 +25,7 @@ internal class AvatarModule : BaseModule foreach (ExcelRow row in _excelTables.GetAllRows(ExcelType.Avatar)) { - if (row is AvatarExcelRow avatarRow) + if (row is AvatarRow avatarRow) { if (avatarRow.AvatarID >= 9000) continue;