Updated spell trainer for wizard specialization

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

bene0019
decaying skeleton
decaying skeleton
Posts: 3
Joined: Sat Nov 20, 2004 10:09 pm

Updated spell trainer for wizard specialization

Post by bene0019 » Fri Nov 26, 2004 1:39 pm

This is my first attempt at coding, I did some modifications to the spells.mac from Chill to add a specialization check so you keep casting max level spells if your specialization isn't also maxed. It works, tested it last night.

Hope you like it.

Code: Select all

|spells.mac - 26 November 2004
|
| spells.mac - 03 July 2004 19:15 EST
| Written by Chill, based on trainspell.mac by Fuergrissa, popup event and GMCheck from Fabolous1
| usage: /mac spells [camp]
| notes: change targets to exit early
|        Macro requires that you have your practice spells memmed, I suggest making a practice spellset.
|
|additional notes: You may now specify which spell gems to cycle through with GemNumberMin and 
|                  GemNumberMax variables.
|                  You may also comment and uncomment the specialization variables according to your specialization.
|                  This will keep you casting spells that you normally wouldn't in order to increase your
|                  Specialization.



#Define ArcaneMax 235
#include spellcast.inc

#event SkillUp "You have become better at #1#! (#2#)"
#event OOM "Insufficient Mana to cast this spell!"

Sub Main
   /declare ArcaneLevel int outer
   /declare SpellName string outer
   /declare GemNumber int outer 0
   /declare Trained int outer
   /declare GemNumberMin int outer
   /declare GemNumberMax int outer
   /declare SkillSpecialization string outer
   /declare SkillSpecializationBase string outer

   /varcalc ArcaneLevel ${Me.Level}*5+5   
   /if (${ArcaneLevel}>ArcaneMax) /varset ArcaneLevel ArcaneMax
   /echo Your Current Spell Cap is ${ArcaneLevel}



|The following variables set which spell gems are looped through. Please set accordingly.
   /varset GemNumberMin 1
   /varset GemNumberMax 5
  
|The following variable groups set which specialization can go above 50 for wizards.
   /varset SkillSpecialization "Specialize Evocation"
   /varset SkillSpecializationBase "Evocation"
|   /varset SkillSpecialization "Specialize Alteration"
|   /varset SkillSpecializationBase "Alteration"
|   /varset SkillSpecialization "Specialize Abjuration"
|   /varset SkillSpecializationBase "Abjuration"
|   /varset SkillSpecialization "Specialize Conjuration"
|   /varset SkillSpecializationBase "Conjuration"
|   /varset SkillSpecialization "Specialize Divination"
|   /varset SkillSpecializationBase "Divination"


   /target myself


   :TrainingLoop
   
   /varset Trained 0
   /call GMCheck

   /for GemNumber ${GemNumberMin} to ${GemNumberMax}
      /if (${Me.PctMana}<20) /call Med 90
      /if (${Target.ID}!=${Me.ID}) /endmacro
      /varset SpellName ${Me.Gem[${GemNumber}]}
       /if (${Me.Skill[${Spell[${SpellName}].Skill}]}==${ArcaneLevel}) {
         /if (${Skill[${Spell[${SpellName}].Skill}].ID} == ${Skill[${SkillSpecializationBase}].ID}) {
           /if (${Me.Skill[${SkillSpecialization}]} == ${ArcaneLevel} && ${Me.Skill[${SkillSpecialization}]} != 0) {
             /echo You cannot Increase ${SkillSpecilizationBase} or ${SkillSpecialization} anymore.
           } else {
           /echo Casting ${SpellName} from GemSlot ${GemNumber} of Type ${Spell[${SpellName}].Skill} (${Me.Skill[${Spell[${SpellName}].Skill}]})
           /call cast "${SpellName}"
           /varcalc Trained ${Trained}+1
           }
         } else {
             /echo You cannot Increase ${Spell[${SpellName}].Skill} anymore.
         }
      } else /if (${SpellName.NotEqual[NULL]}) {
         /echo Casting ${SpellName} from GemSlot ${GemNumber} of Type ${Spell[${SpellName}].Skill} (${Me.Skill[${Spell[${SpellName}].Skill}]})
         /call cast "${SpellName}"
         /varcalc Trained ${Trained}+1
      }
      /doevents
   /next GemNumber
   
   /if (${Trained}>0) /goto :TrainingLoop

   :Finished
   /if (${Me.Mount.ID}) /dismount
   /if (!${Me.Sitting}) /sit
   /if (${Param0.Equal[camp]}) {
      /echo Medding to full then Ending.
      /if (${Me.PctMana}<95) /call Med 95
      /camp desktop
   }

/endmacro

Sub Med(int medmana)
   /echo Medding from ${Me.PctMana}% to ${medmana}% mana.
   :Med
   /if (${Target.ID}!=${Me.ID}) /endmacro
   /if (!${Me.Sitting} && !${Me.Mount.ID}) /sit
   /delay 1
   /if (${Me.PctMana} < ${medmana}) /goto :Med
/return

Sub Event_OOM
   /call Med 90
   /doevents OOM flush
/return

Sub Event_SkillUp(string text,string skill_name,int skill_level)
   /popup ${skill_level} ${skill_name}!
/return

Sub GMCheck
   /if (${Spawn[gm].ID}) {
      /beep
      /popup GM Spawn!
      /beep     
      /echo GM has entered the zone, zoning in 5 seconds!
      /delay 5s
      /keypress forward
      /keypress back
      /if (${Me.Mount.ID}) /dismount
      /if (!${Me.Sitting}) /sit
      /camp desktop
      /endmacro
   }
/return 
[/code]

xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 9:17 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 9:18 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 9:55 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 9:56 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 9:57 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 9:59 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 10:00 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 10:01 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 10:02 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 10:03 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 10:04 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 10:05 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 10:07 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Updated spell trainer for wizard specialization

Post by xyilla » Tue Mar 04, 2025 10:08 am