迷糊  2024-2-5 01:01:47 | 技术答疑|
8 784

103

回帖

4926

金币

2722

积分

积分
2722
发表于 2024-2-5 01:01:47 | 显示全部楼层 |阅读模式

马上注册,下载996引擎,与更多游戏开发者交流。

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

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

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

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


图一(设置属性)

图一(设置属性)

图二(绑定属性)

图二(绑定属性)







回复

使用道具 举报

103

回帖

4926

金币

2722

积分

积分
2722
 楼主| 发表于 2024-2-5 01:16:25 | 显示全部楼层
脚本如下(不知道怎么用),装备入包给属性,也就是捡取鉴定,txt写的话写入属性的时候耗时太高了,用官方给的lua绑定属性脚本(上边图2),耗时跟TXT差不多,就在想设置脚本那种Json格式写法耗时会不会少点,但是不知道咋用,也不知需不需要关联装备。

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


回复

使用道具 举报

59

回帖

3910

金币

2124

积分

积分
2124
发表于 2024-2-5 13:42:51 | 显示全部楼层
耗时测试过发现绑定装备时是耗时最高的,给与属性的脚本并没有太多耗时。可以试试用LuaFunc-0,LuaFuncList来封装lua脚本,跟CALLLUA接口相比,不知道耗时上是否会降低
回复

使用道具 举报

103

回帖

4926

金币

2722

积分

积分
2722
 楼主| 发表于 2024-2-5 18:02:30 | 显示全部楼层
本帖最后由 迷糊 于 2024-2-5 18:25 编辑
大玩家123 发表于 2024-2-5 13:42
耗时测试过发现绑定装备时是耗时最高的,给与属性的脚本并没有太多耗时。可以试试用LuaFunc-0,LuaFuncList ...
现在TXT绑定装备1-2微妙,估计优化过了,但是写属性一条就200多微妙


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

设置-setitemcustomabil
setitemcustomabil
[td]
参数
类型
默认注释
playobject玩家对象
itemobject物品对象
valuestring0Json字符串,自定义属性内容


回复

使用道具 举报

59

回帖

3910

金币

2124

积分

积分
2124
发表于 2024-2-5 19:40:27 | 显示全部楼层
迷糊 发表于 2024-2-5 18:02
现在TXT绑定装备1-2微妙,估计优化过了,但是写属性一条就200多微妙

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

评分

参与人数 1金币 +5 收起 理由
迷糊 + 5

查看全部评分

回复

使用道具 举报

103

回帖

4926

金币

2722

积分

积分
2722
 楼主| 发表于 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:        [string "function __G__TRACKBACK__(msg)..."]:3: in function <[string "function __G__TRACKBACK__(msg)..."]: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


回复

使用道具 举报

59

回帖

3910

金币

2124

积分

积分
2124
发表于 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

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

评分

参与人数 1金币 +5 收起 理由
迷糊 + 5

查看全部评分

回复

使用道具 举报

103

回帖

4926

金币

2722

积分

积分
2722
 楼主| 发表于 2024-2-23 19:38:55 | 显示全部楼层
大玩家123 发表于 2024-2-17 16:59
QFunction内容:
[@PickUpItemEX]
#IF

谢谢大佬,我试试
回复

使用道具 举报

103

回帖

4926

金币

2722

积分

积分
2722
 楼主| 发表于 2024-2-25 18:55:18 | 显示全部楼层
大玩家123 发表于 2024-2-5 19:40
这个只是给与自定义属性,前面还是要在入包触发的时候绑定的。但绑定的命令来说lua和txt耗时都挺高的。之 ...

大佬技术牛逼,官方啥时候能把3端lua部分多弄点例文或者教程就好了,不然对于摸索lua太难了
回复

使用道具 举报