乌龟服吧 关注:23,045贴子:286,704

关于如何突破16位buff识别问题 以及骑士一键宏分享

只看楼主收藏回复

先说一下需要哪些插件 ①classicmacro ②supermacro ③RoidMacros ④isbuffactive ⑤Buffalo ⑥AttackBar 缺一不可 其中②supermacro必须使用3.18版本


IP属地:安徽1楼2024-02-24 12:04回复
    发帖发太快被封号了 擦


    IP属地:安徽25楼2024-02-24 16:14
    收起回复
      先感谢一下
      我的公会好友 风暴烈酒-灯儿晃 和他引荐的程序员大佬 血环-来啦坐 没有来啦坐大佬就没有这个宏...
      看看人家这格局

      感谢 @xjw998 @贴吧用户_0Ca6AUE
      感谢B站的免费宏分享UP主 花臣OvO 和其他UP主
      感谢KOOK 圣骑士频道管理员 龙堂
      感谢B站某收费卖宏UP提供的灵感 欢迎怨种朋友去花250元购买


      IP属地:安徽26楼2024-02-24 16:18
      收起回复
        先来说一下突破16位buff上限识别的原理,因为客户端原因玩家宏只能识别16个BUFF,但是通过buffalo插件可以显示32个buff,既然能显示,那我们就可以通过插件来读取这些buff。
        /script XBuffalo={};local buffs={"复仇","智慧圣印","正义圣印","圣印"};for i=0,31 do btn=getglobal('BuffaloButton'..i);if btn:IsVisible() then GameTooltip:SetOwner(btn,"ANCHOR_BOTTOMLEFT"); GameTooltip:SetPlayerBuff(i);for _,b in ipairs(buffs) do if string.find(GameTooltipTextLeft1:GetText() or "",b) then XBuffalo[b]=true;end end end end
        把需要读取的buff全添加进去,通过插件就可以识别


        IP属地:安徽27楼2024-02-24 16:23
        收起回复
          /script XBuffalo={};local buffs={"复仇","智慧圣印","正义圣印","圣印"};for i=0,31 do btn=getglobal('BuffaloButton'..i);if btn:IsVisible() then GameTooltip:SetOwner(btn,"ANCHOR_BOTTOMLEFT"); GameTooltip:SetPlayerBuff(i);for _,b in ipairs(buffs) do if string.find(GameTooltipTextLeft1:GetText() or "",b) then XBuffalo[b]=true;end end end end
          (删 插件buff提取宏 删)
          /script if XBuffalo["复仇"] then CastSpellByName("神圣打击") end
          (删 复仇状态满级神打,因为XBuffalo在这里属于table所以用中括号请大家注意 删)
          /script if XBuffalo["圣印"] and SpellReady("审判") then CastSpellByName("审判") end
          (删 有圣印就审判 删)
          /script if not buffed("智慧审判",t) and not XBuffalo["智慧圣印"] then CastSpellByName("智慧圣印") end
          /script if not XBuffalo["圣印"] then CastSpellByName("正义圣印")end
          (删 这两行就不说了注意中括号 删)
          /script CastSpellByName(UnitMana("player") > 1500 and "奉献" or "奉献(等级 1)")
          (删 蓝量1500 释放满级一级奉献 删)
          /script local t,c,k,cc,cs="target",CastSp删我ellByName,0;if UnitA删我ffectingCombat("player") and Ab删我ar_Mhr.et-GetTime() > 0.3 then for i=1,32 do cs,cc=UnitD删我ebuff(t,i);if strfind(cs or "","Holy_CrusaderStrike") then c(cc < 5 and "十字军打击" or "十字军打击(等级 1)");k=1;break;end;end;if k==0 then c("十字军打击") end;end
          (删 这个无视武器攻速,避免在普攻结束前0.3S内打十字军卡风怒 记得把删我删掉 删)


          IP属地:安徽28楼2024-02-24 16:24
          收起回复
            /script local t,b,c,r,k,fbb,btn,cs,cc="target",IsBuffActive,CastSpellByName,SpellReady,0;fbb=function(n) if b(n) then return true end;for i=0,31 do btn=getglobal('BuffaloButton'..i);if btn:IsVisible() then GameTooltip:SetOwner(btn,"ANCHOR_BOTTOMLEFT"); GameTooltip:SetPlayerBuff(i); if string.find(GameTooltipTextLeft1:GetText() or "",n) then return true end end end return false end;if not PlayerFrame.inCombat and UnitExists(t) then c("攻击") end;if fbb("圣印") and r("审判") then c("审判") end;if fbb("复仇") and r("神圣打击") then c("神圣打击") elseif not b("智慧审判",t) and not fbb("智慧圣印") then c("智慧圣印") elseif not fbb("圣印") then c("正义圣印") elseif r("奉献") then c(UnitMana("player") > 1500 and "奉献" or "奉献(等级 1)") elseif UnitAffectingCombat("player") and Abar_Mhr.et-GetTime() > 0.3 then for i=1,32 do cs,cc=UnitDebuff(t,i);if strfind(cs or "","Holy_CrusaderStrike") then c(cc < 5 and "十字军打击" or "十字军打击(等级 1)");k=1;break end;end;if k==0 then c("十字军打击") end;end
            这是大佬写的一条龙宏 加快了响应时间 非大佬不可为也 不建议大家过多更改


            IP属地:安徽29楼2024-02-24 16:28
            收起回复
              大佬这一段加到哪里


              IP属地:重庆来自Android客户端30楼2024-02-24 18:17
              收起回复
                监测buff就用 XBuffalo / not XBuffalo 然后“ not XBuffalo["圣印"] ” 类似这种 记得用中括号


                IP属地:安徽32楼2024-02-25 10:15
                收起回复
                  想玩圣印舞的朋友 去B站搜 花臣OvO UP的视频有免费的圣印舞介绍


                  IP属地:安徽33楼2024-02-25 10:20
                  收起回复


                    IP属地:安徽来自Android客户端34楼2024-02-25 10:54
                    收起回复
                      一级十字军施放时间要同时满足以下3要求才能使dps最大化。1平砍结束后0.2s,2平砍结束前1.3s,3神打cd>平砍结束时间。现在的宏只能满足第一个条件,希望楼主能继续优化


                      IP属地:安徽来自Android客户端36楼2024-02-25 10:56
                      收起回复
                        感谢,另外我试着改动了下,把正义替换成了命令,然后若身上没有神圣力量,则放十字军圣印,结果总是一直卡在施放智慧圣印那里,老哥能看下为什么吗。 我在第一段监测buff里添加了 神圣力量 。 然后在智慧审判那行下面加了
                        /script if not XBuffalo["神圣力量"] then CastSpellByName("十字军圣印")end
                        结果变成了无限放智慧审判。。


                        IP属地:日本38楼2024-02-25 13:02
                        收起回复
                          /script local t,c,k,i,ct,s,cc,cs,cd1,cd2="target",CastSpellByName,0,0,GetTime();if UnitAffectingCombat("player") and Abar_Mhr and Abar_Mhr.st and Abar_Mhr.et-ct >= 1.3 and ct-Abar_Mhr.st > 0.2 then while s~="神圣打击" do i=i+1;s=GetSpellName(i,"spell") end;if not s then return end;cd1,cd2=GetSpellCooldown(i,"spell");if cd1==0 or (cd1+cd2) <= Abar_Mhr.et+0.1 then return end;for i=1,32 do cs,cc=UnitDebuff(t,i);if strfind(cs or "","Holy_CrusaderStrike") then c(cc < 5 and "十字军打击" or "十字军打击(等级 1)");k=1;break;end;end;if k==0 then c("十字军打击") end;end


                          IP属地:安徽40楼2024-02-25 15:57
                          收起回复
                            大佬能不能来一个狂野命令版的


                            IP属地:吉林来自Android客户端41楼2024-02-25 22:40
                            收起回复
                              /script local t,c,k,i,ct,s,cc,cs,cd1,cd2="target",CastSpellByName,0,0,GetTime();if UnitAffectingCombat("player") and Abar_Mhr and Abar_Mhr.st and ct-Abar_Mhr.st > 0.2 and Abar_Mhr.et-ct >= 0.3 and SpellReady("十字军打击") then if XBuffalo["复仇"] and SpellReady("神圣打击") then SpellStopCasting() end;for i=1,32 do cs,cc=UnitDebuff(t,i);if strfind(cs or "","Holy_CrusaderStrike") then c(cc < 5 and "十字军打击" or "十字军打击(等级 1)");k=1;break;end;end;if k==0 then c("十字军打击") end;end


                              IP属地:安徽43楼2024-02-26 09:31
                              收起回复