• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Please check my code changes... (1 Viewer)

pwaggs

Member
Joined
Sep 12, 2004
RedCents
...and tell me why they dont work:(

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:
Please check my code changes...

Users who are viewing this thread

Back
Top