Moderator: MacroQuest Developers

grimjack wrote:It's because Shadow Knight is 2 words.Nightshift wrote:Just wondering if this is right, since the syntax is not the same as all the rest.Code: Select all
/if "$spawn($group(@GroupMember),class)"=="Shadow Knight" /call Tankheal
Shouldn't it be this;
or is it that way due to two words(Shadow Knight)?Code: Select all
/if $spawn($group(@GroupMember),class)=="Shadow Knight" /call Tankheal
NightShift
Code: Select all
Sub Do-add
/declare addtarget local
/target
/target notid $target(id)
/varset addtarget $target()
/if $target(level)<=61
/call SpellSub "Rapture"
Code: Select all
#Event NoMez "The rapture fades."
Sub Event_NoMez
/tell @MasterName Mez has worn off.
/return
I think you will want to declare it as a global variable un the PersonalSetupVars section. Then you can /varset it in the add sub. It will be accessable from any of the other subs then.blakbelt wrote:Trying to add a routine to your Genbot to target an add mez it - when mez fades it reacquires target and recasts mez.
This is what i have so far in Personal.incnow in botspell.inc i have the following:Code: Select all
Sub Do-add /declare addtarget local /target /target notid $target(id) /varset addtarget $target() /if $target(level)<=61 /call SpellSub "Rapture"
My question is will the addtarget local variable keep the stored target to allow reacquisition or will it have to be done another way?Code: Select all
#Event NoMez "The rapture fades." Sub Event_NoMez /tell @MasterName Mez has worn off. /return
Code: Select all
|personal.inc
|Personal commands module.
|Version 6.2
|Date:10/11/2003 5:31pm
|
|
|Commands in this module:
|test
|add
|mount
|dismount
|
|---------------------------Events-----------------------------------
#Event NoMez “The rapture fades.”
#Event Break “ has been awakened by “
#Event Mezzed “swoons in raptured bliss”
|--------------------------Personal Commands-----------------
Sub PersonalCommands
/varset Commands(0,0) test
/varset Commands(0,1) add
/varset Commands(0,2) mount
/varset Commands(0,3) dismount
/varset ArrayPers 0
/return
Sub TellCmds-personal
/msg @MasterName test, add, mount, dismount
/return
|Things that you want to happen every loop through the macro go in this sub.
Sub PersonalMain
/return
Sub SetupPersonalVars
|Core variables
/call SetupCoreVars
/varset RangeMin 10
/varset RangeMax 12
/varset FastRange 15
/varset Relaytells 1
|Spell Module Variables
/call SetupSpellVars
/varset SitAfterCast 0
/varset DefaultSpellSet "default"
/varset EvacSpell "Evacuate"
|Combat Module Variables
/call SetupCombatVars
/varset DoBackstab 0
/varset DoTaunt 0
/varset DoEvade 0
/varset DoSlam 0
/varset DoBash 0
/varset DoKick 0
/varset DoTraps 0
/varset Aggressive 0
|Healer Module Variables
/call SetupHealerVars
/varset IsHealer 0
/varset IsPally 0
/varset ReportAutoHeal 0
/varset CasterHealIsHot 0
/varset HotDelay 60
/varset HealPets 0
/varset TankSpell "Name of autoheal spell for tanks"
/varset CasterSpell "Name of autoheal spell for casters"
/varset PetSpell "Name of autoheal for pets"
/varset HealCasterMsg "Healing %t"
/varset HealTankMsg "Big Healing %t"
/varset HealPetMsg "Healing %t"
/varset PalHealGrpMsg "Pally group heal inc."
/varset PalHealMsg "Healing %t"
/varset DefaultHealSpell "Name of default heal spell"
/varset PallyGroupSpell "Name of Pally group heal"
/varset PallyHealSpell "Name of Pally heal"
/varset CasterPctHeal 51
/varset TankPctHeal 51
/varset PetPctHeal 51
|Personal Variables
/declare testvar123 global
/declare addtarget global
/declare meztimer timer
/declare ismezzed global
/varset meztimer 42s
/varset addtarget 0
/varset ismezzed 0
/varset testvar123 foo
/return
Sub Do-test
/echo @testvar123
/return
Sub Do-add
/assist @MasterName
/target noted $target(id)
/varset addtarget $target(id)
/call SpellSub “Rapture”
/doevents
/if n @ismezzed==1 /tell @MasterName $target(name) is mezzed
/goto :Re-Mez
/return
Sub Do-mount
/press 6
/return
Sub Do-dismount
/dismount
/return
:Re-Mez
/target @addtarget | forgot to add this line
/if n @meztimer<=7s
/call SpellSub “Rapture”
/doevents
/return
|--------------------------Events----------------------
Sub Event_Mezzed
/varset ismezzed 1
/varset meztimer 42s
/return
Sub Event_NoMez
/varset ismezzed 0
/varset meztimer 0s
/tell @MasterName Mez has worn off
/return
Sub Event_Break
/varset ismezzed 0
/varset meztimer 0s
/return

