working emu server enchanter macro

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

Moderator: MacroQuest Developers

sirgijoe
decaying skeleton
decaying skeleton
Posts: 5
Joined: Sun Dec 13, 2009 6:41 am

working emu server enchanter macro

Post by sirgijoe » Wed Jan 06, 2010 12:27 am

here is the enchanter macro that I put together at the same time as the cleric macro, same concept, buffs and mez, follows with stick, /icamps, gates and more stuff via chat.

its again, ugly code, but it works, and is stable, if you can improve this code, by all means please do so, it would help the emu community out a lot!

here is the code, must have spellcast.inc and spell_routines.inc

Code: Select all

 | enchanter.mac   

| Chanter buff script by Sirgijoe, and the mq2 community as a whole!  buffs targets upon request, keeping people happy!
|
| Please be responsible in using this code, its not my fault if you get banned or anything else bad happens while
| running this macro

| INC files that are needed to run this macro!

#include Spell_Routines.inc

| Comment the chat type out if you don't want to buff from that chat type

#chat group
#chat tell
|#chat chat
|#chat say



|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Sub Main

| Spell Mem order
| Gem1 = Buffs
| Gem2 = Boon
| Gem3 = Tash
| Gem4 = Slow
| Gem5 = Nuke or Dot or Stun
| Gem6 = Mez
| Gem7 = Pacify
| Gem8 = gate
| Gem9 = whatever when you get the extra AA gem slot

/echo enchbuff macro has started

/cleanup
/delay 1s

/declare SitAt         int   outer 99

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Spell list here, update as needed!

/declare SpellBOON        outer "Boon of the Garou"
/declare SpellCHA            outer "Radiant Visage"
/declare SpellC2               outer "Clarity II"
/declare SpellDOT           outer "Gasping Embrace"
/declare SpellEB              outer "Enduring Breath"
/declare SpellGATE         outer "Gate"
/declare SpellHASTE       outer "Wonderous Rapidity"
/declare SpellINVIS          outer "Invisibility"
/declare SpellLEV            outer "Levitate"
/declare SpellMEZ           outer "Dazzle"
/declare SpellMR             outer "Group Resist Magic"
/declare SpellNUKE         outer "Discordant Mind"
/declare SpellPACI          outer "Pacify"
/declare SpellPET            outer ""
/declare SpellRUNE         outer ""
/declare SpellSEE           outer "See Invisible"
/declare SpellSHIELD     outer "Shield of the Magi"
/declare SpellSLOW        outer "Shiftless Deeds"
/declare SpellSTUN         outer "Color Skew"
/declare SpellTASH         outer "Tashanian"

/call MemSpells
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

| Don't mess with anything below. 

:Mainloop



| Self buff section


/doevents
/goto :Mainloop
/return

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Sub MemSpells

/echo Memming spells. Hang on.
/if ( !${Me.Gem[${SpellC2}]} ) {
/memspell 1 ${SpellC2}
/delay 30
}

/if ( !${Me.Gem[${SpellBOON}]} ) {
/memspell 2 ${SpellBOON}
/delay 30
}

/if ( !${Me.Gem[${SpellTASH}]} ) {
/memspell 3 ${SpellTASH}
/delay 30
}

/if ( !${Me.Gem[${SpellSLOW}]} ) {
/memspell 4 ${SpellSLOW}
/delay 30
}

/if ( !${Me.Gem[${SpellNUKE}]} ) {
/memspell 5 ${SpellNUKE}
/delay 30
}

/if ( !${Me.Gem[${SpellMEZ}]} ) {
/memspell 6 ${SpellMEZ}
/delay 30
}

/if ( !${Me.Gem[${SpellPACI}]} ) {
/memspell 7 ${SpellPACI}
/delay 30
}

/if ( !${Me.Gem[${SpellGATE}]} ) {
/memspell 8 ${SpellGATE}
/delay 30
}


/echo Spells are memmed.

/return

Sub Event_Chat(ChatType,Sender,ChatText)

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Help me tells! send the person a tell with what commands are available, in case they forget.

