找回密码
 立即注册
搜索
查看: 145|回复: 6

[已处理] LUA,设置星级命令导致鉴定属性无效!

  [复制链接]
发表于 2026-6-19 15:46:37 | 显示全部楼层 |阅读模式
BUG反馈
引擎版本号: 20260531
登陆器版本号: 20260531
BUG描述: 最近写个拓展鉴定,写完属性失效了,找了2天原因,发现,不设置星级。鉴定属性有效。设置星级后,鉴定属性失效!
BUG重现方式: 最近写个拓展鉴定,写完属性失效了,找了2天原因,发现,不设置星级。鉴定属性有效。设置星级后,鉴定属性失效!
修复后应达到的效果: 设置星级后,鉴定属性正常有效!
联系QQ: 隐藏内容


先设置了随机1-4条鉴定属性,后再设置星级。

附带脚本:



                                        local BT = {}
                                        local BH = {}
                                        local FH = {}
                                        local DC = {}
                                        local SD = {}
                                        local SX = {}
                                        local JD = item:getIdentify(0)
                                          local XJ = math.floor(JD / 10) % 10
                                          local XX = 0
                                          local DJ = 0
                                          local TS = ""
                                        for k=1,4,1 do
                                                SD[k] = Actor:getVal_N_Ex("锁定"..k)
                                                if SD[k] < 1 then
                                                        local DC = s.share.getRandom(1,(#jd_dc_tbl+1))
                                                        local SJBH = s.share.getRandom(1,(#jd_pz_tbl+1))
                                                        local SXBH = jd_sx_tbl[jd_pz_tbl[SJBH].bh].bh + jd_sx_tbl[jd_pz_tbl[SJBH].bh][DC]
                                                        if DC == 5 then
                                                                DJ = jd_dc_tbl[DC].xj

                                                                TS = TS.."\\          "..jd_sx_tbl[jd_pz_tbl[SJBH].bh].s.."+"..jd_sx_tbl[jd_pz_tbl[SJBH].bh][DC]


                                                        end
                                                        item:setIdentify(k,SXBH,0)--此处设置鉴定属性!
                                                end
                                                SX[k] = item:getIdentify(k+1)
                                                BT[k],BH[k],FH[k],DC[k] = TZJD_DQJDSX(Actor, SX[k])
                                                XX = XX + jd_dc_tbl[DC[k]].xj
                                        end
                                        if DC[4] == 5 and BT[1] == BT[2] and BT[1] == BT[3] and BT[1] == BT[4] then
                                                XX = XX + 1
                                        end
                                        --item:setIdentifyStar(XX)--此处设置星级,关闭后,设置的属性就有效,打开后,设置的鉴定属性就无效!
                                        Actor:refItemInfo(item, 3)

                                        if TS ~= "" then
                                                Actor:messageBox("恭喜你鉴定出极品属性:"..TS)
                                        end




补充内容 (2026-6-19 17:32):
补充1个问题:客户端LUA命令,取获取(主角)(英雄)(他人)某装备位实体物品对象c.item.getMyEquipPos。c.item.getHeroEquipPos。c.item.getUser1EquipPos。取不到首饰盒对象!
回复

使用道具 举报

 楼主| 发表于 2026-6-19 21:53:03 | 显示全部楼层
通过读取鉴定属性编号,再次设置鉴定属性。效果就有了。

                                Actor:takeBagItemEx(CLMZ, JDFY, 1)
                                local JL = s.share.getRandom(1,101)
                                if JL <= jd_pz_tbl[0].jl then
                                        local BT = {}
                                        local BH = {}
                                        local FH = {}
                                        local DC = {}
                                        local SD = {}
                                        local SX = {}
                                        local JD = item:getIdentify(0)
                                          local XJ = math.floor(JD / 10) % 10
                                          local XX = 0
                                          local DJ = 0
                                          local TS = ""
                                        local SXBH = {}
                                        for k=1,4,1 do
                                                SD[k] = Actor:getVal_N_Ex("锁定"..k)
                                                if SD[k] < 1 then
                                                        local DC = s.share.getRandom(1,(#jd_dc_tbl+1))
                                                        local SJBH = s.share.getRandom(1,(#jd_pz_tbl+1))
                                                        SXBH[k] = jd_sx_tbl[jd_pz_tbl[SJBH].bh].bh + jd_sx_tbl[jd_pz_tbl[SJBH].bh][DC]
                                                        if DC == 5 then
                                                                DJ = jd_dc_tbl[DC].xj
                                                                TS = TS.."\\          "..jd_sx_tbl[jd_pz_tbl[SJBH].bh].s.."+"..jd_sx_tbl[jd_pz_tbl[SJBH].bh][DC]
                                                        end
                                                        item:setIdentify(k,SXBH[k],0)
                                                end
                                                SX[k] = item:getIdentify(k+1)
                                                BT[k],BH[k],FH[k],DC[k] = TZJD_DQJDSX(Actor, SX[k])
                                                XX = XX + jd_dc_tbl[DC[k]].xj
                                        end
                                        if DC[4] == 5 and BT[1] == BT[2] and BT[1] == BT[3] and BT[1] == BT[4] then
                                                XX = XX + 1
                                        end
                                        local SX1 = item:getIdentify(2)
                                        local SX2 = item:getIdentify(3)
                                        local SX3 = item:getIdentify(4)
                                        local SX4 = item:getIdentify(5)
                                        item:setIdentifyStar(XX)
                                        item:setIdentify(1,SX1,0)
                                        item:setIdentify(2,SX2,0)
                                        item:setIdentify(3,SX3,0)
                                        item:setIdentify(4,SX4,0)
                                        Actor:refItemInfo(item, 3)
                                        if TS ~= "" then
                                                Actor:messageBox("恭喜你鉴定出极品属性:"..TS)
                                        end
                                        Actor:setVal_S_Ex("鉴定结果", "成功;fc=250;ch=250;cd=250")
                                else
                                        Actor:setVal_S_Ex("鉴定结果", "失败;fc=249;ch=249;cd=249")
                                end
回复

使用道具 举报

发表于 2026-6-21 21:09:03 来自手机 | 显示全部楼层
没有刷新OK框属性吧
回复

使用道具 举报

发表于 2026-6-22 10:30:35 | 显示全部楼层
item:setIdentify(1,SX1,0)--本身设置鉴定属性成功后,会自行生成星级数据

你需要自己定义星级数据只能放到最后再设置星级属性
回复

使用道具 举报

发表于 2026-6-22 10:40:45 | 显示全部楼层
本帖最后由 1580 于 2026-6-22 10:53 编辑

        local item1 = actor:getUseItem(1)
    if item1 then
                item1:setIdentifyStar(5)
                item1:setIdentify(1,345,0)
                item1:setIdentify(2,4565,0)
                item1:setIdentify(3,454,0)
                item1:setIdentify(4,455,0)
                actor:refItemInfo(item1, 1)
        end

我只这样简单测试,先设置星级再给属性是正确的

但设置星级放最后时,就无法计算物品鉴定属性了,
下版再修正吧
回复

使用道具 举报

 楼主| 发表于 2026-6-22 11:49:26 | 显示全部楼层
@1580,下版,希望客户端LUA,能支持下,取首饰盒对象!感谢!
回复

使用道具 举报

发表于 2026-6-24 10:09:38 | 显示全部楼层
参谋长 发表于 2026-6-22 11:49
@1580,下版,希望客户端LUA,能支持下,取首饰盒对象!感谢!

请重新开帖吧,这个问题需要法海来处理了,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2026-7-13 17:55 , Processed in 0.260341 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表