Wiz PLer

Have a macro idea but not sure where to start? Ask here.

Moderator: MacroQuest Developers

Kensh
decaying skeleton
decaying skeleton
Posts: 2
Joined: Sun Apr 03, 2005 5:03 am

Wiz PLer

Post by Kensh » Sun Apr 03, 2005 5:09 am

hmm.. this has already been done but i'm too tired to look atm, already went thru a few pages of afk+wiz with hardly any luck, so here i am.


I'm looking for a macro that will PL my wiz (preferrably in any zone) He's level 59 atm, and the main nuke i'm using is Draught of Ice. My root is Fetter, my shielding is Shield of the Magi, and my familiar is Familiar. If someone could make a macro that would use these to kill while i was afk that'd be lovely. I'd prefer that it sat down under 30% mana (which is like 760ish)

Thanks.

Goofmester1
a hill giant
a hill giant
Posts: 241
Joined: Thu Nov 06, 2003 4:26 am

Re: Wiz PLer

Post by Goofmester1 » Sun Apr 03, 2005 5:47 am

Kensh wrote:hmm.. this has already been done but i'm too tired to look atm,.
That ok the rest of us could be too tired to help. If you know it has already been done then how hard is it to use search?

wizzyman
a ghoul
a ghoul
Posts: 106
Joined: Fri Dec 10, 2004 6:03 pm

Post by wizzyman » Sun Apr 03, 2005 5:57 am

http://www.macroquest2.com/phpBB2/viewtopic.php?t=10013

what might be the closer to a wiz solo mac, you ll need to adjust to work and to feet a wiz tho.

User avatar
Fluffy
a ghoul
a ghoul
Posts: 81
Joined: Sun Aug 22, 2004 5:08 pm

Re: Wiz PLer

Post by Fluffy » Sun Apr 03, 2005 7:28 am

Kensh wrote:hmm.. this has already been done but i'm too tired to look atm, already went thru a few pages of afk+wiz with hardly any luck, so here i am.


I'm looking for a macro that will PL my wiz (preferrably in any zone) He's level 59 atm, and the main nuke i'm using is Draught of Ice. My root is Fetter, my shielding is Shield of the Magi, and my familiar is Familiar. If someone could make a macro that would use these to kill while i was afk that'd be lovely. I'd prefer that it sat down under 30% mana (which is like 760ish)

Thanks.
Well you need to have a little more information here.. What do you want it to do? Sit in a group and do your job... Or you want it to run around Quad kitting? Or you want it to just randomly tag a mob and train people??

Please people if you are going to request a macro atleast tell us what you want it to do.. Sometimes I am bored and rip out macros for people who request them but without information I cant help you..

HELP ME HELP YOU!

Jesus that sounded sappy...

BTW dont send me private messages since I have been banned from sending them :) Something about being rude in private messages :)
And remember, if I said something to offend you it is only becuase I hate you. -- My Mom.
If you can't find it odds are you didn't bother looking. -- My Mom.
Why do I bother, your just stupid. -- My Mom.
Hmm maybe mom didnt love me?

Kensh
decaying skeleton
decaying skeleton
Posts: 2
Joined: Sun Apr 03, 2005 5:03 am

Post by Kensh » Sun Apr 03, 2005 12:22 pm

Well, i'd want it to run around soloing. Quad kiting would be hilarious, except i'll probably be using it to level up in sebilis sooo... that might be out of the question. If you could make it so it kills one at a time with root, then refreshes it when it fades, that'd be great. (Possibly so it moves away if the npc is too close?)

PS. wizzyman, yours is the closest to what i'm looking for, but i'm not sure how to edit it to what i would need.

wizzyman
a ghoul
a ghoul
Posts: 106
Joined: Fri Dec 10, 2004 6:03 pm

Post by wizzyman » Mon Apr 04, 2005 7:47 am

try this out, very basic but working.

Code: Select all

| wizsolo.mac by wizzyman
| wiz solo little mac 
| v1.0

#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 Rooted           "|${Target.CleanName}| adheres to the ground."
#Event Snared           "|${Target.CleanName}| is shackled to the ground."
#Event Debuffed         "|${Target.CleanName}| looks uncomfortable."
#Event RootOff          "You Greater Fetter spell has worn off."
#event ImHit "You have been summoned!"
#event ImHit "#*#hits YOU for#*#" 
#event ImHit "#*#slashes YOU for#*#" 
#event ImHit "#*#crushes YOU for#*#" 
#event ImHit "#*#bashes YOU for#*#" 
#event ImHit "#*#kicks YOU for#*#" 
#event ImHit "#*#smashes YOU for#*#" 
#event ImHit "#*#mauls YOU for#*#" 
#event ImHit "#*#gores YOU for#*#"
#event ImHit "#*#pierces YOU for#*#"
#event ImHit "#*#but YOUR magical skin#*#" 
#event OORLoot "You are too far away to loot that corpse."

#include Spell_Routines.inc