/if (${ChatText.Equal[buff]} || ${ChatText.Equal[buffs]} || ${ChatText.Equal[help]}) {
/target ${Sender}
/delay 1s
/ttell Available buffs are cha, haste, c2, boon, rune, lev, eb, mr, invis, see.
/delay 1s

}



| how we assist the target to debuff, nuke, dot, mez and so on

 /if (${ChatText.Equal[debuff]}) {
/target ${Sender}
/delay 1s
/ttell Casting ${SpellTASH} and ${SpellSLOW} on your target
/assist
/delay 1s
/attack off
/delay 1s
/call cast ${SpellTASH} gem3 5s
/call cast ${SpellSLOW} gem4 5s
/delay 50s
/sit
}

/if (${ChatText.Equal[tash]}) {
/target ${Sender}
/delay 1s
/ttell casting ${SpellTASH}
/delay 1s
/assist
/delay 1s
/attack off
/delay 1s
/pet attack
/call cast ${SpellTASH} gem3 5s
/sit
}

/if (${ChatText.Equal[slow]}) {
/target ${Sender}
/delay 1s
/ttell casting ${SpellSLOW} 
/delay 1s       
/assist
/delay 1s
/attack off
/delay 1s
/pet attack
/call cast ${SpellSLOW} gem4 5s
/sit
}

/if (${ChatText.Equal[nuke]}) {
/target ${Sender}
/delay 1s
/ttell casting ${SpellNUKE} 
/delay 1s       
/assist
/delay 1s
/attack off
/delay 1s
/pet attack
/call cast ${SpellNUKE} gem5 5s
/sit
}

/if (${ChatText.Equal[dot]}) {
/target ${Sender}
/delay 1s
/ttell casting ${SpellDOT} 
/delay 1s       
/assist
/delay 1s
/attack off
/delay 1s
/pet attack
/call cast ${SpellDOT} gem5 5s
/sit
}

/if (${ChatText.Equal[stun]}) {
/target ${Sender}
/delay 1s
/ttell casting ${SpellSTUN} 
/delay 1s       
/assist
/delay 1s
/attack off
/delay 1s
/pet attack
/call cast ${SpellSTUN} gem5 5s
/sit
}

/if (${ChatText.Equal[mez]}) {
/target ${Sender}
/delay 1s
/ttell casting ${SpellMEZ} 
/delay 1s       
/assist
/delay 1s
/attack off
/delay 1s
/pet attack
/call cast ${SpellMEZ} gem6 5s
/sit
}

/if (${ChatText.Equal[paci]}) {
/target ${Sender}
/delay 1s
/ttell casting ${SpellPACI} 
/delay 1s       
/assist
/delay 1s
/attack off
/delay 1s
/pet attack
/call cast ${SpellPACI} gem7 5s
/sit
}

/if (${ChatText.Equal[gate]}) {
/target ${Sender}
/delay 1s
/ttell casting ${SpellGATE} 
/delay 1s       
/assist
/delay 1s
/attack off
/delay 1s
/pet attack
/call cast ${SpellGATE} gem8 5s
/sit
}

| Buffs sent to persons who asked via chat type selected.

/if (${ChatText.Equal[haste]}) {
/target ${Sender}
/delay 1s
/ttell inc haste
/delay 1s
/call cast ${SpellHASTE} gem1 5s
/sit
}

/if (${ChatText.Equal[c2]}) {
/target ${Sender}
/delay 1s
/ttell inc clarity
/delay 1s
/call cast ${SpellC2} gem1 5s
/sit
}

/if (${ChatText.Equal[rune]}) {
/target ${Sender}
/delay 1s
/ttell inc rune
/delay 1s
/call cast ${SpellRUNE} gem1 5s
/sit
}

/if (${ChatText.Equal[invis]}) {
/target ${Sender}
/delay 1s
/ttell inc invis
/delay 1s
/call cast ${SpellINVIS} gem1 5s
/sit
}

