...and tell me why they dont work
This is an adaptation of the Berzerker/Shaman afk mac.
The stuff that doesnt work is
1. When I send a tell to debuff, I get an MQ2 Error saying Spell:NULL was not found in your spell book.
2. When I send a tell to slow, it begins to cast Turgur's Insects, and also tries to use Time's Antithesis.
3. I would really like to take the Warp part out, since all my fighting is done in one small room.
Thanks!
This is an adaptation of the Berzerker/Shaman afk mac.
Rich (BB code):
|---Noobsham.mac-------
|---Version 1.0
#chat group
#chat tell
#Event OutDoor "#*#outdoors#*#"
#Event OutDoor "You can not summon a mount here."
#Event Zoning "You have entered#*#"
#Event ImDead "You have been slain by#*#"
#Event NoobExp "You gain experience!!"
cancel#*#"
#include Spell_Routines.inc
Sub Main
| The spell will be memmed in the listed order.
| Gem1 = Canni
| Gem2 = Slow
| Gem3 = Malos
| Gem4 = Avatar
| Gem5 = HASTE
| Gem6 = Heal
| Gem7 = HoT
| Gem8 = DoT
| Gem9 = root, Nuke, gate
| ########### Declares Zone which you start macro
/declare myzone int outer ${Zone.ID}
| ########### Your Spell List - update as needed
/declare SpellSlow outer "Turgur's Insects"
/declare SpellDoT outer "Blood of Saryrn"
/declare SpellPet outer "True Spirit"
/declare SpellDeBuff outer "Malos"
/declare SpellCanni outer "Pained Memory"
/declare SpellDoT1 outer "Blood of Saryrn"
/declare SpellHoT outer "Breath of Trushar"
/declare SpellHeal outer "Yoppa's Mending"
/declare SpellRoot outer "Petrifying Earth"
/declare SpellNuke outer "Velium Strike"
/declare SpellATK outer "Ferine Avatar"
/declare SpellHASTE outer "Swift Like the Wind"
/declare SpellFOCUS outer "Wunshi's Focusing"
/declare SpellCHA outer "Charisma"
/declare SpellDEX outer "Spirit of Might"
/declare SpellSTR outer "Spirit of Might"
/declare SpellAGI outer "Agility of the Wrulan"
/declare SpellSTA outer "Spirit of Fortitude"
| ########### Mount Type
/declare Mount outer "Ornate Barding"
| ############ To Do List
/declare Cannibalization outer TRUE
/declare AvatarDelay timer outer 0
/declare LowMana outer FALSE
/declare M_Assist string outer
/declare OutDoors outer TRUE
|############# Noob EXP setup
/declare Exper float outer ${Me.PctExp}
/declare AAExp float outer ${Me.PctAAExp}
/declare TotalAAExp float outer 0.00
/declare TotalExp float outer 0.00
/call MemSpells
| ############### Target a player as Main Assist
/varset M_Assist MonkX
/echo Assist set to ${M_Assist}
/leaveall
|- Summon Mount if outdoors
| /if (!${Me.Mount.ID} && ${OutDoors}) /call cast ${Mount} item 4s
| ###############
| ############### Main Loop Starts
| ###############
:Main_Loop
/if (${Zone.ID}!=${myzone}) {
/quit
/endmacro
}
/if (${Me.PctHPs}<15) {
/fade
/delay 10
/quit
/endmacro
}
/if (!${Spawn[${M_Assist}].ID}) {
/fade
/delay 10
/quit
/end
}
| - Warps to main tank if to far...
/target pc ${M_Assist}
/delay 10
/if ((${Target.Distance}>20)&&(!${Me.Casting})) /warp target
/if ((${Target.PctHPs} < 65)&&(${Target.Distance}<90)) /call cast ${SpellHeal}
gem6 4s
|- Check LOM and Events
/call Check_Mana
/doevents
| /if (!${Me.Mount.ID} && ${OutDoors}) /call cast ${Mount} item 4s
|- Hold Macro on Casting and Moving
:Hold_Main
/if (${Me.Moving}) /goto :Hold_Main
/if (${Me.Casting}) /goto :Hold_Main
|- Canni
/call LOM
|- Buff Avatar
/if (${Me.SpellReady[${SpellATK}]} && !${AvatarDelay}) {
/target pc ${M_Assist}
/delay 10
/call cast ${SpellATK} gem4 4s
/varset AvatarDelay 8m
}
/goto :Main_Loop
/return
| ###############
| ############### Main Loop Ends
| ###############
| ############### Mem Spells in Spell List
Sub MemSpells
/echo Memming spells. Hang on.
/if ( !${Me.Gem[${SpellCanni}]} ) {
/memspell 1 ${SpellCanni}
/delay 25
}
/if ( !${Me.Gem[${SpellSlow}]} ) {
/memspell 2 ${SpellSlow}
/delay 20
}
/if ( !${Me.Gem[${SpellDeBuff}]} ) {
/memspell 3 ${SpellDeBuff}
/delay 20
}
/if ( !${Me.Gem[${SpellATK}]} ) {
/memspell 4 ${SpellATK}
/delay 20
}
/if ( !${Me.Gem[${SpellHaste}]} ) {
/memspell 5 ${SpellHaste}
/delay 20
}
/if ( !${Me.Gem[${SpellHeal}]} ) {
/memspell 6 ${SpellHeal}
/delay 20
}
/if ( !${Me.Gem[${SpellHoT}]} ) {
/memspell 7 ${SpellHoT}
/delay 20
}
/if ( !${Me.Gem[${SpellDoT}]} ) {
/memspell 8 ${SpellDoT}
/delay 30
}
| /if ( !${Me.Gem[${SpellRoot}]} ) {
| /memspell 9 ${SpellRoot}
| /delay 30
| }
|/if ( ${Window[SpellBookWnd].Open} ) /windowstate SpellBookWnd close
/echo Spells are memmed.
/return
| ############### Slowing
Sub Slow
:Slow_Loop
/call cast "Time's Antithesis" item 4s
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :Slow_Loop
/if (${Macro.Return.Equal["CAST_RESISTED"]}) /goto :Slow_Loop
/return
| ################### Check Mana level and report it
Sub Check_Mana
/if (${Math.Calc[${Me.MaxMana}*${MinMana}/100]} >= ${Me.CurrentMana} && !
${LowMana}) {
/varset LowMana TRUE
} else /if (${Math.Calc[${Me.MaxMana}*${BuffMana}/100]} <= ${Me.CurrentMana} &&
${LowMana}) {
/varset LowMana FALSE
}
/return
| ################## Canni 5
Sub Cannibalization
/call CheckMyHPs
/if (${Me.CurrentHPs} < 2424) {
/call CheckMyHPs
} else /if (${Me.Buff[${SpellHoT}].ID}) {
/aa act Cannibalization
/delay 3s
}
/return
| ################## This will NOT check self HPs, Only check HoT or recast HoT
Sub CheckMyHPs
/if (${Me.PctHPs}<15) {
/fade
/delay 10
/quit
/endmacro
}
/if (${Me.CurrentMana}<${Spell[${SpellHoT}].Mana}) {
/echo *** Shit, I don't have mana to cast ${SpellHoT}
} else {
/target myself
/delay 3
/if (!${Me.Buff[${SpellHoT}].ID}) /call cast ${SpellHoT} gem7 3s
}
/return
| ################## This will Check to see if I am Low on Mana
Sub LOM
/if (${Me.CurrentHPs} < ${Math.Calc[${Me.MaxHPs}/1.3]}) /call CheckMyHPs
/if ((${Me.CurrentMana} < ${Math.Calc[${Me.MaxMana}-5]}) && (${Me.SpellReady
[${SpellCanni}]})) /call cast ${SpellCanni} gem1 6s
/if (${Cannibalization} && ${Me.AltAbilityReady[47]} && ${Me.CurrentMana} <
${Math.Calc[${Me.MaxMana}-1200]} && ${Me.MaxHPs} > 2424) /call Cannibalization
/return
| ################## Outdoors
Sub Event_OutDoor
/echo This is an indoor zone. Sorry.
/varset OutDoors FALSE
/return
| ################## Zoning
Sub Event_Zoning
/quit
/unload
/end
/return
| ################## NoobExp
Sub Event_NoobExp
/varset TotalExp ${Math.Calc[${Me.PctExp}-Exper]}
/varset TotalAAExp ${Math.Calc[${Me.PctAAExp}-AAExp]}
/echo Experience Gained ***** ${TotalExp}
/echo AA Experience Gained ** ${TotalAAExp}
/varset Exper ${TotalExp}
/varset AAExp ${TotalAAExp}
/return
| ################## I Died
Sub Event_ImDead
/quit
/endmacro
/return
| #################
| ################# Tells n Hells
| #################
Sub Event_Chat(string ChatType,string ChatSender,string ChatText)
/if ((!${ChatType.Equal[TELL]})&&(!${ChatSender.Equal[Tumz]})) /return
| ################# Heal Requests
/if (${ChatText.Equal[heal]} || ${ChatText.Equal[heal me]}) {
/target pc ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellHeal}
}
/return
}
/if (${ChatText.Equal[hot]}) {
/target pc ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellHoT}
}
/return
}
| ################# Mob Requests
/if (${ChatText.Equal[slow]} || ${ChatText.Equal[add]}) {
/assist ${ChatSender}
/delay 1s
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
/call Slow
}
/return
}
/if (${ChatText.Equal[dot]}) {
/assist ${ChatSender}
/delay 1s
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
/call cast ${SpellDoT} gem8 5s
}
/return
}
/if (${ChatText.Equal[DeBuff]}) {
/assist ${ChatSender}
/delay 1s
/pet attack
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
/call cast ${SpellDebuff} gem3 6s
}
/return
}
| ################# Buff Requests
/if (${ChatText.Equal[haste]}) {
/target pc ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellHASTE} gem5 5s
}
/return
}
/if (${ChatText.Equal[focus]}) {
/target pc ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellFOCUS} gem5 5s
}
/return
}
/if (${ChatText.Equal[cha]}) {
/target pc ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellCHA} gem5 5s
}
/return
}
/if (${ChatText.Equal[str]}) {
/target pc ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellSTR} gem5 5s
}
/return
}
/if (${ChatText.Equal[dex]}) {
/target pc ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellDEX} gem5 5s
}
/return
}
/if (${ChatText.Equal[sta]}) {
/target pc ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellSTA} gem5 5s
}
/return
}
/if (${ChatText.Equal[agi]}) {
/target pc ${ChatSender}
/if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
/call cast ${SpellAGI} gem5 5s
}
/return
}
/return
The stuff that doesnt work is
1. When I send a tell to debuff, I get an MQ2 Error saying Spell:NULL was not found in your spell book.
2. When I send a tell to slow, it begins to cast Turgur's Insects, and also tries to use Time's Antithesis.
3. I would really like to take the Warp part out, since all my fighting is done in one small room.
Thanks!
Last edited: