-- 屠魔大厅活跃度分配表（15层共30点）
local 屠魔大厅活跃度表 = {
    1, 1, 1,          -- 1-3层：各1点（新手适应期）
    2, 2, 2, 2, 2, 2, 2, 2, -- 4-11层：各2点（主要阶段）
    3, 3, 3,          -- 12-14层：各3点（挑战阶段）
    4                 -- 15层：4点（最终奖励）
}

local 屠魔大厅刷怪表 = {
    {"魔殿恶蛆", "魔殿红野猪"}, -- 1层
    {"魔殿恶蛆", "魔殿红野猪"}, -- 2层
    {"魔殿卫士", "魔殿卫士", "魔殿黑野猪", "魔殿黑野猪", "魔殿弓箭手"}, -- 3层
    {"魔殿雕像", "魔殿雕像", "魔殿黑野猪", "魔殿黑野猪", "魔殿弓箭手"}, -- 4层
    {"魔殿雕像", "魔殿雕像", "魔殿卫士", "魔殿卫士", "魔殿弓箭手"}, -- 5层
    {"魔殿狼蛛", "魔殿狼蛛", "魔殿狼蛛", "魔殿狼蛛", "魔殿钢蛛", "魔殿钢蛛", "魔殿钢蛛", "魔殿钢蛛", "魔殿射手", "魔殿射手"}, -- 6层
    {"魔殿邪蛛", "魔殿邪蛛", "魔殿邪蛛", "魔殿邪蛛", "魔殿钢蛛", "魔殿钢蛛", "魔殿钢蛛", "魔殿钢蛛", "魔殿射手", "魔殿射手"}, -- 7层
    {"魔殿邪蛛", "魔殿邪蛛", "魔殿邪蛛", "魔殿邪蛛", "魔殿血巨人", "魔殿血巨人", "魔殿血巨人", "魔殿血巨人", "魔殿射手", "魔殿射手"}, -- 8层
    {"魔殿血巨人", "魔殿血巨人", "魔殿血巨人", "魔殿血巨人", "魔殿血巨人", "魔殿血巨人", "魔殿血巨人", "魔殿血巨人", "魔殿射手", "魔殿射手"}, -- 9层
    {"魔殿血蛙", "魔殿血蛙", "魔殿血蛙", "魔殿血蛙", "魔殿刀兵", "魔殿刀兵", "魔殿刀兵", "魔殿刀兵", "魔殿骷髅射手", "魔殿骷髅射手"}, -- 10层
    {"魔殿血蛙", "魔殿血蛙", "魔殿血蛙", "魔殿血蛙", "魔殿刀兵", "魔殿刀兵", "魔殿刀兵", "魔殿刀兵", "魔殿骷髅射手", "魔殿骷髅射手"}, -- 11层
    {"魔殿刀兵", "魔殿刀兵", "魔殿刀兵", "魔殿刀兵", "魔殿破甲兵", "魔殿破甲兵", "魔殿破甲兵", "魔殿破甲兵", "魔殿骷髅射手", "魔殿骷髅射手"}, -- 12层
    {"魔殿锤兵", "魔殿锤兵", "魔殿锤兵", "魔殿锤兵", "魔殿破甲兵", "魔殿破甲兵", "魔殿破甲兵", "魔殿破甲兵", "魔殿骷髅射手", "魔殿骷髅射手"}, -- 13层
    {"魔殿锤兵", "魔殿锤兵", "魔殿锤兵", "魔殿锤兵", "魔殿长枪兵", "魔殿长枪兵", "魔殿长枪兵", "魔殿长枪兵", "魔殿骷髅射手", "魔殿骷髅射手"}, -- 14层
    {"魔殿刀斧手", "魔殿刀斧手", "魔殿刀斧手", "魔殿刀斧手", "魔殿长枪兵", "魔殿长枪兵", "魔殿长枪兵", "魔殿长枪兵", "魔殿骷髅射手", "魔殿骷髅射手"}, -- 15层
}
local 屠魔大厅精英表 = {
    [10] = {"屠魔猪卫"},
    [11] = {"魔殿金刚"},
    [12] = {"魔殿血魔"},
    [13] = {"魔殿力士"},
    [14] = {"魔殿战将"},
    [15] = {"魔殿巨兽"}
}

