首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我希望lua函数运行一次

我希望lua函数运行一次
EN

Stack Overflow用户
提问于 2017-02-13 07:05:23
回答 1查看 2.7K关注 0票数 3

我对lua脚本是个新手..现在我正试着在游戏中编码老大

代码语言:javascript
复制
local function SlitherEvents(event, creature, attacker, damage)
    if(creature:GetHealthPct() <= 60) then
        creature:SendUnitYell("Will punish you all",0)
        creature:RegisterEvent(AirBurst, 1000, 0) -- 1 seconds
        return
    end
end

这应该会让老板在他的健康= 60%或更少的时候说话,但它应该运行一次,当我运行代码的时候,老板一直在说和攻击。怎样才能让它运行一次呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-13 07:32:31

使用在函数回调作用域之外创建的布尔值:

代码语言:javascript
复制
local has_talked = false
local function SlitherEvents(event, creature, attacker, damage)
  if creature:GetHealthPct() <= 60 and not has_talked then
    has_talked = true
    creature:SendUnitYell("Will punish you all",0)
    creature:RegisterEvent(AirBurst, 1000, 1) -- 1 seconds
    return
  end
end

编辑

如果您实际使用的是Eluna Engine's RegisterEvent调用,则将重复次数设置为1,而不是0。这将解析issue you had

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42194327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档