跳至主要內容

6波怪脚本(防守)

鸵鸟工作室大约 6 分钟

提示

  • 如果你只是想用这个模板编辑自己的脚本,无需理解这个脚本
  • 复制脚本内全部内容到任意的编辑软件,修改最上面WAVE_1 = { 60, 30,200, "初" }等波数内的参数
  • 全选修改后的内容.在游戏内粘贴即可
  • 如何更换默认的出怪脚本
  • 如何复制粘贴代码

注意

  • 防守地图的默认脚本. 如果你只想只用该脚本无需复制. 直接使用默认的全局脚本即可
-- 6波怪脚本(防守) v2.0
--
-- 你可以修改Wave1~Wave6内的如下参数调整难度
-- 当然你也可以按格式增加Wave789 等等
--
-- 参数1: 延迟预警时间
-- 参数2: 开始出兵后多久开始下一波延迟预警(也就是给玩家多久击溃当前波的时间)
-- 参数3: 出兵的分数 详情参考 http://wiki.tuoniao.fun/egm/quick/cmd/cmd_send_unit.html
-- 参数4: 出什么种类的兵
-- 参数5: 提前结束奖励资源数量: 金币
-- 参数6: 提前结束奖励资源数量: 木头
-- 参数7: 提前结束奖励资源数量: 石头
-- 参数8: 提前结束奖励资源数量: 黑铁
WAVE_StartWaitTime = 200
WAVE_1 = { 60, 90, 500, "初#辅", 500, 30, 0, 0 }
WAVE_2 = { 60, 90, 700, "初#辅", 1500, 50, 0, 0 }
WAVE_3 = { 60, 80, 750, "中#辅", 1500, 50, 20, 0 }
WAVE_4 = { 60, 80, 900, "中#辅", 1500, 50, 30, 0 }
WAVE_5 = { 60, 75, 900, "中#高#辅", 2000, 50, 30, 20 }
WAVE_6 = { 60, 70, 1000, "中#高#辅", 2000, 50, 30, 20 }

-- 在等待n秒(Harass_Homebase_StartWaitTime)后开始对主基地的骚扰
-- 骚扰怪都不强,出现前没有预警提示.间隔比较短
-- 参数1: 出兵的分数
-- 参数2: 出兵的类型
-- 参数3: 间隔多久出下一波(内部是一个Random函数.也就是在给定范围内随机)
-- 参数4: 当前配置重复使用几次
Harass_Homebase_StartWaitTime = 100
Harass_Homebase_1 = { 70, "初", math.random(60, 70), 1 }
Harass_Homebase_2 = { 90, "初", math.random(60, 70), 2 }
Harass_Homebase_3 = { 120, "初", math.random(60, 70), 2 }
Harass_Homebase_4 = { 200, "初#辅", math.random(50, 60), 2 }
Harass_Homebase_5 = { 250, "初#中#辅", math.random(40, 60), 2 }
Harass_Homebase_6 = { 300, "初#中#辅", math.random(40, 60), 2 }
Harass_Homebase_7 = { 300, "初#中#辅", math.random(35, 55), 2 }
Harass_Homebase_8 = { 350, "初#中#辅", math.random(35, 55), 2 }
Harass_Homebase_9 = { 400, "初#中#辅", math.random(35, 50), 2 }
Harass_Homebase_10 = { 450, "初#中#辅", math.random(35, 50), 30 }

-- 在等待n秒(Harass_RockShop_StartWaitTime)后开始对采石场发起骚扰
-- 采石场一般在基地外围(根据地图而定),选择改目标也就是对玩家的外围或者分基地进行骚扰
-- 参数1: 出兵的分数
-- 参数2: 出兵的类型
-- 参数3: 间隔多久出下一波(内部是一个Random函数.也就是在给定范围内随机)
-- 参数4: 当前配置重复使用几次
Harass_RockShop_StartWaitTime = 600
Harass_RockShop_1 = { 100, "初#辅", math.random(70, 90), 1 }
Harass_RockShop_2 = { 150, "初#辅", math.random(70, 90), 1 }
Harass_RockShop_3 = { 150, "初#辅", math.random(70, 90), 1 }
Harass_RockShop_4 = { 200, "初#中#辅", math.random(60, 80), 1 }
Harass_RockShop_5 = { 200, "初#中#辅", math.random(60, 80), 1 }
Harass_RockShop_6 = { 250, "初#中#辅", math.random(60, 80), 1 }
Harass_RockShop_7 = { 250, "初#中#飞#辅", math.random(60, 70), 1 }
Harass_RockShop_8 = { 300, "初#中#飞#辅", math.random(60, 70), 1 }
Harass_RockShop_9 = { 300, "初#中#飞#辅", math.random(60, 70), 1 }
Harass_RockShop_10 = { 300, "初#中#飞#辅", math.random(60, 70), 30 }

