迷糊 发表于 2024-2-5 01:01:47

【多端lua脚本】自定义装备属性问题

本帖最后由 迷糊 于 2024-2-5 01:18 编辑

多端那边问lua问题都是让在lua板块问,无奈只能试试了:L。
如下图2个命令,一个是设置自定义属性,一个是绑定自定义属性,第二张的绑定自定义属性放到函数里可以正常使用,就是耗时有点高,这几句代码耗时50微妙左右,如果设置个6-7条不得2000微妙以上。

第一张设置自定义属性是不是也是直接可以设置属性呢?具体咋用呢,我放函数里执行的时候提示:3: in function <:1>错误,难道是我放的不对?我如果写到入包触发的话需要绑定装备么?









迷糊 发表于 2024-2-5 01:16:25

脚本如下(不知道怎么用),装备入包给属性,也就是捡取鉴定,txt写的话写入属性的时候耗时太高了,用官方给的lua绑定属性脚本(上边图2),耗时跟TXT差不多,就在想设置脚本那种Json格式写法耗时会不会少点,但是不知道咋用,也不知需不需要关联装备。:L

txt脚本
--------------------------
[@AddBag]
#if
是可以给属性的装(此处检测省略)
#ACT
CallLua script @testaaa

========================分割线=========================

lua脚本
-------------------------------------------------
function testaaa(player)
local tbl = {
            ["abil"] = {
                  {
                      ["i"] = 0,
                      ["t"] = "品质",
                      ["c"] = 251,
                      ["v"] = {
                        {0,3,1,0,1,0,1},
                        {0,4,1,0,1,0,2},
                        {0,5,1,0,9,2,3},
                        {0,6,1,0,9,2,4},
                        {0,6,1,0,9,2,4},
                        {0,7,1,0,10,3,5},
                        {0,8,1,0,10,3,6},
                        {0,25,0,1,2,4,7},
                      },
                  },
            },
            ["name"] = itemName .. "[锻造 + 1]",
          }
          setitemcustomabil(actor,itemobj,tbl2json(tbl))
          refreshitem(actor,itemobj)
end


大玩家123 发表于 2024-2-5 13:42:51

耗时测试过发现绑定装备时是耗时最高的,给与属性的脚本并没有太多耗时。可以试试用LuaFunc-0,LuaFuncList来封装lua脚本,跟CALLLUA接口相比,不知道耗时上是否会降低

迷糊 发表于 2024-2-5 18:02:30

本帖最后由 迷糊 于 2024-2-5 18:25 编辑

大玩家123 发表于 2024-2-5 13:42
耗时测试过发现绑定装备时是耗时最高的,给与属性的脚本并没有太多耗时。可以试试用LuaFunc-0,LuaFuncList ...
现在TXT绑定装备1-2微妙,估计优化过了,但是写属性一条就200多微妙


大佬,下边这个命令是可以直接写属性的吗?需要绑定吗?

设置-setitemcustomabilsetitemcustomabil
参数类型空默认注释
playobject否玩家对象
itemobject否物品对象
valuestring是0Json字符串,自定义属性内容


大玩家123 发表于 2024-2-5 19:40:27

迷糊 发表于 2024-2-5 18:02
现在TXT绑定装备1-2微妙,估计优化过了,但是写属性一条就200多微妙




这个只是给与自定义属性,前面还是要在入包触发的时候绑定的。但绑定的命令来说lua和txt耗时都挺高的。之前测试过单写入自定义属性来说lua会比txt耗时上低一些。

迷糊 发表于 2024-2-6 00:12:49

本帖最后由 迷糊 于 2024-2-6 01:28 编辑

大玩家123 发表于 2024-2-5 19:40
这个只是给与自定义属性,前面还是要在入包触发的时候绑定的。但绑定的命令来说lua和txt耗时都挺高的。之 ...
怎么测试都不对,感觉我用的不对,lua部分执行报错 , [脚本错误2]:test007,,调用函数(@ceshi007)时出错: .\Envir\Market_Def\test007.lua:20: attempt to concatenate global 'itemName' (a nil value)stack traceback:        :3: in function <:1>        .\Envir\Market_Def\test007.lua:20: in function <.\Envir\Market_Def\test007.lua:1>

txt部分脚本
----------------------
[@AddBag]
#act
LINKPICKUPITEM
CallLua test007 @ceshi007
break


========================================

lua部分脚本
-------------------------
function ceshi007 (player)
      local tbl = {
      ["abil"] = {
            {
                ["i"] = 0,
                ["t"] = "[星级测试]\\<IMG:3>\\星级:3",
                ["c"] = 251,
                ["v"] = {
                  {0,3,1,0,1,0,1},
                  {0,4,1,0,1,0,2},
                  {0,5,1,0,9,2,3},
                  {0,6,1,0,9,2,4},
                  {0,6,1,0,9,2,4},
                  {0,7,1,0,10,3,5},
                  {0,8,1,0,10,3,6},
                  {0,25,0,1,2,4,7},
                },
            },
      },
      ["name"] = itemName .. "[锻造 + 1]",
    }
    setitemcustomabil(actor,itemobj,tbl2json(tbl))
    refreshitem(actor,itemobj)
end


大玩家123 发表于 2024-2-17 16:59:09

本帖最后由 大玩家123 于 2024-2-17 19:46 编辑

QFunction内容:
[@PickUpItemEX]
#IF
#ACT
testcustom <$CURRTEMMAKEINDEX> <$CURRTEMNAME>

LuaFunc-0.lua内容:
function testcustom(actor,itemOnlyID,itemName)
    local itemobj = getitembymakeindex(actor,itemOnlyID)
    local tbl = {
      ["abil"] = {
            {
                ["i"] = 0,
                ["t"] = "[测试]",
                ["c"] = 94,
                ["v"] = {
                  {254,4,15,0,54,0,0},
                  {254,4,15,0,54,1,1},
                  {254,4,15,0,54,2,2},
                  {254,4,15,0,54,3,3},
                  {254,4,15,0,54,4,4},
                  {254,4,15,0,54,5,5},
                  {254,4,15,0,54,6,6},
                  {254,4,15,0,54,7,7},
                },
            },
      },
      ["name"] = itemName .. "[锻造 + 1]",
    }
    setitemcustomabil(actor,itemobj,tbl2json(tbl))
    refreshitem(actor,itemobj)
end

LuaFuncList.txt内容:
testcustom

自定义的属性条目越多,耗时差距会越大

迷糊 发表于 2024-2-23 19:38:55

大玩家123 发表于 2024-2-17 16:59
QFunction内容:
[@PickUpItemEX]
#IF


谢谢大佬,我试试

迷糊 发表于 2024-2-25 18:55:18

大玩家123 发表于 2024-2-5 19:40
这个只是给与自定义属性,前面还是要在入包触发的时候绑定的。但绑定的命令来说lua和txt耗时都挺高的。之 ...

大佬技术牛逼,官方啥时候能把3端lua部分多弄点例文或者教程就好了,不然对于摸索lua太难了
页: [1]
查看完整版本: 【多端lua脚本】自定义装备属性问题