mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-06 13:12:26 +08:00
115 lines
5.8 KiB
Go
115 lines
5.8 KiB
Go
--s1为空,s2往后自动引用为怪物潮
|
|
--[[
|
|
tide_defs = {
|
|
[1] = { sum = 40, min = 8, max = 12},
|
|
[2] = { sum = 40, min = 8, max = 12},
|
|
[3] = { sum = 40, min = 8, max = 12},
|
|
}
|
|
|
|
local guide_point_list=
|
|
{
|
|
[1]={1006,1007,1008,1009,1010,1011},
|
|
[2]={1012,1013,1014,1015,1016,1017},
|
|
}
|
|
|
|
|
|
local monster_tide_defs={
|
|
[1]={{monster_package={1001,1002,1003},route={1,2,2},route_points={{1,2,3,4},{1,2,3},{1,2,3,4,5}},speed={1,1,2},tags={1,2,3},count=100,max=6,min=5},{monster_package={1001,1002,1003},route={1,2,3},route_points={{1,2,3,4},{1,2,3},{1,2,3,4,5}},speed={1,1,2},tags={1,2,3},count=100,max=6,min=5}},
|
|
[2]={{monster_package={1001,1002,1003},route={1,2,2},route_points={{1,2,3,4},{1,2,3},{1,2,3,4,5}},speed={1,1,2},tags={1,2,3},count=100,max=6,min=5},{monster_package={1001,1002,1003},route={1,2,3},route_points={{1,2,3,4},{1,2,3},{1,2,3,4,5}},speed={1,1,2},tags={1,2,3},count=100,max=6,min=5}},
|
|
[3]={{monster_package={1001,1002,1003},route={1,2,2},route_points={{1,2,3,4},{1,2,3},{1,2,3,4,5}},speed={1,1,2},tags={1,2,3},count=100,max=6,min=5},{monster_package={1001,1002,1003},route={1,2,3},route_points={{1,2,3,4},{1,2,3},{1,2,3,4,5}},speed={1,1,2},tags={1,2,3},count=100,max=6,min=5}},
|
|
[4]={{monster_package={1001,1002,1003},route={1,2,2},route_points={{1,2,3,4},{1,2,3},{1,2,3,4,5}},speed={1,1,2},tags={1,2,3},count=100,max=6,min=5},{monster_package={1001,1002,1003},route={1,2,3},route_points={{1,2,3,4},{1,2,3},{1,2,3,4,5}},speed={1,1,2},tags={1,2,3},count=100,max=6,min=5}}
|
|
}
|
|
]]--
|
|
function LF_Init_Monster_Group()
|
|
t1 = { config_id = 8000001, name = "monster_die", event = EventType.EVENT_ANY_MONSTER_DIE, source = "", condition = "", action = "action_monster_die", trigger_count = 0 }
|
|
-- t2 = { config_id = 8000002, name = "monster_tide_over", event = EventType.EVENT_MONSTER_TIDE_OVER, source = "", condition = "", action = "action_monster_tide_over", trigger_count = 0}
|
|
for i,v in ipairs(suites) do
|
|
table.insert(v.triggers, t1.name)
|
|
-- table.insert(v.triggers, t2.name)
|
|
end
|
|
table.insert(triggers, t1)
|
|
-- table.insert(triggers, t2)
|
|
table.insert(variables, { config_id=50000001,name = "tide_ptr", value = 0})
|
|
table.insert(variables, { config_id=50000002,name = "challenge_group", value = 0})
|
|
local leftMonsters=0
|
|
for i=1,#tide_defs do
|
|
for j=1,#tide_defs[i] do
|
|
leftMonsters=leftMonsters+tide_defs[i][j].sum
|
|
end
|
|
end
|
|
table.insert(variables, { config_id=50000003, name = "left_monsters", value = leftMonsters})
|
|
end
|
|
|
|
local gear_group_id = defs.gear_group_id or 0
|
|
|
|
function action_monster_die(context, evt)
|
|
--ScriptLib.PrintContextLog(context, "--------------- award_points ------------")
|
|
--ScriptLib.ExecuteGroupLua(context, gear_group_id, "award_points", {monsters[evt.param1].kill_score or 10})
|
|
ScriptLib.ExecuteGroupLua(context, ScriptLib.GetGroupVariableValue(context, "challenge_group"), "del_monster_number", {0})
|
|
if ScriptLib.GetGroupMonsterCount(context) == 0 then
|
|
monster_tide_over(context)
|
|
end
|
|
|
|
return 0
|
|
end
|
|
|
|
function MonsterArrive(context)
|
|
local entityId=context.target_entity_id
|
|
ScriptLib.PrintContextLog(context, "TowerDefenseMonsterArrive"..context.target_entity_id)
|
|
for k,v in pairs(monsters) do
|
|
if ScriptLib.GetEntityIdByConfigId(context, v.config_id)==entityId then
|
|
ScriptLib.RemoveEntityByConfigId(context, defs.group_id, EntityType.MONSTER, v.config_id)
|
|
ScriptLib.ExecuteGroupLua(context, ScriptLib.GetGroupVariableValue(context, "challenge_group"), "monster_escaped", {0})
|
|
ScriptLib.ExecuteGroupLua(context, ScriptLib.GetGroupVariableValue(context, "challenge_group"), "del_monster_number", {0})
|
|
if ScriptLib.GetGroupMonsterCount(context) == 0 then
|
|
monster_tide_over(context)
|
|
end
|
|
return 0
|
|
end
|
|
end
|
|
return 0
|
|
end
|
|
|
|
|
|
--启动此group的初始怪物潮
|
|
function start_tide(context, prev_context, param1, param2, param3)
|
|
ScriptLib.SetGroupVariableValue(context, "tide_ptr", 1)
|
|
ScriptLib.SetGroupVariableValue(context, "challenge_group", param1)
|
|
local monstersLeft=ScriptLib.GetGroupVariableValue(context, "left_monsters")
|
|
ScriptLib.ExecuteGroupLua(context, ScriptLib.GetGroupVariableValue(context, "challenge_group"), "set_monster_number", {monstersLeft})
|
|
for i=1,#tide_defs[1] do
|
|
ScriptLib.AutoMonsterTide(context, 100+i, defs.group_id, suites[tide_defs[1][i].suite].monsters, tide_defs[1][i].sum , tide_defs[1][i].min , tide_defs[1][i].max )
|
|
end
|
|
--ScriptLib.AutoMonsterTide(context, 100, defs.group_id, suites[2].monsters, tide_defs[2].sum or tide_defs[1].sum, tide_defs[2].min or tide_defs[1].min, tide_defs[2].max or tide_defs[1].max)
|
|
return 0
|
|
end
|
|
|
|
function monster_tide_over(context)
|
|
ScriptLib.PrintContextLog(context, "## monster_tide_over")
|
|
local tide = ScriptLib.GetGroupVariableValue(context, "tide_ptr")
|
|
if tide >= #tide_defs then
|
|
local challenge_group = ScriptLib.GetGroupVariableValue(context, "challenge_group")
|
|
ScriptLib.PrintContextLog(context, "## challenge_group = "..challenge_group)
|
|
ScriptLib.ExecuteGroupLua(context, challenge_group, "tide_done", {0})
|
|
ScriptLib.PrintContextLog(context, "## TD_LOG : Group Monster Tide End -> "..defs.group_id)
|
|
return 0
|
|
end
|
|
--tide自然结束,开启下一tide
|
|
--if evt.param1 == 0 then
|
|
tide = tide+1
|
|
for i=1,#tide_defs[tide] do
|
|
ScriptLib.AutoMonsterTide(context, 100*tide+i, defs.group_id, suites[tide_defs[tide][i].suite].monsters, tide_defs[tide][i].sum , tide_defs[tide][i].min , tide_defs[tide][i].max )
|
|
end
|
|
--ScriptLib.AutoMonsterTide(context, 100, defs.group_id, suites[tide].monsters, tide_defs[tide].sum or tide_defs[1].sum, tide_defs[tide].min or tide_defs[1].min, tide_defs[tide].max or tide_defs[1].max)
|
|
ScriptLib.SetGroupVariableValue(context, "tide_ptr", tide)
|
|
return 0
|
|
--else ScriptLib.PrintContextLog(context, "## TD_LOG : Group Monster Tide Force Stop -> "..defs.group_id.." | tide_id = "..tide)
|
|
--end
|
|
--return 0
|
|
end
|
|
|
|
function fix_gear(context, prev_context, param1, param2, param3)
|
|
ScriptLib.ExecuteGroupLua(context, defs.gear_group_id, "fix_gear", {param1})
|
|
end
|
|
|
|
LF_Init_Monster_Group() |