如何解决如何在脚本中固定暴徒?
为了修复 Gruul 脚本,我需要在一个已经存在的事件中固定 Boss,并在另一个事件中移除该标志。 但是,我无法找到阻止格鲁尔追逐目标的方法。 我尝试将它与像拉格纳罗斯和克苏恩这样的永久诱捕 Boss 进行比较,但没有找到符合我意图的旗帜。 任何提示,如何暂时防止移动表示赞赏。
我想添加代码,使格鲁尔在施放“大地猛击”时无法移动,直到他施放“粉碎”以使其像暴风雪一样。
详细 https://github.com/azerothcore/azerothcore-wotlk/blob/389227e4f7ea75292549a36d4f288cc2467d1078/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp#L119 这个事件需要让他和这个人无法动弹https://github.com/azerothcore/azerothcore-wotlk/blob/389227e4f7ea75292549a36d4f288cc2467d1078/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp#L126 应该让他重新动起来。
我一直在浏览 Wiki,尝试了各种标记都无济于事。谢天谢地,我收到了一些关于 discord 的回复,其中建议 UNIT_FLAG_PACIFIED
(防止攻击但不会从我的测试中固定)和 UNIT_FLAG_STUNNED
(防止“地面猛击”施法完成但不会阻止 Gruuls 移动
为了实现上述目的,我使用了这个语法,添加了 4 行设置/删除标志:
case EVENT_GROUND_SLAM:
Talk(SAY_SLAM);
me->CastSpell(me,SPELL_GROUND_SLAM,false);
events.DelayEvents(8001);
events.ScheduleEvent(EVENT_GROUND_SLAM,60000);
events.ScheduleEvent(EVENT_SHATTER,8000);
me->SetFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_PACIFIED);
me->SetFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_STUNNED);
break;
case EVENT_SHATTER:
Talk(SAY_SHATTER);
me->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_PACIFIED);
me->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_STUNNED);
me->CastSpell(me,SPELL_SHATTER,false);
break;
解决方法
这个代码让boss(这里是Gruul)留在原地。
me->SetControlled(true,UNIT_STATE_ROOT);
将第一个参数设置为 false 会删除根。 感谢 Yehonal 在 discord 上指出这一点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。