Mogara / QSanguosha-v2

Main Repository of QSanguosha V2
Other
357 stars 190 forks source link

两个lua同时引用第三个lua文件,游戏结束后闪退 #137

Open HiddenTesla opened 6 years ago

HiddenTesla commented 6 years ago

为了代码复用,将一些公共的东西放到某个文件中。 alice和bob都引用了mallory。 游戏几乎一定会在结束时弹出总结的时候挂掉。

以下是示例代码:

mallory.lua:

mallory = {}
mallory.hidden = true

mallory.marv = sgs.CreateTriggerSkill {
    name = "marv",
    frequency = sgs.Skill_NotFrequent,
    events = {sgs.DamageCaused},
    on_trigger = function(self, event, player, data)
        return false
    end
}
return mallory

alice.lua:

module("extensions.alice", package.seeall)
extension = sgs.Package("alice")

local mallory = require("extensions/mallory")

alice=sgs.General(extension, "alice","wei", 5, false)

bob.lua:

module("extensions.bob", package.seeall)
extension = sgs.Package("bob")

local mallory = require("extensions/mallory")

bob=sgs.General(extension, "bob","wei", 4, true)

bob:addSkill(mallory.marv)