mirror of
https://gitlab.com/YuukiPS/GC-Resources.git
synced 2025-04-28 09:05:26 +00:00
231 lines
9.3 KiB
Lua
231 lines
9.3 KiB
Lua
--[[
|
|
defs = {
|
|
gallery_id = 1,
|
|
gadget_entry = 1,
|
|
balloon_clear_state = 202,
|
|
suite_clear_index = 10,
|
|
random_time_axis = {10,20,30},
|
|
random_clear_time_axis = {7,17,27,37},
|
|
static_start_suite = 2,
|
|
static_suite_list = {3,4,5},
|
|
static_time_axis = {10,20,30},
|
|
static_clear_time_axis = {7,17,27,37},
|
|
}
|
|
|
|
local balloon_config = {
|
|
{ gadget_id = xxx, min = xxx, max = xxx},
|
|
{ gadget_id = xxx, min = xxx, max = xxx}
|
|
}
|
|
|
|
local point_array_defs = {
|
|
[1] = {point_array_id = 1, point_id_list = {}, route_type = 2},
|
|
[2] = {point_array_id = 2, point_id_list = {}, route_type = 1}
|
|
}
|
|
--]]
|
|
-----------------------
|
|
local Tri = {
|
|
{name = "time_axis_pass", config_id = 800001, event = EventType.EVENT_TIME_AXIS_PASS, source = "", condition = "", action = "action_time_axis_pass", trigger_count = 0},
|
|
{name = "gallery_start", config_id = 800002, event = EventType.EVENT_GALLERY_START, source = "", condition = "", action = "action_gallery_start", trigger_count = 0},
|
|
{name = "gallery_stop", config_id = 800003, event = EventType.EVENT_GALLERY_STOP, source = "", condition = "", action = "action_gallery_stop", trigger_count = 0},
|
|
{name = "group_will_unload", config_id = 800004, event = EventType.EVENT_GROUP_WILL_UNLOAD, source = "", condition = "", action = "action_group_will_unload", trigger_count = 0},
|
|
{name = "enter_region", config_id = 800005,event = EventType.EVENT_ENTER_REGION, source = "", condition = "", action = "action_enter_region", trigger_count = 0, forbid_guest = false }
|
|
}
|
|
|
|
local Var = {
|
|
--{name = "is_in_gallery", value = 0, no_refresh = false}
|
|
}
|
|
|
|
function Initialize()
|
|
for i,v in ipairs(Tri) do
|
|
table.insert(triggers, v)
|
|
table.insert(suites[1].triggers, v.name)
|
|
end
|
|
local suite_sum = #suites
|
|
suites[suite_sum+1] = {monsters={},gadgets={},regions={},triggers={},rand_weight=0}
|
|
for i=1,balloon_config[1].max do
|
|
local temp_gadget = {config_id = 1000000+i, gadget_id=balloon_config[1].gadget_id, level=1, pos = gadgets[defs.gadget_entry].pos, rot = gadgets[defs.gadget_entry].rot, area_id = gadgets[defs.gadget_entry].area_id}
|
|
gadgets[temp_gadget.config_id] = temp_gadget
|
|
table.insert(suites[suite_sum+1].gadgets, temp_gadget.config_id)
|
|
end
|
|
suites[suite_sum+2] = {monsters={},gadgets={},regions={},triggers={},rand_weight=0}
|
|
for i=1,balloon_config[2].max do
|
|
local temp_gadget = {config_id = 1000000+balloon_config[1].max+i, gadget_id=balloon_config[2].gadget_id, level=1, pos = gadgets[defs.gadget_entry].pos, rot = gadgets[defs.gadget_entry].rot, area_id = gadgets[defs.gadget_entry].area_id}
|
|
gadgets[temp_gadget.config_id] = temp_gadget
|
|
table.insert(suites[suite_sum+2].gadgets, temp_gadget.config_id)
|
|
end
|
|
local garbages = {gadgets={}}
|
|
for i=1,10 do
|
|
garbages.gadgets[i] = {config_id=100000+i}
|
|
end
|
|
end
|
|
|
|
function action_time_axis_pass(context, evt)
|
|
if evt.source_name == "static" then
|
|
LF_CREATE_NEXT_STATIC_BALLOON(context, evt.param1)
|
|
elseif evt.source_name == "random" then
|
|
LF_CREATE_NEXT_RANDOM_BALLOON(context, evt.param1)
|
|
elseif evt.source_name == "random_clear" then
|
|
LF_CLEAR_CUR_RANDOM_BALLOON(context, evt.param1)
|
|
elseif evt.source_name == "static_clear" then
|
|
LF_CLEAR_CUR_STATIC_BALLOON(context, evt.param1)
|
|
end
|
|
return 0
|
|
end
|
|
|
|
function action_gallery_start(context, evt)
|
|
ScriptLib.PrintContextLog(context, "------------- version 8 --------------")
|
|
--ScriptLib.GetGroupVariableValue(context, "timer_ptr")
|
|
if evt.param1 ~= defs.gallery_id then
|
|
return -1
|
|
end
|
|
ScriptLib.SetGroupTempValue(context, "is_in_gallery", 1, {})
|
|
local act_time = ScriptLib.GetActivityOpenAndCloseTimeByScheduleId(context, 2003001)
|
|
local cur_time = ScriptLib.GetServerTime(context)
|
|
if cur_time >= act_time[1] and cur_time < act_time[2] - 86400*7 then
|
|
ScriptLib.SetGroupGadgetStateByConfigId(context, defs.operator_group_id, defs.gadget_operator, 901)
|
|
end
|
|
local uid_list = ScriptLib.GetSceneUidList(context)
|
|
ScriptLib.SetPlayerGroupVisionType(context, uid_list, {0})
|
|
LF_CREATE_NEXT_RANDOM_BALLOON(context, 0)
|
|
LF_CREATE_NEXT_STATIC_BALLOON(context, 0)
|
|
ScriptLib.InitTimeAxis(context, "random", defs.random_time_axis, false)
|
|
ScriptLib.InitTimeAxis(context, "random_clear", defs.random_clear_time_axis, false)
|
|
ScriptLib.InitTimeAxis(context, "static", defs.static_time_axis, false)
|
|
ScriptLib.InitTimeAxis(context, "static_clear", defs.static_clear_time_axis, false)
|
|
return 0
|
|
end
|
|
|
|
function action_gallery_stop(context, evt)
|
|
if evt.param1 ~= defs.gallery_id then
|
|
return -1
|
|
end
|
|
ScriptLib.SetGroupTempValue(context, "is_in_gallery", 0, {})
|
|
local act_time = ScriptLib.GetActivityOpenAndCloseTimeByScheduleId(context, 2003001)
|
|
local cur_time = ScriptLib.GetServerTime(context)
|
|
if cur_time >= act_time[1] and cur_time < act_time[2] - 86400*7 then
|
|
ScriptLib.SetGroupGadgetStateByConfigId(context, defs.operator_group_id, defs.gadget_operator, 0)
|
|
end
|
|
ScriptLib.EndTimeAxis(context, "random")
|
|
ScriptLib.EndTimeAxis(context, "random_clear")
|
|
ScriptLib.EndTimeAxis(context, "static")
|
|
ScriptLib.EndTimeAxis(context, "random_clear")
|
|
ScriptLib.RemoveExtraGroupSuite(context, 0, defs.suite_clear_index)
|
|
local uid_list = ScriptLib.GetSceneUidList(context)
|
|
ScriptLib.SetPlayerGroupVisionType(context, uid_list, {1})
|
|
return 0
|
|
end
|
|
|
|
function action_group_will_unload(context, evt)
|
|
local uid_list = ScriptLib.GetSceneUidList(context)
|
|
ScriptLib.SetPlayerGroupVisionType(context, uid_list, {1})
|
|
return 0
|
|
end
|
|
|
|
function action_enter_region(context, evt)
|
|
if 1 == ScriptLib.GetGroupTempValue(context, "is_in_gallery", {}) then
|
|
local uid_list = ScriptLib.GetSceneUidList(context)
|
|
ScriptLib.SetPlayerGroupVisionType(context, uid_list, {0})
|
|
end
|
|
return 0
|
|
end
|
|
-----------------------------------
|
|
|
|
function LF_CREATE_NEXT_STATIC_BALLOON(context, wave)
|
|
ScriptLib.PrintContextLog(context, "## balloon_log : wave="..wave)
|
|
local balloons = {}
|
|
if wave == 0 then
|
|
balloons = suites[defs.static_start_suite].gadgets
|
|
ScriptLib.AddExtraGroupSuite(context, 0, defs.static_start_suite)
|
|
else
|
|
balloons = suites[defs.static_suite_list[wave]].gadgets
|
|
--防止策划配错,强制移除
|
|
ScriptLib.RemoveExtraGroupSuite(context, 0, defs.static_suite_list[wave])
|
|
ScriptLib.AddExtraGroupSuite(context, 0, defs.static_suite_list[wave])
|
|
end
|
|
ScriptLib.PrintContextLog(context, "## balloon_log : #balloons="..#balloons)
|
|
|
|
--调整蛋道
|
|
for i,v in ipairs(balloons) do
|
|
if point_array_defs[v] ~= nil then
|
|
local ret = ScriptLib.SetPlatformPointArray(context, v, point_array_defs[v].point_array_id, point_array_defs[v].point_id_list, {route_type = point_array_defs[v].route_type})
|
|
ScriptLib.PrintContextLog(context, "## balloon_log : i->"..i.." | ret->"..ret)
|
|
end
|
|
end
|
|
end
|
|
|
|
function LF_CREATE_NEXT_RANDOM_BALLOON(context, wave)
|
|
local balloons = {}
|
|
math.randomseed(ScriptLib.GetServerTime(context)+wave)
|
|
local g1_r = math.random(balloon_config[1].min, balloon_config[1].max)
|
|
local g2_r = math.random(balloon_config[2].min, balloon_config[2].max)
|
|
ScriptLib.PrintContextLog(context, "## balloon_log : g1_r="..g1_r.." | g2_r="..g2_r)
|
|
for i=1,g1_r do
|
|
table.insert(balloons, suites[#suites-1].gadgets[i])
|
|
end
|
|
for i=1,g2_r do
|
|
table.insert(balloons, suites[#suites].gadgets[i])
|
|
end
|
|
ScriptLib.PrintContextLog(context, "## balloon_log : #balloons="..#balloons)
|
|
--随机选一组points作为气球创建点
|
|
local random_points = {}
|
|
for k,v in pairs(points) do
|
|
if v.isRandom == 1 then
|
|
table.insert(random_points, k)
|
|
end
|
|
end
|
|
ScriptLib.PrintContextLog(context, "## balloon_log : #random_points="..#random_points)
|
|
local uid_list = ScriptLib.GetSceneUidList(context)
|
|
local host_uid = uid_list[1]
|
|
local seed = ScriptLib.GetServerTime(context)%host_uid
|
|
ScriptLib.PrintContextLog(context, "## balloon_log : seed="..seed)
|
|
for k,v in pairs(balloons) do
|
|
local temp = seed%#random_points + 1
|
|
ScriptLib.PrintContextLog(context, "## balloon_log : temp="..temp)
|
|
ScriptLib.PrintContextLog(context, "## balloon_log : v="..v.." | random_points="..random_points[temp])
|
|
ScriptLib.CreateGadgetByConfigIdByPos(context, v, points[random_points[temp]].pos, points[random_points[temp]].rot)
|
|
table.remove(random_points, temp)
|
|
end
|
|
end
|
|
|
|
function LF_CLEAR_CUR_STATIC_BALLOON(context, wave)
|
|
if wave == 1 then
|
|
for i,v in ipairs(suites[defs.static_start_suite].gadgets) do
|
|
ScriptLib.SetGroupGadgetStateByConfigId(context, 0, v, defs.balloon_clear_state)
|
|
end
|
|
else
|
|
for i,v in ipairs(suites[defs.static_suite_list[wave - 1]].gadgets) do
|
|
ScriptLib.SetGroupGadgetStateByConfigId(context, 0, v, defs.balloon_clear_state)
|
|
end
|
|
end
|
|
end
|
|
|
|
function LF_CLEAR_CUR_RANDOM_BALLOON(context, wave)
|
|
for i,v in ipairs(suites[#suites-1].gadgets) do
|
|
ScriptLib.SetGroupGadgetStateByConfigId(context, 0, v, defs.balloon_clear_state)
|
|
end
|
|
for i,v in ipairs(suites[#suites].gadgets) do
|
|
ScriptLib.SetGroupGadgetStateByConfigId(context, 0, v, defs.balloon_clear_state)
|
|
end
|
|
end
|
|
---------------------------------
|
|
function ShootBalloonHighScore(context)
|
|
ScriptLib.UpdatePlayerGalleryScore(context, defs.gallery_id, {["trigger_gadget_id"]=70350174})
|
|
return 0
|
|
end
|
|
|
|
function ShootBalloonLowScore(context)
|
|
ScriptLib.UpdatePlayerGalleryScore(context, defs.gallery_id, {["trigger_gadget_id"]=70350173})
|
|
return 0
|
|
end
|
|
|
|
function ShootBalloonSubScore(context)
|
|
ScriptLib.UpdatePlayerGalleryScore(context, defs.gallery_id, {["trigger_gadget_id"]=70350175})
|
|
return 0
|
|
end
|
|
|
|
function ShootBalloonBombScore(context)
|
|
ScriptLib.UpdatePlayerGalleryScore(context, defs.gallery_id, {["trigger_gadget_id"]=70350172})
|
|
return 0
|
|
end
|
|
---------------------------------
|
|
Initialize() |