require('Script.Global.Table.WeaponTable') --- 用到的都放在这 MiniGameMapType = { SoloKing = 1, -- 和平大乱斗模式 }; --- 是否随机地图 Mini_RandomMap = false; --- 整体进程 ---@type MiniGameState MiniGameState = { NON_START = 1, -- 还未开始 SELECT_GAMES = 2, -- 选择地图截断 MINI_PREPARE = 3, -- 玩法准备阶段 --MINI_GAMING = 4, -- 进入玩法游戏阶段 ROUND_PREPARE = 4, -- 回合准备阶段 ROUND_GAMING = 5, -- 回合游玩阶段 ROUND_END = 6, -- 回合结束阶段 MINI_END = 7, -- 玩法结束阶段 ENDED = 8, -- 游戏结束阶段 }; --- 小游戏的各种时间 MiniGameTimes = { Active = 1, -- 游戏激活时间,游戏激活时间结束后进入游戏阶段 Prepare = 35, -- 每个玩法准备时间 RoundPrepare = 2, -- 玩法单个回合开启时间到正式开启时间 RoundGameTime = -4 * 60, RoundEnd = 5, -- 玩法单个回合结束到下一个回合开启的时间 MiniGameEnd = 0, -- 一个玩法结束的时候到下一个小游戏或者游戏结束的时间 End = 200; -- 结束的时候执行 }; GameStateTimes = { GangUp = { SelectMapTime = 12; } } --- 玩法配置 --- 可以重写玩法的时间:在单个玩法配置中添加 MiniGameTimes = { Prepare = xxx, } 这种形式即可 MiniGameConfig = MiniGameConfig or { [MiniGameMapType.SoloKing] = { Script = "Solo", -- 会执行的代码文件 Map = { -- 按热度排序 MapName = { ['Map_SLXLC'] = 1, ['Map_SMDJ'] = 1, ['Map_HDDJ'] = 1, ['Map_JCK'] = 1, ['Map_DBL'] = 1, ['Map_SCL'] = 1, ['Map_NewYear'] = 2, ['Map_DC'] = 2, }, ShowName = "单挑王", -- 显示名称 }, --- 小游戏回合次数,如果 <= 1 表示当前游戏只支持单局,且条件为自动设置。 RoundTimes = 7, --- 初始给的武器,下面每一条都是要添加的一个初始物品 InitArmors = { [1] = EArmorType.Armor3, [2] = EHelmetType.Helmet3, [3] = EBagType.Bag1, }, InitMedication = { { "大包", 1, }, -- 10 { "绷带", 5, }, -- 2 * Num { "可乐", 3, }, -- 4 * Num }, --- 延迟一会后再给的物品 DelayWeapons = { { "手榴弹", 1, }, -- 18 { "烟雾弹", 1, }, -- 14 { "震爆弹", 1, }, -- 14 }, --- 地图新增物品 MapAddedItem = { ['Map_JCK'] = { { "燃烧瓶", 1 }, }, ['Map_DBL'] = { { "燃烧瓶", 1 }, }, ['Map_SCL'] = { { "燃烧瓶", 1 }, }, }, --- 游戏参数,会自动展开,如果想要表结构,需要再嵌套一层表 Params = { SelectWeaponCount = 7, -- 可以选择武器的个数 RespawnTime = 2, -- 玩家复活的时间,现在用不到 KillHealing = 0, -- 击杀可以回复的血量 KillTimes = 2, -- 击杀多少次当前回合 ResetTime = 3, -- 重置时间 SelectMapTime = 8, -- 选择地图时间,正式开始前这么长时间就不允许再选择了 EnableInsult = false; -- 是否开启鞭尸 DefaultWeapon = 101004, -- 默认初始武器 --- 加分方式 AddFunc = function(Diff, Current, NeedOther) local Add = 20 - Diff / 100; Add = math.ceil(Add); if Add < 5 then Add = 5; end if Add > 30 then Add = 30; end if NeedOther then if Current < 2200 then Add = Add + math.random(4, 5); elseif Current < 3000 then Add = Add + math.random(1, 2); --else -- Add = Add + math.random(0, 1); end end return Add; end, --- 扣分方式 ReduceFunc = function(Diff, Current) local Reduce = -20 + Diff / 100; Reduce = math.floor(Reduce); if Reduce > -5 then Reduce = -5 end if Reduce < -30 then Reduce = -30; end return Reduce; end, SpecialWeapon = { [EWeaponTypeNew.EWeaponTypeNew_SingleShotSniper] = { InitArmors = { [1] = EArmorType.Armor2, [2] = EHelmetType.Helmet2, }, }, [EWeaponTypeNew.EWeaponTypeNew_Crossbow] = { InitArmors = { [1] = EArmorType.Armor2, [2] = EHelmetType.Helmet2, }, }, [EWeaponTypeNew.EWeaponTypeNew_Melee] = { InitArmors = { [1] = EArmorType.Armor1, [2] = EHelmetType.Helmet1, }, }, } }; }, }; GameModeConfig = {} -- 由于顺序问题 这里不可以跳数字 GameModeConfig.EGameModeType = { DefaultMode = 1; GangUpMode = 2; -- 休闲模式 }; GameModeConfig.GameModeInfo = { [GameModeConfig.EGameModeType.DefaultMode] = { Name = "经典模式"; Feature = "·经典和平,双方武器一致。\n·武器从武器池中随机抽取。"; }, [GameModeConfig.EGameModeType.GangUpMode] = { Name = "休闲模式"; Feature = "·回合武器可自选!\n·不掉分!"; -- 时间配置 MiniGameTimes = { Active = 2, -- 游戏激活时间,游戏激活时间结束后进入游戏阶段 Prepare = 15, -- 每个玩法准备时间 RoundPrepare = 2, -- 玩法单个回合开启时间到正式开启时间 RoundEnd = 5, -- 玩法单个回合结束到下一个回合开启的时间 MiniGameEnd = 0, -- 一个玩法结束的时候到下一个小游戏或者游戏结束的时间 End = 50; -- 结束的时候执行 }, }, } return MiniGameConfig;