无限出怪脚本(防守)
大约 3 分钟
- 这是
无限出怪脚本
的一个模板 - 脚本参数通无限出怪脚本(TD),只是去除了
爆哥
.并且增加了间隔时间
脚本
提示
- 在游戏内嵌的浏览器
- 如需要复制代码 请使用任意浏览器打开我们Wiki的官网 https://wiki.tuoniao.fun
BOSS_ROUND = 5 --间隔多久出一次Boss
LEVEL_INCREASS_PER_WAVE = 100 --20波以后每次递增多少分数 比如20波是2000分,这里填100,21波就是2100分
function Init(...)
LowAPI.WinLose_Disable(4); --击杀Boss后不判定胜利
LowAPI.WinLose_Disable(2); --Boss进入金矿后不判定失败
CMD("等待", "延迟", 2)
CMD("对话", "NPC_KingSoldier", "士兵长", "哥布林大军即将从四个方向袭来. 准备防守!")
CMD("对话", "NPC_KingSoldier", "士兵长", "你有<color=green>60秒</color>的准备时间")
CMD("等待", "延迟", 10)
CMD("对话", "NPC_KingSoldier", "士兵长", "准备开始喽")
CMD("函数", "LoopGen")
end
NOW_LOOP_COUNT = 0;
NOW_BOSS_COUNT = 0;
function LoopGen()
NOW_LOOP_COUNT = NOW_LOOP_COUNT + 1
CMD("对话", "NPC_KingSoldier", "士兵长", "第<color=red>" .. NOW_LOOP_COUNT .. "</color>波敌人来袭!")
CMD("奖励", "金币", 600)
--检测当前循环波数是否能整除BOSS_ROUND内指定的数比如10
--能整除就是Boss波,不能整除就是普通波
if NOW_LOOP_COUNT % BOSS_ROUND == 0 then
LoopGen_Boss();
else
LoopGen_Normal();
end
CMD("等待", "延迟", 45)
CMD("函数", "LoopGen")
end
function LoopGen_Normal()
--每次重置传送门
CMD("出兵位置", "默认")
if NOW_LOOP_COUNT <= 7 then
CMD("延迟_预警", 60, "ground", false)
CMD("出兵", "分数", math.random(200, 300), "初#辅")
return;
elseif NOW_LOOP_COUNT <= 15 then
CMD("延迟_预警", 60, "ground", false)
CMD("出兵", "分数", math.random(400, 500), "中#辅")
return;
else
-- 10波以后 不再给钱 都靠爆哥
-- 爆哥数量随着波数每次 +1
-- 按波数递增怪的分数
-- 最低分: 2000 + (波数-20) * 100(LEVEL_INCREASS_PER_WAVE)
-- 最高分: 2500 + (波数-20) * 100(LEVEL_INCREASS_PER_WAVE)
local num = math.max(1, NOW_LOOP_COUNT - 15);
local min = 400 + math.ceil(num * LEVEL_INCREASS_PER_WAVE);
local max = 500 + math.ceil(num * LEVEL_INCREASS_PER_WAVE);
local score = math.random(min, max);
CMD("延迟_预警", 60, "ground", false)
CMD("出兵", "分数", score, "中#高#辅")
return;
end
end
function LoopGen_Boss()
NOW_BOSS_COUNT = NOW_BOSS_COUNT + 1;
--前5个Boss一个配置
--5~10波另外一个配置
if NOW_BOSS_COUNT <= 2 then
local boss = LowAPI.GetRandomBossID()
CMD("延迟_预警", 60, boss, false)
CMD("出兵", "分数", 150, "初#辅")
CMD("等待", "延迟", 1)
CMD("出兵", "分数", 150, "初")
CMD("等待", "延迟", 2)
CMD("出兵", "分数", 200, "中#辅")
CMD("等待", "延迟", 2)
CMD("出兵", "分数", 200, "初#中#辅")
CMD("等待", "延迟", 5)
CMD("出兵", boss, 1, "Boss")
return;
elseif NOW_BOSS_COUNT <= 4 then
local boss = LowAPI.GetRandomBossID()
CMD("延迟_预警", 80, boss, false)
CMD("出兵", "分数", 100, "初#中#辅")
CMD("等待", "延迟", 1)
CMD("出兵", "分数", 100, "中#辅")
CMD("等待", "延迟", 2)
CMD("出兵", boss, 1, "Boss")
local boss2 = LowAPI.GetRandomBossID()
CMD("出兵", "分数", 100, "中#高#辅")
CMD("等待", "延迟", 2)
CMD("出兵", "分数", 100, "初#中#高#辅")
CMD("等待", "延迟", 3)
CMD("出兵", boss2, 1, "Boss")
return;
else
local num = math.max(1, NOW_LOOP_COUNT - 20);
local min = 600 + math.ceil(num * LEVEL_INCREASS_PER_WAVE);
local max = 700 + math.ceil(num * LEVEL_INCREASS_PER_WAVE);
local score = math.random(min, max);
--首个Boss.相应的ID用于延迟预警的Icon
local boss = LowAPI.GetRandomBossID()
CMD("延迟_预警", 90, boss, false)
CMD("出兵", "分数", score, "中#高#辅")
CMD("等待", "延迟", 2)
CMD("出兵", boss, 1, "Boss")
--其余要出的Boss用循环
local bornBossNum = math.max(2, NOW_BOSS_COUNT - 3);
for i = 1, bornBossNum, 1 do
CMD("出兵", "分数", score, "中#高#辅")
CMD("等待", "延迟", 1)
local boss = LowAPI.GetRandomBossID()
CMD("出兵", boss, 1, "Boss")
CMD("等待", "延迟", 2)
end
end
end
function Reward(_shiLiID, _percent, _customArg)
CMD("奖励", "金币", math.ceil(_customArg * _percent), "势力", _shiLiID)
end
function OnWin(_shiLiID) ---出现胜利界面
return true; --阻止弹出胜利界面
end