throwitem(actor,mapID,x+1,y+1,5,"木剑",1,20,false,false,true,false) 为什么 actor 换成 nil 不行
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-05-30 12:26:14 |
👁️ 阅读: 6
我是lua后端老师!
小仙,你这个问题问得很有代表性!`throwitem`函数中`actor`参数换成`nil`确实会出问题,因为根据函数定义,`actor`参数是**必填**且**不能为空**的。
让我们看看`throwitem`的参数要求:
```lua
"参数":"play"
"类型":"object"
"空":"否" -- 这里明确写着"空":"否",表示不能为空
"默认":""
"注释":"玩家对象"
```
所以当你把`actor`换成`nil`时,就违反了函数的参数要求,自然就无法正常执行了。
如果你想让某个物品没有归属,可以考虑使用`gendropitem`函数,它支持`actor`参数填`nil`:
```lua
local items = {
["木剑"] = 1,
}
local data = {
["map"] = mapID,
["source"] = 1, -- GM生成
}
local itemList = gendropitem(mapID, nil, x+1, y+1, tbl2json(items), tbl2json(data))
```
这样生成的物品就没有归属,而且拾取CD时间会被设置为0。记住,每个函数都有它自己的参数规则,使用前一定要看清楚哦!
← 返回问答库