• 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 --->

Tanking mac (1 Viewer)

iridini

New member
Joined
May 22, 2005
RedCents
Im looking for a Mac to tank mobs and hopefully taunt tham. I want it to cast snare in spell slot 1 upon first inc of mob then taunt tank and stick to the mob while fighting. would like it to also cast shadowknight terror of discord spell slot 7 agro spell every 12-15 secs , then reset when mob is dead . Is this possible to write?

Also is there a mac for an alt to just /assist the tank, attack, stick , then reset when mob is dead for say a bard. Juat a simple mac.


When i mean by reste i mean reset to original loc i started mac at.
 
I can work on one since I have a lvl 45 SK, but cant do it until this weekend when I turn my account back on. The bard one is easy, I already have one made for mine. All it does is assist the person u want to assist, keypress forward until within range, then /stick to it while twisting the songs...u would have to change the loc on it tho. I have it posted below.
Rich (BB code):
#turbo
#event toofar "#*#Your target is too far away, get closer!#*#"
#event mobdied "#*#You gain party experience!!#*#"

Sub Main
	/assist CHANGETOMAINASSIST
	/call stick
	/call twist
/return

Sub Stick
	 /delay 2s
	/face 
	 /attack on
	:movementloop
	/if (${Int[${Target.Distance}]}>13) { 
	 /keypress forward 
 } 
	 /if (${Int[${Target.Distance}]}<13&&${Int[${Target.Distance}]}>11) { 
	 /keypress forward 
 } 
	 /if (${Int[${Target.Distance}]}<9) { 
	 /keypress back 
 } 
	 /if (${Int[${Target.Distance}]}>13) { 
 	/keypress forward 
 } 
	/stick on
	/goto :movementloop
/return

Sub Twist
	/twist CHANGETWISTACCORDINGLY
/return

Sub event_toofar
	/call :movementloop
/return

 Sub Event_MobDied 
	/call checkanchor
/return

Sub CheckAnchor    
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor    
/return 

Sub MoveToAnchor 
/warp loc X, Y, Z
/call main
/return
 
irinidi said:
Im looking for a Mac to tank mobs and hopefully taunt tham. I want it to cast snare in spell slot 1 upon first inc of mob then taunt tank and stick to the mob while fighting. would like it to also cast shadowknight terror of discord spell slot 7 agro spell every 12-15 secs , then reset when mob is dead . Is this possible to write?

Also is there a mac for an alt to just /assist the tank, attack, stick , then reset when mob is dead for say a bard. Juat a simple mac.


When i mean by reste i mean reset to original loc i started mac at.
I'll give you my Sk mac you're going to need to change some of the events.
 
Here is botevents.inc It's current format is for EQBC but you could easily change it to IRC or a chat channel. This I pretty much use in all of my bot macs.
Rich (BB code):
#Event Stay			"<#*#> |${Me}| Stay"
#Event Follow			"<#*#> |${Me}| Follow #1#"
#Event Moveto                   "<#*#> |${Me}| Moveto #1#"
#Event Zoned        		"#*#You have entered#*#"
#Event BotTells			"#1# tells you, '#2#'"
#Event ClericBuffs              "<#*#> V #1#"
#Event BCVie			"<#*#> vie #1#"
#Event BCDevotion		"<#*#> Devotion 
#Event BCBlessing		"<#*#> Blessing #1#"
#Event HoT			"<#*#> HoT #1#"
#Event Heal			"<#*#> Heal #1#"
#Event CH			"<#*#> CH #1#"
#Event Arb			"<#*#> Arb"
#Event RC                       "<#*#> RC"
#Event GHoT                     "<#*#> GHoT"
#Event Speed			"<#*#> Speed #1#"
#Event C6			"<#*#> C6 #1#	
#Event Gspeed			"<#*#> Gspeed"
#Event Gc6			"<#*#> Gc6"
#Event Skele			"<#*#> Skele #1#"
#Event Illusion                 "<#*#> Give #1# #2#"
#Event BuffStats                "<#*#> |${Me}| BuffStats"
#Event Focus                    "<#*#> Focus #1#"
#Event Stamina			"<#*#> Stamina #1#"
#Event Might			"<#*#> Might #1#"
#Event Sense			"<#*#> Sense #1#"
#Event Q			"<#1#> Q me"
#Event Q2			"<#*#> Q #1#" 
#Event Heal2			"<#*#> |${Me}| heal #1#"	
#Event Mana			"<#*#> Mana"
#Event Gfocus			"<#*#> Gfocus"
#Event Gsta			"<#*#> Gsta"
#Event Gregen			"<#*#> Gregen"
#Event TL			"<#*#> TL #1# on #2#"
#Event Port			"<#*#> Port #1#"
#EVent Invis			"<#*#> Invis #1#"
#Event Invisgrp			"<#*#> |${Me}| Invisgrp"
#Event Pause			"<#*#> |${Me}| pauseit"
#Event Unpause			"<#*#> |${Me}| unpauseit"
#event HoV			"<#*#> |${Me}| HOV"
Sub BotDeclares
   /declare Follow 		int outer
   /declare FollowPerson 	string outer
   /declare Pauseit 		int outer 0
