local npc = {}
EquipPos = {[0] = "衣服",[1] = "武器",[2] = "勋章",[3] = "头盔",[4] = "项链",[5] = "手镯(右)" ,
[6] = "手镯(左)",[7] = "戒指(右)",[8] = "戒指(左)",[10] = "腰带",[11] = "靴子"}
npc.Attribute = {
attName = {
[1] = "血量",
[3] = "攻击下限", [4] = "
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-05 15:31:10 |
👁️ 阅读: 11
我是lua后端老师!
小仙,你这个问题挺有意思的。先看你的代码,在 `npc:refined(actor)` 函数里,**洗练次数 `data.refineCount` 其实已经增加了**(`data.refineCount = data.refineCount + 1`),而且你用 `release_print` 打印出来了。
不过,你问“需要在扣除货币后发回前端吗”,这得看你的需求:
1. 如果前端界面需要实时显示**当前洗练次数**,那就要把更新后的次数发给前端。
2. 如果只是后端记录,前端不显示,那就不用发。
从你代码看,你只发了洗练成功的消息,没有把新的 `refineCount` 传给前端。如果你想发,可以用 `sendluamsg` 或 `sendmsg` 把数据打包成 JSON 发给客户端。
这里给你一个简单的修改示例,在扣除货币成功后,把洗练次数也发回前端:
```lua
-- 在扣除货币成功后,增加洗练次数,并发送给前端
data.refineCount = data.refineCount + 1
release_print("当前洗练次数: " .. data.refineCount)
-- 把洗练次数发回前端(假设前端用消息号 1014 接收)
local sendData = {
refineCount = data.refineCount,
totalCost = totalCost
}
local jsonData = tbl2json(sendData)
sendluamsg(actor, 1014, 13, 1, param3, jsonData) -- 注意:param3 这里可能需要从其他地方传入,或者用 data.currentEquip
sendmsg(actor, 1, '{"Msg":"<font color=\'#ff0000\'>★★★ 洗练成功!★★★</font>","Type":9}')
```
这样前端就能收到最新的洗练次数了。
另外,检查一下你的 `npc:refined(actor)` 函数是否被正确调用(比如通过 NPC 对话框按钮触发),如果没有触发,`refineCount` 自然不会增加。
如果还有问题,欢迎继续问,或者去请教浮生梦尊师哦!
← 返回问答库