Plumber

Plumber

6M Downloads

Feature Request: More quick slots in different occasions

gjfLeo opened this issue · 8 comments

commented

P大好!很喜欢插件的这个快捷栏,希望能在更多情况下用上这个便捷功能,例如:

  • 陨圣峪的稀有怪呱吉特需要玩家对其使用影盲石斑鱼来激活。可以在玩家位于陨圣峪(或者具体到静石之池)、目标为不可攻击的呱吉特时,自动显示对其使用影盲石斑鱼的快捷按钮么?
  • 喧鸣深窟的特别任务:阴影重重中,玩家需要收集总计15个光耀燃料水晶。过程中会捡到光耀燃料碎片,每3个碎片可以合成1个水晶。可以在背包中存在≥3个碎片时显示使用碎片的快捷按钮么?
    • 类似这样的可合成物品还有很多,例如扎雷歿提斯的幻磷丝缕、巨龙时代梦涌区域的焦黑的元素残片等等。可能也可以根据玩家区域来加载对应的快捷按钮?
    • 除此之外,还有一些合成物品是多个不同物品合成的,例如用于召唤陨圣峪稀有怪的纯水贡品、直接组合成玩具的浊鳍诱饵、巨龙版本的钥匙框架等等,这些也可以考虑类似功能?
  • 近两个版本的采集野有一些强化采集的技能,也可以在合适的时候显示快捷栏。例如,当玩家的softinteract对象是某些草药(指定的objectID)时,显示过载注孢草药的快捷按钮。
    • 类似采矿和采药,剥皮也有打磨小刀等法术,但不能通过objectID来判断。据我有限的了解,判断能否剥皮可能要用到一些特殊的方法,不一定适合。
  • 将军的专长玩具能给玩家提供buff,能在千丝之城(非副本)看清守卫的侦测范围。可以在玩家位于千丝之城、没有buff时显示玩具的快捷按钮么?

发散思维下去,类似的场景有点数不过来了😂主要是这个快捷按钮又好用又好看,很有吸引力😂

如果P大觉得类似的功能是个好主意的话,如果有了功能框架,具体的各种场景感觉会以更接近于配置的形式存在于代码里,到时我也可以贡献一部分。

如果P大觉得由于各种原因不太适合的话,或许也可以给插件的快捷栏暴露一个全局API,让用户可以方便结合自己的代码使用?

commented

哈喽!
我准备提供一个API好让其他作者自定义触发条件和功能。
基于目前的系统我能很快地实现 建议1(呱吉特石斑鱼)和建议2(将军的专场),但请原谅我不打算在一个使用频率很低的功能上花太多精力 😢
我不确定呱吉特附近是不是容易进战斗,进战斗比较麻烦...

commented

有API就可以自己搞定想要的功能啦

呱吉特附近还是有不少小怪的,我感觉可以考虑只要进战斗就隐藏?

commented

好的,下次更新的时候会加上冷却显示 😄

QuickSlotCD

commented

看到新版本已经有API了,感谢大佬

请问一下每个快捷栏模块展示哪些按钮是固定的么?比如我想实现过载强化草药和过载强化矿脉这两个类似的功能,是应该注册为两个不同的模块,根据不同情况展示不同的模块呢,还是可以注册为同一个模块,然后根据情况只展示里面的一个按钮呢?

还发现一个Bug:SharedWidgets.lua:1518,正式服GetSpellCharges返回的是table,不是多个返回值了

另外希望能添加一个根据key获取已注册的Controller的API,不知合不合适。或者是判断存不存在?

commented

客气啦。不好意思我还没单独建一个页面来解释该怎么用,QuickSlot_External里只有个简单的示例。

共用一个模块或是分成两个都可以。但如果共用一个模块,你在调用 ShowQuickSlot(true) 时必须有true,否则按钮不会被更新。

感谢提醒GetSpellCharges的改动 😄

根据key获取已注册的Controller的API

能说明一下你为什么需要这个功能吗?我是希望第三方Module能相互隔隔绝。

commented

其实确实不是很有必要。是我一开始偷懒在wa的自定义代码里调用的,调试时不太好重复获取之前注册的module,哈哈。正常写插件感觉应该是用不到的。

顺便再问一下,可以在按钮上显示法术/物品的冷却不🥺

commented

大佬我又来求优化了
现在的冷却时间倒计时文字显示似乎用的是暴雪的。但我目前是禁用了暴雪的“显示冷却时间”,用插件OmniCC显示的动作条(和其他地方的)冷却文字。可以让快捷按钮支持OmniCC插件么~

commented

你可以先暂时把这里的true改成false

<KeyValue key="noCooldownCount" value="true" type="boolean"/> <!--OmniCC-->

OmniCC通过判断noCooldownCount来决定是否修改Cooldown Object,但是OmniCC把它覆盖后我们好像就没办法来隐藏冷却数字了。所以我估计需要创建两个Cooldown Object,一个能被OmniCC修改,另一个不能。