Moderator: MacroQuest Developers
When posting problems please include the Version and date on the files you are using. I do a lot of updates and I can't help without knowing what versions you have. Also please post any error output that you get.GLoBB wrote:Me agian =)
Noticed you had "forgot" or elft out to set and heal class for bard. might be why i dont get the autoheal to work, =)
PS, gave my cleric a tell /t cleric fight, and it crashed the macro. wanted him to help melee but didnt work.
It looks to me like you forgot to update botcore.inc. That is where BreakOut is defined.GLoBB wrote:Updated al the files, and when i try to start the genbot.mac, i get following error
Ending macro: Bad variable in /var function
bothealer.inc@76 (CheckGrpHealth): /varset BreakOut 0
genbot.mac@58 (Main): /call CheckGrpHealth
Have no idea what it means, just figured since noone posted about it, id do it so you guys who know what it means can fix it .
sn does not take a target as an argument. It's a generic command that is really only for use if you didn't make a command for the spell you need. Since spell names are not a set length everything after sn is read in as the spell name.Anonymous wrote:Great work, simply amazing!
Two very small workarounds. When you do sn me on a beastlord it targets whatevers closer since our pets have the same name(ie tiger & tiger's warder), healbot targets fine just not sn. Also /tell bot sn swift like the wind me, always assisted master and targeted mob. kinda like their is too many words so it ignores the me on the end. I looked at it, but im just not enough of a programer yet to figure it out.
Thanks and Gooday!
The sn command is not supposed to be advanced. It's a generic command. It's designed to cast a spell by name on whoever the master has targeted. I only use it for spells that I didn't make a specific command for. If you want something more advanced that can be cast on something that the master doesn't have targeted, you need to make your own command for it. Here is an example from my personal.inc for my wizard.blakbelt wrote:THe first line of your Do-sn code is /assist @MasterName making it sometimes impossible to /target someone and then sn a spell to them.
Code: Select all
Sub Do-ice
/if $defined(Param1)==FALSE {
/assist @MasterName
} else /if $defined(Param2)==FALSE {
/if "@Param1"=="me" {
/target @MasterName
} else /if "@Param1"=="yourself" {
/press F1
} else /if "@Param1"=="$char(name)" {
/press F1
} else /target "@Param1"
} else /if $defined(Param3)==FALSE {
/target "@Param1 @Param2"
} else /if $defined(Param4)==FALSE {
/target "@Param1 @Param2 @Param3"
} else /target "@Param1 @Param2 @Param3 @Param4"
/delay 5
/tell @MasterName Draught of Ice on %t.
/call SpellSub "Draught of Ice"
/if "@SitAfterCast"=="1" /sit on
/returnWhy remove the assist?blakbelt wrote:Nothing more advanced just gonna remove the /assist part so that i can use a hotkey like
/target blahblah
/pause 15
/tell bot sn Virtue
etc

orSub Do-ch
/if "$char(class)"!="Cleric" /return
/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 "Complete Healing"
/return
will recast the spell right after it has been cast once. My cleric will sometimes try to ch me twice (Most of the time I have run out of range to pull again and I get the out of range error) or my shaman will slow the mob twice in a row.Sub Do-slow
/if "$char(class)"!="Shaman" /return
/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 "Turgur's Insects"
/return

Code: Select all
Sub MoveToAnchor
/varset countdown 0
/varset MyXLoc $char(x)
/varset MyYLoc $char(y)
:AnchorMoveLoop
/if @IsAnchored==0 {
/sendkey up up
/return
}
/doevents
/if n @Combatstatus==1 {
/sendkey up up
/return
}
/if "$char(state)"=="SIT" /stand
/face loc @AnchorX,@AnchorY
/if n $distance(@AnchorX,@AnchorY)>11 /sendkey down up
/if n $distance(@AnchorX,@AnchorY)<=11 {
/sendkey up up
/return
}
/if n @countdown>=3 {
/call Detectobst
/varset countdown 0
}
/varadd countdown 1
/goto :AnchorMoveLoop
/return
Code: Select all
|Fastmove
|Called by Rangesub for when mob is more than /press distance away.
|Usage: /call Fastmove
Sub Fastmove
/varset countdown 0
/varset MyXLoc $char(x)
/varset MyYLoc $char(y)
:fastmoveloop
/doevents
/if $target()=="FALSE" {
/varset Combatstatus 0
/sendkey up up
/if $combat=="TRUE" {
/attack off
/return
}
}
/face fast look nopredict
/if n $target(distance,nopredict)>@FastRange {
/sendkey down up
}
/if n $target(distance,nopredict)<=@FastRange {
/if @Combatstatus=="1" {
/if @EnrageVar=="0" {
}
}
/sendkey up up
/return
}
/if n @countdown>=3 {
/call Detectobst
/varset countdown 0
}
/if n $target(distance,nopredict)=>$calc(@FastRange*3) /varadd countdown 1
/goto :fastmoveloop
/return
Code: Select all
Sub Rangesub
/declare mobface local
/face fast look nopredict
/varset mobface $char(heading)
/varadd mobface 180
/varcalc mobface @mobface%360
/if $target(state)!=DEAD {
/if (n $target(heading)>$calc(@mobface+10) || n $target(heading)<$calc(@mobface-10)) {
/call Fastmove
/return
}
}
/if n $target(distance,nopredict)>=@FastRange /call Fastmove
/if n $target(distance,nopredict)>@RangeMax {
/press up
}
/if n $target(distance,nopredict)<@RangeMin {
/press down
}
/return