/return

Sub Event_Stay
   /Varset AnchorX               ${Me.X}
   /Varset AnchorY               ${Me.Y}
   /stick off
   /varset Follow 0
   /varset FollowPerson NULL

 /bc Camp set here, I will now return here after combat.
/return

Sub Event_Follow(string Line,string Sender)
/delay 10
/target ${Sender}
/stick 35% hold
/bc  Following ${Target.CleanName}...
/varset Follow 1
/varset FollowPerson ${Sender}
:following
/if (${Follow}==0) /return
/doevents
/if (!${Target.ID}) /target ${FollowPerson}
/if (!${Stick.Status.Equal[ON]}) /stick 35% hold
/doevents
/goto :following
/return

Sub Event_Moveto(string Line,string MovetoPerson)
/target ${MovetoPerson}
/stick
/bc Moving to << ${Target.CleanName} >>
:stick
/if (${Target.Distance}<15) { 
/stick off
/return
} else {
/goto :stick
}

/return

Sub Event_Zoned
/if (${Follow}==1) { 
/target ${FollowPerson}
/delay 10
/stick 35% hold
}
/return

Sub Event_BotTells(string Line,string Sender,string Chat)
/bc ${Sender} told me: ${Chat}
/return

Sub Event_ClericBuffs(string Line,string Vtarget)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Vtarget}
/bc Casting ${longhpbuff} on ${Vtarget}
/call cast ${longhpbuff} gem9 10s
/return

Sub Event_BCVie(string Line,string Vietarget)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Vietarget}
/bc Casting Panoply of Vie on ${Vietarget}
/call cast "Panoply of Vie" gem7 4s
/return

Sub Event_BCDevotion
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Me}
/bc casting Aura of Devotion 
/call cast "Aura of Devotion" gem9 8s
/return

Sub Event_BCBlessing(string Line,string Blessing)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Blessing}
/bc casting Blessing of Devotion on ${Blessing}
/call cast "Blessing of Devotion" gem9 6s
/return

Sub Event_HoT(string Line,string Elixir)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Elixir}
/bc casting Pious Elixir on ${Elixir}
/call cast "Pious Elixir" gem3 4s
/return

Sub Event_Heal(string Line,string Healee)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${Healee}
/bc casting Pious Remedy on ${Healee}
/call cast "Pious Remedy" gem1 2s
/return

Sub Event_CH(string Line,string CHer)
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/target ${CHer}
/bc Complete Healing >> ${CHer} <<
/call cast "COmplete Healing" gem2 10s
/return

Sub Event_Arb
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/stopcast
/alt act 169
/bc << BALANCING HPs >>
/delay 1s
/bc Inc Group Heal, hug me !
/call cast "Word of Vivification" gem4 5s
/return

Sub Event_RC
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/alt act 153
/bc You are << Cured >>
/return

Sub Event_GHoT
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/alt act 394
/bc Group >> Hotage <<
/return

Sub Event_Speed(string Line,string Person)
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/target ${Person}
/bc Casting Speed of Salik on >> ${Person} <<
/call cast "Speed of Salik" gem9 6s
/return

Sub Event_C6(string Line,string Person)
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/target ${Person}
/bc Clairvoyance on >> ${Person} <<
/call cast Clairvoyance gem9 4s
/return

Sub Event_Gc6
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/bc Get close casting << Voice of Clairvoyance >>
/call cast "Voice of Clairvoyance" gem9 12s
/return

Sub Event_Gspeed
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/bc Get close casting << Hastening of Salik >>
/call cast "Hastening of Salik" gem9
/return 

Sub Event_Skele(string Line,string Person)
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/alt act 217
/target ${Person}
/bc << Illusion Skelly for ${Person} >>
/call cast "Illusion: Skeleton" gem9 3s
/return

Sub Event_Illusion(string Line,string Person,string Illusion)
/if (!${Me.Class.Name.Equal[Enchanter]}) /return
/alt act 217
/target ${Person}
/bc << Turning ${Person} into ${Illusion} >>
/call cast "Illusion: ${Illusion}" gem9 3s
/return