/if (${ChatText.Equal[see]}) {
/target ${Sender}
/delay 1s
/ttell inc see invis
/delay 1s
/call cast ${SpellSEE} gem1 5s
/sit
}

/if (${ChatText.Equal[lev]}) {
/target ${Sender}
/delay 1s
/ttell inc levitate
/delay 1s
/call cast ${SpellLEV} gem1 5s
/sit
}

/if (${ChatText.Equal[eb]}) {
/target ${Sender}
/delay 1s
/ttell inc enduring breath
/delay 1s
/call cast ${SpellEB} gem1 5s
/sit
}

/if (${ChatText.Equal[cha]}) {
/target ${Sender}
/delay 1s
/ttell inc charisma
/delay 1s
/call cast ${SpellCHA} gem1 5s
/sit
}

/if (${ChatText.Equal[mr]}) {
/target ${Sender}
/delay 1s
/ttell inc group resist magic
/delay 1s
/call cast ${SpellMR} gem1 5s
/sit
}


| ** Other stuff **

/if (${ChatText.Equal[gate]}) {
/ttell casting gate!
/call cast ${SpellGATE} gem8 5s
}

/if (${ChatText.Equal[pet]}) {
/ttell getting my pet out
/call cast ${SpellPET} gem1 5s
}



/if (${ChatText.Equal[follow]}) {
/target ${Sender}
/delay 1s
/ttell sticking to you
/stand
/stick 50%        
}

/if (${ChatText.Equal[camp]}) {
/ttell camping
/delay 1s
/icamp
}
/return
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sub LOM
   /if (${Me.CurrentHPs} < ${Math.Calc[${Me.MaxHPs}/2]}) /call CheckMyHPs
   /if (${Me.CurrentMana} < ${Math.Calc[${Me.MaxMana}-5]}) /sit


/return   

Last edited by sirgijoe on Thu Jan 07, 2010 9:36 pm, edited 1 time in total.

sirgijoe
decaying skeleton
decaying skeleton
Posts: 5
Joined: Sun Dec 13, 2009 6:41 am

Post by sirgijoe » Thu Jan 07, 2010 4:03 pm

only issues I have found so far are sometimes it doesn't like to pacify your target, I am still testing it out, if anyone else has tested it, please let me know what you find also, thanks

nytemyst
a grimling bloodguard
a grimling bloodguard
Posts: 578
Joined: Mon Oct 25, 2004 2:29 pm
Location: florida

Post by nytemyst » Thu Jan 07, 2010 6:05 pm

your pacifiy variable names don't match.

sirgijoe
decaying skeleton
decaying skeleton
Posts: 5
Joined: Sun Dec 13, 2009 6:41 am

Post by sirgijoe » Thu Jan 07, 2010 9:38 pm

nytemyst wrote:your pacifiy variable names don't match.
fixed!,, thanks lol I totally over looked that, funny thing was, I did that on purpose, so I wouldn't have any issues with the cleric macro I wrote also, as they would both be in the same group most of the time.. thank you for pointing that out to me!

sorvani
a lesser mummy
a lesser mummy
Posts: 36
Joined: Thu Aug 12, 2010 11:30 am

Re: working emu server enchanter macro

Post by sorvani » Thu Aug 12, 2010 6:11 pm

Necro rez!

Been using MQ2 for a short time now, and decided a good way to learn it was to take something that worked, and "improve" it. Like the OP I play on an emu server.

Thanks to the OP and AFCleric author

Code: Select all

| enchanter.mac   

| Chanter buff script by Sirgijoe and "improved" by Sorvani, and the mq2 community as a whole!  buffs targets upon request, keeping people happy!
|
| Please be responsible in using this code, its not my fault if you get banned or anything else bad happens while
| running this macro

| INC files that are needed to run this macro!
#include Spell_Routines.inc
| Comment the chat type out if you don't want to buff from that chat type

#chat group
#chat tell
|#chat chat
|#chat say