Sub Main


   /cleanup 
   /fastdrop on 
   /lootn never 
   
   /declare Tell outer FALSE
   /declare MyXLOCA     float outer 0.0
   /declare MyYLOCA     float outer 0.0
   /declare ninjadist     int   outer 80
   /declare following     int   outer 0
   /declare LootINIFile     string    outer "loot.ini"
   /declare follname      string    outer NULL
   /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 "Teleka" 
   /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 100 
   /declare DebuffCount   int   outer 0
     
   /declare M_Assist   string   outer 
   /declare OutDoors         outer TRUE 
   /declare NoMount         outer FALSE
   /declare NoLevit          outer FALSE
   /declare NoSit          outer FALSE
   /declare TargetArray[4] string outer 
   /declare MobDebuffed         outer FALSE 
   /declare MobRooted         outer FALSE
   /declare MobSnared         outer FALSE
   /declare CombatOn         outer FALSE
   /declare DoDebuff         outer TRUE
   /declare IAmHit          outer FALSE
   
   

   /call MemSpells

       
      /afk
      /lfg off

: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} && !${Me.Casting.ID}) /aa act Harvest of Druzzil 
   
|   /if (${Target.PctHPs}<= 85 && ${CombatOn} && ${Me.AltAbilityReady["Call of Xuzl"]} ) /aa act Call of Xuzl 8s
  
   /call SingleBuffs
   
   /if (${Me.PctHPs} > 69 && ${Me.PctMana} > 50) /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 
   
  /if (${Spawn[npc radius 150].ID})  {
     /target id ${Spawn[npc radius 150].ID}
  }
  /delay 1s
  /if (!${Target.Type.Equal[NPC]} && ${Target.ID}) {
     /cleanup
     /return
  }
  /delay 1s
  /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
     /varset TargetArray[1] ${Target.CleanName} 
     /varset TargetArray[2] ${Target.Level} 
     /varset TargetArray[3] ${Target.Name} 
     /varset TargetArray[4] ${Target.ID} 
     /varset CombatOn TRUE
  } else {
     /return
  }

/return

Sub Combat 

:combat_loop  

/doevents
   /if (${Target.Distance} > 200) /goto :mobwentoor
   /if (${Me.PctMana} < 20) {
      /if (${Me.State.Equal[Stand]} && ${NoMount}) /sit
      /goto :combat_loop
      
   }

   /if (${Target.PctHPs}<= 0 ) {
      /varset CombatOn FALSE
   }
   
   /if (!${MobRooted} && ${CombatOn}) /call Root
   /if (${CombatOn} && !${MobSnared} && ${Target.ID}==${TargetArray[4]}) /call snare
   /doevents
   /if (!${MobRooted} && ${CombatOn}) /call Root
   /if (${DoDebuff} && ${CombatOn} && !${MobDebuffed} && ${MobSnared} && ${MobRooted} && ${Target.ID}==${TargetArray[4]}) /call DeBuff 
   /if (${Target.PctHPs}<= 35 && ${CombatOn} && ${MobSnared} && ${MobRooted} && ${Target.ID}==${TargetArray[4]}) {
      /call quicknuke
      /goto :combat_loop
   }
   /doevents
   /if (${Target.PctHPs}<= 100 && !${MobRooted}) /call Root
   /if (${Target.PctHPs}<= 100 && ${CombatOn} && ${MobSnared} && ${MobRooted} && ${Target.ID}==${TargetArray[4]}) /call mainnuke
   /doevents
   /if (${Target.PctHPs}<= 100 && !${MobRooted}) /call Root
|- EndCombat 

   /target ${TargetArray[3]} 
    
   /if (!${Target.Name.Equal[${TargetArray[3]}]} || !${Target.ID}) { 
      :mobwentoor
      /echo ${TargetArray[1]} is dead 
      /varset CombatOn FALSE 
      /varset MobDebuffed FALSE 
      /varset MobSnared FALSE
      /varset MobRooted FALSE
      /varset TargetArray[1] NULL 
      /varset TargetArray[2] NULL 
      /varset TargetArray[3] NULL 
      /varset TargetArray[4] NULL 
      /call LootMob
   } else {
      /goto :combat_loop
   } 

/return

Sub DeBuff 
:DeBuff_Loop
/if (${DebuffCount} > 5) /goto :DebuffEnd
   /if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
      /call cast ${Debuff} item
      /delay 2
      /doevents Debuffed
      /if (${MobDebuffed}) /goto :DebuffEnd
      /varcalc DebuffCount ${DebuffCount}+1
      /goto :DeBuff_Loop
      
   }

: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
         
                         
             }  
   } 
/doevents
/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
                                  
             } 
       
   } 
/doevents
/return
Sub Root
   
   /if (!${MobRooted} && ${Target.ID}==${TargetArray[4]}) { 
         :root_Loop 
         /call cast ${Spellroot} 2s
         /delay 2
         /doevents Rooted
         /if (${MobRooted}) {
             /return
         } else {
             /goto :root_loop 
         
         }
   }
    

   