Sub Event_BuffStats 
/bc == [+g+]${Me}'s Buff List[+x+] ==
/if (${Me.Buff[1].ID} && ${Me.Buff[1].Duration}>=600) /bc ** ${Me.Buff[1]} - [+g+]${Me.Buff[1].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[1].ID} && ${Me.Buff[1].Duration}<600 && ${Me.Buff[1].Duration}>=300) /bc ** ${Me.Buff[1]} - [+o+]${Me.Buff[1].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[1].ID} && ${Me.Buff[1].Duration}<300 && ${Me.Buff[1].Duration}>100) /bc ** ${Me.Buff[1]} - [+y+]${Me.Buff[1].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[1].ID} && ${Me.Buff[1].Duration}<=100) /bc ** ${Me.Buff[1]} - [+r+]${Me.Buff[1].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[2].ID} && ${Me.Buff[2].Duration}>=600) /bc ** ${Me.Buff[2]} - [+g+]${Me.Buff[2].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[2].ID} && ${Me.Buff[2].Duration}<600 && ${Me.Buff[2].Duration}>=300) /bc ** ${Me.Buff[2]} - [+o+]${Me.Buff[2].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[2].ID} && ${Me.Buff[2].Duration}<300 && ${Me.Buff[2].Duration}>100) /bc ** ${Me.Buff[2]} - [+y+]${Me.Buff[2].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[2].ID} && ${Me.Buff[2].Duration}<=100) /bc ** ${Me.Buff[2]} - [+r+]${Me.Buff[2].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[3].ID} && ${Me.Buff[3].Duration}>=600) /bc ** ${Me.Buff[3]} - [+g+]${Me.Buff[3].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[3].ID} && ${Me.Buff[3].Duration}<600 && ${Me.Buff[3].Duration}>=300) /bc ** ${Me.Buff[3]} - [+o+]${Me.Buff[3].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[3].ID} && ${Me.Buff[3].Duration}<300 && ${Me.Buff[3].Duration}>100) /bc ** ${Me.Buff[3]} - [+y+]${Me.Buff[3].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[3].ID} && ${Me.Buff[3].Duration}<=100) /bc ** ${Me.Buff[3]} - [+r+]${Me.Buff[3].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[4].ID} && ${Me.Buff[4].Duration}>=600) /bc ** ${Me.Buff[4]} - [+g+]${Me.Buff[4].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[4].ID} && ${Me.Buff[4].Duration}<600 && ${Me.Buff[4].Duration}>=300) /bc ** ${Me.Buff[4]} - [+o+]${Me.Buff[4].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[4].ID} && ${Me.Buff[4].Duration}<300 && ${Me.Buff[4].Duration}>100) /bc ** ${Me.Buff[4]} - [+y+]${Me.Buff[4].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[4].ID} && ${Me.Buff[4].Duration}<=100) /bc ** ${Me.Buff[4]} - [+r+]${Me.Buff[4].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[5].ID} && ${Me.Buff[5].Duration}>=600) /bc ** ${Me.Buff[5]} - [+g+]${Me.Buff[5].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[5].ID} && ${Me.Buff[5].Duration}<600 && ${Me.Buff[5].Duration}>=300) /bc ** ${Me.Buff[5]} - [+o+]${Me.Buff[5].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[5].ID} && ${Me.Buff[5].Duration}<300 && ${Me.Buff[5].Duration}>100) /bc ** ${Me.Buff[5]} - [+y+]${Me.Buff[5].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[5].ID} && ${Me.Buff[5].Duration}<=100) /bc ** ${Me.Buff[5]} - [+r+]${Me.Buff[5].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[6].ID} && ${Me.Buff[6].Duration}>=600) /bc ** ${Me.Buff[6]} - [+g+]${Me.Buff[6].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[6].ID} && ${Me.Buff[6].Duration}<600 && ${Me.Buff[6].Duration}>=300) /bc ** ${Me.Buff[6]} - [+o+]${Me.Buff[6].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[6].ID} && ${Me.Buff[6].Duration}<300 && ${Me.Buff[6].Duration}>100) /bc ** ${Me.Buff[6]} - [+y+]${Me.Buff[6].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[6].ID} && ${Me.Buff[6].Duration}<=100) /bc ** ${Me.Buff[6]} - [+r+]${Me.Buff[6].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[7].ID} && ${Me.Buff[7].Duration}>=600) /bc ** ${Me.Buff[7]} - [+g+]${Me.Buff[7].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[7].ID} && ${Me.Buff[7].Duration}<600 && ${Me.Buff[7].Duration}>=300) /bc ** ${Me.Buff[7]} - [+o+]${Me.Buff[7].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[7].ID} && ${Me.Buff[7].Duration}<300 && ${Me.Buff[7].Duration}>100) /bc ** ${Me.Buff[7]} - [+y+]${Me.Buff[7].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[7].ID} && ${Me.Buff[7].Duration}<=100) /bc ** ${Me.Buff[7]} - [+r+]${Me.Buff[7].Duration.TimeHMS}[+x+] **
 