|=================================================================================================================
|=================================================================================================================
| Spell Mem order
| Gem1 = Buffs
| Gem2 = Boon
| Gem3 = Tash
| Gem4 = Slow
| Gem5 = Nuke or Dot or Stun
| Gem6 = Mez
| Gem7 = Pacify
| Gem8 = gate
| Gem9 = whatever when you get the extra AA gem slot
|=================================================================================================================


Sub Main
	/cleanup
	/delay 1s

	/echo Enchanter macro has started
	
	|=================================================================================================================
	|=================================================================================================================
	|preference variables to change certain settings as desired
	|=================================================================================================================
	|spellset to memorize when starting the macro
	/declare spellset bot
	|mana percentage to /sit at
	/declare SitAt int outer 99
	|minimum HP i am allowed to sit down with
	/declare MinHP int outer 45
	|if mana is below this % do not break from the MedMore loop
	/declare MinMP int outer 9
	|set to 0 to disable announcements
	/declare announce int outer 1
	|g, say, bc, echo (ie whatever channel you want messages to go to)
	/declare channel string outer bc
	|set to 0 to not try to cast the spell again if it is resisted/failed/interupted
	/declare tryagain int outer 1
	|# of times to retry a failed spell
	/declare retrylimit int outer 3
	|maximum seconds to delay after using a /target or /assist system will not wait entire duration if target is successful
	/declare targetdelay int outer 2
	|set to 1 if you want to enable autoattack on /assist
	/declare melee int local 0
	|set to seconds to delay before recasting slow on a failure. will cast prior to this delay is spell is ready
	/declare slowdelay in outer 2
	|these three tell the spell routine how long in seconds to keep trying to cast spell.
	|uses longer times for spells that normally have a long refresh after mem
	/declare shortspelldelay int outer 5
	/declare midspelldelay int outer 12
	/declare longspelldelay int outer 30
	|enter the stick command options you want for a follow command, assume a successful /target.
	/declare stickcmd string outer hold !front uw
	|enter name who you want people to tell when the macro is not buffing correctly.
	/declare reportto string outer ${Me.Name}
	|=================================================================================================================
	
	
	|=================================================================================================================
	|=================================================================================================================
	| Here is the spell list, update as needed! 
	| NOTE: the use of " " around the spell name is required or multi word spells will not cast. I chose to do it here
	|	    instead of each time I /call cast
	| NOTE2: Put NotYet (no quotes) in a spell you can't cast yet and the macro will tell the requestor that you can't cast it.
	|=================================================================================================================
	/declare SpellBOON string outer "Boon of the Garou"
	/declare SpellCHA string outer "Adorning Grace"
	/declare SpellCRACK string outer "Clarity"
	/declare SpellGRPCRACK string outer NotYet
	/declare SpellDOT string outer "Gasping Embrace"
	/declare SpellEB string outer "Enduring Breath"
	/declare SpellGATE string outer "Gate"
	/declare SpellHASTE string outer "Aanya's Quickening"
	/declare SPellGRPHASTE string outer NotYet
	/declare SpellINVIS string outer "Invisibility"
	/declare SpellLEV string outer "Levitate"
	/declare SpellMEZ string outer "Glamour of Kintaz"
	/declare SpellAEMEZ string outer "Fascination"
	/declare SpellMR string outer "Group Resist Magic"
	/declare SpellNUKE string outer "Discordant Mind"
	/declare SpellPACI string outer "Pacify"
	/declare SpellPET string outer "Kintaz's ANimation"
	/declare SpellRUNE string outer "Rune V"
	/declare SpellSEE string outer "See Invisible"
	/declare SpellSHIELD string outer "Shield of the Magi"
	/declare SpellSLOW string outer "Shiftless Deeds"
	/declare SpellAESTUN string outer "Color Skew"
	/declare SpellSTUN string outer "Dyn's Dizzying Draught"
	/declare SpellTASH string outer "Tashani"
	|=================================================================================================================


	|=================================================================================================================
	|=================================================================================================================
	|do not change these variables unless you actually read the code and really want something changed
	|=================================================================================================================
	/declare trycount int outer 0
	/declare rodwait int outer 0
	/declare SpellToCast string outer NoSpell
	/declare SpellGem int outer 1
	/declare SpellDelay int outer 5
	|=================================================================================================================


	|this mem's the "standard" spellset as noted above
	/memspellset ${spellset}
	/stand

	|enable or disable autoattack on assist
	/if (${melee}) {
		/assist on
	} else {
		/assist off
	}

	/bc Setup complete, ${Macro.Name} now waiting for a command.
	:Mainloop
	/if (${GameState.Equal[CHARSELECT]}) /end
	/if (${Me.Spawn.AFK}) /afk
	/doevents
	/call NeedToMed
	/goto :Mainloop
