0
0
mirror of https://gitlab.com/YuukiPS/GC-Resources.git synced 2025-04-28 09:05:26 +00:00
GC-Resources/Resources/Scripts/Common/FleurFair_Parachute.lua
Yuuki b09934e7b9 Revert "remove local in defs"
This reverts commit 7e0a645ef33da87ddd5c402c6a64180001c6b03d.
2023-11-23 23:27:47 +08:00

236 lines
8.3 KiB
Lua

--[[
local defs = {
gallery_id = 1,
option_1 = 7,
option_2 = 2905,
gadget_final = 453012,
gadget_operator = 453001,
group_list = {133004454,133004455,133004456,133004457,133004458},
trans_pos = {x=2771,y=436,z=12},
top = 453009,
bottom = 453004,
region_list = {453004,453006,453007,453008,453009}
}
--]]
-----------------------
local Tri = {
--{ config_id = 8000001, name = "select_option", event = EventType.EVENT_SELECT_OPTION, source = "", condition = "", action = "action_select_option", trigger_count = 0 },
{ config_id = 8000002, name = "enter_region", event = EventType.EVENT_ENTER_REGION, source = "", condition = "", action = "action_enter_region", trigger_count = 0, forbid_guest = false },
{ config_id = 8000003, name = "leave_region", event = EventType.EVENT_LEAVE_REGION, source = "", condition = "condition_leave_region", action = "action_leave_region", trigger_count = 0, forbid_guest = false },
{ config_id = 8000004, name = "gadget_create", event = EventType.EVENT_GADGET_CREATE, source = "", condition = "condition_gadget_create", action = "action_gadget_create", trigger_count = 0 },
{ config_id = 8000005, name = "gallery_start", event = EventType.EVENT_GALLERY_START, source = "", condition = "", action = "action_gallery_start", trigger_count = 0},
{ config_id = 8000006, name = "gallery_stop", event = EventType.EVENT_GALLERY_STOP, source = "", condition = "", action = "action_gallery_stop", trigger_count = 0},
{ config_id = 8000007, name = "group_load", event = EventType.EVENT_GROUP_LOAD, source = "", condition = "", action = "action_group_load", trigger_count = 0}
}
local Var = {
--{name = "timer_ptr", value = 0, no_refresh = false}
}
function Initialize()
for i,v in ipairs(Tri) do
table.insert(triggers, v)
if v.name == "enter_region" or v.name == "leave_region" then
table.insert(suites[2].triggers, v.name)
else
table.insert(suites[1].triggers, v.name)
end
end
end
--[[function action_select_option(context, evt)
if evt.param1 ~= defs.gadget_operator then
return -1
end
if evt.param2 == defs.option_1 then
ScriptLib.StartGallery(context, defs.gallery_id)
return 0
elseif evt.param2 == defs.option_2 then
ScriptLib.StopGallery(context, defs.gallery_id, false)
end
return 0
end--]]
function action_enter_region(context, evt)
if context.uid == 0 then
return -1
end
local position = ScriptLib.GetPosByEntityId(context, context.target_entity_id)
for i,v in ipairs(regions) do
if math.abs(v.pos.y - position.y) <= v.size.y/2 then
return LF_SET_VISION_TYPE(context, v.config_id)
end
end
return -1
end
function condition_leave_region(context, evt)
if context.uid == 0 then
return false
end
local position = ScriptLib.GetPosByEntityId(context, context.target_entity_id)
local bottom = 0
local top = 0
for i,v in ipairs(regions) do
if v.config_id == defs.bottom then
bottom = i
end
if v.config_id == defs.top then
top = i
end
end
if position.y <= regions[bottom].pos.y - regions[bottom].size.y/2 then
return true
elseif position.y >= regions[top].pos.y + regions[top].size.y/2 then
return true
elseif math.abs(position.x - regions[top].pos.x) >= regions[top].size.x/2 then
return true
elseif math.abs(position.z - regions[bottom].pos.z) >= regions[bottom].size.z/2 then
return true
end
return false
end
function action_leave_region(context, evt)
-- 将玩家的GroupVisionType设为1
if 0 ~= ScriptLib.SetPlayerGroupVisionType(context, {context.uid}, {1}) then
return -1
end
return 0
end
function condition_gadget_create(context, evt)
if evt.param1 ~= defs.gadget_operator then
return false
end
return true
end
function action_gadget_create(context, evt)
--ScriptLib.SetGadgetEnableInteract(context, 0, defs.gadget_operator, true)
return 0
end
function action_gallery_start(context, evt)
if evt.param1 ~= defs.gallery_id then
return -1
end
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
LF_GALLERY_START(context, evt)
return 0
end
function action_gallery_stop(context, evt)
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
LF_GALLERY_STOP(context, evt)
return 0
end
function action_group_load(context, evt)
ScriptLib.CreateGadget(context, {config_id = defs.gadget_airwall})
--ScriptLib.SetGadgetEnableInteract(context, 0, defs.gadget_operator, true)
return 0
end
--------------------------
function LF_SET_VISION_TYPE(context, cid)
local layer = 0
for i,v in ipairs(defs.region_list) do
if v == cid then
layer = i
break
end
end
if layer < 1 or layer > #defs.region_list then
return -1
end
local array = {}
--[[
--常规的区间分布
for i=-1,0,1 do
if layer+i >= 1 and layer+i <= #defs.region_list then
table.insert(array,layer+i+10)
end
end
for i,v in ipairs(array) do
ScriptLib.PrintContextLog(context, "## uid = "..context.uid.." | vision = "..v)
end
--]]
if layer == 1 then
array = {11}
elseif layer >= 2 and layer < #defs.region_list then
array = {9+layer,10+layer}
elseif layer == #defs.region_list then
array = {16}
end
return ScriptLib.SetPlayerGroupVisionType(context, {context.uid}, array)
end
function LF_GALLERY_START(context, evt)
ScriptLib.RemoveEntityByConfigId(context, 0, EntityType.GADGET, defs.gadget_airwall)
--local uid_arr = ScriptLib.GetSceneUidList(context)
--ScriptLib.TransPlayerToPos(context, {uid_list=uid_arr, pos = defs.trans_pos, rot = {x=0,y=0,z=0}})
--ScriptLib.SetGadgetEnableInteract(context, 0, defs.gadget_operator, false)
ScriptLib.AddExtraGroupSuite(context, 0, 2)
-- 启动移动平台
if 0 ~= ScriptLib.StartPlatform(context, defs.gadget_final) then
return -1
end
for i,v in ipairs(defs.group_list) do
ScriptLib.AddExtraGroupSuite(context, v, 2)
end
end
function LF_GALLERY_STOP(context, evt)
ScriptLib.CreateGadget(context, {config_id = defs.gadget_airwall})
--ScriptLib.SetGadgetEnableInteract(context, 0, defs.gadget_operator, true)
ScriptLib.RemoveExtraGroupSuite(context, 0, 2)
for i,v in ipairs(defs.group_list) do
ScriptLib.RemoveExtraGroupSuite(context, v, 2)
end
local uid_list = ScriptLib.GetSceneUidList(context)
ScriptLib.SetPlayerGroupVisionType(context, uid_list, {1})
end
-------------------------------------------
function FlyBalloonDestinationScore(context)
ScriptLib.PrintContextLog(context, "## FlyBalloonDestinationScore | uid -> "..context.uid.." | source -> "..context.source_entity_id.." | target -> "..context.target_entity_id)
--ScriptLib.AddTeamEntityGlobalFloatValue(context, {context.uid}, "has_end_game", 1)
ScriptLib.UpdatePlayerGalleryScore(context, defs.gallery_id, {["trigger_gadget_id"]=70360139,["has_end_game"]=true})
return 0
end
function FlyBalloonHighScore(context)
ScriptLib.PrintContextLog(context, "## FlyBalloonHighScore | uid -> "..context.uid.." | source -> "..context.source_entity_id.." | target -> "..context.target_entity_id)
ScriptLib.UpdatePlayerGalleryScore(context, defs.gallery_id, {["trigger_gadget_id"]=70360138})
return 0
end
function FlyBalloonLowScore(context)
ScriptLib.PrintContextLog(context, "## FlyBalloonLowScore | uid -> "..context.uid.." | source -> "..context.source_entity_id.." | target -> "..context.target_entity_id)
ScriptLib.UpdatePlayerGalleryScore(context, defs.gallery_id, {["trigger_gadget_id"]=70360137})
return 0
end
function FlyBalloonLanding(context)
ScriptLib.PrintContextLog(context, "## FlyBalloonLanding | uid -> "..context.uid.." | source -> "..context.source_entity_id.." | target -> "..context.target_entity_id)
local eid = ScriptLib.GetAvatarEntityIdByUid(context, context.uid)
local pos = ScriptLib.GetPosByEntityId(context, eid)
if defs.landing_Y == nil or pos.y <= defs.landing_Y then
--ScriptLib.AddTeamEntityGlobalFloatValue(context, {context.uid}, "has_end_game", 1)
ScriptLib.UpdatePlayerGalleryScore(context, defs.gallery_id, {["has_end_game"]=true})
return 0
end
return -1
end
-------------------------------------------
Initialize()