Code: Select all
|bothealer.inc
|Bot healer module.
|Version 6.2
|Date:10/08/2003 9:31pm
|
|
|Commands in this module:
|autoheal, togglehot, setpetheal, settankheal, setcasterheal,
|setdefaultheal, autohealpets, heal, setfastheal
|
|Requires botspell.inc
#Event enchslow “slows down”
#Event shamslow “ yawns”
Sub HealerCommands
/varset Commands(4,0) autoheal
/varset Commands(4,1) settankheal
/varset Commands(4,2) setcasterheal
/varset Commands(4,3) setdefaultheal
/varset Commands(4,4) heal
/varset Commands(4,5) togglehot
/varset Commands(4,6) setpetheal
/varset Commands(4,7) autohealpets
/varset Commands(4,8) setfastheal
/varset ArrayHeal 8
/return
Sub TellCmds-healer
/msg @MasterName autoheal, settankheal, setcasterheal, setdefaultheal, heal, togglehot, setpetheal, autohealpets, setfastheal
/return
Sub SetupHealerVars
/declare CmdList-healer global
/declare HealPetMsg global
/declare PetPctHeal global
/declare HealPets global
/declare PetSpell global
/declare CasterPctHeal global
/declare TankPctHeal global
/declare HealCasterMsg global
/declare HealTankMsg global
/declare HotDelay global
/declare ReportAutoHeal global
/declare CasterHealIsHot global
/declare HealedId global
/declare DefaultHealSpell global
/declare TankSpell global
/declare CasterSpell global
/declare IsHealer global
/declare FastTankHeal global
/declare slowed global
/declare HOTWait timer
/declare CastMsgTimer1 timer
/declare CastMsgTimer2 timer
/return
Sub CheckGrpHealth
/varset GroupMember 0
/varset slowed 0
/if n "@IsHealer"==0 /return
/varcalc GroupMax $group(count)-1
:GroupLoop
/doevents
/if n $spawn($group(@GroupMember),hp,pct)<@TankPctHeal {
/if n $spawn($group(@GroupMember),hp,pct)>=1 {
/if n @slowed ==1{
/if $spawn($group(@GroupMember),class)=="Warrior" /call Tankheal
/if $spawn($group(@GroupMember),class)=="Paladin" /call Tankheal
/if "$spawn($group(@GroupMember),class)"=="Shadow Knight" /call Tankheal
/if $spawn($group(@GroupMember),class)=="Beastlord" /call Tankheal
/if $spawn($group(@GroupMember),class)=="Monk" /call Tankheal
/if $spawn($group(@GroupMember),class)=="Ranger" /call Tankheal
}
}
}
/if n $spawn($group(@GroupMember),hp,pct)<@TankPctHeal {
/if n $spawn($group(@GroupMember),hp,pct)>=1 {
/if n @slowed ==0{
/if $spawn($group(@GroupMember),class)=="Warrior" /call Fastheal
/if $spawn($group(@GroupMember),class)=="Paladin" /call Fastheal
/if "$spawn($group(@GroupMember),class)"=="Shadow Knight" /call Fastheal
/if $spawn($group(@GroupMember),class)=="Beastlord" /call Fastheal
/if $spawn($group(@GroupMember),class)=="Monk" /call Fastheal
/if $spawn($group(@GroupMember),class)=="Ranger" /call Fastheal
}
}
}
/if n $spawn($group(@GroupMember),hp,pct)>=1 {
/if n $spawn($group(@GroupMember),hp,pct)<@CasterPctHeal {
/if $spawn($group(@GroupMember),class)=="Wizard" /call Casterheal
/if $spawn($group(@GroupMember),class)=="Enchanter" /call Casterheal
/if $spawn($group(@GroupMember),class)=="Magician" /call Casterheal
/if $spawn($group(@GroupMember),class)=="Shaman" /call Casterheal
/if $spawn($group(@GroupMember),class)=="Rogue" /call Casterheal
/if $spawn($group(@GroupMember),class)=="Cleric" /call Casterheal
/if $spawn($group(@GroupMember),class)=="Druid" /call Casterheal
}
}
/if n @HealPets==1 {
/if n $spawn($group(@GroupMember),pet)>0 {
/if n $spawn($spawn($group(@GroupMember),pet),hp,pct)<@PetPctHeal {
/call Petheal
}
}
}
/if n @GroupMember>=@GroupMax /return
/varadd GroupMember 1
/doevents
/goto :GroupLoop
/return
Sub Tankheal
/if n $group(@GroupMember)==$char(id) /press F1
/if n $group(@GroupMember)!=$char(id) /target id $group(@GroupMember)
/stand
/if n @CastMsgTimer1<=0 {
/if n @ReportAutoHeal==1 /g @HealTankMsg
/varset CastMsgTimer1 50
}
/call SpellSub "@TankSpell"
/if n @SitAfterCast==1 /sit on
/press esc
/return
Sub Fastheal
/if n $group(@GroupMember)==$char(id) /press F1
/if n $group(@GroupMember)!=$char(id) /target id $group(@GroupMember)
/stand
/if n @CastMsgTimer1<=0 {
/if n @ReportAutoHeal==1 /g SL… %T
/varset CastMsgTimer1 50
}
/call SpellSub "@FastTankSpell"
/if n @SitAfterCast==1 /sit on
/press esc
/return
Sub CasterHeal
/if n @CasterHealIsHot==1 {
/if n HOTWait>0 {
/if n $group(@GroupMember)==@HealedId /return
}
}
/if n $group(@GroupMember)==$char(id) /press F1
/if n $group(@GroupMember)!=$char(id) /target id $group(@GroupMember)
/varset HealedId $group(@GroupMember)
/varset HOTWait @HotDelay
/stand
/if n @CastMsgTimer2<=0 {
/if n @ReportAutoHeal==1 /g @HealCasterMsg
/varset CastMsgTimer2 50
}
/call SpellSub "@CasterSpell"
/if n @SitAfterCast==1 /sit on
/press esc
/return
Sub Petheal
/target id $spawn($group(@GroupMember),pet)
/stand
/if n @CastMsgTimer1<=0 {
/if n @ReportAutoHeal==1 /g @HealPetMsg
/varset CastMsgTimer1 50
}
/call SpellSub "@PetSpell"
/if n @SitAfterCast==1 /sit on
/press esc
/return
||||||||||||||||||Do- Subs
Sub Do-togglehot
/if $defined(Param1)==FALSE { {
/if @CasterHealIsHot==1 /tell @MasterName Should we consider the caster heal as a HOT?=Yes
/if @CasterHealIsHot==0 /tell @MasterName Should we consider the caster heal as a HOT?=No
/return
}
/if @Param1=="off" /varset CasterHealIsHOT 0
/if @Param1=="on" /varset CasterHealIsHOTIsHealer 1
/if @Param1=="1" /varset CasterHealIsHOT 1
/if @Param1=="0" /varset CasterHealIsHOT 0
/if @CasterHealIsHOT==1 /tell @MasterName Shoulw we consider the caster heal as a HOT?=Yes
/if @CasterHealIsHOT==0 /tell @MasterName Should we consider the caster heal as a HOT?=No
/return
Sub Do-autoheal
/if $defined(Param1)==FALSE { {
/if @IsHealer==1 /tell @MasterName Autoheal=Yes
/if @IsHealer==0 /tell @MasterName Autoheal=No
/return
}
/if @Param1=="off" /varset IsHealer 0
/if @Param1=="on" /varset IsHealer 1
/if @Param1=="1" /varset IsHealer 1
/if @Param1=="0" /varset IsHealer 0
/if @IsHealer==1 /tell @MasterName Autoheal=Yes
/if @IsHealer==0 /tell @MasterName Autoheal=No
/return
Sub Do-setpetheal
/if $defined(Param1)==FALSE { {
/tell @MasterName Pet heal is @PetSpell
/return
} else /if $defined(Param2)==FALSE {
/varset PetSpell @Param1
} else /if $defined(Param3)==FALSE {
/varset PetSpell "@Param1 @Param2"
} else /if $defined(Param4)==FALSE {
/varset PetSpell "@Param1 @Param2 @Param3"
} else /varset PetSpell "@Param1 @Param2 @Param3 @Param4"
/tell @MasterName Pet heal is now @PetSpell
/return
Sub Do-settankheal
/if $defined(Param1)==FALSE { {
/tell @MasterName Tank heal is @TankSpell
/return
} else /if $defined(Param2)==FALSE {
/varset TankSpell @Param1
} else /if $defined(Param3)==FALSE {
/varset TankSpell "@Param1 @Param2"
} else /if $defined(Param4)==FALSE {
/varset TankSpell "@Param1 @Param2 @Param3"
} else /varset TankSpell "@Param1 @Param2 @Param3 @Param4"
/tell @MasterName Tank heal is now @TankSpell
/return
Sub Do-setfastheal
/if $defined(Param1)==FALSE { {
/tell @MasterName Tank heal is @FastTankSpell
/return
} else /if $defined(Param2)==FALSE {
/varset FastTankSpell @Param1
} else /if $defined(Param3)==FALSE {
/varset FastTankSpell "@Param1 @Param2"
} else /if $defined(Param4)==FALSE {
/varset FastTankSpell "@Param1 @Param2 @Param3"
} else /varset FastTankSpell "@Param1 @Param2 @Param3 @Param4"
/tell @MasterName Tank heal is now @FastTankSpell
/return
Sub Do-setdefaultheal
/if $defined(Param1)==FALSE { {
/tell @MasterName Default heal is @DefaultHealSpell
/return
} else /if $defined(Param2)==FALSE {
/varset DefaultHealSpell @Param1
} else /if $defined(Param3)==FALSE {
/varset DefaultHealSpell "@Param1 @Param2"
} else /if $defined(Param4)==FALSE {
/varset DefaultHealSpell "@Param1 @Param2 @Param3"
} else /varset DefaultHealSpell "@Param1 @Param2 @Param3 @Param4"
/tell @MasterName Default heal is now @DefaultHealSpell
/return
Sub Do-setcasterheal
/if $defined(Param1)==FALSE { {
/tell @MasterName Caster heal is @CasterSpell
/return
} else /if $defined(Param2)==FALSE {
/varset CasterSpell @Param1
} else /if $defined(Param3)==FALSE {
/varset CasterSpell "@Param1 @Param2"
} else /if $defined(Param4)==FALSE {
/varset CasterSpell "@Param1 @Param2 @Param3"
} else /varset CasterSpell "@Param1 @Param2 @Param3 @Param4"
/tell @MasterName Caster heal is now @CasterSpell
/return
Sub Do-autohealpets
/if $defined(Param1)==FALSE { {
/if @HealPets==1 /tell @MasterName Auto heal pets=Yes
/if @HealPets==0 /tell @MasterName Auto heal pets=No
/return
}
/if @Param1=="off" /varset HealPets 0
/if @Param1=="on" /varset HealPets 1
/if @Param1=="1" /varset HealPets 1
/if @Param1=="0" /varset HealPets 0
/if @IsHealer==1 /tell @MasterName Auto heal pets=Yes
/if @IsHealer==0 /tell @MasterName Auto heal pets=No
/return
Sub Do-heal
/if $defined(Param1)==FALSE { {
/assist @MasterName
/delay 3
} else /if $defined(Param2)==FALSE {
/if "@Param1"=="me" /target @MasterName
/if "@Param1"!="me" /target "@Param1"
/if "@Param1"=="@BotName" /press f1
} else /if $defined(Param3)==FALSE {
/target "@Param1 @Param2"
} else /if $defined(Param4)==FALSE {
/target "@Param1 @Param2 @Param3"
} else /target "@Param1 @Param2 @Param3 @Param4"
/call SpellSub "@DefaultHealSpell"
/return
Sub Event_enchslow
/varset slowed 1
/return
Sub Event_shamslow
/varset slowed 1
/return