搜索
查看: 2645|回复: 11

[沟通中] Lua 刷新属性重复执行

[复制链接]
发表于 2020-9-15 12:43:46 | 显示全部楼层 |阅读模式
BUG反馈
引擎版本号: 1
登陆器版本号: 1
BUG描述: function on_RecalcAbil(actor)
actor:setAbil(9, 1000)--增加1000魔血
end

说明书写法
刷新属性里面用了setabil就会重复执行这个函数
无限执行
BUG重现方式: 1
修复后应达到的效果: 1
联系QQ: 隐藏内容

 楼主| 发表于 2020-9-15 12:56:19 | 显示全部楼层
刷新属性要做成返回值的函数才行
返回所有参数
不然只能用setAbil的命令
用了就进入死循环
发表于 2020-9-15 13:05:11 | 显示全部楼层
估计你是放在了宝石功能的那个函数里面
 楼主| 发表于 2020-9-15 23:21:28 | 显示全部楼层
zj5577117 发表于 2020-9-15 13:05
估计你是放在了宝石功能的那个函数里面

没有啊
直接说明书的原版
开启了就无限重复了
 楼主| 发表于 2020-9-15 23:24:36 | 显示全部楼层
function on_RecalcAbil(actor)
actor:setAbil(9, 1000)--增加1000魔血
        local actorname = actor:getCharName()       
print("["..actorname.."]-----------------------[主号刷新属性]")
end
 楼主| 发表于 2020-9-15 23:25:10 | 显示全部楼层
执行结果是

本帖子中包含更多资源

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

x
 楼主| 发表于 2020-9-15 23:25:29 | 显示全部楼层
成了无限重复脚本了
发表于 2020-9-20 05:07:10 | 显示全部楼层
这个不是BUG,本身这段函数就是更新属性后触发的,你在触发段里又加了个给属性的,属性一给,它当然又触发这个函数啊。所以就造成了无限循环。这个没问题啊
你现在这个函数大概就像。给属性-触发-给属性-触发-给属性-触发…………这样无限的循环。
 楼主| 发表于 2020-9-20 10:21:44 | 显示全部楼层
zj5577117 发表于 2020-9-20 05:07
这个不是BUG,本身这段函数就是更新属性后触发的,你在触发段里又加了个给属性的,属性一给,它当然又触发 ...

那怎么解决这个问题呢
应该是这个函数内部刷新属性不触发这个函数
发表于 2020-9-20 17:11:28 | 显示全部楼层
巨炮叔叔 发表于 2020-9-20 10:21
那怎么解决这个问题呢
应该是这个函数内部刷新属性不触发这个函数

这个不存在什么解决不解决的问题,引擎设计它的功能就是这样,属性刷新触发函数。官方弄的大概意思是想说属性刷新了,触发给个提示让你知道属性刷新了。或是执行别的命令。而不是让你在属性刷新下执行给属性命令。如果你非要在属性刷新下给属性的话你只能增加一些判断的命令,达到要求给属性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2025-6-9 12:26 , Processed in 0.464970 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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