Macro Perfect Duck in KD mission and Cure of the Restless Ice of TOV annoying Debuff

KingArthur

AutoBots
Joined
Dec 15, 2009
Messages
525
Reaction score
31
Points
28
Here is my way to automate this and I got this work flawlessly under my setup (already got the achievements one week ago.)


1st Step, Put these in your inc file

Code:
|--Group mission Events
#event KDDuck            "The ice encrusted Avatar of War shouts that #1# must bend the knee!"
#event KDNoDuck          "#*#The Avatar of War nods, accepting the subservience of those that gave it#*#"

|--Group Mission
Sub Event_KDDuck(string line,string dpeep)
/if (!${Defined[MustDuck]}) /declare MustDuck int outer 0
/if (${dpeep.Find[${Me.CleanName}]}&&!${Me.Ducking}) {
      /if (${Me.Class.ShortName.Equal[BER]}) /zerk autostandonduck off
      /keypress esc
      /delay 10 !${Target.ID}
      /keypress duck
      /delay 3
      /delay 10 ${Me.Ducking}
      /varset MustDuck 1
      /if (${Me.Ducking}) /gs I Ducked!
      /delay 12s
}
/doevents flush KDDuck
/return

Sub Event_KDNoDuck
/if (!${Defined[MustDuck]}) /declare MustDuck int outer 0
  /if (${Me.Ducking}) {
      /keypress duck
      /delay 3
      /delay 10 !${Me.Ducking}
      /varset MustDuck 0
      /gs Standing Right Now!
      /if (${Me.Class.ShortName.Equal[BER]}) /zerk autostandonduck on
    }
/doevents flush KDNoDuck
/return


2nd Step, VERY IMPORTANT, your spell_routines.inc has the autostand function that prolly screwed your duck..

Search Duck in your spell_routines.inc, there should be 2 lines of it, change them into the following (add !${MustDuck} into the condition):

Line under Sub Cast,

Code:
/if (${Me.Ducking}&&!${MustDuck}) /keypress duck

Line under Sub WaitCast,

Code:
  /if (${Me.State.Equal[DUCK]}&&!${MustDuck}) {
    /varset castReturn CAST_CANCELLED
    /stand
  }


Save and run your macro, then good to go!

--------------------------------------------------------

I personally have a this cure structure running in my raid and it helped us to conquer many modern raids.

With this kind of structure, you don't need to actually target anything to gain the debuff information ( plus even you targetting some pc/npc you still can't get the song buff information anyway)


1st to build DanNet Observer from healer and update it every pulse:

Code:
Sub DeclareFlags
    /if (!${Defined[tovdot1]}) /declare tovdot1 int outer 0
    /if (!${Defined[tovdot2]}) /declare tovdot2 int outer 0
    /if (!${Defined[tovdot3]}) /declare tovdot3 int outer 0
    /if (!${Defined[tovdot4]}) /declare tovdot4 int outer 0
    /if (!${Defined[tovdot5]}) /declare tovdot5 int outer 0
    /if (!${Defined[grptovdot]}) /declare grptovdot int outer 0
/return

Sub HealerObserve
/call DeclareFlags
/declare i int local 1
  /for i 1 to 5
     /if (${DanNet.Peers.Find[${Group.Member[${i}].CleanName}]}) {
       /if (!${DanNet[${Group.Member[${i}].CleanName}].Observe.Find[Restless Ice]}) /dobserve ${Group.Member[${i}].CleanName} -q "Me.Song[Restless Ice].ID" -o tovdot${i}
     }
    /varset tovdot${i} ${DanNet[${Group.Member[${i}].CleanName}].O["Me.Song[Restless Ice].ID"]}
    /next i

    /if (${tovdot1}||${tovdot2}||${tovdot3}||${tovdot4}||${tovdot5}) {
      /if (${grptovdot}!=1) /varset grptovdot 1
    } else {
      /if (${grptovdot}!=0) /varset grptovdot 0
    }
/return



2nd Step, in your healer's loop, add something like this,
Code:
/call HealerObserve

3rd Step, now is time to cure,
Code:
/if (${grptovdot}||${Me.Song[Restless Ice].ID}) /call Cure

To not interrupt your main heal line too often, you prolly will need to add this at the end of your heal logic by using “else /if”
Code:
else /if (${grptovdot}||${Me.Song[Restless Ice].ID}) {
   /call Cure
}

Though there is a bug of DanNet, sometimes the observer seems got borked then you might got flag==1 even you don't have the debuff, in that case, just unload then reload the DanNet plugin ,and zone one time.
 
Last edited:
I am not very good with these things at all. Which INC file are you referring to? I just use MQ2Bot not macros
 
Here is a quick macro someone asked for, to use it for MQ2Bot

Code:
|--Group mission Events
#event KDDuck            "The ice encrusted Avatar of War shouts that #1# must bend the knee!"
#event KDNoDuck          "#*#The Avatar of War nods, accepting the subservience of those that gave it#*#"

|--Group Mission

Sub Main
/echo DUCK MACRO STARTED
:repeat
/doevents
/delay 5
/goto :repeat

Sub Event_KDDuck(string line,string dpeep)
/bot off
/if (!${Defined[MustDuck]}) /declare MustDuck int outer 0
/if (${dpeep.Find[${Me.CleanName}]}&&!${Me.Ducking}) {
      /keypress esc
      /delay 10 !${Target.ID}
      /keypress duck
      /delay 3
      /delay 10 ${Me.Ducking}
      /varset MustDuck 1
      /if (${Me.Ducking}) /gs I Ducked!
      /delay 12s
}
/doevents flush KDDuck
/bot on
/return

Sub Event_KDNoDuck

/if (!${Defined[MustDuck]}) /declare MustDuck int outer 0
/bot off
  /if (${Me.Ducking}) {
      /keypress duck
      /delay 3
      /delay 10 !${Me.Ducking}
      /varset MustDuck 0
      /gs Standing Right Now!
    }
/doevents flush KDNoDuck
/bot on
/return

I haven't used or tested it.
 

Attachments

  • Duck.mac
    1 KB · Views: 48
Fry.. where in the ini would you put this
 
Fry.. where in the ini would you put this

It's just a macro.

Copy the code to a file called duck.mac

Put it in your MacroQuest2 Macro folder.

then run /macro duck

It will turn MQ2Bot off when it needs to duck, then turn it back on again afterwards (In theory).
 
Duck mac

Seems to just keep ending. sorry to be a pain.
 
Sorry...but how do you make a mac file
 
thank you , wrapping up partisan task then gonna try it out
 
ok yea that doesnt work well for my combo LMAO , it works but too much dps, how can i shut that off
 
ok yea that doesnt work well for my combo LMAO , it works but too much dps, how can i shut that off

You can change it to /attack off.

Pretty much when /bot off and /bot on are in the macro, you can issue whatever commands you want.
 
thank you again for help, just swapped in a cleric, to go with shaman, it works beautiful for healers , i just manualy ducked the rest so not to get too many adds at once, 2 zerks, 1 raid maxed aa, 1 group maxed, group max sk, raid war , 115 sham and 111 cleric, worked out for me hehe