-- 在等待n秒(Harass_FlyUnit_StartWaitTime)后开始对主基地派遣飞行单位
-- 参数1: 出兵的分数
-- 参数2: 出兵的类型
-- 参数3: 间隔多久出下一波(内部是一个Random函数.也就是在给定范围内随机)
-- 参数4: 当前配置重复使用几次
Harass_FlyUnit_StartWaitTime = 700
Harass_FlyUnit_1 = { 100, "飞", math.random(70, 90), 1 }
Harass_FlyUnit_2 = { 150, "飞", math.random(70, 90), 1 }
Harass_FlyUnit_3 = { 150, "飞", math.random(70, 90), 1 }
Harass_FlyUnit_4 = { 200, "飞", math.random(60, 80), 1 }
Harass_FlyUnit_5 = { 200, "飞", math.random(60, 80), 1 }
Harass_FlyUnit_6 = { 250, "飞", math.random(60, 80), 1 }
Harass_FlyUnit_7 = { 250, "飞", math.random(60, 70), 1 }
Harass_FlyUnit_8 = { 300, "飞", math.random(60, 70), 1 }
Harass_FlyUnit_9 = { 300, "飞", math.random(50, 60), 1 }
Harass_FlyUnit_10 = { 350, "飞", math.random(50, 60), 30 }


function Init()
    CMD("等待", "延迟", 2)
    CMD("对话", "NPC_Developer", "边境刺客", "欢迎使用 <color=green>脚本: 六波怪(防守)2.0</color> ")
    CMD("对话", "NPC_Developer", "边境刺客", "只要从官网wiki中复制粘贴该脚本.然后随便改改参数.<color=green>你可以做出类似的地图来哦!</color>")
    CMD("对话", "NPC_Developer", "边境刺客",
        "当前脚本一共<color=red>6波主怪</color>,最终Boss随机.期间不停的伴随着小怪来骚扰.同时中后期会开启飞行怪以及对采石场的骚扰. 所以加油吧 HOHO !")

    CMD("函数", "Start_MainWave");   --主Wave进攻怪
    CMD("函数", "Start_Harass_Homebase") --对主基地骚扰
    CMD("函数", "Start_Harass_RockShop") --对采石场骚扰(外围,分基地)
    CMD("函数", "Start_Harass_FlyUnit") --开启飞行单位
end

-- 这个函数负责开启主线进攻
-- 一共6波,然后产生最后的Boss
-- 你可以添加后续的波数,例如:
-- DoSendWave(WAVE_7)
-- DoSendWave(WAVE_8)
-- 注意: 相应的你需要在代码开头部分定义 WAVE_7,WAVE_8
function Start_MainWave()
    CMD("等待", "延迟", WAVE_StartWaitTime)

    DoSendWave(WAVE_1)
    DoSendWave(WAVE_2)
    DoSendWave(WAVE_3)
    DoSendWave(WAVE_4)
    DoSendWave(WAVE_5)
    DoSendWave(WAVE_6)

    local boss = LowAPI.GetRandomBossID()
    CMD("延迟_预警", 60, boss, false)
    CMD("出兵", "分数", 300, "初#中#辅")
    CMD("等待", "延迟", 2)
    CMD("出兵", boss, 1)
    CMD("出兵", "分数", 150, "辅")
    CMD("等待", "延迟", 3)
    CMD("出兵", "分数", 250, "中#高#辅")
    CMD("等待", "延迟", 4)
    CMD("出兵", "分数", 200, "初#中#高#辅")
end

MainWave_Count = 0
function DoSendWave(_config)
    MainWave_Count = MainWave_Count + 1
    CMD("输出",
        "<color=red>[主Wave]</color> 第<color=red>" ..
        MainWave_Count .. "</color>波 分数:" .. _config[3] .. "参数:" .. _config[4])
    CMD("延迟_预警", _config[1], "Ground", false, "Reward", _config[5], _config[6], _config[7], _config[8])
    CMD("出兵", "分数", _config[3], _config[4])
    CMD("等待", "延迟", _config[2])
end

