Post your completed (working) macros here. Only for macros using MQ2Data syntax!
Moderator: MacroQuest Developers
-
wizzyman
- a ghoul

- Posts: 106
- Joined: Fri Dec 10, 2004 6:03 pm
Post
by wizzyman » Fri Dec 10, 2004 6:24 pm
well i ve tried afnuke and found this macro awsome, unfortunatly i cant get my mind on why it s bugged for me (it work for named but not for mobs with a "A" before name) so i decided to create a macro to auto my wiz in exp grp.
fyi yesterday i was trying to compile .mac like a pluggin so am such a noob
here it is, basicly it have 1 MA (the one u start mac targetted with) but ll check ma again after each action (ie if switch target), etc it ll snare nuke n conc, self buff etc. very basic mac but working afaik.
i ve used afnuke, the shm bot from hubba and some other minor mac.
Code: Select all
| wiz.mac
| first noob mac ever
| v1.0
#Event OutDoor "#*#outdoors#*#"
#Event NoMount "You can not summon a mount here."
#Event ImDead "You have been slain by#*#"
#Event Invited "#*#To join the group, click on the 'FOLLOW' option, or 'DISBAND' to cancel#*#"
#Event NoLevit "This spell does not work here."
#Event levitFade "You feel as you are about to fall."
#include Spell_Routines.inc
Sub Main
/declare Spellsnare outer "Atol's Spectral Shackles"
/declare Spellquicknuke outer "Spark of Fire"
/declare Spellmainnuke outer "White Fire"
/declare Spellroot outer "Greater Fetter"
/declare Spellstun outer "Spark of Thunder"
/declare Spellshield outer "Ether shield"
/declare Spellharvest outer "harvest"
/declare Spelltl outer "translocate"
/declare Spellrune outer "Ether Skin"
/declare Mount outer "White Chain Bridle"
/declare Debuff outer "Staff of Temperate Flux"
/declare conc outer "Maelin's Leggings of Lore"
/declare maelin outer "Shawl of Eternal Forces"
/declare Spelllevit outer "O`Keils Levity"
/declare maelinexp outer "Eye of Dreams"
/declare AssistAt int outer 100
/declare CombatAt int outer 98
/declare M_Assist string outer
/declare OutDoors outer TRUE
/declare NoMount outer FALSE
/declare NoLevit outer FALSE
/declare NoSnare outer TRUE
/declare NoSit outer TRUE
/declare TargetArray[4] string outer
/declare MobDebuffed outer TRUE
/declare MobSnared outer TRUE
/declare CombatOn outer TRUE
/call MemSpells
/if (!${Target.ID} || ${Target.Type.NotEqual[PC]}) {
/echo Your target is NOT a player, make sure its a player character!
/endmacro
} else {
/varset M_Assist ${Target.CleanName}
/echo Assist set to ${M_Assist}
/assist off
}
:main_loop
/if (!${Me.Mount.ID} && ${OutDoors} && !${NoMount}) /call cast ${Mount} item 4s
/doevents
:Hold_Main
/if (${Me.Moving}) /goto :Hold_Main
/if (${Me.PctMana} < 80 && ${Me.SpellReady["Harvest"]} && !${CombatOn}) /call Cast ${Spellharvest}
/if (${Me.PctMana} < 80 && ${Me.AltAbilityReady["Harvest of Druzzil"]} ) /aa act Harvest of Druzzil
| /if (${Target.PctHPs}<= 85 && ${CombatOn} && ${Me.AltAbilityReady["Call of Xuzl"]} ) /aa act Call of Xuzl 8s
/call SingleBuffs
/call GetTarget
/if (${CombatOn}) /call Combat
/if (${Me.State.Equal[Stand]} && ${NoMount} && !${NoSit}) /sit
/goto :Main_Loop
/return
Sub MemSpells
/echo Memming spells. Hang on.
/if ( !${Me.Gem[${Spellsnare}]} ) {
/memspell 1 ${Spellsnare}
/delay 20
}
/if ( !${Me.Gem[${Spellquicknuke}]} ) {
/memspell 2 ${Spellquicknuke}
/delay 25
}
/if ( !${Me.Gem[${Spellmainnuke}]} ) {
/memspell 3 ${Spellmainnuke}
/delay 20
}
/if ( !${Me.Gem[${Spellroot}]} ) {
/memspell 4 ${Spellroot}
/delay 20
}
/if ( !${Me.Gem[${Spellstun}]} ) {
/memspell 5 ${Spellstun}
/delay 25
}
/if ( !${Me.Gem[${Spellshield}]} ) {
/memspell 6 ${Spellshield}
/delay 25
}
/if ( !${Me.Gem[${Spellharvest}]} ) {
/memspell 7 ${Spellharvest}
/delay 20
}
/if ( !${Me.Gem[${Spelllevit}]} ) {
/memspell 8 ${Spelllevit}
/delay 20
}
/if ( !${Me.Gem[${Spellrune}]} ) {
/memspell 9 ${Spellrune}
/delay 30
}
|/if ( ${Window[SpellBookWnd].Open} ) /windowstate SpellBookWnd close
/echo Spells are memmed.
/return
Sub GetTarget
/assist ${M_Assist}
/delay 3
/if (${Target.Type.Equal[NPC]}) /if (${Target.Distance}<=${AssistAt} && ${Target.ID}!=${TargetArray[4]} && ${Target.PctHPs}<=${CombatAt}) {
/varset TargetArray[1] ${Target.CleanName}
/varset TargetArray[2] ${Target.Level}
/varset TargetArray[3] ${Target.Name}
/varset TargetArray[4] ${Target.ID}
/varset CombatOn TRUE
/if (${Target.PctHPs}>= 60) /varset MobSnared FALSE
/if (${Target.PctHPs}>= 80) /varset MobDebuffed FALSE
}
/return
Sub Combat
:combat_loop
/doevents
/if (${Me.PctMana} < 20) {
/if (${Me.State.Equal[Stand]} && ${NoMount}) /sit
/goto :combat_loop
}
/if (${Target.PctHPs}<= 10 ) {
/varset CombatOn FALSE
}
/if (${Target.PctHPs}<= 98 && ${CombatOn} && !${MobDebuffed} && ${Target.ID}==${TargetArray[4]}) /call DeBuff
/if (${Target.PctHPs}<= 60 && ${CombatOn} && !${NoSnare} && !${MobSnared} && ${Target.ID}==${TargetArray[4]}) /call snare
/if (${Target.PctHPs}<= 35 && ${CombatOn} && ${Target.ID}==${TargetArray[4]}) {
/call quicknuke
/goto :combat_loop
}
/if (${Target.PctHPs}<= 90 && ${CombatOn} && ${Target.ID}==${TargetArray[4]}) /call mainnuke
|- EndCombat
/target ${TargetArray[3]}
/if (!${Target.Name.Equal[${TargetArray[3]}]} || !${Target.ID}) {
/echo ${TargetArray[1]} is dead
/varset CombatOn FALSE
/varset MobDebuffed FALSE
/varset MobSnared FALSE
/varset TargetArray[1] NULL
/varset TargetArray[2] NULL
/varset TargetArray[3] NULL
/varset TargetArray[4] NULL
}
/return
Sub DeBuff
:DeBuff_Loop
/if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
/call cast ${Debuff} item
/call cast ${Debuff} item
/call cast ${Debuff} item
/call cast ${Debuff} item
/call cast ${Debuff} item
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :DeBuff_Loop
/varset MobDebuffed TRUE
}
/return
Sub mainnuke
/if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
/if (${Me.CurrentMana}<${Spell[${Spellmainnuke}].Mana}) {
/echo Shid ! I don't have mana to nuke %T
} else {
:mainnuke_Loop
/call cast ${Spellmainnuke} gem3 6s
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :mainnuke_Loop
/if (${Macro.Return.Equal["CAST_RESISTED"]}) /goto :mainnuke_Loop
/call Cast ${conc} item
}
}
/return
Sub quicknuke
/if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
/if (${Me.CurrentMana}<${Spell[${Spellmainnuke}].Mana}) {
/echo Shid ! I don't have mana to nuke %T
} else {
:quicknuke_Loop
/call cast ${Spellquicknuke} gem2 3s
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :quicknuke_Loop
/if (${Macro.Return.Equal["CAST_RESISTED"]}) /goto :quicknuke_Loop
}
}
/return
Sub snare
/if (${Target.PctHPs}<=${CombatAt} && !${MobSnared} && ${Target.ID}==${TargetArray[4]}) {
/if (${Me.CurrentMana}<${Spell[${Spellsnare}].Mana}) {
/echo Shid ! I don't have mana to snare %T
} else {
:snare_Loop
/call cast ${Spellsnare}
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :snare_Loop
/if (${Macro.Return.Equal["CAST_IMMUNE"]}) {
/gsay %T immune snare
/varset MobSnared TRUE
/return
}
/if (${Macro.Return.Equal["CAST_RESISTED"]}) /goto :snare_loop
/varset MobSnared TRUE
}
/return
sub SingleBuffs
/if (${Bool[${Me.Buff["Ether Skin"]}]}==FALSE) /call Cast ${Spellrune}
/if (${Bool[${Me.Buff["Ether Shield"]}]}==FALSE) /call Cast ${Spellshield}
/if (${Bool[${Me.Buff["Ro's Greater Familiar"]}]}==FALSE) /alt activate 453
| /if (${Bool[${Me.Buff["Devoted Familiar"]}]}==FALSE) /alt activate 457
| /if (${Bool[${Me.Buff["Druzzil's Mystical Familiar"]}]}==FALSE) /alt activate 305
/if (${Me.Pet.ID} && ${Me.Pet.Name.Find[familiar]}) /pet get lost
/if (${Bool[${Me.Buff["Maelin's Methodical Mind"]}]}==FALSE) /call Cast "Shawl of Eternal Forces" item 6s
/if (${Bool[${Me.Buff["Maelin's Meditation"]}]}==FALSE) /call Cast "Eye of Dreams" item 5s
/if (${Bool[${Me.Buff["O`Keils Levity"]}]}==FALSE && !${NoLevit}) /call Cast ${Spelllevit}
/return
| ######################################################################################################
Sub Event_OutDoor
/echo This is an indoor zone. Sorry.
/varset OutDoors FALSE
/return
| ######################################################################################################
Sub Event_NoLevit
/echo can't levitate in this zone. Sorry.
/varset NoLevit TRUE
/return
| ######################################################################################################
Sub Event_NoMount
/echo No mount in this zone. Sorry.
/varset NoMount TRUE
/return
| ######################################################################################################
Sub Event_levitFade
/call Cast ${Spelllevit}
/return
| ######################################################################################################
Sub Event_Invited
/invite
/return
| ##################
Sub Event_ImDead
/echo Bummer !
:Zone_Loop
/if ( ${Me.Bound.ID} != ${Zone.ID} ) /goto :Zone_Loop
/delay 5s
/consent group
/delay 5
/gsay Im ready to get rez.
/call Wait4Rez
/delay 20
/call MemSpells
/if (${Me.State.Equal[Stand]}) /sit
| We do some short meditate before we start again.
:Meditate
/delay 1s
/if (${Me.CurrentMana} < 300) /goto :Meditate
/return
| ################## This part is taken from wait4res.
Sub Wait4Rez
:waitforrez
/if (!${Window[ConfirmationDialogBox].Open}) {
/delay 5s ${Window[ConfirmationDialogBox].Open}
/goto :waitforrez
}
/if (${Window[ConfirmationDialogBox].Open}) /notify ConfirmationDialogBox Yes_Button leftmouseup
:zonein
/delay 5
/squelch /target mycorpse
/delay 5
/if (${Target.CleanName.NotEqual[${Me}'s corpse]}) /goto :zonein
/if (${Target.CleanName.Equal[${Me}'s corpse]}) {
/delay 3s
/call Loot_Corpse
} else /goto :zonein
/return
Sub Loot_Corpse
/declare LootTotal int local 0
/declare LootSlot int local
/squelch /target mycorpse
/if (${Target.Type.NotEqual[CORPSE]} || !${Target.ID}) {
/echo ** Can't target my corpse.
/return
}
/corpse
/delay 1s
/loot
/delay 1s
/if (${Me.State.NotEqual[BIND]}) {
/echo ** Massive lag right now... Aborting looting.
/return
}
:LootLag
/if (${LootTotal}!=${Corpse.Items}) {
/varset LootTotal ${Corpse.Items}
/delay 5
/goto :LootLag
}
/for LootSlot 1 to ${LootTotal}
:LootItem
/itemnotify loot${LootSlot} rightmouseup
/delay 3
/if (${Corpse.Item[${LootSlot}].ID}) {
/delay 2
/goto :LootItem
}
/next LootSlot
/delay 5
/echo ** Done looting my corpse.
/notify LootWnd DoneButton leftmouseup
/return
i ll try to add a stun with spark of thunder when i figure out later how to parse the event target cast ch or gate ><
Last edited by
wizzyman on Thu Dec 16, 2004 2:45 am, edited 3 times in total.
-
wizzyman
- a ghoul

- Posts: 106
- Joined: Fri Dec 10, 2004 6:03 pm
Post
by wizzyman » Sat Dec 11, 2004 1:01 pm
have played with it all day, working now, only thing i dont know is if imunity of snare is correctly handled.
u turn on snare or levit here; u make it FALSE if u want it to work
/declare NoLevit TRUE
/declare NoSnare TRUE
can anyone explain me how i can check for event mob gating or casting ch (with leaderAA spell awareness for ch) plz?

-
Effico
- a lesser mummy

- Posts: 69
- Joined: Mon Oct 18, 2004 6:03 am
Post
by Effico » Wed Jan 05, 2005 6:15 am
played this for a little yesterday and it worked well.
-
anthrox
- I send out spam emails for EQLUCKY.COM
- Posts: 1
- Joined: Thu Dec 16, 2004 2:04 pm
Post
by anthrox » Tue Jan 11, 2005 10:54 pm
Used this all day in a group then later in a raid -- works great!
I love the built in wait4rez too.
Very cool script.

-
Dumas
- decaying skeleton

- Posts: 6
- Joined: Wed Jun 02, 2004 2:05 pm
Post
by Dumas » Mon Feb 14, 2005 3:27 pm
Shouldn't this:
Code: Select all
#Event levitFade "You feel as you are about to fall."
Be:
Code: Select all
#Event levitFade "You feel as [color=red]if[/color] you are about to fall."
-
wizzyman
- a ghoul

- Posts: 106
- Joined: Fri Dec 10, 2004 6:03 pm
Post
by wizzyman » Thu May 12, 2005 5:07 am
Code: Select all
| wiz.mac
| v2.0
| simple wizzy bot assist macro
| commands:
| - toggle mode: /fire, /cold, /magic, /main
| - toggle main assist: /ma
| - toggle quick nuke at: /quicknukeat
| - toggle main nuke at: /mainnukeat
| - toggle snare at: /snareat
#Chat tell
#Event OutDoor "#*#outdoors#*#"
#Event NoMount "You can not summon a mount here."
#Event ImDead "You have been slain by#*#"
#Event Invited "#*#To join the group, click on the 'FOLLOW' option, or 'DISBAND' to cancel#*#"
#Event NoLevit "This spell does not work here."
#Event levitFade "#*#You feel as you are about to fall.#*#"
#Event Fire "[MQ2] FireMode#*#"
#Event Cold "[MQ2] ColdModet#*#"
#Event Magic "[MQ2] MagicMode#*#"
#Event Main "[MQ2] MainMode#*#"
#Event NewMA "[MQ2] NewMA#*#"
#Event SnareAt "[MQ2] SnareAt#*#"
#Event QuickNukeAt "[MQ2] QuickNukeAt#*#"
#Event MainNukeAT "[MQ2] MainNukeAT#*#"
#include Spell_Routines.inc
Sub Main
/declare CChannel outer "secret"
/declare ChatController outer "secret"
/declare following int outer 0
/declare follname string outer NULL
/declare Familiar outer Devoted Familiar
/declare Spellsnare outer "Atol's Spectral Shackles"
/declare Spellquicknuke outer "Spark of Fire"
/declare Spellmainnuke outer "White Fire"
/declare Spellroot outer "Greater Fetter"
/declare Spellstun outer "Spark of Thunder"
/declare Spellshield outer "Ether shield"
/declare Spellharvest outer "harvest"
/declare Spelltl outer "translocate"
/declare Spellrune outer "Ether Skin"
/declare Mount outer "White Chain Bridle"
/declare Debuff outer "Staff of Temperate Flux"
/declare conc outer "Maelin's Leggings of Lore"
/declare maelin outer "Shawl of Eternal Forces"
/declare Spelllevit outer "O`Keils Levity"
/declare maelinexp outer "Eye of Dreams"
/declare SpellStun2 outer "Teleka"
/declare SpellInvis outer "Improved Invisibiliry"
/declare AssistAt int outer 100
/declare CombatAt int outer 98
/declare MainNukeAT int outer 70
/declare SnareAt int outer 60
/declare DebuffCount int outer 0
/declare M_Assist string outer
/declare OutDoors outer TRUE
/declare NoMount outer FALSE
/declare NoLevit outer FALSE
|if you dont want to snare = TRUE
/declare NoSnare outer FALSE
|if you dont want to sit = TRUE
/declare NoSit outer FALSE
/declare TargetArray[4] string outer
/declare MobDebuffed outer TRUE
/declare MobSnared outer TRUE
/declare CombatOn outer TRUE
/declare DoDebuff outer FALSE
/squelch /alias /fire /echo FireMode
/squelch /alias /cold /echo ColdMode
/squelch /alias /magic /echo MagicMode
/squelch /alias /main /echo MainMode
/squelch /alias /ma /echo NewMA
/squelch /alias /mainnukeat /echo MainNukeAT
/squelch /alias /quicknukeat /echo QuickNukeAt
/squelch /alias /snareat /echo SnareAt
/call MemSpells
/if (!${Target.ID} || ${Target.Type.NotEqual[PC]}) {
/echo Your target is NOT a player, make sure its a player character!
/endmacro
} else {
/varset M_Assist ${Target.CleanName}
/echo Assist set to ${M_Assist}
/assist off
}
/leaveall
/join ${CChannel}
/1 I am here!
/echo Joined channel ${CChannel}
:main_loop
/if (!${Me.Mount.ID} && ${OutDoors} && !${NoMount}) /call cast ${Mount} item 4s
/if (${Me.State.Equal[Stand]} && ${NoMount} && !${NoSit} && ${Me.PctMana}<80 && !${Spawn[npc radius 80].ID}) /sit
/doevents
:Hold_Main
/if (${Me.Moving}) /goto :Hold_Main
/if (${Me.PctMana} < 80 && ${Me.SpellReady["Harvest"]} && !${CombatOn}) /call Cast ${Spellharvest}
/if (${Me.PctMana} < 80 && ${Me.AltAbilityReady["Harvest of Druzzil"]} && !${CombatOn}) /aa act Harvest of Druzzil
/if (${Target.PctHPs}<= 85 && ${CombatOn} && ${Me.AltAbilityReady["Call of Xuzl"]} ) {
/aa act Call of Xuzl
/delay 8s
}
/call SingleBuffs
/call GetTarget
/if (${CombatOn}) /call Combat
/goto :Main_Loop
/return
Sub MemSpells
/echo Memming spells. Hang on.
/if ( !${Me.Gem[${Spellsnare}]} ) {
/memspell 1 ${Spellsnare}
/delay 20
}
/if ( !${Me.Gem[${Spellquicknuke}]} ) {
/memspell 2 ${Spellquicknuke}
/delay 25
}
/if ( !${Me.Gem[${Spellmainnuke}]} ) {
/memspell 3 ${Spellmainnuke}
/delay 20
}
/if ( !${Me.Gem[${Spellroot}]} ) {
/memspell 4 ${Spellroot}
/delay 20
}
/if ( !${Me.Gem[${Spellstun}]} ) {
/memspell 5 ${Spellstun}
/delay 25
}
/if ( !${Me.Gem[${Spellshield}]} ) {
/memspell 6 ${Spellshield}
/delay 25
}
/if ( !${Me.Gem[${Spellharvest}]} ) {
/memspell 7 ${Spellharvest}
/delay 20
}
/if ( !${Me.Gem[${Spelllevit}]} ) {
/memspell 8 ${Spelllevit}
/delay 20
}
/if ( !${Me.Gem[${Spellrune}]} ) {
/memspell 9 ${Spellrune}
/delay 30
}
|/if ( ${Window[SpellBookWnd].Open} ) /windowstate SpellBookWnd close
/echo Spells are memmed.
/return
Sub GetTarget
/assist ${M_Assist}
/delay 3
/if (${Target.Type.Equal[NPC]}) /if (${Target.Distance}<=${AssistAt} && ${Target.ID}!=${TargetArray[4]} && ${Target.PctHPs}<=${CombatAt}) {
/varset TargetArray[1] ${Target.CleanName}
/varset TargetArray[2] ${Target.Level}
/varset TargetArray[3] ${Target.Name}
/varset TargetArray[4] ${Target.ID}
/varset CombatOn TRUE
/if (${Target.PctHPs}>= 60) /varset MobSnared FALSE
/if (${Target.PctHPs}>= 80) /varset MobDebuffed FALSE
}
/return
Sub Combat
:combat_loop
/doevents
/if (${Me.PctMana} < 20) {
/if (${Me.State.Equal[Stand]} && ${NoMount}) /sit
/goto :combat_loop
}
/if (${Target.PctHPs}<= 10 ) {
/varset CombatOn FALSE
}
/if (${Target.PctHPs}<= 98 && ${DoDebuff} && ${CombatOn} && !${MobDebuffed} && ${Target.ID}==${TargetArray[4]}) /call DeBuff
/if (${Target.PctHPs}<= ${SnareAt} && ${CombatOn} && !${NoSnare} && !${MobSnared} && ${Target.ID}==${TargetArray[4]}) /call snare
/if (${Target.PctHPs}<= ${QuickNukeAt} && ${CombatOn} && ${Target.ID}==${TargetArray[4]}) {
/call quicknuke
/goto :combat_loop
}
/if (${Target.PctHPs}<= ${MainNukeAT} && ${CombatOn} && ${Target.ID}==${TargetArray[4]}) /call mainnuke
|- EndCombat
/target ${TargetArray[3]}
/if (!${Target.Name.Equal[${TargetArray[3]}]} || !${Target.ID}) {
/echo ${TargetArray[1]} is dead
/varset CombatOn FALSE
/varset MobDebuffed FALSE
/varset MobSnared FALSE
/varset TargetArray[1] NULL
/varset TargetArray[2] NULL
/varset TargetArray[3] NULL
/varset TargetArray[4] NULL
}
/return
Sub DeBuff
:DeBuff_Loop
/delay 5
/if (${DebuffCount}>5) /goto :DebuffEnd
/if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
/call cast ${Debuff} item
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :DeBuff_Loop
/if (${Macro.Return.Equal["CAST_RESISTED"]}) {
/varcalc DebuffCount ${DebuffCount}+1
/goto :DeBuff_Loop
}
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) {
/varset MobDebuffed TRUE
/varset DebuffCount 0
/return
}
}
:DebuffEnd
/varset MobDebuffed TRUE
/varset DebuffCount 0
/return
Sub mainnuke
/if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
/if (${Me.CurrentMana}<${Spell[${Spellmainnuke}].Mana}) {
/echo Shid ! I don't have mana to nuke %T
} else {
:mainnuke_Loop
/call cast ${Spellmainnuke} gem3 6s
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :mainnuke_Loop
/if (${Macro.Return.Equal["CAST_RESISTED"]}) /goto :mainnuke_Loop
/call Cast ${conc} item
/call Cast ${conc} item
}
}
/return
Sub quicknuke
/if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
/if (${Me.CurrentMana}<${Spell[${Spellmainnuke}].Mana}) {
/echo Shid ! I don't have mana to nuke %T
} else {
:quicknuke_Loop
/call cast ${Spellquicknuke} gem2 3s
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :quicknuke_Loop
/if (${Macro.Return.Equal["CAST_RESISTED"]}) /goto :quicknuke_Loop
/call Cast ${conc} item
}
}
/return
Sub snare
/if (${Target.PctHPs}<=${CombatAt} && !${MobSnared} && ${Target.ID}==${TargetArray[4]}) {
/if (${Me.CurrentMana}<${Spell[${Spellsnare}].Mana}) {
/echo Shid ! I don't have mana to snare %T
} else {
:snare_Loop
/call cast ${Spellsnare}
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :snare_Loop
/if (${Macro.Return.Equal["CAST_IMMUNE"]}) {
/gsay %T immune snare
/varset MobSnared TRUE
/return
}
/if (${Macro.Return.Equal["CAST_RESISTED"]}) /goto :snare_loop
/varset MobSnared TRUE
}
/return
sub SingleBuffs
/if (${Bool[${Me.Buff["Ether Skin"]}]}==FALSE) /call Cast ${Spellrune} gem9 5s
/if (${Bool[${Me.Buff["Ether Shield"]}]}==FALSE) /call Cast ${Spellshield} gem6 12s
/if (${Bool[${Me.Buff["${Familiar}"]}]}==FALSE) /aa act Familiar
/if (${Me.Pet.ID} && ${Me.Pet.Name.Find[familiar]}) /pet get lost
/if (${Bool[${Me.Buff["Maelin's Methodical Mind"]}]}==FALSE) /call Cast "Shawl of Eternal Forces" item 6s
/if (${Bool[${Me.Buff["Maelin's Meditation"]}]}==FALSE) /call Cast "Eye of Dreams" item 5s
/if (${Bool[${Me.Buff["O`Keils Levity"]}]}==FALSE && !${NoLevit}) /call Cast ${Spelllevit} gem8 6s
/return
| ######################################################################################################
Sub Event_OutDoor
/echo This is an indoor zone. Sorry.
/varset OutDoors FALSE
/return
| ######################################################################################################
Sub Event_NoLevit
/echo can't levitate in this zone. Sorry.
/varset NoLevit TRUE
/return
| ######################################################################################################
Sub Event_NoMount
/echo No mount in this zone. Sorry.
/varset NoMount TRUE
/return
| ######################################################################################################
Sub Event_levitFade
/call Cast ${Spelllevit}
/return
| ######################################################################################################
Sub Event_Invited
/invite
/return
| ######################################################################################################
Sub Event_ImDead
/echo Bummer !
:Zone_Loop
/if ( ${Me.Bound.ID} != ${Zone.ID} ) /goto :Zone_Loop
/delay 5s
/consent group
/delay 5
/gsay Im ready to get rez.
/call Wait4Rez
/delay 20
/call MemSpells
/if (${Me.State.Equal[Stand]}) /sit
| We do some short meditate before we start again.
:Meditate
/delay 1s
/if (${Me.CurrentMana} < 300) /goto :Meditate
/return
| ######################################################################################################
Sub Event_Fire
/varset Familiar Ro's Greater Familiar
/varset Spellmainnuke "White Fire"
/varset Spellquicknuke "Spark of Fire"
/call DropFlappy
/call MemSpells
/call SingleBuffs
/return
| ######################################################################################################
Sub Event_Cold
/varset Familiar Eci's Greater Familiar
/varset Spellmainnuke "Gelidin Comet"
/varset Spellquicknuke "Spark of Ice"
/call DropFlappy
/call MemSpells
/call SingleBuffs
/return
| ######################################################################################################
Sub Event_Magic
/varset Familiar Druzzil's Greater Familiar
/varset Spellmainnuke "Thundaka"
/varset Spellquicknuke "Spark of Lightning"
/call DropFlappy
/call MemSpells
/call SingleBuffs
/return
| ######################################################################################################
Sub Event_Main
/varset Familiar Devoted Familiar
|/varset Spellmainnuke
|/varset Spellquicknuke
/call DropFlappy
/call MemSpells
/call SingleBuffs
/return
| ######################################################################################################
Sub Event_NewMA
/varset M_Assist ${Target.CleanName}
/echo Assist set to ${M_Assist}
/return
| ######################################################################################################
Sub Event_SnareAt(string Line, string Command, string Command2)
/varset SnareAt ${Command2}
/return
| ######################################################################################################
Sub Event_QuickNukeAt(string Line, string Command, string Command2)
/varset QuickNukeAt ${Command2}
/return
| ######################################################################################################
Sub Event_MainNukeAt(string Line, string Command, string Command2)
/varset MainNukeAt ${Command2}
/return
| ######################################################################################################
Sub DropFlappy
/if (${Me.Buff[Devoted Familiar].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[Devoted Familiar].ID}-1].Int} leftmouseup
/if (${Me.Buff[Druzzil's Greater Familiar].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[Druzzil's Greater Familiar].ID}-1].Int} leftmouseup
/if (${Me.Buff[Eci's Greater Familiar].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[Eci's Greater Familiar].ID}-1].Int} leftmouseup
/if (${Me.Buff[Ro's Greater Familiar].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[Ro's Greater Familiar].ID}-1].Int} leftmouseup
/return
| ################## This part is taken from wait4res.
Sub Wait4Rez
:waitforrez
/if (!${Window[ConfirmationDialogBox].Open}) {
/delay 5s ${Window[ConfirmationDialogBox].Open}
/goto :waitforrez
}
/if (${Window[ConfirmationDialogBox].Open}) /notify ConfirmationDialogBox Yes_Button leftmouseup
:zonein
/delay 5
/squelch /target mycorpse
/delay 5
/if (${Target.CleanName.NotEqual[${Me}'s corpse]}) /goto :zonein
/if (${Target.CleanName.Equal[${Me}'s corpse]}) {
/delay 3s
/call Loot_Corpse
} else /goto :zonein
/return
Sub Loot_Corpse
/declare LootTotal int local 0
/declare LootSlot int local
/squelch /target mycorpse
/if (${Target.Type.NotEqual[CORPSE]} || !${Target.ID}) {
/echo ** Can't target my corpse.
/return
}
/corpse
/delay 1s
/loot
/delay 1s
/if (${Me.State.NotEqual[BIND]}) {
/echo ** Massive lag right now... Aborting looting.
/return
}
:LootLag
/if (${LootTotal}!=${Corpse.Items}) {
/varset LootTotal ${Corpse.Items}
/delay 5
/goto :LootLag
}
/for LootSlot 1 to ${LootTotal}
:LootItem
/itemnotify loot${LootSlot} rightmouseup
/delay 3
/if (${Corpse.Item[${LootSlot}].ID}) {
/delay 2
/goto :LootItem
}
/next LootSlot
/delay 5
/echo ** Done looting my corpse.
/notify LootWnd DoneButton leftmouseup
| ###############################
Sub Event_Chat(string ChatType,string ChatSender,string ChatText)
/if (!${ChatType.Equal[TELL]}) /return
/if (${ChatText.Equal[mainnuke]}) {
/assist ${ChatSender}
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
/call cast ${Spellmainnuke} gem3 6s
}
/return
}
/if (${ChatText.Equal[quicknuke]}) {
/assist ${ChatSender}
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
/call cast ${Spellquicknuke} gem2 3s
}
/return
}
/if (${ChatText.Equal[invis]}) {
/assist ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellInvis} gem3 5s
}
/return
}
/if (${ChatText.Equal[punt]}) {
/target ${ChatSender}
/delay 5
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${Spelltl} gem8 6s
}
/return
}
/if (${ChatText.Equal[stun]}) {
/assist ${ChatSender}
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
/call cast ${SpellStun2} gem5 3s
}
/return
}
/if (${ChatText.Equal[evac]} && ${ChatSender.Equal[ChatController]) {
/if (${Me.AltAbilityReady["Exodus"]}) {
/aa act Exodus
/return
} else {
/gsay exodus down ><
/return
}
}
/if (${ChatText.Equal[Follow me]}) {
/delay 5
/if (!${Spawn[${ChatSender}].ID}) {
/e ${ChatSender} is not in zone for me to follow!
/return
}
/varset follname ${ChatSender}
/varset following 1
:targetfoll
/target pc ${follname}
/delay 1s ${Target.Name.Equal[${follname}]}
/if (${Target.Name.Equal[${follname}]}) {
/goto :Loop
} else /goto :targetfoll
:Loop
/face fast
/if (${Target.Distance}>10) /keypress forward hold
/if (${Target.Distance}<9) /keypress back
/if (!${Target.ID}) /varset following 0
/doevents
/if ((${Target.Name.Equal[${follname}]})&&(${following}>0)) {
/goto :Loop
} else {
/keypress forward
/keypress back
}
/return
}
/if (${ChatText.Equal[End follow]}) {
/varset following 0
/keypress forward
/keypress back
/clean
/timed 50 /face pc ${follname}
/tell ${ChatSender} I Stopped following you!!!
/return
}
/if (${ChatType.Equal[TELL]}) {
/1 [${ChatSender}]:${ChatText}
/vtell ${ChatController} 001
/return
}
/return
V2.0 need to be field tested.
-
JJ
- a hill giant

- Posts: 227
- Joined: Thu Nov 11, 2004 5:50 am
Post
by JJ » Thu May 12, 2005 12:23 pm
wizzyman wrote:can anyone explain me how i can check for event mob gating or casting ch (with leaderAA spell awareness for ch) plz?

Not sure exactly on how to use the variables in the events, but it should be something like:
Code: Select all
#event MobGate "|${Target.CleanName}| begins to cast a spell. <Gate>"
#event MobCH "|${Target.CleanName}| begins to cast a spell. <Complete Heal>"
Can't remember if it's <> or () or whatever.
-
wizzyman
- a ghoul

- Posts: 106
- Joined: Fri Dec 10, 2004 6:03 pm
Post
by wizzyman » Thu May 12, 2005 12:52 pm
haha thx for replay, this was an old question tho

-
fry
- decaying skeleton

- Posts: 2
- Joined: Sat Jun 04, 2005 7:57 am
Post
by fry » Sat Jun 04, 2005 8:12 am
nice mac. Now make a mage one !
-
EQPlayer
- orc pawn

- Posts: 16
- Joined: Tue Apr 19, 2005 11:41 am
Post
by EQPlayer » Tue Aug 02, 2005 8:10 pm
My friend and I have been trying this out on his wizard , but we have one question. How do set a delay between each main nuke? The wizard is getting over aggro'd cause the delay between nukes is not large enough.
-
gimp
- a grimling bloodguard

- Posts: 584
- Joined: Fri Oct 29, 2004 9:28 am
- Location: internet
Post
by gimp » Tue Aug 02, 2005 8:17 pm
you would put it somewhere in the Combat sub, from the looks of it, there isnt any currently. or i suppose you can tell the macro to start nuking at a little later % of the mob, and your tank would have more time building aggro
-
vstratos
- orc pawn

- Posts: 25
- Joined: Mon May 09, 2005 2:52 am
Post
by vstratos » Sun Aug 21, 2005 5:14 pm
Would it be hard to add mana robe maybe?
-
A_Druid_00
- Macro Maker Extraordinaire
- Posts: 2378
- Joined: Tue Jul 13, 2004 12:45 pm
- Location: Rolling on the Lawn Farting
Post
by A_Druid_00 » Mon Aug 22, 2005 8:55 am
AutoBot does Harvest as well as Mana Robe. The only thing I don't have for wizards ATM is the addition of a 3rd nuke line for Magic based nukes. Fire/Cold are covered though! It also keeps up self buffs/item buffs, as well as familiar. The list goes on and on, but I already answered your question.
[quote]<DigitalMocking> man, A_Druid_00 really does love those long ass if statements
<dont_know_at_all> i don't use his macro because i'm frightened of it[/quote]
[quote][12:45] <dont_know_at_all> never use a macro when you can really fuck up things with a plugin[/quote]
-
vstratos
- orc pawn

- Posts: 25
- Joined: Mon May 09, 2005 2:52 am
Post
by vstratos » Wed Aug 24, 2005 11:27 am
Thanks will give it a try !!!