/return |end of Sub Main
|=================================================================================================================

Sub NeedToMed
	/declare roda string local "Rod of Mystical Transvergance"
	/declare rodb string local "Summoned: Modulating Rod" 
	/declare modrod string local NoRod

	:MedMore
	|look for a mod rod
	/if (${modrod.Equal[NoRod]}) {
		/if (${FindItem[${roda}].InvSlot}) {
			/vardata modrod roda
		} else /if (${FindItem[${rodb}].InvSlot}) {
			/varadata modrod rodb
		}
	}
	|use a mod rod if one was found
	/if ((!${modrod.Equal[NoRod]})&&(${Me.PctMana}<=70)&&(${Me.PctHPs}>=98)&&(${rodwait}==0)) {
		/call Cast ${modrod} item
		/varset rodwait 1
		/timed 3000 /varset rodwait 0
		/varset modrod NoRod
	}
	|if i am not casting and my mana is less than the SitAt amount
	/if ((${Me.PctMana}<=${SitAt})&&(!${Me.Casting.ID})) {
		|check if I am standing and that my HP are greater than the specified minimum
		/if ((${Bool[${Me.Standing}]})&&(${Me.PctHPs}>${MinHP})) {
			|finally if I am not moving, then sit
			/if (!${Me.Moving}) /sit
		}
	}
	|if mana is less than or equal to speciied % keep medding
	/if (${Me.PctMana}<${MinMP}) /goto :MedMore
/return

Sub FindExactPC(string name)
   /declare nameid int local
   /declare counter int local 1
   :FindNext
   /if (!${NearestSpawn[${counter}, pc ${name}].ID}) /return NOT_FOUND
   /varset nameid ${NearestSpawn[${counter}, pc ${name}].ID}
   /if (${Spawn[${nameid}].CleanName.Equal[${name}]}) {
      /target id ${nameid}
      /delay 1s ${Target.ID}==${nameid}
      /if (${Target.ID}==${nameid}) /return TARGET_SUCCESS
   }
   /varcalc counter ${counter}+1
   /if (${NearestSpawn[${counter}, pc ${name}].ID}) /goto :FindNext
   /target clear
/return NOT_FOUND

Sub TargetAssist(string pctoassist)
	/call FindExactPC ${pctoassist}
	|inform the person they were not able to be targeted
	/if (${Macro.Return.Equal[NOT_FOUND]}) {
		/tell ${pctoassist} I was unable to target you to /assist
		/return ASSIST_NOTFOUND
	}
	/assist
	/delay ${targetdelay}s ${Target.Type.Equal[NPC]}
	|if the target is not and NPC
	/if (${Target.Type.NotEqual[NPC]}) /return ASSIST_NOTNPC
	|if there is no Line of Sight to the target
	/if (!${Target.LineOfSight}) /return ASSIST_NOLINEOFSIGHT
/return ASSIST_SUCCESS

