Page 1 of 3

Autobuff group/raid with Lion's Strength

Posted: Mon Mar 28, 2005 3:36 pm
by gimp
Here is a little druid-helper macro that goes thru your current raid/group, and casts the melee buff Lion's strength on all melee classes + pets

WARNING: Because of recent changes in the ${Group} datatype, you must run the latest MQ2 build for this to work properly

Background: In OOW druids got the Lion's Strength buff, which is the same buff as the shaman's "Spirit of Might", also from OOW. However my guild's shamans asked druids to do raid buffing with this spell to relieve them from buff duty some, so this script was born out of pure laziness.

Code: Select all

#include spell_routines.inc

|todo: merge into one loop?

sub Main

	/declare i int inner 0
	/declare oldSpell1 string inner
	
	/declare CntPets			int inner 0
	/declare CntPetsBuffed		int inner 0
	/declare CntPlayersBuffed	int inner 0

	
	/varset oldSpell1 ${Me.Gem[1]}
	
	/if (${Raid.Members}) {
		/echo Casting Lion's Strength on all melee classes in raid	

		/for i 1 to ${Raid.Members}
			/if ( ${Raid.Member[${i}].Class.Name.Equal["Bard"]} || ${Raid.Member[${i}].Class.Name.Equal["Beastlord"]} || ${Raid.Member[${i}].Class.Name.Equal["Berserker"]} || ${Raid.Member[${i}].Class.Name.Equal["Monk"]} || ${Raid.Member[${i}].Class.Name.Equal["Paladin"]} || ${Raid.Member[${i}].Class.Name.Equal["Ranger"]} || ${Raid.Member[${i}].Class.Name.Equal["Rogue"]} || ${Raid.Member[${i}].Class.Name.Equal["Shadow Knight"]} || ${Raid.Member[${i}].Class.Name.Equal["Warrior"]} ) {

				/if (${Raid.Member[${i}].ID}) {
					/if (${Raid.Member[${i}].Distance} < 100 ) {
						|/echo Buffing ${Raid.Member[${i}].Name} (${Raid.Member[${i}].Class.ShortName})
						/target pc ${Raid.Member[${i}].Name}
						/call Cast "Lion's Strength" gem1
						/varcalc CntPlayersBuffed ${CntPlayersBuffed}+1
						/delay 3s
					} else {
						/echo ${Raid.Member[${i}].Name} (${Raid.Member[${i}].Class.ShortName}) is OOR, ${Raid.Member[${i}].Distance} distance
					}
				} else {
					/echo ${Raid.Member[${i}].Name} (${Raid.Member[${i}].Class.ShortName}) not in zone
				}
			}
			/if (${Raid.Member[${i}].Pet.ID}) {
				/if (${Raid.Member[${i}].Pet.Distance} < 100) {
					/echo Buffing ${Raid.Member[${i}].Pet.Name} (${Raid.Member[${i}].Name}'s pet)
					/target pet ${Raid.Member[${i}].Pet.Name}
					/call Cast "Lion's Strength" gem1
					/varcalc CntPetsBuffed ${CntPetsBuffed}+1
					/delay 3s
				}
				/varcalc CntPets ${CntPets}+1
			}
			
		/next i
		
		/echo ${CntPlayersBuffed}/${Raid.Members} players buffed, ${CntPetsBuffed}/${CntPets} pets
	} else {

		/if (${Group.Members}) {
			/echo Casting Lion's Strength on all melee classes in group
	
			/for i 0 to 5
			
				/if (${String[${Group.Member[${i}].Class}].Equal["Bard"]} || ${String[${Group.Member[${i}].Class}].Equal["Beastlord"]} || ${String[${Group.Member[${i}].Class}].Equal["Berserker"]} || ${String[${Group.Member[${i}].Class}].Equal["Monk"]} || ${String[${Group.Member[${i}].Class}].Equal["Paladin"]} || ${String[${Group.Member[${i}].Class}].Equal["Ranger"]} || ${String[${Group.Member[${i}].Class}].Equal["Rogue"]} || ${String[${Group.Member[${i}].Class}].Equal["Shadow Knight"]} || ${String[${Group.Member[${i}].Class}].Equal["Warrior"]} ) {
					| person is in zone
					/if (${Group.Member[${i}].ID}) {

						/if (${Group.Member[${i}].Distance} < 100) {
							|/echo Buffing ${Group.Member[${i}].Name} (${Group.Member[${i}].Class.ShortName})
							/target pc ${Group.Member[${i}].Name}
							/call Cast "Lion's Strength" gem1
							/delay 3s
						} else {
							/echo ${Group.Member[${i}].Name} (${Group.Member[${i}].Class.ShortName}) is OOR, ${Group.Member[${i}].Distance} distance
						}
						
					} else {
						/echo ${Group.Member[${i}].Name} (${Group.Member[${i}].Class.ShortName}) not in zone
					}
				}
				/if (${Group.Member[${i}].Pet.ID}) {
					/if (${Group.Member[${i}].Pet.Distance} < 100) {
						/echo Buffing ${Group.Member[${i}].Pet.Name} (${Group.Member[${i}].Name}'s pet)
						/target pet ${Group.Member[${i}].Pet.Name}
						/call Cast "Lion's Strength" gem1
						/delay 3s
					}
				}

			/next i
		}
	}

	/if (!${String["${Me.Gem[1]}"].Equal["${oldSpell1}"]}) {
		/delay 2s
		/echo # Restoring old spell gem
		/memspell 1 ${oldSpell1}
	}

/return
Edit: Code untouched, just added the "Background" text above.

Posted: Mon Mar 28, 2005 5:51 pm
by mmatt_y2k
Use on my shammy to single cast Wunshi, Sense, Fortitude. I love it!

Posted: Sat May 28, 2005 9:28 am
by gimp
FYI new versions of this script is now included in the krust macro,
in the file gimp_lions.inc

see this thread for download information:
http://www.macroquest2.com/phpBB2/viewt ... c&start=15

please dont post feedback in this thread

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:07 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:08 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:10 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:11 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:47 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:48 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:49 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:50 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:52 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:53 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:54 am
by xyilla

Re: Autobuff group/raid with Lion's Strength

Posted: Sat May 03, 2025 1:55 am
by xyilla