185 lines
5.4 KiB
Lua
185 lines
5.4 KiB
Lua
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; |