Sub CastOnAssist(string pctoassist)
	/varset trycount 0
	/call TargetAssist ${pctoassist}
	/if (${Macro.Return.Equal[ASSIST_SUCCESS]}) {
		/pet attack
		/if (${announce}) /${channel} Casting ${SpellToCast} on ${Target.CleanName}
		:SpellResisted
		/call cast ${SpellToCast} gem${SpellGem} ${SpellDelay}s
		/varcalc trycount ${trycount}+1
		/if ((!${Macro.Return.Equal[CAST_SUCCESS]}) && (!${Macro.Return.Equal[CAST_OUTOFMANA]}) && (${tryagain}) && (${trycount}<=${retrylimit})) {
			/if ((${announce}) && (${Macro.Return.Equal[CAST_RESISTED]})) /${channel} ${Target.CleanName} RESISTED ${SpellToCast}
			/delay ${slowdelay}s ${Me.SpellReady[${SpellToCast}]}
			/goto :SpellResisted
		} else /if (${trycount}>=${retrylimit}) {
			/return ASSIST_GAVEUP
		} else /if (${Macro.Return.Equal[CAST_OUTOFMANA]}) {
			/return ASSIST_OOM
		}
	} else {
		/return ${Macro.Return}
	}
/return ASSIST_SUCCESS

Sub CastBuff(string pcname)
	/call FindExactPC ${pcname}
	|inform the person they were not able to be targeted
	/if (${Macro.Return.Equal[NOT_FOUND]}) {
		/tell ${pcname} I was unable to target you to buff
		/return ASSIST_NOTFOUND
	}
	/tell ${pcname} now casting ${SpellToCast} please stay in range.
	/call cast ${SpellToCast} gem${SpellGem} ${SpellDelay}s
	/if (!${Macro.Return.Equal[CAST_SUCCESS]}) {
		/return BUFF_FAILED
	}
/return BUFF_SUCCESS

