azerothcore - Eluna 脚本中 RegisterEvent 的错误参数
问题描述
我在我的 LUA boss 脚本中遇到问题,第 11 行,
creature.RegisterEvent(Arcanist_Doan.Arcane_Explosion, {3000, 7000}, 0)
在运行时引发错误。这是它给我的错误。
lua_scripts/Boss_ArcanistDoan.lua:11: bad argument #1 to 'RegisterEvent' (bad argument : Creature expected, got function)
--[[
-= Script Information =-
* Script Type: Boss
* Npc: Arcanist Doan <6487>
--]]
local Arcanist_Doan = {};
function Arcanist_Doan.OnEnterCombat(event, creature, target)
creature:RegisterEvent(Arcanist_Doan.Curse_of_Agony, 12000, 0)
creature.RegisterEvent(Arcanist_Doan.Arcane_Explosion, {3000, 7000}, 0)
creature:SendUnitYell("You will not defile these mysteries!", 0)
creature:PlayDirectSound(5842)
end
function Arcanist_Doan.Curse_of_Agony(event, delay, pCall, creature)
if (math.random(1, 100) <= 85) then
local players = creature:GetPlayersInRange()
creature:CastSpell(players[math.random(1, #players)], 18266)
end
end
function Arcanist_Doan.Arcane_Explosion(event, delay, pCall, creature)
creature:CastSpell(creature, 9433)
end
function Arcanist_Doan.Reset(event, creature)
creature:RemoveEvents()
end
RegisterCreatureEvent(6487, 1, Arcanist_Doan.OnEnterCombat)
RegisterCreatureEvent(6487, 2, Arcanist_Doan.Reset) -- OnLeaveCombat
RegisterCreatureEvent(6487, 4, Arcanist_Doan.Reset) -- OnDied
奥术爆炸应该是一个自我施放,我使用了与我找到的一个示例老板脚本相同的格式,其中克鲁尔对自己施放了一个增益。
creature:RegisterEvent(Kruul.Rage, 60000, 0)
...
function Kruul.Rage(event, delay, pCall, creature)
creature:CastSpell(creature, 21340)
end
解决方案
哇,在我发布这个问题后不到一分钟,我发现我的语法错误。
creature.RegisterEvent(Arcanist_Doan.Arcane_Explosion, {3000, 7000}, 0)
应该
creature:RegisterEvent(Arcanist_Doan.Arcane_Explosion, {3000, 7000}, 0)
分号而不是点。
推荐阅读
- nginx - Laravel 5.6 OCI 与“php artisan serve”配合良好,但 Nginx 找不到 oci_connect()
- python - 权重矩阵的自定义约束
- angular - *ngFor 在属性不存在时导致无限循环
- haskell - 在循环记录中打结
- python - 无法在 Python 3.6.5 中导入 AWS 开发工具包 boto3
- python - 如何将 aiopg 与 aiohttp 一起使用
- javascript - 限制用户在记忆游戏中的尝试 - 导致游戏结束消息 JS
- javascript - Chrome/IE 中止 POST 响应
- python - 使用瓶子下载文件?
- android - Listview 未根据 Array Adapter 上的值进行更新