function Reward(_shiLiID, _percent, _coin, _wood, _rock, _iron)
    CMD("奖励", "金币", math.ceil(_coin * _percent), "势力", _shiLiID)
    CMD("奖励", "木头", math.ceil(_wood * _percent), "势力", _shiLiID)
    CMD("奖励", "石头", math.ceil(_rock * _percent), "势力", _shiLiID)
    CMD("奖励", "黑铁", math.ceil(_iron * _percent), "势力", _shiLiID)
end

-- 开启对主基地的骚扰怪

function Start_Harass_Homebase()
    CMD("等待", "延迟", Harass_Homebase_StartWaitTime)

    DoSendHarass_Homebase(Harass_Homebase_1)
    DoSendHarass_Homebase(Harass_Homebase_2)
    DoSendHarass_Homebase(Harass_Homebase_3)
    DoSendHarass_Homebase(Harass_Homebase_4)
    DoSendHarass_Homebase(Harass_Homebase_5)
    DoSendHarass_Homebase(Harass_Homebase_6)
    DoSendHarass_Homebase(Harass_Homebase_7)
    DoSendHarass_Homebase(Harass_Homebase_8)
    DoSendHarass_Homebase(Harass_Homebase_9)
    DoSendHarass_Homebase(Harass_Homebase_10)
end

HarassHomebase_Count = 0
function DoSendHarass_Homebase(_config)
    HarassHomebase_Count = HarassHomebase_Count + 1
    for i = 1, _config[4], 1 do
        CMD("输出",
            "<color=yello>[骚扰-主基地]</color> 第<color=red>" ..
            HarassHomebase_Count .. "</color>波 分数: " .. _config[1] .. " 参数: " .. _config[2])
        CMD("出兵", "分数", _config[1], _config[2])
        CMD("等待", "延迟", _config[3])
    end
end

-- 开启对采石场的骚扰
function Start_Harass_RockShop()
    CMD("等待", "延迟", Harass_RockShop_StartWaitTime)

    DoSendHarass_RockShop(Harass_RockShop_1)
    DoSendHarass_RockShop(Harass_RockShop_2)
    DoSendHarass_RockShop(Harass_RockShop_3)
    DoSendHarass_RockShop(Harass_RockShop_4)
    DoSendHarass_RockShop(Harass_RockShop_5)
    DoSendHarass_RockShop(Harass_RockShop_6)
    DoSendHarass_RockShop(Harass_RockShop_7)
    DoSendHarass_RockShop(Harass_RockShop_8)
    DoSendHarass_RockShop(Harass_RockShop_9)
    DoSendHarass_RockShop(Harass_RockShop_10)
end

HarassRockShop_Count = 0
function DoSendHarass_RockShop(_config)
    HarassRockShop_Count = HarassRockShop_Count + 1
    for i = 1, _config[4], 1 do
        CMD("输出",
            "<color=orange>[骚扰-采石场]</color> 第<color=red>" ..
            HarassRockShop_Count .. "</color>波 分数:" .. _config[1] .. "参数:" .. _config[2])
        CMD("攻击目标", "标签", "采石场");
        CMD("出兵", "分数", _config[1], _config[2])
        CMD("等待", "延迟", _config[3])
    end
end

function Start_Harass_FlyUnit()
    CMD("等待", "延迟", Harass_FlyUnit_StartWaitTime)
    DoSendHarass_FlyUnit(Harass_FlyUnit_1)
    DoSendHarass_FlyUnit(Harass_FlyUnit_2)
    DoSendHarass_FlyUnit(Harass_FlyUnit_3)
    DoSendHarass_FlyUnit(Harass_FlyUnit_4)
    DoSendHarass_FlyUnit(Harass_FlyUnit_5)
    DoSendHarass_FlyUnit(Harass_FlyUnit_6)
    DoSendHarass_FlyUnit(Harass_FlyUnit_7)
    DoSendHarass_FlyUnit(Harass_FlyUnit_8)
    DoSendHarass_FlyUnit(Harass_FlyUnit_9)
    DoSendHarass_FlyUnit(Harass_FlyUnit_10)
end

HarassFlyUnit_Count = 0
function DoSendHarass_FlyUnit(_config)
    HarassFlyUnit_Count = HarassFlyUnit_Count + 1
    for i = 1, _config[4], 1 do
        CMD("输出",
            "<color=purple>[骚扰-飞行-主基地]</color> 第<color=red>" ..
            HarassFlyUnit_Count .. "</color>波 分数: " .. _config[1] .. " 参数:" .. _config[2])
        CMD("出兵", "分数", _config[1], _config[2])
        CMD("等待", "延迟", _config[3])
    end
end


上次编辑于:
贡献者: Eran