1) save the 3 files, PLbot.mac SpellCast.ini and advfollow.ini
2)modify 2 evil lines (afk and channel )and then run macro.
note: i have fixed the comment lines that moved over to the next line
good luck
Code: Select all
|PLbot.mac
|how to use :
| 1) define your spells and actions below. --- YOU MUST EDIT THIS FILE ---
| you have been warned!
| 2) set your hot keys in game to tell the channel the key words in
| a sentence. ex: /1 Healme im gonna die! would cause the bot to stand up
| and cast greater healing.
| note: the reason i use some words together as one word is so that things
| like sow and sow me wouldnt cause the bot to cast it twice, not like
| anyone but you has to read the channel anyways..
| 3) run your PLbot to your starting location
| 4) run the macro.
| 5) the bot will automaticly mem any spell it doesnt have up into SLOT 5,
| however it is recomemded that you have all the spells you plan to use up
| already with the least important one at 5. (i use my skin there since i
| barely ever cast it).
|
| default Keywords it responds to: capital letters dont matter.
|
| -- targets the message sender ---
| healme --- casts greater healing
| thornsme --- casts Shield of Spikes
| regenme --- casts Chloroplast
| sowme --- casts spirit of wolf
| skinme --- casts Skin like Diamond
| strme --- casts Storm Strength
| joinup --- invites the sender to join a group, or join.
| follow me --- uses the custom version of adv follow to follow the sender.
| will zone with him. can still cast while following,
| and will continue to follow till told to stop.
| stophere --- makes the PLbot reset as if just started, so he'll sit
| once more. (might need a little testing, since this
| just tells advfollow to stop and calls sub main again)
|
| -- Assist in some way the message sender to perform actions --
| repair --- targets the sender and presses tab to target himself,
| then casts Greater Healing. used this method over f1
| for those PLbots that have charms, wanna avoid targetting pet.
| savehim --- assists the sender and casts Greater Healing on the target
| buffhim --- assists the sender and is a quick way to cast thorns
| regen sow skin and str to those beggers of buffs.
| sowhim --- assists the sender and is for those sow beggars.
| regenhim --- assists the sender to cast a cloro on the target.
| roothim --- assists the sender to root his target
| snarehim --- assists the sender to snare his target
| harmonyhim --- assists the sender to harmony of nature the target
| nukehim --- assists the sender to cast root the target and then cast
| firestrike
|
| -- special responces --
| campnow --- makes the PLbot camp to desktop
| ---- and all the custom conversation AI you wanna pop in =P
| mana? --- tells you how much mana is left.
|
|-----------------------------------
| ENJOY
#Event SLAINBY
|--------------------
|CHANGE THIS TO tell for tells or chat for channel
|--------------------
#chat chat
|--------------------
|run the customized auto follow macro so we can use it from here with echo's
#Include advfollow.ini
|this is the ini that casts the spells ... the spells are defined here though.
#Include Spellcast.ini
Sub Main
/echo starting PLbot macro
| these are to let you know if LOW on HEALTH or MANA,
| just a safty feature. set to 2 to disable.
/declare hpwarning global
/declare mpwarning global
/varset hpwarning 0
/varset mpwarning 0
| making sure the screen is clean for view in case you need to do something
| with the character in an emrgency situation that you must run over to him.
|--------
/cleanup
|--------
|making sure your not in any other channels that might trigger you to do anything.
| --------
/leave 1
| -------
| -----------------------------
| PLEASE CHANGE THIS TO YOUR OWN CHANNEL!
| -----------------------------
/join macroquest
| -----------------------------
|
| this is your AFK message --- change it ---
/afk IM a macroquest user, REPORT ME! im careless and dont change my macro's!
| -----------------------------
/delay 1s
/1 ok ready to PL
:Mainloop
/call Checkhealth
/call Checkmana
|
| -----------------------------
| make sure hes medding.
/if $char(state)=="Stand" {
/sit
}
/doevents
/goto :Mainloop
/return
Sub Event_Chat(ChatType,Sender,ChatText)
| -------------------------------------------------------------------------------
| starting here is where you edit the KEYWORD in the sentence and
| the spell that the keyword triggers.
| @chattext (first line in each set) is the keyword. Healme for the first example.
| /call cast is the spell it triggers .. Greater healing in the first example ...
| Edit those 2 fields for your spell effect.
|
| if you change from chat to tell at the top of this then you must change /1 to
| /tt below. for each set
|
| !!!!!!!!!!!!!!!!!ALSO PLEASE ADD YOUR OWN RESPONCE CHAT !!!!!!!!!!!!!!!!!!!!!!
| i cant stress that enough , i dont wanna see people being caught because sony
|decides to check for these lines repetitively or something
| -------------------------------------------------------------------------------
| some lines below use /say to tell your target your casting buffs on them so they
| dont runaway, if you dont like it remove it.
| ***********************************
/if "@ChatText"~~"Healme" {
/target @Sender
/delay 1
/1 "Heal inc to %t
/delay 1
/call Cast "Greater Healing"
}
| ***********************************
/if "@ChatText"~~"Thornsme" {
/delay 1
/target @Sender
/delay 1
/1 thorns inc to %t
/delay 1
/call Cast "Shield of Spikes"
}
| ***********************************
/if "@ChatText"~~"Regenme" {
/delay 1
/target @Sender
/delay 1
/1 regen inc to %t
/delay 1
/call Cast "Chloroplast"
}
| ***********************************
/if "@ChatText"~~"Sowme" {
/delay 1
/target @Sender
/delay 1
/1 sow inc to %t
/delay 1
/call Cast "Spirit of Wolf"
}
| ***********************************
/if "@ChatText"~~"Skinme" {
/delay 1
/target @Sender
/delay 1
/1 skin inc for %t
/delay 1
/call Cast "Skin like Diamond"
}
| ***********************************
/if "@ChatText"~~"strme" {
/delay 1
/target @Sender
/delay 1
/1 Strength inc for %t
/delay 1
/call Cast "Storm Strength"
}
| ***********************************
/if "@ChatText"~~"joinup" {
/target @Sender
/delay 1s
/invite
}
| ***********************************
| -------------------------------------------------------------------------------
| below you will find special sets these dont target the sender, instead they
| assist him.
| for instance root will assist you and root the target.
| Repair will make the druid heal himself manualy ( though now i added a check
| for that so you might not need.)
| save him will heal your target
| buffhim will cast the buffs listed on your target.
| followme will follow the sender
| -------------------------------------------------------------------------------
/if "@ChatText"~~"repair" {
/delay 1
/target @Sender
/delay 1
/press tab
/delay 1
/1 healing myself
/delay 1
/call Cast "Greater Healing"
}
| ***********************************
/if "@ChatText"~~"savehim" {
/delay 1
/target @Sender
/delay 1
/assist
/delay 1s
/1 heal to %t
/say healing %t
/delay 1
/call Cast "Greater Healing"
}
| ***********************************
/if "@ChatText"~~"buffhim" {
/delay 1
/target @Sender
/delay 1
/assist
/delay 1s
/1 gonna buff up %t
/say buffing up %t
/delay 1s
/call Cast "Skin like Diamond"
/call Cast "Spirit of Wolf"
/call Cast "Chloroplast"
/call Cast "Shield of Spikes"
/call Cast "Storm Strength"
/say ok
}
| ***********************************
/if "@ChatText"~~"sowhim" {
/delay 1
/target @Sender
/delay 1
/assist
/delay 1s
/1 incomming SOW for %t .
/say %t, sow inc
/delay 1s
/call Cast "Spirit of Wolf"
/say ok
}
| ***********************************
/if "@ChatText"~~"regenhim" {
/delay 1
/target @Sender
/delay 1
/assist
/delay 1s
/1 incomming regen for %t .
/say %t, regen inc
/delay 1s
/call Cast "Chloroplast"
/say ok
}
| ***********************************
/if "@ChatText"~~"roothim" {
/delay 1
/stand
/target @Sender
/delay 1s
/1 gonna root %t
/assist
/delay 1s
/1 now rooting
/say rooting %t
/call Cast "Enveloping Roots"
}
| ***********************************
/if "@ChatText"~~"snarehim" {
/delay 1
/stand
/target @Sender
/delay 1s
/1 gonna Snare %t
/assist
/delay 1s
/say snaring %t
/call Cast "Ensnare"
}
| ***********************************
/if "@ChatText"~~"harmonyhim" {
/delay 1
/stand
/target @Sender
/delay 1s
/1 gonna Harmony %t
/assist
/delay 1s
/call Cast "Harmony of Nature"
}
| ***********************************
/if "@ChatText"~~"nukehim" {
/delay 1
/stand
/target @Sender
/delay 1s
/1 gonna NUKE %t !!
/assist
/delay 1s
/say asswhooping incomming for %t
/call Cast "Enveloping Roots"
/say rooted, NUKE inc ...
/call Cast "Firestrike"
/1 ok
}
| ***********************************
/if "@ChatText"~~"follow me" {
/delay 1
/target @Sender
/delay 1
/1 ok ill follow you %t
/delay 1
/stand
/call goto $char(name)
/return
}
| ***********************************
/if "@ChatText"~~"stophere" {
/if n @FollowFlag==1 {
/echo stop
}
/if n @FollowFlag!=1 {
/1 im not going anywhere.
}
/return
}
| ***********************************
| next set basicly put means ... get the fuk out now !
/if "@ChatText"=="campnow" {
/delay 1
/target @Sender
/delay 1s
/1 gonna camp ..
/delay 1
| make sure hes sitting by standing up first
/stand
/delay 5
/sit
/delay 1s
/camp desktop
}
| ***********************************
| -------------------------------------------------------------------------------
| add your Custom AI chatback here =D use this if you wanna stimulate a
| conversation =P
|
/if "@ChatText"=="ok" /1 ok
/if "@ChatText"=="k" /1 k
/if "@ChatText"~~"ding" /1 Grats =D
/if "@ChatText"=="hi" /1 hello =D
/if "@ChatText"~~"cool" /1 i know =)
/if "@ChatText"=="wtf" /1 what hap ?
/if "@ChatText"=="mana?" /1 $char(mana,pct)% mana here.
/return
Sub Event_SLAINBY
/Echo Slained Event Entered
/delay 5s
/1 ok i died ..good job IDIOT... im gonna chill here a while, come and get me!
/return
| -------------------------------------------------------------------------------
|this is for safety and will NOT eliminate the "Repair" set above
|however DOES help.
| -------------------------------------------------------------------------------
Sub Checkhealth
/if n $char(hp,pct)<60 /if @hpwarning==0 {
/varset hpwarning 1
/1 WARNING! HEALTH LEVELS UNDER 60%! i'm Getting hit, GOTTA HEAL MYSELF WATCH OUT!
/press f1
/delay 5
/call cast "Greater Healing"
}
/if n $char(hp,pct)>80 /if @hpwarning==1 {
/varset hpwarning 0
/1 whew, ok im feeling safer.. you ok there buddy?
}
/return
Sub Checkmana
/if n $char(mana,pct)<30 /if @mpwarning==0 {
/varset mpwarning 1
/1 WARNING! MANA LEVELS UNDER 30%! WATCH OUT I CANT SUPPORT YA MUCH LONGER!
}
/if n $char(mana,pct)>50 /if @mpwarning==1 {
/varset mpwarning 0
/1 whew, ok i got over 50m, i can work with ya safely now!
}
/return
Code: Select all
| SpellCast.ini
| This will cast a spell reliably for you...
| and if the spell is not memmed .. it will mem it
| if you want to use a diffrent spell slot for the spell that changes , edit at bottom
| macro and manual Usage:
| /call Cast "spellname" [item]
| It will return the following values:
| CAST_SUCCESS
| CAST_UNKNOWNSPELL
| CAST_OUTOFMANA
| CAST_OUTOFRANGE
| CAST_CANNOTSEE
| CAST_STUNNED
| CAST_RESISTED
|
| New Vars Modification
| Plazmic's no globals needed version
|
| Oct 9, 2003 - Updated to work with new vars and $char(casting) - gf
| Oct 11, 2003 - switched some logic, removed defines - gf
| Oct 15, 2003 - Item support added by EqMule
#event Fizzle "Your spell fizzles!"
#event Interrupt "Your casting has been interrupted!"
#event Interrupt "Your spell is interrupted."
#event Recover "You haven't recovered yet..."
#event Recover "Spell recovery time not yet met."
#event Resisted "You target resisted the "
#event OutOfMana "Insufficient Mana to cast this spell!"
#event OutOfRange "Your target is out of range, get closer!"
#event NoLOS "You cannot see your target."
#event Stunned "You cannot cast while stunned"
#event Standing "You must be standing to cast a spell"
#event Collapse "Your gate is too unstable, and collapses."
Sub Cast(SpellName,Item)
:StartCast
/if "@Item"=="Item" {
/call ClearReturnValue
/cast item "@SpellName"
} else {
/if n $char(gem,"@SpellName")==0 /call Mem "@SpellName"
/call ClearReturnValue
/if n $char(gem,"@SpellName")<0 {
/delay 0
/goto :StartCast
}
/cast "@SpellName"
}
:WaitCast
/if "$char(casting)"=="TRUE" {
/delay 1
/goto :WaitCast
}
/doevents Fizzle
/doevents Interrupt
/doevents Recover
/doevents Standing
/doevents OutOfRange
/doevents OutOfMana
/doevents NoLOS
/doevents Resisted
/if "$return"=="CAST_RESTART" /goto :StartCast
/if "$return"!="CAST_SUCCESS" /return "$return"
/return CAST_SUCCESS
Sub ClearReturnValue
/return CAST_SUCCESS
Sub Event_Fizzle
/return CAST_RESTART
Sub Event_Interrupt
/return CAST_RESTART
Sub Event_Recover
/delay 5
/return CAST_RESTART
Sub Event_Standing
/stand
/return CAST_RESTART
Sub Event_Collapse
/return CAST_RESTART
Sub Event_OutOfMana
/1 im out of mana. .. so .. save yourself!
/delay 5
/sit
/return CAST_OUTOFMANA
Sub Event_OutOfRange
/1 out of range buddy boy
/return CAST_OUTOFRANGE
Sub Event_NoLOS
/1 i cant see you %t, line of sight BS
/return CAST_CANNOTSEE
Sub Event_Stunned
/1 im getting stunned, i cant cast
/return CAST_STUNNED
Sub Event_Resisted
/1 ok, it resisted
/return CAST_RESISTED
Sub Mem(SpellName)
/memspell 5 "@SpellName"
/1 gotta mem @SpellName gimmi a sec ...
/delay 2
:memming
/if n $char(gem,"@Spellname")==-2 /goto :memming
/delay 2s
/1 ok casting when it pops up , dont leave range
/return CAST_RESTART
Code: Select all
| advfollow.ini
| yeah i did a rush job editing this ... this is possibly my only comment, but it works!
#Event ZoneEvent "You have entered"
#Event LocalFollow "[MQ2] follow "
#Event LocalStop "[MQ2] stop"
#turbo 50
#chat chat
Sub goto(MName)
/if $defined(MName)==TRUE {
/call InitAFVars "@MName"
} else {
/call InitAFVars "$char(name)"
}
/delay 1s
/echo follow $target(name)
| --------------------------------------------------------------------------------
| Change this to 1 to use /face fast or 0 to use the slower /face command.
/varset UseFaceFast 1
| --------------------------------------------------------------------------------
| The lower the number the less accurate the route it will follow.
| Do not go below 1. I don't recommend going over 15.
/varset SpeedSense 15
| --------------------------------------------------------------------------------
| The lower the number the more often samples are taken of the player you are following.
| I would suggest leaving this around 10. Feel free to play with it though.
/varset SampleDist 13
| --------------------------------------------------------------------------------
| This setting attempts to follow your target if they zone and/or click a port stone
/varset ZoneFollow 1
| --------------------------------------------------------------------------------
:AdvFollowLoop
/delay 0
/if n @FollowFlag==1 {
/call TrackFollow
/if n @NumLocs>@CurrLoc /call IncrementLoc $arg(1,"@LocArray(@CurrLoc)") $arg(2,"@LocArray(@CurrLoc)") $arg(3,"@LocArray(@CurrLoc)")
}
/doevents
/goto :AdvFollowLoop
/return
| --------------------------------------------------------------------------------
Sub CheckForTarget
/if n @FollowFlag==1 /if n @ObstacleCount<6 /if "$target(name,clean)"!="@FollowName" {
/call TargetMob "@FollowName"
|/call TargetMob @Sender
}
/return
| --------------------------------------------------------------------------------
Sub CheckObstacle
/declare TempVarObst local
/if n $distance(@MyLastYLoc,@MyLastXLoc)<1 /call CheckDoor
/if n $distance(@MyLastYLoc,@MyLastXLoc)<1 /call HitObstacle
/varset MyLastXLoc $char(x)
/varset MyLastYLoc $char(y)
/varset ObstacleCount 0
/return
| --------------------------------------------------------------------------------
Sub CheckDoor
/declare TempVarDoor local
/doortarget
/if n $target(distance)<=15 {
/call Move 0
/sendkey down down
/for TempVarDoor 1 to 5
/delay 1
/call TrackFollow
/next TempVarDoor
/sendkey up down
/face fast door
:DoorMoveCloser
/if n $target(distance)>15 /press up
/if n $target(distance)<11 /press down
/call TrackFollow
/if n $target(distance)>15 /goto :DoorMoveCloser
/if n $target(distance)<11 /goto :DoorMoveCloser
/press u
/for TempVarDoor 1 to 15
/call TrackFollow
/delay 1
/next TempVarDoor
/call Move 1
}
/return
| --------------------------------------------------------------------------------
Sub CheckMoving
/if n $char(speed)==0 {
/call Move 1
}
/return
| --------------------------------------------------------------------------------
Sub ClearLocs
/varset CurrLoc 0
/varset NumLocs 0
/varset ObstacleCount 0
/call Move 0
/return
| --------------------------------------------------------------------------------
Sub FindLookAngle(TY,TX,TZ)
/declare Angle local
/declare FZ local
/varset FZ $char(z)
/if n $char(feetwet)==5 /varadd TZ 5
/if n $char(levitating)==TRUE /varadd TZ 2
/varset Angle $abs($asin($calc($abs($calc(@FZ-@TZ))/$sqrt($calc($calc($calc($calc(@TX-$char(x))^2)+$calc($calc(@TY-$char(y))^2))+$calc($calc(@TZ-@FZ)^2))))))
/if n @UseFaceFast==0 {
/face nolook loc @TY,@TX
} else {
/face fast nolook loc @TY,@TX
}
/if n @TZ<@FZ {
/look $calc(@Angle*-1)
} else /if n @TZ>@FZ {
/look @Angle
} else {
/look 0
}
/return
| --------------------------------------------------------------------------------
| Partially plagerized from McKorr's autofight.inc
Sub HitObstacle
/declare TempVarHit local
/call Move 0
/sendkey down down
/for TempVarHit 1 to $calc($rand(3)+5)
/delay 1
/call TrackFollow
/next TempVarHit
/sendkey up down
/if n $rand(99)>50 {
/if n $rand(99)>50 {
/sendkey down right
} else {
/sendkey down left
}
/for TempVarHit 1 to $calc($rand(3)+2)
/delay 1
/call TrackFollow
/next TempVarHit
} else {
/sendkey down ctrl
/if n $rand(99)>50 {
/sendkey down left
} else {
/sendkey down right
}
/for TempVarHit 1 to $calc($rand(3)+2)
/delay 1
/call TrackFollow
/next TempVarHit
}
/sendkey up right
/sendkey up left
/sendkey up ctrl
/call Move 1
/delay 1
/face fast nolook loc $arg(1,"@LocArray(@CurrLoc)"),$arg(2,"@LocArray(@CurrLoc)")
/for TempVarHit 1 to 2
/call TrackFollow
/delay 1
/next TempVarHit
/press space
/return
| --------------------------------------------------------------------------------
Sub IncrementLoc(TY,TX,TZ)
/varadd ObstacleCount 1
/varadd TotalObstCount 1
/if n $sqrt($calc($calc($calc($calc(@TX-$char(x))^2)+$calc($calc(@TY-$char(y))^2))+$calc($calc(@TZ-$char(z))^2)))<$calc($char(speed)/@SpeedSense) {
/varset LastLoc "@LocArray(@CurrLoc)"
/varadd CurrLoc 1
/varset ObstacleCount 0
/varset TotalObstCount 0
}
/if n @CurrLoc==@NumLocs /call ClearLocs
/if n @ObstacleCount>5 /call CheckObstacle
/if n @TotalObstCount>50 {
/varset LastLoc "@LocArray(@CurrLoc)"
/varadd CurrLoc 1
/varset ObstacleCount 0
/varset TotalObstCount 0
}
/if n @NumLocs>@CurrLoc /call FindLookAngle $arg(1,"@LocArray(@CurrLoc)") $arg(2,"@LocArray(@CurrLoc)") $arg(3,"@LocArray(@CurrLoc)")
/if n @NumLocs>@CurrLoc /call CheckMoving
/return
| --------------------------------------------------------------------------------
Sub Move(MoveCommand)
/if n @MoveCommand==1 {
/sendkey up up
/sendkey down up
} else {
/sendkey down up
/sendkey up up
}
/return
| --------------------------------------------------------------------------------
Sub TargetMob(TgtName)
/if n $searchspawn("@TgtName")>0 {
/target clear
/delay 2
/target "@TgtName"
/delay 4
/if $target()==TRUE /if "$target(name,clean)"=="@TgtName" {
/varset FollowFlag 1
/varset FollowID $target(id)
/echo -[ Following -( $target(name,clean) )- ]-
/varset TargetZoned 0
}
} else /if n @ZoneFollow==1 /if n @TargetZoned==0 /if n @CurrLoc==@NumLocs {
/call ClearLocs
/delay 3
/press u
/delay 5
/if n @TriedZone==0 {
/delay 1s
/sendkey up up
/sendkey down up
/delay $calc($rand(3)+3)
/sendkey down up
/sendkey up up
/varset TriedZone 1
/varset TargetZoned 1
} else {
/varset TriedZone 0
}
}
/return
| --------------------------------------------------------------------------------
Sub TrackFollow
/if n @FollowFlag==1 {
/if n @NumLocs==0 {
/if n $sqrt($calc($calc($calc($calc($char(x)-$spawn(@FollowID,x))^2)+$calc($calc($char(y)-$spawn(@FollowID,y))^2))+$calc($calc($char(z)-$spawn(@FollowID,z))^2)))>@SampleDist {
/varset LocArray(@NumLocs) "$spawn(@FollowID,y) $spawn(@FollowID,x) $spawn(@FollowID,z)"
/if "@LocArray(@NumLocs)"!="0 0 0" /varadd NumLocs 1
}
} else {
/if n $sqrt($calc($calc($calc($calc($arg(2,"@LocArray($calc(@NumLocs-1))")-$spawn(@FollowID,x))^2)+$calc($calc($arg(1,"@LocArray($calc(@NumLocs-1))")-$spawn(@FollowID,y))^2))+$calc($calc($arg(3,"@LocArray($calc(@NumLocs-1))")-$spawn(@FollowID,z))^2)))>@SampleDist {
/varset LocArray(@NumLocs) "$spawn(@FollowID,y) $spawn(@FollowID,x) $spawn(@FollowID,z)"
/if "@LocArray(@NumLocs)"!="0 0 0" /varadd NumLocs 1
}
}
}
/call CheckForTarget
/doevents
/return
| --------------------------------------------------------------------------------
Sub Event_LocalFollow(EvtText)
/if "$mid(6,6,"@EvtText")"=="follow" {
/varset FollowName "$mid(13,$calc($strlen("@EvtText")-13),"@EvtText")"
| /varset FollowName "@Sender"
/call ClearLocs
/call TargetMob "@FollowName"
}
/return
| --------------------------------------------------------------------------------
Sub Event_LocalStop(EvtText)
/if "$mid(6,$calc($strlen("@EvtText")-6),"@EvtText")"=="stop" {
/varset FollowFlag 0
/call ClearLocs
/echo -[ Stopped following -( @FollowName )- ]-
/doevents flush
}
/call main
| --------------------------------------------------------------------------------
Sub Event_ZoneEvent
/call ClearLocs
/delay 3s
/call ClearLocs
/call TargetMob "@FollowName"
/return
| --------------------------------------------------------------------------------
Sub Event_chat(MsgType,MsgFrom,MsgText)
/if @MsgType==tell {
/if "@MsgFrom"=="@MasterName" {
/if "$arg(1,"@MsgText")"=="follow" {
/if "$arg(2,"@MsgText")"=="me" {
/varset FollowName "@MasterName"
/call ClearLocs
/call TargetMob "@FollowName"
} else {
/varset FollowName "$mid(7,$calc($strlen("@MsgText")-7),"@MsgText")"
/call ClearLocs
/call TargetMob "@FollowName"
}
}
/if "$arg(1,"@MsgText")"=="stop" {
/varset FollowFlag 0
/call ClearLocs
/echo -[ Stopped following -( @FollowName )- ]-
}
}
}
/return
| --------------------------------------------------------------------------------
Sub InitAFVars(MastName)
/declare MasterName global
/if "@MastName"=="$char(name)" {
/echo No Master Name Provide. Working in local command mode only.
/varset MasterName "$char(name)"
} else {
/varset MasterName "@MastName"
}
/declare CurrLoc global
/declare NumLocs global
/declare LocArray array
/declare FollowFlag global
/declare FollowID global
/declare SpeedSense global
/declare SampleDist global
/declare UseFaceFast global
/declare MyLastXLoc global
/declare MyLastYLoc global
/declare ObstacleCount global
/declare ZoneFollow global
/declare TriedZone global
/declare CurrZone global
/declare LastLoc global
/declare TotalObstCount global
/declare FollowName global
/declare TargetZoned global
/varset TargetZoned 0
/varset CurrLoc 0
/varset NumLocs 0
/varset FollowFlag 0
/varset MyLastXLoc $char(x)
/varset MyLastYLoc $char(y)
/varset ObstacleCount 0
/varset TriedZone 0
/varset TotalObstCount 0
/return
| --------------------------------------------------------------------------------




