Yet Another Stick.Mac With lots of Events
Posted: Sun May 02, 2004 1:07 pm
modified Stix Stick.mac and Mckorr's Autofight.inc to come up with this, its easily modified to work with most melee classes, if you need help with it post it here, if i cant help someone will.
Code: Select all
|Stick.mac
|
|Syntax:
| Usage: /macro stick
|
|
|Functions:
| Now automatically sets Max Distances for you.
| Will auto Kick, Beg, and disarm.
| Will turn off attack on ENRAGE, only if it is your mob that is enraged.
| Stoping attack while the macro is running will stop movment.
|-Stix
|
|Heavily Modified by Fuergrissa
|Lots of Events
|If max distance is too much will set at 18
|Tells of SkillUps
|Auto Ends when Camping
|Auto Loots
|Added Taunt
|Added Section to check buffs and if not on, Cast item for you.
|Auto Join Group
|Reports XP After each fight
#event rageon "has become ENRAGED."
#event rageoff "is no longer enraged"
#event stunned "while stunned"
#event invited "To join the group, click on the 'FOLLOW' option, or 'DISBAND' to cancel"
#event mobgate " Gates."
#event appear "You appear."
#event appearing "You feel yourself starting to appear."
#event losingLev "You feel as if you are about to fall"
#event exp "experience!!"
#Event SkillUp "You have become better at"
#Event Slain "Returning to home point, please wait..."
#Event camp "seconds to prepare your camp"
sub main
/declare MaxD int outer
/echo Stick Macro Started with LOOT Support.
:main
/doevents
/if (!${Me.Buff[Grim Aura].ID}) {
/cast item "Reaper's Ring"
/delay 4s
}
/if (!${Me.Buff[Bootstrutter's Blessing].ID} && !${Me.Buff[Spirit of Wolf].ID} && !${Me.Buff[Spirit of Eagle].ID}) {
/cast item "Fabled Journeyman's Boots"
/delay 4s
}
/if (${Me.Combat}) /goto :mob
/goto :main
:mob
/if (${Target.Distance}>100) {
/echo ${Target.CleanName} IS Out Of Range
/attack off
/goto :main
}
/if (${Target.ID}) {
/varset MaxD ${Target.MaxRangeTo}
/if (${MaxD}>18) /call ToFar
/echo Attacking ${Target.CleanName} at a Distance of ${MaxD}
/echo ${Target.CleanName} is a level ${Target.Level} ${Target.Class} That Cons ${Target.ConColor}
/goto :combat
}
/goto :main
:combat
/doevents
/if (${Target.ID}==${Me.ID}) /attack off
/if (!${Me.Combat}) /goto :main
/face fast nolook
/if (${Target.Distance}>${MaxD}-2) /keypress forward hold
/if (${Target.Distance}<=${MaxD}-4) /keypress forward
/if (${Target.Distance}<${MaxD}-7) /keypress back hold
/if (${Target.Distance}<${MaxD}-2) /if (${Me.AbilityReady[Kick]}) /doability "Kick"
/if (${Target.Distance}<${MaxD}-2) /if (${Me.AbilityReady[Taunt]}) /doability "Taunt"
/if (${Target.Distance}<${MaxD}-2) /if (${Me.AbilityReady[Disarm]}) /doability "Disarm"
/if (${Target.Distance}<${MaxD}-2) /if (${Me.AbilityReady[begging]}) {
/attack off
/face fast nolook
/delay 1
/doability "begging"
/if (!${Target.ID}) /goto :main
/attack on
}
/if (${Target.ID}) /goto :combat
/keypress back
/call Delay 3
/call Loot
/goto :main
/return
Sub Loot
/echo Looting Started
/lootn never
/declare LootSlot int local
/declare LootLeft int local
/varset LootLeft 0
/target corpse radius 100
/loot
/delay 2s
/for LootSlot 1 to ${LootTotal}
:MainLoop
/echo Looting From Slot: ${LootSlot}
/itemnotify loot${LootSlot} rightmouseup
/if (!${Corpse.Items}) /goto :DoneLooting
/delay 2s
/next LootSlot
/goto :MainLoop
:DoneLooting
/delay 1s
/notify LootWnd DoneButton leftmouseup
/popup Done Looting ${Target.CleanName}.
/echo Done Looting ${Target.CleanName}.
/lootn allways
/return
sub ToFar
/echo Max Distance is set at ${MaxD} which is too far.
/echo Setting Max Distance to 18 for this fight.
/varset MaxD 18
/return
sub event_rageon
/if (${Target.CurrentHPs}>10) /return
/popup ENRAGED ATTACK OFF
/echo Rage On
/attack off
/return
sub event_rageoff
/if (${Target.CurrentHPs}>10) /return
/popup Rage OFF, ATTACKING NOW
/echo Rage Off
/attack on
/return
sub event_stunned
/popup STUNNED STUNNED STUNNED
/delay 1s
/return
Sub event_invited
/target clear
/invite
/return
Sub Event_camp
/echo Camping ((( Ending Macro )))
/endmacro
/return
Sub event_mobgate
/popup ${Target.CleanName} GATED Attack Off
/echo ${Target.CleanName} GATED!
/attack off
/return
Sub event_appear
/popup "I am no longer invis."
/return
Sub event_appearing
/popup "I am starting to appear."
/return
Sub event_losingLev
/popup "I am losing Levitate"
/return
Sub event_exp
/echo "I am at ${Float[${Me.PctExp}]} percent Normal Exp."
/echo "I am at ${Float[${Me.PctAAExp}]} percent AA Exp."
/popup I am at ${Float[${Me.PctAAExp}]} percent AA Exp.
| /popup I am at ${Float[${Me.PctExp}]} percent Normal Exp.
/return
Sub Delay(DelayTime)
/delay @DelayTime
/return
Sub Event_SkillUp(SkillUpText)
/declare ParseSkillLevel int local
/declare ParseSkill string local
/declare PositionStart int local
/declare PositionEnd int local
/varset PositionStart ${Math.Calc[${String["${SkillUpText}"].Find["! ("]}+2]}
/varset PositionEnd ${String["${SkillUpText}"].Find[")"]}
/varset ParseSkillLevel ${String[${SkillUpText}].Mid[${Math.Calc[${PositionStart}+1]},${Math.Calc[${PositionEnd}-${PositionStart}]}]}
/varset PositionStart ${Math.Calc[${String["${SkillUpText}"].Find["at"]}+2]}
/varset PositionEnd ${String["${SkillUpText}"].Find["!"]}
/varset ParseSkill ${String["${SkillUpText}"].Mid[${Math.Calc[${PositionStart}+1]},${Math.Calc[${PositionEnd}-${PositionStart}]}]}
/popup ${ParseSkill} increased - ${ParseSkillLevel} ...
/echo ${ParseSkill} increased - ${ParseSkillLevel} ...
/return
Sub Event_Slain
/echo ${Target.CleanName} Killed you. ((Ending Macro))
/popup ${Target.CleanName} Killed you. ((Ending Macro))
/endmacro