diff --git a/lua/app/server/server_data_manager.lua b/lua/app/server/server_data_manager.lua index c8b1e13f..e7c73c67 100644 --- a/lua/app/server/server_data_manager.lua +++ b/lua/app/server/server_data_manager.lua @@ -149,18 +149,23 @@ function ServerDataManager:dealGM(params, callback) end end elseif args[1] == "pass_chapter" then - local id = tonumber(args[2]) - if not id then + local maxId = tonumber(args[2]) + if not maxId then return end local cfg = ConfigManager:getConfig("chapter") for id, info in ipairs(cfg) do + if id > maxId then + break + end + local maxWave = info.box_num[#info.box_num] if maxWave then ServerGameData.ChapterData:fightChapter(id, true, maxWave) end + ServerGameData.HeroData:tryUnlockHeroByChapterId(id) end - ServerGameData.ChapterData.data.maxChapterId = id + ServerGameData.ChapterData.data.maxChapterId = maxId end ServerGameData:saveData()