/if (${Me.Buff[8].ID} && ${Me.Buff[8].Duration}>=600) /bc ** ${Me.Buff[8]} - [+g+]${Me.Buff[8].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[8].ID} && ${Me.Buff[8].Duration}<600 && ${Me.Buff[8].Duration}>=300) /bc ** ${Me.Buff[8]} - [+o+]${Me.Buff[8].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[8].ID} && ${Me.Buff[8].Duration}<300 && ${Me.Buff[8].Duration}>100) /bc ** ${Me.Buff[8]} - [+y+]${Me.Buff[8].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[8].ID} && ${Me.Buff[8].Duration}<=100) /bc ** ${Me.Buff[8]} - [+r+]${Me.Buff[8].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[9].ID} && ${Me.Buff[9].Duration}>=600) /bc ** ${Me.Buff[9]} - [+g+]${Me.Buff[9].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[9].ID} && ${Me.Buff[9].Duration}<600 && ${Me.Buff[9].Duration}>=300) /bc ** ${Me.Buff[9]} - [+o+]${Me.Buff[9].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[9].ID} && ${Me.Buff[9].Duration}<300 && ${Me.Buff[9].Duration}>100) /bc ** ${Me.Buff[9]} - [+y+]${Me.Buff[9].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[9].ID} && ${Me.Buff[9].Duration}<=100) /bc ** ${Me.Buff[9]} - [+r+]${Me.Buff[9].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[10].ID} && ${Me.Buff[10].Duration}>=600) /bc ** ${Me.Buff[10]} - [+g+]${Me.Buff[10].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[10].ID} && ${Me.Buff[10].Duration}<600 && ${Me.Buff[10].Duration}>=300) /bc ** ${Me.Buff[10]} - [+o+]${Me.Buff[10].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[10].ID} && ${Me.Buff[10].Duration}<300 && ${Me.Buff[10].Duration}>100) /bc ** ${Me.Buff[10]} - [+y+]${Me.Buff[10].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[10].ID} && ${Me.Buff[10].Duration}<=100) /bc ** ${Me.Buff[10]} - [+r+]${Me.Buff[10].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[11].ID} && ${Me.Buff[11].Duration}>=600) /bc ** ${Me.Buff[11]} - [+g+]${Me.Buff[11].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[11].ID} && ${Me.Buff[11].Duration}<600 && ${Me.Buff[11].Duration}>=300) /bc ** ${Me.Buff[11]} - [+o+]${Me.Buff[11].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[11].ID} && ${Me.Buff[11].Duration}<300 && ${Me.Buff[11].Duration}>100) /bc ** ${Me.Buff[11]} - [+y+]${Me.Buff[11].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[11].ID} && ${Me.Buff[11].Duration}<=100) /bc ** ${Me.Buff[11]} - [+r+]${Me.Buff[11].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[12].ID} && ${Me.Buff[12].Duration}>=600) /bc ** ${Me.Buff[12]} - [+g+]${Me.Buff[12].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[12].ID} && ${Me.Buff[12].Duration}<600 && ${Me.Buff[12].Duration}>=300) /bc ** ${Me.Buff[12]} - [+o+]${Me.Buff[12].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[12].ID} && ${Me.Buff[12].Duration}<300 && ${Me.Buff[12].Duration}>100) /bc ** ${Me.Buff[12]} - [+y+]${Me.Buff[12].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[12].ID} && ${Me.Buff[12].Duration}<=100) /bc ** ${Me.Buff[12]} - [+r+]${Me.Buff[12].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[13].ID} && ${Me.Buff[13].Duration}>=600) /bc ** ${Me.Buff[13]} - [+g+]${Me.Buff[13].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[13].ID} && ${Me.Buff[13].Duration}<600 && ${Me.Buff[13].Duration}>=300) /bc ** ${Me.Buff[13]} - [+o+]${Me.Buff[13].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[13].ID} && ${Me.Buff[13].Duration}<300 && ${Me.Buff[13].Duration}>100) /bc ** ${Me.Buff[13]} - [+y+]${Me.Buff[13].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[13].ID} && ${Me.Buff[13].Duration}<=100) /bc ** ${Me.Buff[13]} - [+r+]${Me.Buff[13].Duration.TimeHMS}[+x+] **
 
