Code: Select all
|**arch.mac Auto-Archery
|Just run this macro, and it will assist the puller and wait till it is in range and at the proper hp to engage. I suggest to put the ranger in a safe corner. for example in poearth, I use the corners in the zone in, or maybe even ontop of the zone to pot and earthb **|
|
|In some situations, you know what I'm talking about, you need to melee..
|No Problem! this macro will auto melee also! When in close range to the target
|the macro automatically turns on autoattack, it auto kicks, and auto disarms.
|then just step back out of range and it will start firing arrows again!!!
|Auto taunt now added as a toggle.
|
|the macro will recast self haste of "eyepatch of plunder" CHANGE THIS
|the macro will recast the spell "Eagle Eye" CHANGE THIS
| REQUIREMENT Spellcast.inc for reliable spell casting
|
|It will display the experience gain as an echo and popup.
|
| Created by loadingpleasewait on UNKNOWN DATE
| Modified by Kasodo May 5, 2004 updated to MQ2Data /MQ2Datavars
| Autosnare at 70%
| Modified by loadingpleasewait on May 17, 2004 to swat bugs, make automelee
| work automatically, make the autosnare a toggle and all around make it better
| Modified by loadingpleasewait on May 18,2004 to add an autotaunt when within closecombat
|
| usage:
|
| /mac arch Forage enter forage if you want to auto forage
| /mac arch Taunt enter taunt to autotaunt when in melee distance
| /mac arch Snare enter snare if you want to snare at 70%
| /mac arch Snare Forage enter snare then forage to snare and forage, but not taunt
| /mac arch Taunt Forage enter taunt then forage to taunt and forage, but not snare
| /mac arch Snare Taunt enter snare then taunt to snare and taunt, but not forage
| /mac arch Snare Taunt Forage enter snare, taunt, then forage for it to do all 3
|
#include spellcast.inc
#turbo 40
#Event exp "#*#experience!#*#"
#event haste "#*#The quickening spirit departs#*#"
#event eagle "#*#The avian presence departs#*#"
#event cop "#*#The predator's spirit departs#*#"
#event sot "#*#Tunare's strength ebbs#*#"
#Event resist "Your target resisted the Ensnare spell#*#"
#Event resist "Your Ensnare spell has worn off."
#Chat group
Sub Main
/echo "Auto-Arch Macro has begun."
/declare foragetoggle outer
/declare snaretoggle outer
/declare taunttoggle outer
/declare needsnare outer
/declare startexp outer
/declare startaaxp outer
/declare currentxp outer
/declare xpgain outer
/declare currentaa outer
/declare aagain outer
/declare targetarray[4] string outer
/declare combat outer
/declare mobname outer
/Varset foragetoggle 0
/varset snaretoggle 0
/varset taunttoggle 0
/varset startexp ${Me.PctExp}
/varset startaaxp ${Me.PctAAExp}
/if (${Defined[Param0]} && ${String[${Param0}].Equal[snare]}) {
/echo "Auto-Snare enabled"
/varset snaretoggle 1
/varset needsnare 1
}
/if (${Defined[Param0]} && ${String[${Param0}].Equal[taunt]}) {
/echo "Auto-Taunt enabled"
/varset taunttoggle 1
}
/if (${Defined[Param1]} && ${String[${Param1}].Equal[taunt]}) {
/echo "Auto-Taunt enabled"
/varset taunttoggle 1
}
/if (${Defined[Param0]} && ${String[${Param0}].Equal[forage]}) {
/echo "Auto-Forage enabled"
/varset foragetoggle 1
}
/if (${Defined[Param1]} && ${String[${Param1}].Equal[forage]}) {
/echo "Auto-Forage enabled"
/varset foragetoggle 1
}
/if (${Defined[Param2]} && ${String[${Param2}].Equal[forage]}) {
/echo "Auto-Forage enabled"
/varset foragetoggle 1
}
:mainloop
/if (${foragetoggle}==1 && ${Me.AbilityReady["Forage"]}) {
/doability Forage
/delay 20
/if (${Cursor.ID}) /autoinv
}
/doevents
/goto :mainloop
/return
Sub Event_Chat(string ChatType, string Sender, string ChatText)
/if (${ChatText.Find[sow]}) {
/target ${Sender}
/call Cast "Spirit of Wolf"
/if (${combat}==1) {
/target ${mobname}
/call archery
}
}
/if (${ChatText.Find[inc]} && ${Target.Distance}>150) /goto :mainloop
/if (${ChatText.Find[inc]}) {
/echo Assisting ${Sender}
/assist ${Sender}
/delay 1s
/varset mobname ${Target.CleanName}
/varset combat 1
/call archery
}
/if (${Me.Combat} && ${Target.ID} && ${Target.CleanName.NotEqual[${Me.Name}]}) /call Archery
/if (${foragetoggle}==1 && ${Me.AbilityReady[Forage]}) {
/doability Forage
/delay 20
/if (${Cursor.ID}) /autoinv
}
/doevents
/return
Sub Archery
/attack off
/varset targetarray[1] ${Target.CleanName}
/varset targetarray[2] ${Target.Level}
/varset targetarray[3] ${Target.Name}
/varset targetarray[4] ${Target.ID}
/echo Fighting a lvl ${targetarray[2]} ${targetarray[1]}
/face nolook
:CloserAF
/if (${Me.Combat}) /attack off
/if (${Target.Distance}>20 && ${Me.RangedReady} && ${Target.PctHPs}<95) /ranged
/if (${snaretoggle}==1 && ${needsnare}==1 && ${Target.PctHPs}<70) {
/call Cast "Ensnare"
/varset needsnare 0
}
/doevents
/if (${Target.Distance}<20) /call closecombat
/if (${Target.ID}!=${targetarray[4]}) /goto :EndAF
/doevents
/if (!${Target.ID}) /goto :EndAF
/doevents
/goto :CloserAF
:EndAF
/echo a lvl ${targetarray[2]} ${targetarray[1]} is dead
/if (${snaretoggle}==1) /varset needsnare 1
/if (${combat}==1) /varset combat 0
/keypress Num_5
/return
Sub closecombat
/attack on
| /face nolook
:stillclose
/if (${foragetoggle}==1 && ${Me.AbilityReady[Forage]}) {
/attack off
/doability Forage
/delay 20
/if (${Cursor.ID}) /autoinv
/attack on
}
/if (${Me.AbilityReady["Disarm"]} && ${taunttoggle}==1) /doability "Disarm"
/if (${Me.AbilityReady["Kick"]}) /doability "Kick"
/if (${taunttoggle}==1 && ${Me.AbilityReady["Taunt"]}) /doability "Taunt"
/doevents
/if (${snaretoggle}==1 && ${needsnare}==1 && ${Target.PctHPs}<70) {
/call Cast "Ensnare" gem4
/varset needsnare 0
}
/if (${Target.Distance}<18 && ${Target.ID} && ${Target.ID}==${targetarray[4]} && ${Target.CleanName.NotEqual[${Me.Name}]}) /goto :stillclose
/attack off
/return
Sub Event_exp
/varset currentxp ${Me.PctExp}
/varset xpgain ${Math.Calc[${currentxp}-${startexp}]}
/varset currentaa ${Me.PctAAExp}
/varset aagain ${Math.Calc[${currentaa}-${startaaxp}]}
/popup "Gain: ${xpgain}% xp - ${aagain}% aa ## Cur: ${Me.PctExp}% xp - ${Me.PctAAExp}% aa"
/echo "Gain: ${xpgain}% xp - ${aagain}% aa ## Cur: ${Me.PctExp}% xp - ${Me.PctAAExp}% aa"
/varset startexp ${Me.PctExp}
/varset startaaxp ${Me.PctAAExp}
/return
Sub event_sow
Sub event_eagle
/call Cast "Eagle Eye" gem5
/delay 5s
/return
Sub event_haste
/call Cast "Eyepatch of Plunder" item
/delay 4s
/return
Sub event_cop
/call Cast "Call of the Predator" gem7
/delay 5s
/return
Sub event_sot
/call Cast "Strength of Tunare" gem6
/delay 5s
/return
Sub Event_resist
/varset needsnare 1
/return

