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

196 lines
7.6 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--[[
local defs = {
timer_region = 1,
challenge_region = 2,
monster_hilichurl = 3,
exist_hour = {0,6},
}
--]]
local Tri = {
[1] = { name = "enter_region", config_id = 8000001, event = EventType.EVENT_ENTER_REGION, source = "", condition = "", action = "action_enter_region", trigger_count = 0, forbid_guest = false },
[2] = { name = "leave_region", config_id = 8000002, event = EventType.EVENT_LEAVE_REGION, source = "", condition = "", action = "action_leave_region", trigger_count = 0, forbid_guest = false },
[3] = { name = "hilichurl_die", config_id = 8000003, event = EventType.EVENT_ANY_MONSTER_DIE, source = "", condition = "", action = "action_hilichurl_die", trigger_count = 0, tag = "950" },
[4] = { name = "time_axis_pass", config_id = 8000004, event = EventType.EVENT_TIME_AXIS_PASS, source = "Loop", condition = "", action = "action_time_axis_pass", trigger_count = 0 },
[5] = { name = "variable_change", config_id = 8000005, event = EventType.EVENT_VARIABLE_CHANGE, source = "hili_die", condition = "", action = "action_variable_change", trigger_count = 0 },
[6] = { name = "set_game_time", config_id = 8000006, event = EventType.EVENT_SET_GAME_TIME, source = "", condition = "", action = "action_set_game_time", trigger_count = 0 },
[7] = { name = "group_load", config_id = 8000007, event = EventType.EVENT_GROUP_LOAD, source = "", condition = "", action = "action_group_load", trigger_count = 0 },
[8] = { name = "group_will_unload", config_id = 8000008, event = EventType.EVENT_GROUP_WILL_UNLOAD, source = "", condition = "", action = "action_group_will_unload", trigger_count = 0},
[9] = { name = "hp_change", config_id = 8000009, event = EventType.EVENT_SPECIFIC_MONSTER_HP_CHANGE, source = tostring(defs.monster_hilichurl), condition = "", action = "action_hp_change", trigger_count = 0 },
--[10]= { name = "var_print", config_id = 8000010, event = EventType.EVENT_VARIABLE_CHANGE, source = "", condition = "", action = "action_var_print", trigger_count = 0 }
}
local Var = {
[1] = { config_id=50000001,name = "hili_die", value = 0, no_refresh = false }
}
function Initialize()
for k,v in pairs(Tri) do
table.insert(triggers, v)
table.insert(suites[1].triggers, v.name)
end
table.insert(variables, Var[1])
end
---------------------------------
function action_enter_region(context, evt)
if evt.param1 == defs.challenge_region then
--做一个challenge唯一的保护
if ScriptLib.GetGroupTempValue(context, "in_challenge", {}) == 0 then
local ret = ScriptLib.ActiveChallenge(context, 234, 234, 1, 950, 1, 0)
ScriptLib.PrintContextLog(context, "## Hilichurl : hili challenge ret = "..ret)
ScriptLib.SetGroupTempValue(context, "in_challenge", 1, {})
end
elseif evt.param1 == defs.timer_region then
ScriptLib.InitTimeAxis(context, "Loop", {5}, true)
end
return 0
end
function action_leave_region(context, evt)
if evt.param1 == defs.challenge_region then
if ScriptLib.GetRegionEntityCount(context, { region_eid = evt.source_eid, entity_type = EntityType.AVATAR }) == 0 then
ScriptLib.SetGroupTempValue(context, "in_challenge", 0, {})
ScriptLib.StopChallenge(context, 234, 0)
end
elseif evt.param1 == defs.timer_region then
ScriptLib.EndTimeAxis(context, "Loop")
end
return 0
end
function action_hilichurl_die(context, evt)
if evt.param1 ~= defs.monster_hilichurl then
return -1
end
ScriptLib.PrintContextLog(context, "## Hilichurl : boss_die_type = "..evt.param2)
--仅大伟丘正常死亡才计数
if evt.param2 == 0 then
ScriptLib.SetGroupTempValue(context, "in_challenge", 0, {})
local ret = ScriptLib.ChangeGroupVariableValue(context, "hili_die", 1)
ScriptLib.PrintContextLog(context, "## Hilichurl : die_count_result = "..ret)
ScriptLib.RemoveExtraGroupSuite(context, 0, 2)
ScriptLib.RemoveExtraGroupSuite(context, 0, 3)
return 0
elseif evt.param2 == 2 then
--大伟丘逃跑的处理
ScriptLib.SetGroupTempValue(context, "Exist", 0, {})
ScriptLib.SetGroupTempValue(context, "in_challenge", 0, {})
ScriptLib.StopChallenge(context, 234, 0)
ScriptLib.RemoveExtraGroupSuite(context, 0, 2)
ScriptLib.RemoveExtraGroupSuite(context, 0, 3)
end
return -1
end
function action_time_axis_pass(context, evt)
local time = ScriptLib.GetGameHour(context)
ScriptLib.PrintContextLog(context, "## Hilichurl : game hour = "..time)
LF_Handle_Monster_Hilichurl(context)
return 0
end
--通过变量通知挑战是否完成
function action_variable_change(context, evt)
if evt.param1 == evt.param2 + 1 then
ScriptLib.FinishFindHilichurlLevel(context)
ScriptLib.EndTimeAxis(context, "Loop")
return 0
end
return -1
end
--调时间后立即做一次判定
function action_set_game_time(context, evt)
LF_Handle_Monster_Hilichurl(context)
return 0
end
function action_group_load(context, evt)
--使用unload做清理暂时不用load
return 0
end
function action_group_will_unload(context ,evt)
ScriptLib.RemoveEntityByConfigId(context, 0, EntityType.MONSTER, defs.monster_hilichurl)
ScriptLib.RemoveExtraGroupSuite(context, 0, 2)
ScriptLib.RemoveExtraGroupSuite(context, 0, 3)
ScriptLib.EndTimeAxis(context, "Loop")
return 0
end
function action_hp_change(context, evt)
if evt.param3 == 0 then
return -1
elseif evt.param3 <= 50 then
if ScriptLib.GetGroupTempValue(context, "hp_50", {}) == 1 then
return -1
end
ScriptLib.ShowReminder(context, 1110236)
ScriptLib.AddExtraGroupSuite(context, 0, 3)
ScriptLib.SetGroupTempValue(context, "hp_50", 1, {})
elseif evt.param3 <= 90 then
if ScriptLib.GetGroupTempValue(context, "hp_90", {}) == 1 then
return -1
end
ScriptLib.ShowReminder(context, 1110236)
ScriptLib.AddExtraGroupSuite(context, 0, 2)
ScriptLib.SetGroupTempValue(context, "hp_90", 1, {})
end
return 0
end
function action_var_print(context, evt)
ScriptLib.PrintContextLog(context, "## Hilichurl : var_change : "..evt.source_name.." "..evt.param2.." -> "..evt.param1)
return 0
end
----------------------------------------------
function LF_Handle_Monster_Hilichurl(context)
local time = ScriptLib.GetGameHour(context)
if defs.exist_hour[2] == 24 then
if time == 0 then
time = 24
end
end
--先校验时间符合区间
if time < defs.exist_hour[1] then
LF_Try_Remove_Hilichurl(context)
return -1
end
--需要处理超出时间是否强制脱战
if time >= defs.exist_hour[2] then
LF_Try_Remove_Hilichurl(context)
return -1
end
LF_Try_Summon_Hilichurl(context)
end
function LF_Try_Remove_Hilichurl(context)
ScriptLib.PrintContextLog(context, "## Hilichurl : Try_Remove_Hilichurl")
--如果怪不存在则简化处理
if 1 ~= ScriptLib.GetGroupTempValue(context, "Exist", {}) then
return 0
end
if 1 ~= ScriptLib.GetMonsterAbilityFloatValue(context, 0, defs.monster_hilichurl, "_IS_IN_BATTLE") then
local ret = ScriptLib.RemoveEntityByConfigId(context, 0, EntityType.MONSTER, defs.monster_hilichurl)
ScriptLib.PrintContextLog(context, "## Hilichurl : Remove Monster Result = "..ret)
ScriptLib.SetGroupTempValue(context, "Exist", 0, {})
end
end
function LF_Try_Summon_Hilichurl(context)
ScriptLib.PrintContextLog(context, "## Hilichurl : Try_Summon_Hilichurl")
if 1 == ScriptLib.GetGroupTempValue(context, "Exist", {}) then
return 0
end
ScriptLib.PrintContextLog(context, "## Hilichurl : Create Monster")
local ret = ScriptLib.CreateMonster(context, {config_id = defs.monster_hilichurl, delay_time = 0})
ScriptLib.PrintContextLog(context, "## Hilichurl : Create Monster Result = "..ret)
if ret == 0 then
ScriptLib.SetGroupTempValue(context, "Exist", 1, {})
ScriptLib.SetGroupTempValue(context, "hp_50", 0, {})
ScriptLib.SetGroupTempValue(context, "hp_90", 0, {})
end
end
----------------------------------------------
Initialize()