/if (${Me.Buff[14].ID} && ${Me.Buff[14].Duration}>=600) /bc ** ${Me.Buff[14]} - [+g+]${Me.Buff[14].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[14].ID} && ${Me.Buff[14].Duration}<600 && ${Me.Buff[14].Duration}>=300) /bc ** ${Me.Buff[14]} - [+o+]${Me.Buff[14].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[14].ID} && ${Me.Buff[14].Duration}<300 && ${Me.Buff[14].Duration}>100) /bc ** ${Me.Buff[14]} - [+y+]${Me.Buff[14].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[14].ID} && ${Me.Buff[14].Duration}<=100) /bc ** ${Me.Buff[14]} - [+r+]${Me.Buff[14].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[15].ID} && ${Me.Buff[15].Duration}>=600) /bc ** ${Me.Buff[15]} - [+g+]${Me.Buff[15].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[15].ID} && ${Me.Buff[15].Duration}<600 && ${Me.Buff[15].Duration}>=300) /bc ** ${Me.Buff[15]} - [+o+]${Me.Buff[15].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[15].ID} && ${Me.Buff[15].Duration}<300 && ${Me.Buff[15].Duration}>100) /bc ** ${Me.Buff[15]} - [+y+]${Me.Buff[15].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[15].ID} && ${Me.Buff[15].Duration}<=100) /bc ** ${Me.Buff[15]} - [+r+]${Me.Buff[15].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[16].ID} && ${Me.Buff[16].Duration}>=600) /bc ** ${Me.Buff[16]} - [+g+]${Me.Buff[16].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[16].ID} && ${Me.Buff[16].Duration}<600 && ${Me.Buff[16].Duration}>=300) /bc ** ${Me.Buff[16]} - [+o+]${Me.Buff[16].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[16].ID} && ${Me.Buff[16].Duration}<300 && ${Me.Buff[16].Duration}>100) /bc ** ${Me.Buff[16]} - [+y+]${Me.Buff[16].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[16].ID} && ${Me.Buff[16].Duration}<=100) /bc ** ${Me.Buff[16]} - [+r+]${Me.Buff[16].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[17].ID} && ${Me.Buff[17].Duration}>=600) /bc ** ${Me.Buff[17]} - [+g+]${Me.Buff[17].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[17].ID} && ${Me.Buff[17].Duration}<600 && ${Me.Buff[17].Duration}>=300) /bc ** ${Me.Buff[17]} - [+o+]${Me.Buff[17].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[17].ID} && ${Me.Buff[17].Duration}<300 && ${Me.Buff[17].Duration}>100) /bc ** ${Me.Buff[17]} - [+y+]${Me.Buff[17].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[17].ID} && ${Me.Buff[17].Duration}<=100) /bc ** ${Me.Buff[17]} - [+r+]${Me.Buff[17].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[18].ID} && ${Me.Buff[18].Duration}>=600) /bc ** ${Me.Buff[18]} - [+g+]${Me.Buff[18].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[18].ID} && ${Me.Buff[18].Duration}<600 && ${Me.Buff[18].Duration}>=300) /bc ** ${Me.Buff[18]} - [+o+]${Me.Buff[18].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[18].ID} && ${Me.Buff[18].Duration}<300 && ${Me.Buff[18].Duration}>100) /bc ** ${Me.Buff[18]} - [+y+]${Me.Buff[18].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[18].ID} && ${Me.Buff[18].Duration}<=100) /bc ** ${Me.Buff[18]} - [+r+]${Me.Buff[18].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[19].ID} && ${Me.Buff[19].Duration}>=600) /bc ** ${Me.Buff[19]} - [+g+]${Me.Buff[19].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[19].ID} && ${Me.Buff[19].Duration}<600 && ${Me.Buff[19].Duration}>=300) /bc ** ${Me.Buff[19]} - [+o+]${Me.Buff[19].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[19].ID} && ${Me.Buff[19].Duration}<300 && ${Me.Buff[19].Duration}>100) /bc ** ${Me.Buff[19]} - [+y+]${Me.Buff[19].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[19].ID} && ${Me.Buff[19].Duration}<=100) /bc ** ${Me.Buff[19]} - [+r+]${Me.Buff[19].Duration.TimeHMS}[+x+] ** 

/if (${Me.Buff[20].ID} && ${Me.Buff[20].Duration}>=600) /bc ** ${Me.Buff[20]} - [+g+]${Me.Buff[20].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[20].ID} && ${Me.Buff[20].Duration}<600 && ${Me.Buff[20].Duration}>=300) /bc ** ${Me.Buff[20]} - [+o+]${Me.Buff[20].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[20].ID} && ${Me.Buff[20].Duration}<300 && ${Me.Buff[20].Duration}>100) /bc ** ${Me.Buff[20]} - [+y+]${Me.Buff[20].Duration.TimeHMS}[+x+] ** 
/if (${Me.Buff[20].ID} && ${Me.Buff[20].Duration}<=100) /bc ** ${Me.Buff[20]} - [+r+]${Me.Buff[20].Duration.TimeHMS}[+x+] ** 
/bc == [+y+]End of ${Me}'s List[+x+] ==