local 屠魔秘境标准表 = {
    {"魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔法师", "魔殿牛魔法师", "魔殿牛魔法师", "魔殿牛魔法师", "魔殿牛魔法师", "魔殿牛魔将军"},
    {"魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔战士", "魔殿牛魔法师", "魔殿牛魔法师", "魔殿牛魔法师", "魔殿牛魔法师", "魔殿牛魔法师", "魔殿牛魔将军"}
}

local 屠魔秘境标准精英表 = {
    { "魔殿牛魔将军", "魔殿牛魔将军" },
    { "魔殿牛魔将军", "魔殿牛魔将军" },
}

local 屠魔秘境进阶表 = {
    { "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔侍卫", "魔殿牛魔法师", "魔殿牛魔法师", "魔殿牛魔法师"},
    {"魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚空龙仆", "魔殿虚灵", "魔殿虚灵", "魔殿虚灵"}
}

local 屠魔秘境进阶精英表 = {
    { "魔殿牛魔将军", "魔殿牛魔将军" },
    { "魔殿虚灵之主" },
}


local 屠魔大厅普通层数
local 屠魔秘境标准层数
local 屠魔秘境进阶层数

function 屠魔大厅_执行(地图)
    if 地图.数字变量[数字_屠魔大厅级别] == 0 then
        if 主程.当前时间 > 地图.节点计时 then
            if 地图.玩家列表.Count == 0 then
                地图.副本节点 = 255
            end
            if 地图.副本节点 == 0 then
                地图:地图公告("感受到了魔物聚集在周围，先在四周探索一下吧！")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 1 then
                地图:地图公告("请等待其他勇士准备完毕…")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 2 then
                地图:地图公告("感受到了魔物聚集在周围，先在四周探索一下吧！")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 3 then
                地图:地图公告("请等待其他勇士准备完毕…")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 4 then
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 5 then
                地图:地图公告("本活动为限时活动，倒计时结束或副本内怪物全部被击杀活动结束。")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(8.0)
            elseif 地图.副本节点 == 6 then
                地图:地图公告("第一波怪物马上袭来，请各位勇士全力挑战吧！")
                地图.副本节点 = 10
                屠魔大厅普通层数 = 1
                地图.节点计时 = 主程.当前时间:AddSeconds(8.0)
                local 玩家列表 = 地图:获取玩家列表()
                for i = 0, 玩家列表.Count - 1 do
                    local 玩家 = 玩家列表[i]
                    玩家:添加Buff时处理(2541, nil)
                end
            elseif 地图.副本节点 == 255 then
                地图:关闭副本()
            elseif 屠魔大厅普通层数 == 16 then
                刷新守卫从地图实例(6215, 地图, 游戏方向.下方, Point(1005, 273))
                地图.节点计时 = 主程.当前时间:AddSeconds(7200.0)
            elseif 地图.副本节点 % 10 == 0 then
                地图:地图公告("怪物将在5秒后来袭，请各位勇士备战！")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 % 10 == 1 then
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(1.0)
                local 刷新区域 = {
                    获取副本怪物区域(地图, "屠魔大厅-右上刷怪区域"):获取刷新范围(),
                    获取副本怪物区域(地图, "屠魔大厅-右下刷怪区域"):获取刷新范围(),
                    获取副本怪物区域(地图, "屠魔大厅-左上刷怪区域"):获取刷新范围(),
                    获取副本怪物区域(地图, "屠魔大厅-左下刷怪区域"):获取刷新范围(),
                }
                for key, value in pairs(屠魔大厅刷怪表[屠魔大厅普通层数]) do
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[1], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[2], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[3], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[4], true, true)
                end
                if 屠魔大厅普通层数 > 9 then
                    for key, value in pairs(屠魔大厅精英表[屠魔大厅普通层数]) do
                        范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[math.random(1, 4)], true, true)
                    end
                end
            elseif 地图.副本节点 % 10 == 2 and 地图.存活怪物总数 == 0 then--这里是判断是否打完了怪
                地图:地图公告("你今天屠魔大厅最高挑战到".. 屠魔大厅普通层数 .. "波") -- 结算最高挑战
                local 玩家列表 = 地图:获取玩家列表()
                for i = 0, 玩家列表.Count - 1 do
                    local 玩家 = 玩家列表[i]
                    玩家.角色数据.零点数字[数字_屠魔大厅普通层数记录] = 屠魔大厅普通层数 --将人物最高层数=当前层数

                    -- 🆕 添加日程进度：逐层增加活跃度（防重复领取）
                    if not Settings.屏蔽日程 then
                        local 已领取层数 = 玩家.角色数据.零点数字[数字_屠魔大厅日程领取层数]
                        if 屠魔大厅普通层数 > 已领取层数 then
                            玩家.角色数据.日程进度.V = 玩家.角色数据.日程进度.V + 屠魔大厅活跃度表[屠魔大厅普通层数]
                            玩家:发送日程详情()
                            玩家.角色数据.零点数字[数字_屠魔大厅日程领取层数] = 屠魔大厅普通层数
                        end
                    end
                end
                屠魔大厅普通层数 = 屠魔大厅普通层数 + 1
                地图.副本节点 = 屠魔大厅普通层数 * 10
            end
        end
    end

    if 地图.数字变量[数字_屠魔大厅级别] == 1 then
        if 主程.当前时间 > 地图.节点计时 then
            if 地图.玩家列表.Count == 0 then
                地图.副本节点 = 255
            end
            if 地图.副本节点 == 0 then
                地图:地图公告("感受到了魔物聚集在周围，先在四周探索一下吧！")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 1 then
                地图:地图公告("请等待其他勇士准备完毕…")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 2 then
                地图:地图公告("感受到了魔物聚集在周围，先在四周探索一下吧！")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 3 then
                地图:地图公告("请等待其他勇士准备完毕…")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 4 then
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 5 then
                地图:地图公告("本活动为限时活动，倒计时结束或副本内怪物全部被击杀活动结束。")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(8.0)
            elseif 地图.副本节点 == 6 then
                地图:地图公告("第一波怪物马上袭来，请各位勇士全力挑战吧！")
                地图.副本节点 = 10
                屠魔秘境标准层数 = 1
                地图.节点计时 = 主程.当前时间:AddSeconds(8.0)
                local 玩家列表 = 地图:获取玩家列表()
                for i = 0, 玩家列表.Count - 1 do
                    local 玩家 = 玩家列表[i]
                    玩家:添加Buff时处理(2541, nil)
                end
            elseif 地图.副本节点 == 255 then
                地图:关闭副本()
            elseif 屠魔秘境标准层数 == 3 then
                刷新守卫从地图实例(6215, 地图, 游戏方向.下方, Point(1092, 363))
                地图.节点计时 = 主程.当前时间:AddSeconds(7200.0)
            elseif 地图.副本节点 % 10 == 0 then
                地图:地图公告("怪物将在5秒后来袭，请各位勇士备战！")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 % 10 == 1 then
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(1.0)
                local 刷新区域 = {
                    获取副本怪物区域(地图, "屠魔秘境标准-右上刷怪区域"):获取刷新范围(),
                    获取副本怪物区域(地图, "屠魔秘境标准-右下刷怪区域"):获取刷新范围(),
                    获取副本怪物区域(地图, "屠魔秘境标准-左上刷怪区域"):获取刷新范围(),
                    获取副本怪物区域(地图, "屠魔秘境标准-左下刷怪区域"):获取刷新范围(),
                }
                for key, value in pairs(屠魔秘境标准表[屠魔秘境标准层数]) do
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[1], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[2], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[3], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[4], true, true)
                end
                for key, value in pairs(屠魔秘境标准精英表[屠魔秘境标准层数]) do
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[1], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[3], true, true)
                end
            elseif 地图.副本节点 % 10 == 2 and 地图.存活怪物总数 == 0 then
                地图:地图公告("你今天屠魔大厅最高挑战到".. 屠魔秘境标准层数 .. "波")
                local 玩家列表 = 地图:获取玩家列表()
                for i = 0, 玩家列表.Count - 1 do
                    local 玩家 = 玩家列表[i]
                    玩家.角色数据.零点数字[数字_屠魔大厅标准层数记录] = 屠魔秘境标准层数
                end
                屠魔秘境标准层数 = 屠魔秘境标准层数 + 1
                地图.副本节点 = 屠魔秘境标准层数 * 10
            end
        end
    end

    if 地图.数字变量[数字_屠魔大厅级别] == 2 then
        if 主程.当前时间 > 地图.节点计时 then
            if 地图.玩家列表.Count == 0 then
                地图.副本节点 = 255
            end
            if 地图.副本节点 == 0 then
                地图:地图公告("感受到了魔物聚集在周围，先在四周探索一下吧！")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 1 then
                地图:地图公告("请等待其他勇士准备完毕…")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 2 then
                地图:地图公告("欢迎来到屠魔秘境，5分钟内清除这里的魔物即完成挑战，现在就开始挑战吧！")
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 == 3 then
                地图:地图公告("第一波怪物马上袭来，请各位勇士全力挑战吧！")
                地图.副本节点 = 10
                屠魔秘境进阶层数 = 1
                地图.节点计时 = 主程.当前时间:AddSeconds(8.0)
                local 玩家列表 = 地图:获取玩家列表()
                for i = 0, 玩家列表.Count - 1 do
                    local 玩家 = 玩家列表[i]
                    玩家:添加Buff时处理(2541, nil)
                    玩家:设置Buff时间(2541, 300000)
                end
            elseif 地图.副本节点 == 255 then
                地图:关闭副本()
            elseif 屠魔秘境进阶层数 == 3 then
                刷新守卫从地图实例(6215, 地图, 游戏方向.下方, Point(1092, 363))
                地图.节点计时 = 主程.当前时间:AddSeconds(7200.0)
            elseif 地图.副本节点 % 10 == 0 then
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(5.0)
            elseif 地图.副本节点 % 10 == 1 then
                地图.副本节点 = 地图.副本节点 + 1
                地图.节点计时 = 主程.当前时间:AddSeconds(1.0)
                local 刷新区域 = {
                    获取副本怪物区域(地图, "屠魔秘境进阶-右上刷怪区域"):获取刷新范围(),
                    获取副本怪物区域(地图, "屠魔秘境进阶-右下刷怪区域"):获取刷新范围(),
                    获取副本怪物区域(地图, "屠魔秘境进阶-左上刷怪区域"):获取刷新范围(),
                    获取副本怪物区域(地图, "屠魔秘境进阶-左下刷怪区域"):获取刷新范围(),
                }
                for key, value in pairs(屠魔秘境进阶表[屠魔秘境进阶层数]) do
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[1], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[2], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[3], true, true)
                    范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[4], true, true)
                end
                地图:地图公告("你今天屠魔大厅最高挑战到".. 屠魔秘境进阶层数 .. "波") -- 结算最高挑战 
                if 屠魔秘境进阶层数 == 1 then
                    for key, value in pairs(屠魔秘境进阶精英表[屠魔秘境进阶层数]) do
                        范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[1], true, true)
                        范围刷新怪物从地图实例(value, 地图, 0, 刷新区域[4], true, true)
                    end
                elseif 屠魔秘境进阶层数 == 2 then
                    for key, value in pairs(屠魔秘境进阶精英表[屠魔秘境进阶层数]) do
                        范围刷新怪物从地图实例(value, 地图, 0, Point(1090, 364), true, true)
                    end
                end
            elseif 地图.副本节点 % 10 == 2 and 地图.存活怪物总数 == 0 then--这里是判断是否打完了怪
                地图:地图公告("你今天屠魔大厅最高挑战到".. 屠魔秘境进阶层数 .. "波") -- 结算最高挑战 
                local 玩家列表 = 地图:获取玩家列表()
                for i = 0, 玩家列表.Count - 1 do
                    local 玩家 = 玩家列表[i]
                    玩家.角色数据.零点数字[数字_屠魔大厅进阶层数记录] = 屠魔秘境进阶层数 --将人物最高层数=当前层数
                end
                屠魔秘境进阶层数 = 屠魔秘境进阶层数 + 1
                地图.副本节点 = 屠魔秘境进阶层数 * 10
            end
        end
    end
end