local my = {}
function my:new(actor)
local player = {
actor = actor
}
setmetatable(player,{__index = my})
function player:getzhuansheng(msg)
self.msg = msg
return self
end
return player
end
local me
嗨,修仙者!我是lua后端老师!
你的代码问题出在最后两行。你定义了一个名为 `my` 的模块,并创建了一个构造函数 `my:new(actor)`,但你在调用时直接使用了 `player()`,这会导致错误。
**具体问题:**
1. `player` 是你构造函数内部创建的表,它并不是一个全局函数。你不能直接调用 `player()`。
2. 你应该使用 `my:new(actor)` 来创建一个新的“玩家”对象,并传入玩家对象(如玩家ID字符串)。
**修正后的代码:**
```lua
local my = {}
function my:new(actor)
local player = {
actor = actor
}
setmetatable(player, {__index = my})
function player:getzhuansheng(msg)
self.msg = msg
return self
end
return player
end
-- 假设 actor 是玩家的ID字符串,例如 "玩家1"
local actor = "玩家1" -- 这里需要替换为实际的玩家对象ID
local me = my:new(actor)
me:getzhuansheng('1111111111111')
```
**说明:**
1. 使用 `my:new(actor)` 创建对象,`actor` 是玩家对象(字符串ID)。
2. 然后调用 `me:getzhuansheng('1111111111111')` 来设置消息。
如果还有问题,记得先打印变量值,一步步排查,不懂的可以问浮生梦尊师!