238380  2025-1-9 20:20:30 | 技术答疑|
7 460

32

回帖

4233

金币

2245

积分

积分
2245
发表于 2025-1-9 20:20:30 | 显示全部楼层 |阅读模式

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

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

×
说明书上说

调用LUA时一般涉及到系统功能,比如某某排行榜需要做一些特殊的排序功能的脚本不太好计算的情况下调用一下,
不要写在如:杀怪触发及切换地图触发等经常调用的功能

我这样写对不对?算不算官方说的,不要写在经常调用的功能里?如果不对怎么写才对?

QFunction-0.txt的内容如下


[@attack]
#IF
CHECKCURRTARGETRACE = 1
#ACT
lua_attgjcf
BREAK


LuaFunc-0.lua的内容如下


-----攻击怪物触发
function lua_attgjcf(actor)
    local mondx = getbaseinfo(actor,67)
   
    --人物对怪刀刀绿毒触发
    if ismon(mondx) and ismon(mondx) ~= 0 and getflagstatus(actor,88) == 1 and getbaseinfo(mondx,1) ~= "高级镖车" and getbaseinfo(mondx,1) ~= "终级镖车" then
        makeposion(mondx,0,10)
    end

    --灵魂冰冻触发
     if ismon(mondx) and ismon(mondx) ~= 0 and  getconst(actor,"<$USEITEMNAME[78]>") == "灵魂·[冰冻]" and  math.random(100) <= 95 then
            makeposion(mondx,12,2)
    end
   
    --灵魂冰冻触发
     if ismon(mondx) and ismon(mondx) ~= 0 and  getconst(actor,"<$USEITEMNAME[78]>") == "飞仙石·[冰冻]" and  math.random(100) <= 5 then
            makeposion(mondx,12,2)
    end

end


最后回复时间:2025-01-15 17:26:01官方回复了此贴
回复

使用道具 举报

66

回帖

1万

金币

7755

积分

积分
7755
发表于 2025-1-10 16:28:15 | 显示全部楼层
不要这样写,上线卡到爆。你打印个耗时看看,能吓死你。一些TXT实现不了的调用一下LUA可以,但别放在这种频繁触发里。
回复

使用道具 举报

32

回帖

4233

金币

2245

积分

积分
2245
 楼主| 发表于 2025-1-11 18:44:36 | 显示全部楼层
ZSZSZSS 发表于 2025-1-10 16:28
不要这样写,上线卡到爆。你打印个耗时看看,能吓死你。一些TXT实现不了的调用一下LUA可以,但别放在这种频 ...

每次攻击耗时130-200微秒这样,感觉还可以,但是频繁触发还是不清楚行不行,不用lua,每个buff都用txt写不也很不方便吗?老哥你是怎么处理的?
回复

使用道具 举报

1万

回帖

2万

金币

1万

积分

积分
19031
发表于 2025-1-13 10:08:42 | 显示全部楼层
本帖最后由 996技术-wang 于 2025-1-15 17:25 编辑

这样写TXT都顶不住 建议在脚本专区提问看
回复

使用道具 举报

66

回帖

1万

金币

7755

积分

积分
7755
发表于 2025-1-13 16:46:51 | 显示全部楼层
238380 发表于 2025-1-11 18:44
每次攻击耗时130-200微秒这样,感觉还可以,但是频繁触发还是不清楚行不行,不用lua,每个buff都用txt写 ...

我lua写的,TXT+LUA耗时高我没用
回复

使用道具 举报

1万

回帖

2万

金币

1万

积分

积分
19031
发表于 2025-1-15 17:26:01 | 显示全部楼层
混合用耗时高
回复

使用道具 举报

2

回帖

91

金币

50

积分

积分
50
发表于 2025-2-27 12:43:03 | 显示全部楼层

借楼问个问题,在QFLUA脚本中使用引擎触发字段无法触发是为什么,说明书这么写的=====引擎触发是通用的,TXT的所有触发转换成小写后在LUA中就可使用======是要把TXT中对应的系统触发字段名改成全小写就行了吗?我改成全小写一样不生效,是要把所有字段改了才能用,还是对应字段改了就可以用?
回复

使用道具 举报

16

回帖

5981

金币

3159

积分

积分
3159
发表于 2025-2-28 09:51:54 | 显示全部楼层
复杂功能还是LUA快,就算混着用也比只用TXT快得多的多,特别是涉及大的循环,用LUA能快10倍左右。
回复

使用道具 举报