diff --git a/lua/server/events/init.lua b/lua/server/events/init.lua index 41536a497f8bcbe5758a4a764b55d94522fa8f65..e006e5f2b5c63806fd5ca2367feebed213b2444e 100644 --- a/lua/server/events/init.lua +++ b/lua/server/events/init.lua @@ -61,10 +61,16 @@ table.assign(GameEventWrappers, tmp[2]) for _, l in ipairs(Fk._custom_events) do local name, p, m, c, e = l.name, l.p, l.m, l.c, l.e - GameEvent.prepare_funcs[name] = p - GameEvent.functions[name] = m - GameEvent.cleaners[name] = c - GameEvent.exit_funcs[name] = e + -- GameEvent.prepare_funcs[name] = p + -- GameEvent.functions[name] = m + -- GameEvent.cleaners[name] = c + -- GameEvent.exit_funcs[name] = e + local custom = GameEvent:subclass(name) + custom.prepare = p + custom.main = m + custom.clear = c + custom.exit = e + GameEvent[name] = custom end return GameEventWrappers diff --git a/lua/server/gamelogic.lua b/lua/server/gamelogic.lua index cafd6d4e8941bac248b15ac58095c2f51cef34c0..fd9c3ca1959c658126f2b34377881a9d8264c288 100644 --- a/lua/server/gamelogic.lua +++ b/lua/server/gamelogic.lua @@ -573,7 +573,7 @@ end -- 在指定历史范围中找至多n个符合条件的事件 ---@param eventType GameEvent @ 要查找的事件类型 ---@param n integer @ 最多找多少个 ----@param func fun(e: GameEvent): boolean @ 过滤用的函数 +---@param func fun(e: GameEvent): boolean? @ 过滤用的函数 ---@param scope integer @ 查询历史范围,只能是当前阶段/回合/轮次 ---@return GameEvent[] @ 找到的符合条件的所有事件,最多n个但不保证有n个 function GameLogic:getEventsOfScope(eventType, n, func, scope) @@ -595,7 +595,7 @@ end -- 在指定历史范围中找符合条件的事件(逆序) ---@param eventType GameEvent @ 要查找的事件类型 ----@param func fun(e: GameEvent): boolean @ 过滤用的函数 +---@param func fun(e: GameEvent): boolean? @ 过滤用的函数 ---@param n integer @ 最多找多少个 ---@param end_id integer @ 查询历史范围:从最后的事件开始逆序查找直到id为end_id的事件(不含) ---@return GameEvent[] @ 找到的符合条件的所有事件,最多n个但不保证有n个