找回密码
 立即注册
搜索
查看: 342|回复: 3

原来lua划分了服务端和客户端、搞了个att属性淬炼

[复制链接]
发表于 2026-4-28 22:32:58 | 显示全部楼层 |阅读模式

之前一直懵逼、lua到底是啥?
这下总算知道了一点、lua 淬炼 att 属性、因为setItemAtt 最多只只吃4个属性、
淬炼应该搞个自定义ok 框、然后就像鉴定一样,搞个勾选框锁定需要的属性,一直淬炼直到需要的属性、
这时服务的的lua
function on_RunLuaScriptClzhuangbei(actor)
    print("淬炼装备")

    -- 支持的装备槽位:0-8, 10, 11, 14
    local validSlots = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 14}

    local hasAnyItem = false

    -- 遍历所有有效槽位,每个有装备的都要淬炼
    for _, slot in ipairs(validSlots) do
       local item = actor:getUseItem(slot)

       if item ~= nil then
          hasAnyItem = true
          local itemName = item:getName()
          print(string.format("淬炼装备 %s (槽位: %d)", itemName, slot))

          -- 随机选择4个属性编号
          local randomAttIds = getRandomAttIds()

          -- 随机生成4个属性值
          local val1 = getRandomAttValue()
          local val2 = getRandomAttValue()
          local val3 = getRandomAttValue()
          local val4 = getRandomAttValue()

          -- 输出随机结果 (调试用,可删除)
          print(string.format("随机属性: %s(%d)=%d, %s(%d)=%d, %s(%d)=%d, %s(%d)=%d",
                attNameMap[randomAttIds[1]], randomAttIds[1], val1,
                attNameMap[randomAttIds[2]], randomAttIds[2], val2,
                attNameMap[randomAttIds[3]], randomAttIds[3], val3,
                attNameMap[randomAttIds[4]], randomAttIds[4], val4))

          -- 设置物品Att属性
          item:setItemAtt(randomAttIds[1], randomAttIds[2], randomAttIds[3], randomAttIds[4],
                val1, val2, val3, val4)

          print(string.format("槽位 %d 淬炼完成!", slot))
       end
    end

    if hasAnyItem then
       print("全部淬炼完成!")
    else
       print("未检测到装备,淬炼失败!")
    end
end




这是客户端的lua

function itemInfo_USE.TestAtt(item)
    local IDX = item:getIndex()
    local dbitem = c.item.getDBItem(IDX)
    --c.share.addChat("客户端发送到聊天框的信息------getStdMode()--------" .. dbitem:getStdMode(), 1, 2)
    local ret = ""

    -- 允许显示淬炼属性的装备模型值(StdMode)
    local allowStdModes = {
       [5]  = true,
       [6]  = true,
       [10] = true,
       [11] = true,
       [15] = true,
       [16] = true,
       [19] = true,
       [20] = true,
       [21] = true,
       [22] = true,
       [23] = true,
       [24] = true,
       [26] = true,
       [52] = true,
       [54] = true,
       [55] = true,
    }

    -- 只有指定StdMode的装备才显示淬炼属性
    -- 如果当前作用域内 dbitem 需要通过 item 获取(例如 item:getDBItem() / item:query()),请自行调整
    if allowStdModes[dbitem:getStdMode()] then
       ret = "\\"..hintHelper.text("淬炼属性",const.clyellow)

       -- 属性ID映射表
local attNameMap = {.......}
-- 循环4组属性(0-3)
       for i = 0, 3 do
          local attId = item:getAttId(i)
          local attPoint = item:getAttPoint(i)

          -- 调试输出
          -- c.share.addChat("第" .. (i+1) .. "组属性 ID:" .. tostring(attId) .. " Point:" .. tostring(attPoint), 1, 2)

          -- 只显示有效属性(ID存在且数值不为0)
          if attId and attId ~= 0 and attPoint and attPoint ~= 0 then
             local attName = attNameMap[attId]
             if attName then
                local YPZS = attName .. "+" .. attPoint
                ret = ret .. "\\" .. hintHelper.text(YPZS, const.clwhite)
             else
                -- 未知属性ID,显示编号方便排查
                local YPZS = "未知属性(" .. attId .. ")+" .. attPoint
                ret = ret .. "\\" .. hintHelper.text(YPZS, const.clred)
             end
          end
       end
    end

    return ret
end

文件尺寸: 小于 1000KB , 可用扩展名: jpg, jpeg, gif, png  文件限制了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

发表于 2026-4-29 08:36:06 | 显示全部楼层
回复

使用道具 举报

发表于 2026-5-7 18:37:08 | 显示全部楼层
回复

使用道具 举报

发表于 2026-5-9 02:36:03 | 显示全部楼层
:P:P:P:P:P:P:P:P:P:P:P:P:P:P
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2026-5-25 07:30 , Processed in 0.215653 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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