#define I_Can_Cast "( ( ( !${Me.Casting.ID} && !${Me.Moving} ) || ${Me.Class.Name.Equal[Bard]} ) && !${Me.Ducking} && !${Corpse.Open} && !${Window[BigBankWnd].Open} && !${Window[GiveWnd].Open} && !${Window[PointMerchantWnd].Open} && !${Window[SpellBookWnd].Open} && !${Window[TradeWnd].Open} )"
#include spell_routines.inc
Sub Main
:restart
/if ( I_Can_Cast ) /call Clicky
/delay 10
/goto :restart
/return
Sub Clicky
|* 6 Seconds = 1 Tick and 10 Ticks = 1 Minute
/if ( ${FindItem[Shrunken Goblin Skull Earring].InvSlot} ) {
/if ( !${Me.Buff[Grim Aura].ID} || ${Me.Buff[Grim Aura].Duration.TotalSeconds} < 60 ) {
/echo In BFBoots Sub
/call Clicky1 "Shrunken Goblin Skull Earring" "leftear" "cast"
}
}
/if ( ${FindItem[Dark Void Shoulders].InvSlot} ) {
/if ( !${Me.Buff[Form of Protection I].ID} || ${Me.Buff[Form of Protection I].Duration.TotalSeconds} < 60 ) {
/echo In DarkVoid Sub
/call Clicky1 "Dark Void Shoulders" "shoulders" "cast"
}
}
/if ( ${FindItem[Shawl of Eternal Forces].InvSlot} ) {
/if ( ( !${Me.Buff[Maelin's Methodical Mind].ID} || ${Me.Buff[Maelin's Methodical Mind].Duration.TotalSeconds} < 60 ) && !${Me.Buff[Yaulp VI].ID} ) {
/echo In Shawl Sub
/call Clicky1 "Shawl of Eternal Forces" "shoulders" "cast"
}
}
/if ( ${FindItem[Freemind Spore Earring].InvSlot} ) {
/if ( !${Me.Buff[Sporali Advisor].ID} || ${Me.Buff[Sporali Advisor].Duration.TotalSeconds} < 60 ) {
/call Clicky1 "Freemind Spore Earring" "leftear" "cast"
}
}
/return
Sub Clicky1(string NewItem, string Location, string Foo)
/declare I int local
/declare OldItem string local ${InvSlot[${Location}].Item.Name}
/if ( ${Me.Class.Name.Equal[Bard]} ) {
/twist stop
}
/for I 1 to 2
/if ( ${InvSlot[${Location}].Item.Name.NotEqual[${NewItem}]} && ${FindItem[${NewItem}].InvSlot} ) {
/exchange "${NewItem}" ${Location}
/delay 1s ${InvSlot[${Location}].Item.Name.Equal[${NewItem}]}
}
/varset I 1
} else {
/varset I 2
}
/if ( ${Foo.Equal[Cast]} ) {
/call Cast "${NewItem}" item
} else {
/itemnotify ${FindItem[${NewItem}].InvSlot} rightmouseup
}
/for I 1 to 2
/if ( ${InvSlot[${Location}].Item.Name.NotEqual[${OldItem}]} && ${FindItem[${OldItem}].InvSlot} ) {
/exchange "${OldItem}" ${Location}
/varset I 1
} else {
/varset I 2
}
/next I
/if ( ${Me.Class.Name.Equal[Bard]} ) {
/twist start
}
/return