--============================================================ -- @Author: Mark(车英达) -- @E-mail: 120006937@qq.com -- @Date: 2019-10-24 19:49:21 -- @Last Modified time: 2020-12-19 18:28:06 --============================================================ local pathConfigMap = {} local config = { stageList = { --普通阶段 { liveTime = 120, --怪的数量 1:刷怪阈值 场上鱼数量小于该值会刷怪 2:大怪上限 场上大怪数量不能超过该值 numControl = { [1] = {35,4}, [2] = {45,7}, [3] = {50,7}, }, --刷怪列表 spawnList = { {ratio = 7,base = 100,monsterList = {{id=102,num=1,},}, path = "dan10",}, {ratio = 7,base = 100,monsterList = {{id=102,num=1,},}, path = "dan11",}, {ratio = 7,base = 100,monsterList = {{id=102,num=1,},}, path = "dan12",}, {ratio = 7,base = 100,monsterList = {{id=102,num=1,},}, path = "dan13",}, {ratio = 7,base = 100,monsterList = {{id=112,num=1,},}, path = "dan14",}, {ratio = 7,base = 100,monsterList = {{id=112,num=1,},}, path = "dan15",}, {ratio = 7,base = 100,monsterList = {{id=113,num=1,},}, path = "dan20",}, {ratio = 7,base = 100,monsterList = {{id=113,num=1,},}, path = "dan23",}, {ratio = 7,base = 100,monsterList = {{id=114,num=1,},}, path = "dan1",}, {ratio = 7,base = 100,monsterList = {{id=114,num=1,},}, path = "dan2",}, {ratio = 7,base = 100,monsterList = {{id=114,num=1,},}, path = "dan3",}, {ratio = 2,base = 100,monsterList = {{id=1,num=15,},{id=31,num=1,},}, path = "s4",}, {ratio = 2,base = 100,monsterList = {{id=31,num=1,},{id=1,num=18,},}, path = "s5",}, {ratio = 2,base = 100,monsterList = {{id=1,num=8,},{id=31,num=1,},{id=1,num=6,},}, path = "diffuse1_15",}, {ratio = 2,base = 100,monsterList = {{id=1,num=8,},{id=31,num=1,},{id=1,num=6,},}, path = "diffuse2_15",}, {ratio = 2,base = 100,monsterList = {{id=32,num=1,},{id=9,num=14,},}, path = "s8",}, {ratio = 2,base = 100,monsterList = {{id=32,num=1,},{id=9,num=14,},}, path = "s9",}, {ratio = 2,base = 100,monsterList = {{id=9,num=4,},{id=32,num=1,},{id=9,num=4,},}, path = "diffuse1_9",}, {ratio = 2,base = 100,monsterList = {{id=9,num=4,},{id=32,num=1,},{id=9,num=4,},}, path = "diffuse2_9",}, {ratio = 3,base = 200,monsterList = {{id=101,num=1,},}, path = "line4_1",}, {ratio = 3,base = 200,monsterList = {{id=111,num=1,},}, path = "line5_1",}, {ratio = 3,base = 200,monsterList = {{id=110,num=1,},}, path = "line6_1",}, {ratio = 3,base = 200,monsterList = {{id=109,num=1,},}, path = "line7_1",}, {ratio = 3,base = 200,monsterList = {{id=105,num=1,},}, path = "line8_1",}, {ratio = 3,base = 200,monsterList = {{id=108,num=1,},}, path = "line9_1",}, {ratio = 3,base = 200,monsterList = {{id=103,num=1,},}, path = "line10_1",}, {ratio = 3,base = 200,monsterList = {{id=104,num=1,},}, path = "line11_1",}, {ratio = 3,base = 200,monsterList = {{id=106,num=1,},}, path = "line12_1",}, {ratio = 3,base = 200,monsterList = {{id=107,num=1,},}, path = "line13_1",}, {ratio = 3,base = 200,monsterList = {{id=101,num=1,},}, path = "line16_1",}, {ratio = 3,base = 200,monsterList = {{id=111,num=1,},}, path = "line17_1",}, {ratio = 3,base = 200,monsterList = {{id=110,num=1,},}, path = "line18_1",}, {ratio = 3,base = 200,monsterList = {{id=109,num=1,},}, path = "line19_1",}, {ratio = 3,base = 200,monsterList = {{id=103,num=1,},}, path = "line20_1",}, {ratio = 3,base = 200,monsterList = {{id=104,num=1,},}, path = "line21_1",}, {ratio = 3,base = 200,monsterList = {{id=106,num=1,},}, path = "line22_1",}, {ratio = 3,base = 200,monsterList = {{id=107,num=1,},}, path = "line23_1",}, {ratio = 3,base = 200,monsterList = {{id=105,num=1,},}, path = "line24_1",}, {ratio = 3,base = 200,monsterList = {{id=108,num=1,},}, path = "line25_1",}, {ratio = 3,base = 200,monsterList = {{id=101,num=1,},}, path = "line26_1",}, {ratio = 3,base = 200,monsterList = {{id=111,num=1,},}, path = "line27_1",}, {ratio = 3,base = 200,monsterList = {{id=110,num=1,},}, path = "line28_1",}, {ratio = 3,base = 200,monsterList = {{id=109,num=1,},}, path = "line29_1",}, {ratio = 3,base = 200,monsterList = {{id=103,num=1,},}, path = "line30_1",}, {ratio = 3,base = 200,monsterList = {{id=104,num=1,},}, path = "line31_1",}, {ratio = 3,base = 200,monsterList = {{id=106,num=1,},}, path = "line32_1",}, {ratio = 3,base = 200,monsterList = {{id=107,num=1,},}, path = "line33_1",}, {ratio = 3,base = 200,monsterList = {{id=105,num=1,},}, path = "line34_1",}, {ratio = 3,base = 200,monsterList = {{id=108,num=1,},}, path = "line35_1",}, {ratio = 7,base = 100,monsterList = {{id=3000,num=1,},}, path = "XZ_Scorpion",}, {ratio = 5,base = 100,monsterList = {{id=2000,num=1,},}, path = "line3_1",}, {ratio = 1,base = 100,monsterList = {{id=1000,num=1,},}, path = "curve1_1",}, {ratio = 1,base = 100,monsterList = {{id=1000,num=1,},}, path = "line2_1",}, {ratio = 1,base = 100,monsterList = {{id=1000,num=1,},}, path = "line1_1",}, {ratio = 1,base = 100,monsterList = {{id=1000,num=1,},}, path = "line14_1",}, {ratio = 1,base = 100,monsterList = {{id=1000,num=1,},}, path = "line15_1",}, {ratio = 10,base = 100,monsterList = {{id=2,num=6,},}, path = "curve11_6",}, {ratio = 10,base = 100,monsterList = {{id=2,num=5,},}, path = "circle2_5",}, {ratio = 10,base = 100,monsterList = {{id=3,num=6,},}, path = "curve9_6",}, {ratio = 10,base = 100,monsterList = {{id=3,num=6,},}, path = "curve14_6",}, {ratio = 10,base = 100,monsterList = {{id=3,num=5,},},path = "circle3_5",}, {ratio = 10,base = 100,monsterList = {{id=3,num=5,},}, path = "circle8_5",}, {ratio = 10,base = 100,monsterList = {{id=4,num=5,},},path = "circle1_5",}, {ratio = 10,base = 100,monsterList = {{id=4,num=6,},}, path = "curve13_6",}, {ratio = 10,base = 100,monsterList = {{id=4,num=6,},}, path = "curve12_6",}, {ratio = 10,base = 100,monsterList = {{id=5,num=5,},},path = "circle5_5",}, {ratio = 10,base = 100,monsterList = {{id=5,num=6,},}, path = "curve10_6",}, {ratio = 10,base = 100,monsterList = {{id=5,num=8,},}, path = "diffuse2_8",}, {ratio = 10,base = 100,monsterList = {{id=6,num=5,},},path = "circle6_5",}, {ratio = 10,base = 100,monsterList = {{id=6,num=8,},}, path = "diffuse3_8",}, {ratio = 10,base = 100,monsterList = {{id=7,num=6,},}, path = "curve16_6",}, {ratio = 10,base = 100,monsterList = {{id=8,num=5,},}, path = "circle7_5",}, {ratio = 10,base = 100,monsterList = {{id=8,num=8,},}, path = "diffuse1_8",}, }, }, --鱼潮阶段 --{ --liveTime = 11, --numControl = { --[1] = {25,3}, --[2] = {35,4}, --[3] = {45,5}, --}, --spawnList = { --{ratio = 20,base = 100,monsterList = {{id=3,num=3,},{id=4,num=24,},{id=6,num=30,},}, path = "group1",}, --{ratio = 10,base = 100,monsterList = {{id=3,num=3,},{id=6,num=24,},{id=4,num=30,},}, path = "group2",}, --}, --}, }, --怪物互斥 mutexList = { { ["monsterList"] = {102}, ["num"] = 2, }, { ["monsterList"] = {112}, ["num"] = 2, }, { ["monsterList"] = {113,114}, ["num"] = 1, }, { ["monsterList"] = {1000,2000,3000}, ["num"] = 1, }, { ["monsterList"] = {3000}, ["num"] = 1, }, { ["monsterList"] = {31,32}, ["num"] = 1, }, }, --刷新冷却时间 不让重复刷同一波怪 SpawnCoolDown = 2, } local function flattenMonsterList( monsterList ) ret = {} for i,group in ipairs(monsterList) do for i=1,group.num do table.insert(ret, group.id) end end return ret end local function flattenFishPathList( pathConfig ) local delayTime = 0 local ret = {} for stepIndex,step in ipairs(pathConfig) do --第一组怪即时刷出,time不起作用 if stepIndex > 1 then delayTime = delayTime + step.time end for roadIndex,road in ipairs(step.roadList) do table.insert(ret, {dotList = road.dotList, delayTime=delayTime,stepIndex = stepIndex, roadIndex=roadIndex}) end end return ret end local function loadPathConfig( ) local rawConfig = require "path_config" for k,v in pairs(rawConfig) do pathConfigMap[k] = flattenFishPathList(v) end end --获取全部配置 function getCreateMonsterConfig5( ) loadPathConfig() for i,stage in ipairs(config.stageList) do local tmpSpawn = {} for i,spawn in ipairs(stage.spawnList) do if pathConfigMap[spawn.path] == nil then error(string.format("path %s config not exist", spawn.path)) end spawn.pathList = pathConfigMap[spawn.path] spawn.monsterList = flattenMonsterList(spawn.monsterList) end end return config end