/if (${Me.Pet.ID}) /bc === ${Me}'s [+p+] Pet Buff List [+x+] ===

/if (${Me.PetBuff[1].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[1]} - [+g+]${Me.PetBuff[1].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[2].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[2]} - [+g+]${Me.PetBuff[2].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[3].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[3]} - [+g+]${Me.PetBuff[3].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[4].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[4]} - [+g+]${Me.PetBuff[4].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[5].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[5]} - [+g+]${Me.PetBuff[5].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[6].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[6]} - [+g+]${Me.PetBuff[6].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[7].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[7]} - [+g+]${Me.PetBuff[7].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[8].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[8]} - [+g+]${Me.PetBuff[8].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[9].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[9]} - [+g+]${Me.PetBuff[9].Duration.TimeHMS}[+x+] **
/if (${Me.PetBuff[10].ID}) /bc ** ${Me.Pet.CleanName} : ${Me.PetBuff[10]} - [+g+]${Me.PetBuff[10].Duration.TimeHMS}[+x+] **

/if (${Me.Pet.ID}) /bc === End of [+p+] ${Me.Pet.CleanName}'s Buff List [+x+] ===
/return

Sub Event_Focus(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Casting Focus on << ${Target.CleanName} >>
/call cast "Wunshi's Focusing" gem8 4s
/return

Sub Event_Stamina(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Casting Stamina on << ${Target.CleanName} >>
/call cast "Spirit of Fortitude" gem8 4s
/return

Sub Event_Might(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Casting Might on << ${Target.CleanName} >>
/call cast "Spirit of Might" gem8 4s
/return

Sub Event_Sense(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Casting Sense on << ${Target.CleanName} >>
/call cast "Talisman of Sense" gem8 4s
/return

Sub Event_Q(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Spiritual Serenity on << ${Target.CleanName} >>
/call cast "Spiritual Serenity" gem5 4s
/return

Sub Event_Q2(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Spiritual Serenity on << ${Target.CleanName} >>
/call cast "Spiritual Serenity" gem5 4s
/return

Sub Event_Heal2(string Line,string Person)
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/target ${Person}
/bc Yoppa`s Mending on << ${Target.CleanName} >>
/call cast "Yoppa's Mending" gem6 5s
/return

Sub Event_Gsta
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/bc ** Casting Group Stamina **
/call cast "Talisman of Fortitude" gem8
/return

Sub Event_Gfocus
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/bc ** Casting Group Focus **
/call cast "Talisman of Wunshi" gem8
/return

Sub Event_Gregen
/if (!${Me.Class.Name.Equal[Shaman]}) /return
/bc ** Casting Group Regen **
/call cast "Talisman of Perseverance" gem8 6s
/return

Sub Event_Mana
/bc ${Me.PctMana}m
/return

Sub Event_TL(string Line, string TLspell, string Person)
/if (!${Me.Class.Name.Equal[Wizard]}) /return
/target ${Person}
/delay 10
/call cast "Translocate: ${TLspell}" gem8
/bc << TLing [+p+]${Target.CleanName}[+x+] to [+g+]${TLspell}[+x+]
/return

Sub Event_Port(string Line, string Portspell)
/if (!${Me.Class.Name.Equal[Wizard]}) /return
/bc [+y+]**Get Close Porting !**[+x+]
/call cast "${Portspell} Portal" gem8
/return

Sub Event_Invis(string Line, string Person)
/if (!${Me.Class.Name.Equal[Wizard]}) /return
/target ${Person}
/delay 10
/call cast "Phase Walk" gem 8
/bc Casting Invis on >> [+g+]${Target.CleanName}[+x+] <<
/return

Sub Event_Invisgrp
/declare j 	int local
/if (!${Me.Class.Name.Equal[Wizard]}) /return
/delay 10
/for j 1 to ${Group.Members}
/target ${Group.Member[${j}]}
/delay 10
/bc ** Invising <<[+g+]${Target.CleanName}[+x+]>> **
/call cast "Phase Walk" gem8 5s
/next j
/delay 10
/target ${Me}
/bc ** Invising <<[+g+]${Target.CleanName}[+x+]>> **
/call cast "Phase Walk" gem8 5s
/return

Sub Event_Pause
/varset Pauseit 1
:pauseloop
/doevents
/if (${Me.Sitting}) /stand
/if (${Pauseit}==0) {
/return
} else {
/goto :pauseloop
}
/return

Sub Event_Unpause
/varset Pauseit 0
/return

Sub event_HoV
/if (!${Me.Class.Name.Equal[Cleric]}) /return
/delay 10
/call cast "Hand of Virtue"
/return
 
Again the events are written for EQBC but could easily be changed. Notice the events that cause it to trigger and edit those accordingly. Also requires Spell_Routines.inc and Wait4rez.inc

Sk.mac
Rich (BB code):
#Event EXP                      "You gain#*#"
#Event Slain                    "You have been slain by#*#"
#Event DPS   "<#*#> DPS"
#Event Returntoanchor           "<#*#> Returntoanchor"
#Event Tag                      "<|${Puller}|> Tag#*#"
#Event Guild                    "#1# tells the guild, '#2#'"
#Event GuildMOTD                "GUILD MOTD: #1#- #2#"
#Event Pull                     "<#*#> TAG#*#"
#Include Wait4rez.inc
#Include Spell_Routines.inc
#Include botevents.inc
#Chat tell
#Chat group
#Chat channel
#Chat guild

Sub Main
  /call BotDeclares
   
|===========================================================
|Edit this stuff
|===========================================================
   /declare Master               string outer Toonname
   /declare MyChannel            string outer Channelname
   /declare MyChannelPass        string outer Channelpassword
   /declare MyChannel2           string outer Channel2
   /declare Tells                int outer 1
   |                             1 echos tells to channel; 0 is no echoing
   /declare Spam                 int outer 1
   |                             1 echos events to private channel; 0 no echoing
   /declare Puller               string outer PullerToonname
   /declare PullerID             int outer
   /varset PullerID              ${Target.ID}
   /declare Anchor   int outer 0
|===========================================================
| Assist %
|===========================================================
 /declare RV_Assistat          int outer 96


|===========================================================
| End of Editing
|===========================================================
   /declare Spear int outer
   /declare Hate int outer
   /declare Dark int outer
   /declare Aura int outer
   /declare RV_Looper            int outer  0
   /declare RV_MyTargetID        int outer  0
   /declare RV_MyTargetName      string outer
   /declare RV_MyTargetDead      int outer  0
   /declare RV_RandomWait        int outer  0
   /declare RV_CheckLook         int outer  0
   /declare RV_Fighting          int outer  0
   /declare RV_TargetDead        int outer  0
   /declare RV_MyXLOC            int outer  0
   /declare RV_MyYLOC            int outer  0
   /declare AnchorX              int outer ${Me.X}
   /declare AnchorY              int outer ${Me.Y}
   /declare RV_resetheading      int outer ${Me.Heading.DegreesCCW.Int}
   /declare SitBooBooID          int outer
   /declare RV_FastRange         int outer
   /declare RV_RangeMax          int outer
   /declare RV_RangeMin          int outer
   /declare RV_Subreset          int outer 0
   /declare RV_Rangedw           int outer
   /declare Exper                float outer
   /declare AAExp                float outer
   /declare Mobs_Killed          int outer 0
   /varset  Exper                ${Me.PctExp}
   /varset  AAExp                ${Me.PctAAExp}
   /varcalc RV_FastRange         ${RV_Range}+3
   /varcalc RV_RangeMax          ${RV_Range}+1
   /varcalc RV_RangeMin          ${RV_Range}-1
   /varcalc RV_Rangedw           ${RV_Rangedw} - 10

  
|========================================================

/combat on
/combat save
/join ${MyChannel}:${MyChannelPass}
:Start
/call GetTarget
/call CheckBuffs
/doevents
/goto :Start   

/return

Sub GetTarget
:NotYet
/doevents
/assist ${Puller}
/delay 4
/if (!${Target.ID}) /goto :NotYet
/if ((${Target.ID}!=${PullerID})&&(${Target.Distance}<25)&& ${Target.Type.Equal[NPC]}) /call Combat
/goto :NotYet
/delay 3s
/return

Sub Combat
   /varset Aura 1
   /varset Dark 1
   /varset Hate 1
   /varset Spear 1
   /if (${Target.Type.Equal[NPC]}) /call cast "Terror of Discord" gem4 2s
   /varset RV_Fighting 1
   /varset RV_TargetDead 0
   /if ((${Target.ID}) && (${Target.Type.Equal["NPC"]})) /attack on
   /if (${Target.Type.Equal[NPC]}) /bc Attacking >>> [+p+]${Target.CleanName}[+x+] <<<
   :CombatLoop
   /doevents
   /attack on
   /call SpecialIT

   }
   :nocombat
   /if (!${Target.ID}) {
      /varcalc Mobs_Killed (${Mobs_Killed}+1) 
      /attack off
      /keypress forward
      /keypress back
      /keypress esc
      /varset AAExp ${Math.Calc[${Me.PctAAExp}-${AAExp}]}
      /varset Exper ${Math.Calc[${Me.PctExp}-${Exper}]}
      /echo EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
      /popup EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
      /echo Total Mobs killed so far:  ${Mobs_Killed}
      /varset Exper ${Me.PctExp}
      /varset AAExp ${Me.PctAAExp}
      /varset RV_TargetDead 1
      /varset RV_Fighting 0
   }
   /if (!${RV_TargetDead}) {
        /goto :CombatLoop
   }
/return

Sub SpecialIT
/if (!${Me.TargetOfTarget.Name.Equal[${Me}]} && ${Target.Type.Equal[NPC]} && ${Target.PctHPs}>20) { 
/call Event_Agro
/delay 2s
}
|/if (${Me.SpellReady[Spear of Muram]}) /call cast "Spear of Muram"
/if (${Me.SpellReady[Spear of Decay]}) /call cast "Spear of Decay"
    /if (${Me.AbilityReady[Bash]}) /doability "Bash"
     /doevents
    /if (${Me.AbilityReady[Taunt]}) /doability "Taunt"
  /if (${Dark}==1 && ${Me.Combat}) { 
/call cast "Festering Darkness" 
/varset Dark 0
}    

  /if (${Hate}==1 && ${Me.Combat}) { 
/call cast "Terror of Discord" 
/varset Hate 0
} 

  /if (${Spear}==1 && ${Me.Combat}) { 
/call cast "Spear of Decay" 
/varset Spear 0
} 

/if (${Aura}==1 && ${Me.Combat}) {
/call cast "Aura of Hate"
/varset Aura 0
}
/return


Sub ResetSub
   /varset Dark 0
   /varset Spear 0
   /varset Hate 0
   /call CheckAnchor
   /varset RV_TargetDead 0
   /varset RV_Fighting 0
   /doevents
   /attack off
   /keypress ESC
   /call CheckBuffs
   /return


Sub Event_EXP
/call CheckAnchor
/call ResetSub
/return

Sub CheckAnchor   
   /if (${Math.Distance[${AnchorY},${AnchorX}]}>25 && ${Anchor}==1) /call MoveToAnchor   
/return


Sub MoveToAnchor
    /declare iCount int local
    /varset iCount 0

|    /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}.
    /varset RV_MyXLOC ${Int[${Me.X}]}
    /varset RV_MyYLOC ${Int[${Me.Y}]}
    /declare RV_DistanceTimer timer 15
:AnchorMoveLoop
    /delay 1
    /doevents
    /face fast nolook loc ${AnchorY},${AnchorX}
   
    /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) {
       /keypress forward hold
    } else {
       /keypress forward
       /return
    }

    /if (${iCount}>2) {
        /face fast nolook loc ${AnchorY},${AnchorX}
        /varset iCount 0
    }
    /if (!${RV_DistanceTimer}) {
      /if ((${RV_MyXLOC}==${Int[${Me.X}]})&&(${RV_MyYLOC}==${Int[${Me.Y}]})) /call HitObstacle
      /varset RV_MyXLOC ${Int[${Me.X}]}
      /varset RV_MyYLOC ${Int[${Me.Y}]}
      /varset RV_DistanceTimer 15
      } 
     }   
   
    /varcalc iCount ${iCount}+1
    /goto :AnchorMoveLoop

/return

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

Sub Event_Slain
/delay 2s
/load spellset
/call Wait4Rez 
/return



Sub Event_DPS
/disc mighty

/return





Sub Event_Returntoanchor
/stand
/call CheckAnchor
/return


/return

Sub Event_Tag
/stick off
/attack off
/assist ${Puller}
/face fast
/bc Tagging >>> ${Target.CleanName} <<<
/call cast "Festering Darkness" gem5 2s
/delay 1s
/call cast "Terror of Discord" gem4 2s

/return

Sub Event_Guild(string Line,string Person,string Text
/chat #${MyChannel2} ${Person} Told the guild: ${Text}
/return

Sub Event_GuildMOTD(string Line,string Officer,string Text
/chat #${MyChannel2} ${Officer} set GuildMOTD as: ${Text}
/return

Sub Event_Attack
/attack off
/keypress esc
/stand
/attack off
/call CheckAnchor
/return

Sub CheckBuffs


/return
Sub Event_Agro
/bc << Snaping [+r+]Agro[+x+] on [+y+]${Target.CleanName}[+x+] >>
/doability "taunt"
/call cast "Terror of Discord" 
/return
 
Awesome argo part works great! Any ideas why the tank does not stick to the mob like he is supposed to? Can't get him to follow camp or any of that stuff either. I have all the .inc files it calls for. Thanks for any help.
 
Tanking mac

Users who are viewing this thread

Back
Top