Sub Event_Chat(ChatType,Sender,ChatText)

	|assist the target to debuff, nuke, dot, mez and so on
	/if (${ChatText.Equal[tash]}) {
		/vardata SpellToCast SpellTASH
		/varset SpellGem 3
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[slow]}) {
		/vardata SpellToCast SpellSLOW
		/varset SpellGem 4
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[nuke]}) {
		/vardata SpellToCast SpellNUKE
		/varset SpellGem 5
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[dot]}) {
		/vardata SpellToCast SpellDOT
		/varset SpellGem 5
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[stun]}) {
		/vardata SpellToCast SpellSTUN
		/varset SpellGem 5
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[aestun]}) {
		/vardata SpellToCast SpellAESTUN
		/varset SpellGem 5
		/vardata SpellDelay midspelldelay
	}
	/if (${ChatText.Equal[MEZ]}) {
		/vardata SpellToCast SpellMEZ
		/varset SpellGem 6
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[aemez]}) {
		/vardata SpellToCast SpellAEMEZ
		/varset SpellGem 8
		/vardata SpellDelay midspelldelay
	}
	/if (${ChatText.Equal[paci]}) {
		/vardata SpellToCast SpellPACI
		/varset SpellGem 7
		/vardata SpellDelay shortspelldelay
	}
	/if (!${SpellToCast.Equal[NoSpell]}) {
		/call CastOnAssist ${Sender}
		/if (!${Macro.Return.Equal[ASSIST_SUCCESS]}) {
			/tell ${Sender} command ${ChatText} failed because ${Macro.Return}
		}
		/varset SpellToCast NoSpell
		/return
	}

	
	| Help me tells! send the person a tell with what commands are available, in case they forget.
	/if (${ChatText.Equal[buff]} || ${ChatText.Equal[buffs]} || ${ChatText.Equal[help]}) {
		/tell ${Sender} Available buffs are cha, haste, grphaste, clarity (single target), kei, boon, rune, lev, eb, mr, invis, see.
		/return
	}
	
	| Buffs sent to persons who asked via chat type selected.
	/if (${ChatText.Equal[haste]}) {
		/vardata SpellToCast SpellHASTE
		/varset SpellGem 1
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[grphaste]}) {
		/vardata SpellToCast SpellGRPHASTE
		/varset SpellGem 1
		/vardata SpellDelay shortspelldelay
	}
	/if ((${ChatText.Equal[c2]})||(${ChatText.Equal[clarity]})) {
		/vardata SpellToCast SpellCRACK
		/varset SpellGem 1
		/vardata SpellDelay shortspelldelay
	}
	/if ((${ChatText.Equal[kei]})||(${ChatText.Equal[voq]})) {
		/vardata SpellToCast SpellGRPCRACK
		/varset SpellGem 1
		/vardata SpellDelay midspelldelay
	}
	/if (${ChatText.Equal[rune]}) {
		/vardata SpellToCast SpellRUNE
		/varset SpellGem 1
		/vardata SpellDelay midspelldelay
	}
	/if (${ChatText.Equal[invis]}) {
		/vardata SpellToCast SpellINVIS
		/varset SpellGem 1
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[see]}) {
		/vardata SpellToCast SpellSEE
		/varset SpellGem 1
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[lev]}) {
		/vardata SpellToCast SpellLEV
		/varset SpellGem 1
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[eb]}) {
		/vardata SpellToCast SpellEB
		/varset SpellGem 1
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[cha]}) {
		/vardata SpellToCast SpellCHA
		/varset SpellGem 1
		/vardata SpellDelay shortspelldelay
	}
	/if (${ChatText.Equal[mr]}) {
		/vardata SpellToCast SpellMR
		/varset SpellGem 1
		/vardata SpellDelay shortspelldelay
	}
	/if (${SpellToCast.Equal[NotYet]}) {
		/tell ${Sender} sorry I can't cast that spell yet.
		/varset SpellToCast NoSpell
		/return
	}
	/if (!${SpellToCast.Equal[NoSpell]}) {
		/call CastBuff ${Sender}
		/if (!${Macro.Return.Equal[BUFF_SUCCESS]}) {
			/tell ${pcname} ${SpellToCast} failed. Try again or /tell ${reportto} about the problem.	
		}
		/varset SpellToCast NoSpell
		/return
	}

	|Utility responses
	/if (${ChatText.Equal[gate]}) {
		/tell ${Sender} I'm outta here!
		/call cast ${SpellGATE} gem8 ${midspelldelay}
	}

	/if (${ChatText.Equal[pet]}) {
		/if (${announce}) /${channel} Summoning my pet, hope someone has weapons.
		/call cast ${SpellPET} gem1 ${longspelldelay}
	}

	/if (${ChatText.Equal[follow]}) {
		/call FindExactPC ${Sender}
		/if (${Macro.Return.Equal[TARGET_SUCCESS]}) {
			/stand
			/stick ${stickcmd}
		} else {
			/tell ${Sender} unable to target you for follow
		}
	}

	/if (${ChatText.Equal[camp]}) {
		/tell ${Sender} leaving Norrath!
		/delay 1s
		/icamp
	}
/return


vdidar
orc pawn
orc pawn
Posts: 14
Joined: Sun May 28, 2006 4:45 pm

Re: working emu server enchanter macro

Post by vdidar » Mon Jan 17, 2011 11:15 pm

Hey guys,

Been trying out this macro, pretty nice for the buffs and the slows. How do I get my enchanter to send in his pet?

Thanks

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

Re: working emu server enchanter macro

Post by xyilla » Tue Sep 16, 2025 11:54 am


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

Re: working emu server enchanter macro

Post by xyilla » Tue Sep 16, 2025 11:55 am


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

Re: working emu server enchanter macro

Post by xyilla » Tue Sep 16, 2025 11:56 am


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

Re: working emu server enchanter macro

Post by xyilla » Tue Sep 16, 2025 11:57 am


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

Re: working emu server enchanter macro

Post by xyilla » Tue Sep 16, 2025 11:59 am


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

Re: working emu server enchanter macro

Post by xyilla » Tue Sep 16, 2025 12:00 pm


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

Re: working emu server enchanter macro

Post by xyilla » Tue Sep 16, 2025 12:01 pm


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

Re: working emu server enchanter macro

Post by xyilla » Tue Sep 16, 2025 12:37 pm


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

Re: working emu server enchanter macro

Post by xyilla » Tue Sep 16, 2025 12:38 pm