/return  
Sub snare 
   
   /if (${Target.PctHPs}<=${CombatAt} && !${MobSnared} && ${Target.ID}==${TargetArray[4]}) { 
         :snare_Loop 
         /call cast ${Spellsnare} 2s
         /delay 2
         /doevents Snared
         /if (${MobSnared}) {
            /return
         } else {
            /goto :snare_Loop
         } 
      
   } 

/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["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} gem8 6s
      
/return

Sub MoveToSafe
   /doevents
   /delay 3
   /if (!${MobRooted}) /call Root
   /if (${Target.Distance} > 100)  {
      /varset IAmHit FALSE
      /return
   }
   /if (${IAmHit} && ${Target.Distance} < 50) {
       /call MoveSafe
       /doevents ImHit
       /varset IAmHit FALSE
       /return
   }
   
   /return
 
Sub MoveSafe 

/if (${Target.ID}) /face fast
/dismount
/doevents
/if (!${MobRooted}) /call Root
/keypress back hold
/delay 2s
/keypress back
/delay 1s
/if (${Bool[${Me.Buff["Ether Skin"]}]}==FALSE && ${MobRooted}) /call Cast ${Spellrune} gem9 5s
/return

sub CheckObstacle 
   /varset MyXLOCA ${Me.X} 
   /varset MyYLOCA ${Me.Y} 
   /delay 2
   /if (${MyXLOCA}==${Me.X} && ${MyYLOCA}==${Me.Y}) /call Obstacle
 
/return

sub Obstacle 
   /keypress forward 
   /keypress back hold 
   /delay 3 
   /keypress back 
   /if (${Math.Rand[2]}) { 
      /keypress strafe_right hold 
      /delay 1s 
      /keypress strafe_right 
   } else { 
      /keypress strafe_left hold 
      /delay 1s 
      /keypress strafe_left 
   } 
   /keypress forward hold 
/return
 

Sub LootMob
   
   /declare LootSlot int inner 0 
   /declare LootCheck int inner 0 
   /declare LootTotal int inner 0 
   /declare LootLoop int local 0 
   :WaitLootMobWnd 
   /squelch /target corpse notid ${WtDCorpse} radius 150
   /delay 5 
   /squelch /stick 
   /if (${Target.Type.Equal[CORPSE]}) /loot 
   /doevents 
   /delay 1s 
   /varcalc LootLoop ${LootLoop}+1 
   /if (${LootLoop} > 5) /return 
   /if (!${Corpse}) /goto :WaitLootMobWnd 
   /if (!${Corpse.Items}) { 
      /squelch /stick off 
      /echo NO LOOT! Cheap Bastard! 
      /notify LootWnd DoneButton leftmouseup 
      /delay 2 
      /return 
   } 
   /varset LootTotal ${Corpse.Items} 
   /for LootSlot 1 to ${LootTotal} 
      /itemnotify loot${LootSlot} leftmouseup 
      /delay 1s 
      /for LootCheck 1 to ${RV_LootArray.Size} 
         /if (${Cursor.Name.Find[${RV_LootArray[${LootCheck}]}]}) { 
            /echo Keeping a ${Cursor.Name}... WOOT! 
            /varcalc RV_LootStats[${LootCheck}] ${RV_LootStats[${LootCheck}]}+1 
            /autoinventory 
            /delay 1s 
         } 
      /next LootCheck 
      /if (${Cursor.Value} > 9000 && ${Cursor.Stackable}) { 
         /echo Keeping a ${Cursor.Name}... 
         /autoi 
         /delay 1s 
      }  
      /if (${Cursor.NoDrop}) { 
         /echo Destroying a ${Cursor.Name}... 
         /des 
         /delay 1s 
      }  
      /if (${Cursor.ID}) { 
         /echo Dropping a ${Cursor.Name}... 
         /drop 
         /delay 1s 
      } 
   /next LootSlot 
   /squelch /stick off 
   /notify LootWnd DoneButton leftmouseup
   /doevents 
/return

 Sub MoveToCorpse 

/stand
/dismount
/if (${Me.Pet.State.NotEqual[SIT]} && ${Me.Pet.PctHPs} < 99) /pet sit
:Move_loop 
/if (${Target.Distance} > 10 && !${Me.Casting.ID}) { 
   /face nolook
   /if (!${Me.Moving}) /keypress Num_Lock
   /call CheckObstacle 
   /goto :Move_loop 
} else { 
/keypress Down 
/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_RootOff 

/varset MobRooted FALSE

/return

Sub Event_Rooted

/varset MobRooted TRUE
/return

Sub Event_Debuffed
/varset MobDebuffed TRUE
/return

 Sub Event_Snared
/varset MobSnared TRUE
/return

Sub Event_ImHit
/varset IAmHit TRUE
/call MoveToSafe
/return

Sub Event_OORLoot 
   /call MoveToCorpse 
/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

| ###############################

Sub Event_Chat(string ChatType,string ChatSender,string ChatText) 

      /if (!${ChatType.Equal[TELL]}) /return
      /if (${ChatSender.Equal[${Me.Pet.CleanName]}) /return
      
      /varset Tell TRUE
      /return