ac1dgenocide
Member
- Joined
- Jul 1, 2006
- RedCents
- 783¢
old macro i used to use way back when pop was pretty popular, at lvl 65 was a few AA every night, then when cap got to lvl 70 at lvl 70 the xp was shitty like 2-3 AA A night I think. Lower the lvl the better the xp....
I didn't write this but its old and still a bit useful so
before this new expansion comes out and cap is lvl 75 and all mobs in poi will be green you can use this a bit.
***NOTE***:You WILL need to edit spells according to what you have/don't have.
***NOTE***:You WILL need to make a file called HunterLoot.ini and HunterMob.ini (I think i'm not sure post here if you have problems0
i beleive those are the two files you would need for it to run correctly. hope it works.
uploaded the macro as an attatchment, I'm not sure what the error is your getting but try the attatchment again see if that will work, if not could you post a screenshot of the error and i can take a look at the coding.
I didn't write this but its old and still a bit useful so
before this new expansion comes out and cap is lvl 75 and all mobs in poi will be green you can use this a bit.
***NOTE***:You WILL need to edit spells according to what you have/don't have.
***NOTE***:You WILL need to make a file called HunterLoot.ini and HunterMob.ini (I think i'm not sure post here if you have problems0
Rich (BB code):
|This is THE macro i wrote to make Beastlord solo clockworks in PoI near behmoth.....
|to get it to work you need to park the pet in the middle of the room in front of the blue thing....
|then park the beastlord in the VERY corner of the wall, you also need to equip a good 2hb on...
|h2h weaps will push too much...the main thing here is because of the pushing...if the pushing is
|messed up then you will get summoned around the room...get adds ...then die
|
|------------------------------------------------------------------------------------
#include spellcast.inc
#turbo 40
#turbo 10
Sub Main
|------------------------------------------------------------
|How many times should aquire target fail before delaying?
|------------------------------------------------------------
/declare RV_FailMax int outer 3000
|------------------------------------------------------------
|How far would you like to target a mob?
|------------------------------------------------------------
/declare RV_MaxRadius int outer 130
|------------------------------------------------------------
|How far is the combat range?
|------------------------------------------------------------
/declare RV_Range int outer 120
|------------------------------------------------------------
|What is the minimum Z Value of mobs I should target?
|------------------------------------------------------------
/declare RV_MinZRange int outer -1000
|------------------------------------------------------------
|What is the maximum Z Value of mobs I should target?
|------------------------------------------------------------
/declare RV_MaxZRange int outer 1000
|------------------------------------------------------------
|Should I loot all items?
|------------------------------------------------------------
/declare RV_LootAllItems int outer 0
|------------------------------------------------------------
|Should I display stats?
|------------------------------------------------------------
/declare RV_DisplayStats int outer 1
|------------------------------------------------------------
|Loot Array Information.
|------------------------------------------------------------
/call ReadINI HunterMob.ini "${Zone.Name}" Mob
/if (!${Defined[RV_MobArray]}) {
/echo Mob Array Creation Error, ending macro...
/endmacro
}
|------------------------------------------------------------
|Mob Array Information.
|------------------------------------------------------------
/call ReadINI HunterLoot.ini "${Zone.Name}" Loot
/if (!${Defined[RV_LootArray]}) {
/echo No Loot Array Created...
}
|------------------------------------------------------------
|Variables that you don't need to worry about.
|------------------------------------------------------------
/declare RV_FailCounter int outer 0
/declare RV_MyTargetID int outer 0
/declare RV_MyTargetName string outer
/declare RV_MyTargetDead int outer 0
/declare RV_InvalidTargetID int outer 0
/declare RV_HasTarget int outer 0
/declare RV_LootSlot 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 RV_FastRange int outer
/declare RV_RangeMax int outer
/declare RV_RangeMin int outer
/varcalc RV_FastRange ${RV_Range}+3
/varcalc RV_RangeMax ${RV_Range}+1
/varcalc RV_RangeMin ${RV_Range}-1
|/declare JustCastedSpell bool outer |if i delete the lower shit make this real again
|Group of locked target data
/declare TargetLevel int outer |Level of Target
/declare TargetName string outer |Name of Target
/declare TargetID int outer |ID of Target
|Data to detect if we are stuck
/declare oldposx float outer
/declare oldposy float outer
/varcalc oldposx ${Me.X} +100
/varcalc oldposy ${Me.Y} +100
/declare homeX float outer ${Me.X} |Our homepoint
/declare homeY float outer ${Me.Y} |Our homepoint
/declare homeZ float outer ${Me.Z} |Our homepoint
/declare startHeading float outer 0 |Heading at start
/varcalc startHeading ${Me.Heading.DegreesCCW} + 360
/declare rndX float outer ${Me.X} |Rnd
/declare rndY float outer ${Me.Y} |Rnd
|A counter for the Move subs
/declare keypressercnt1 int outer 0
/declare keypressercnt2 int outer 0
/declare keypressercnt3 int outer 0
/declare keypressercnt4 int outer 0
/declare keypressercnt5 int outer 0
/declare keypressercnt6 int outer 0
|Variable to prevent stuckfix after casting a spell
/declare JustCastedSpell bool outer
|/declare tmp string outer |Just a tmp string
|/declare tmp2 string outer |Just a tmp string
/declare lootcnt int outer 0 |Loot counter
/declare leftdown bool outer |Are we turning left
/declare rightdown bool outer |Are we turning right
/declare strafeleftdown bool outer |Are we turning left
/declare straferightdown bool outer |Are we turning right
/declare forwarddown bool outer |Are we moving forward
/declare backdown bool outer |Are we moving backwards
/declare stickontarget bool outer |Bool to prevent us from leaving
/declare stickontarget_2 bool outer |Bool to prevent us from leaving (pull_to_home)
/declare strafestopper bool outer |Bool to help us stop strafing around target when we get stuck
/declare spawnselect bool outer False |Var to tell if we are selecting spawns or searching
/declare initiatedattack bool outer |Bool to only initiate once
/declare theslack int outer 1 |the global slack on FaceTarget
/declare waitcounter int outer 0 |How many times shall we get no target found before we do something (run/wait/gohome)
/declare tickcnt int outer 0 |Tickcounter. 1 delay = 1 tick
/declare aqtargcnt int outer 0 |Aquiretarget ticker
/declare ignoreclearcnt int outer 0 |IgnoreList clearing counter
/declare face timer outer 0
/declare paragon timer outer 0
/declare ProtSpirit timer outer 0
/declare feral timer outer 0
/declare AAhaste timer outer 0
/declare beastial timer outer 0
|Buffs to be kept up on self (max 15) - "Buff" or "Buff|GemSlot"
/declare MyBuffs[4] string outer
/varset MyBuffs[1] "Celerity|3"
/varset MyBuffs[2] "Regrowth|6"
/varset MyBuffs[3] "Spiritual Ascendance|6"
/varset MyBuffs[4] "Spiritual Vitality|4"
|Buffs to be kept up on petf (max 15) - "Buff" or "Buff|GemSlot"
/declare PetBuffs[3] string outer
/varset PetBuffs[1] "Growl of the beast|8"
/varset PetBuffs[2] "Spirit of Irionu|2"
/varset PetBuffs[3] "Ferocity|8"
:Start
/doevents
/call GMCheck
/keypress esc
/call GetTarget
/call cast "Sha's Revenge"
/delay 6s
/if ( ${Me.PctMana}>70 ) {
/call cast "Chimera Blood"
}
/face fast
/if (${paragon}<=0) {
/alt activate 365
/varset paragon 300
}
:KillAdds
/if (${RV_HasTarget}) /call CombatSub
/if (${RV_HasTarget} && (${Defined[RV_LootArray]} || ${RV_LootAllItems})) /call LootMob
/if (${RV_DisplayStats}) /call DisplayStats
/call ResetSub
/if (${Target.ID}) {
/echo Looks like something is attacking us, killing it...
/delay 1s
/varset RV_HasTarget 1
/varset RV_Fighting 1
/goto :KillAdds
}
/goto :Start
/return
|--------------------------------------------------------------------------------
|SUB: Get Target
|--------------------------------------------------------------------------------
Sub GetTarget
/declare RV_CurrentRadius int local
/declare RV_TargetSub int local
:Acquire
/call CheckMana
/call HealMyself
/call MaintainPetBuffs
/call MaintainSelfBuffs
/target npc clock
/call Toofar
/if ( ${Target.ID}==${Me.Pet.ID} ) {
/keypress esc
}
/if ( ${Target.ID}==${Me.ID} ) {
/keypress esc
}
/if ( ${Target.ID}==${Pc.ID} ) {
/keypress esc
}
/for RV_CurrentRadius 160 to ${RV_MaxRadius} step 100
/for RV_TargetSub 1 to ${RV_MobArray.Size}
/squelch /target radius ${RV_CurrentRadius} nopcnear notid ${RV_InvalidTargetID} npc "${RV_MobArray[${RV_TargetSub}]}"
/varset RV_MyTargetID ${Target.ID}
/varset RV_MyTargetDead 0
/if (${Target.ID}) {
/if (${Int[${Target.Z}]}<${RV_MinZRange}) {
/echo Mob is BELOW Min Z Range, picking another...
/varset RV_InvalidTargetID ${Target.ID}
/call ResetSub
/goto :Acquire
}
/if (${Int[${Target.Z}]}>${RV_MaxZRange}) {
/echo Mob is ABOVE Max Z Range, picking another...
/varset RV_InvalidTargetID ${Target.ID}
/call ResetSub
/goto :Acquire
}
/target npc clock
/call Toofar
/loot
/delay 1
/notify LootWnd DoneButton leftmouseup
/varset RV_HasTarget 1
/varset RV_MyTargetName ${Target.CleanName}
/echo Acquired ${Target.CleanName} at range ${Int[${Target.Distance}]} own him Beastlord plz!
/return
}
/next RV_TargetSub
/delay 2
/next RV_CurrentRadius
/if (!${Target.ID}) {
/delay 2s
/varcalc RV_FailCounter ${RV_FailCounter}+1
/echo clock not up yet, just wait longer plz
/if (${RV_FailCounter}>=${RV_FailMax}) {
/echo Waiting for Respawns, Resetting Failure Counter...
/delay 60s
/varset RV_FailCounter 0
}
/goto :Acquire
}
/return
|--------------------------------------------------------------------------------
|SUB: Combat
|--------------------------------------------------------------------------------
Sub CombatSub
/echo Beastlord engaging
/varset RV_Fighting 1
/varset RV_TargetDead 0
:CombatLoop
/doevents
/attack on
/call SpecialIT
| facing mob
/if (${face}<=0) {
/face fast
/varset face 8
}
/if (!${Target.ID}) {
/attack off
/varset RV_TargetDead 1
/varset RV_Fighting 0
/delay 1s
/target radius 30 corpse
/delay 1s
/if (!${Target.ID}) {
/call ResetSub
/return
}
}
/if (!${RV_TargetDead}) {
/goto :CombatLoop
}
/keypress esc
/return
|--------------------------------------------------------------------------------
|SUB: Special Combat
|--------------------------------------------------------------------------------
Sub SpecialIt
/declare TempID int inner 0
/call Toofar
| discing beastial
/if (${beastial}<=0) {
/disc bestial
/varset beastial 1100
}
| discing protive spirit
/if (${ProtSpirit}<=0) {
/disc prot
/varset ProtSpirit 9000
}
/if (${AAhaste}<=0) {
/alt activate 127
/varset AAhaste 500
}
/if (${feral}<=0) {
/alt activate 247
/varset feral 25
/doability kick
}
/if ((${Int[${Me.PctHPs}]}<70)&&(${Me.Gem["Muada's Mending"]})&&(${Me.SpellReady["Muada's Mending"]})) {
/varset TempID ${Target.ID}
/keypress F1
/echo Healing the bst now!!
/g healing myself
/call cast "Muada's Mending"
/delay 3s
/target id ${TempID}
}
|Warn if I am low on health
/if ( ${Me.PctHPs}<9 ) {
/bind INSTANT_CAMP ctrl+alt+c
/delay 2
/keypress ctrl+alt+c
/if ( ${Math.Rand[20]} < 3 ) /beep
/popup "ALARM ALARM. HEALTH IS LOW!!!"
}
/return
|--------------------------------------------------------------------------------
|SUB: Looting
|--------------------------------------------------------------------------------
Sub LootMob
/declare LootSlot int inner 0
/declare LootCheck int inner 0
/declare LootTotal int inner 0
/face fast
/fastdrop on
/lootn never
/delay 2s
/loot
/delay 2s
/if (!${Corpse.Items}) {
/echo NO LOOT! Cheap Bastard!
/return
}
/varset LootTotal ${Corpse.Items}
/for LootSlot 1 to ${LootTotal}
/itemnotify loot${LootSlot} leftmouseup
/delay 1s
/if (${RV_LootAllItems}) {
/echo Keeping a ${Cursor.Name}... WOOT!
/autoinventory
/delay 1s
} else {
/for LootCheck 1 to ${RV_LootArray.Size}
/if (${Cursor.Name.Find[${RV_LootArray[${LootCheck}]}]}) {
/echo Keeping a ${Cursor.Name}... WOOT!
/varcalc RV_LootStats[${LootCheck}] ${RV_LootStats[${LootCheck}]}+1
/autoinventory
/delay 1s
}
/next LootCheck
}
/if (${Cursor.ID}) {
/echo Destroying a ${Cursor.Name}...
/destroy
/delay 1s
}
/next LootSlot
/notify LootWnd DoneButton leftmouseup
/delay 2
/return
|--------------------------------------------------------------------------------
|SUB: Reset
|--------------------------------------------------------------------------------
Sub ResetSub
/keypress esc
/keypress esc
/keypress esc
/keypress esc
/varset RV_HasTarget 0
/varset RV_TargetDead 0
/varset RV_Fighting 0
/return
|--------------------------------------------------------------------------------
|SUB: Obstacle Avoidance
|--------------------------------------------------------------------------------
Sub HitObstacle
/echo Obstacle hit, moving around it...
/return
|--------------------------------------------------------------------------------
|SUB: GM Check
|--------------------------------------------------------------------------------
Sub GMCheck
/if (${Spawn[gm].ID}) {
/beep
/beep
/beep
/echo GM has entered the zone!
/echo FUCK HIM but ending the macro...
/keypress forward
/keypress back
/quit
/endmacro
}
/return
|--------------------------------------------------------------------------------
|SUB: Reading from an INI File
|--------------------------------------------------------------------------------
Sub ReadINI(FileName,SectionName,ArrayType)
/echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}...
/delay 1s
/if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) {
/echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro...
/delay 1s
/return
}
/declare nValues int local 1
/declare nArray int local 0
/declare KeySet string local ${Ini[${FileName},${SectionName}]}
:CounterLoop
/if (${String[${Ini[${FileName},${SectionName},${ArrayType}${nValues}]}].Equal[null]}) {
/varcalc nValues ${nValues}-1
/goto :MakeArray
}
/varcalc nValues ${nValues}+1
/goto :CounterLoop
:MakeArray
/if (!${nValues}) /return
/if (${FileName.Equal["HunterMob.ini"]}&&${nValues}>0) {
/echo Declaring Mob Array...
/declare RV_MobArray[${nValues}] string outer
/declare RV_MobStats[${nValues}] string outer
}
/if (${FileName.Equal["HunterLoot.ini"]}&&${nValues}>0) {
/echo Declaring Loot Array...
/declare RV_LootArray[${nValues}] string outer
/declare RV_LootStats[${nValues}] string outer
}
/for nArray 1 to ${nValues}
/if (${FileName.Equal["HunterMob.ini"]}) {
/varset RV_MobArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]}
/varset RV_MobStats[${nArray}] 0
}
/if (${FileName.Equal["HunterLoot.ini"]}) {
/varset RV_LootArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]}
/varset RV_LootStats[${nArray}] 0
}
/next nArray
/echo "${SectionName}" Zone Information Read Successfully from ${FileName}...
/delay 1s
/return
|--------------------------------------------------------------------------------
|SUB: Display Stats
|--------------------------------------------------------------------------------
Sub DisplayStats
/declare nArray int local
/if (${Defined[RV_LootArray]}) {
/for nArray 1 to ${RV_LootArray.Size}
/echo ${Int[${RV_LootStats[${nArray}]}]} ${RV_LootArray[${nArray}]}'s
/next nArray
}
/return
Sub DowntimeWork
| Check if we are low on mana or health. Heal or sit down if low
/call CheckMana
|/if ( ${Macro.Return}==0 ) /return 0
/echo 1. Mana Checked
/call HealMyself
/if ( ${Macro.Return}==0 ) /return 0
/echo 2. Health Checked
| Make sure pet is up + all its buffs are on it
/call HealPet
/if ( ${Macro.Return}==0 ) /return 0
/echo 3. Pet Health Checked
/call MaintainPetBuffs
/if ( ${Macro.Return}==0 ) /return 0
/echo 4. Pet Buffs Checked
| Make sure all buffs on self are up
/call MaintainSelfBuffs
/if ( ${Macro.Return}==0 ) /return 0
/echo 5. Buffs Checked
/return 1
|----------------------------------------------------------------------------
|SUB: CheckMana
|----------------------------------------------------------------------------
Sub CheckMana
/if ( ${Me.PctHPs}<85 && ${Me.PctMana}<50 ) {
/if ( !${Me.Sitting} ) /sit
/Delay 30s
}
|Meditate?
/if ( ${Me.PctMana}<40 ) {
/if ( !${Me.Sitting} ) /sit
/declare i int local
/squelch /if ( ${Target.ID} ) /target clear
|/call ClearTarget "checkmana"
/for i 1 to 10
/Delay 10
/if ( ${Target.ID} ) /return 1
/next i
/if ( ${Me.PctMana}<40 ) {
/return 0
}
/echo done medding
}
/return 1
|----------------------------------------------------------------------------
|SUB: HealMyself
|----------------------------------------------------------------------------
Sub HealMyself
|Heal?
/if ( ${Me.PctHPs}<87 ) {
/alt activate 128
/if ( !${Target.Name.Equal[${Me.Name}]} ) /target ${Me.Name}
/call Cast "Muada's Mending"
/varcalc tickcnt ${tickcnt} + ${Math.Calc[${Spell["Muada's Mending"].MyCastTime}*10]}
/varset JustCastedSpell true
/if ( !${Me.Sitting} ) /sit
/squelch /if ( ${Target.ID} ) /target clear
|/call ClearTarget "healmyself"
/call Delay 1
/alt activate 128
/return 0
}
/return 1
|----------------------------------------------------------------------------
|SUB: MaintainSelfBuffs - Keep buffs up
|----------------------------------------------------------------------------
Sub MaintainSelfBuffs
|KeepUpBuffsOnMe
/declare iCount int local
/declare t string local
/if (${MyBuffs.Size}==0) /return 1
/if (!${Me.Buff["Shield of the eighth"].ID} && !${Me.Casting.ID}) /call Cast "Velium coldain insignia ring" item
/for iCount 1 to ${MyBuffs.Size}
/call SplitString tmp_tmp ${MyBuffs[${iCount}]} "|"
/if ( ${String[-${tmp_tmp[1]}-].Equal[--]} ) {
/goto :cont2
}
/varset t ${Me.Buff[${tmp_tmp[1]}]}
/if ( ${t.Equal[NULL]} ) {
/if ( !${Target.ID}!=${Me.ID} ) {
/target ${Me.Name}
}
|Cast with gemselection or default
/if ( ${tmp_tmp.Size}>1 ) {
/echo Trying to cast "${tmp_tmp[1]}"
/call Cast "${tmp_tmp[1]}" gem${tmp_tmp[2]}
/varset JustCastedSpell true
} else {
/echo Trying to cast "${tmp_tmp[1]}"
/call Cast "${tmp_tmp[1]}"
/varset JustCastedSpell true
}
/varcalc tickcnt ${tickcnt} + ${Math.Calc[${Spell["${tmp_tmp[1]}"].MyCastTime}*10]}
|Check to see if buff was cast. If so, wait the recoverytime. (frenzy causes probs otherwise)
/varset t ${Me.Buff[${tmp_tmp[1]}]}
/if ( !${t.Equal[NULL]} ) {
/echo Waiting ${Spell["${tmp_tmp[1]}"].RecoveryTime} seconds on spellrecovery.
/call SitDown
/delay 8
}
|Return to top - so we dont keep buffing if being attacked
/return 0
}
:cont2
/next iCount
/return 1
|----------------------------------------------------------------------------
|SUB: MaintainPetBuffs - Heal pet and keep its buffs up
|----------------------------------------------------------------------------
Sub MaintainPetBuffs
|If we have pet
/if ( ${Bool[True]} ) {
/if ( !${Me.Pet.ID} ) {
/echo Creating new pet
/call Cast "Spirit of Sorsha" 8
/varcalc tickcnt ${tickcnt} + ${Math.Calc[${Spell["Spirit of Sorsha"].MyCastTime}*10]}
/varset JustCastedSpell true
/return 0
}
|KeepUpBuffsOnPet
/declare iCount int local
/declare t string local
/if (${PetBuffs.Size}==0) /return 1
/for iCount 1 to ${PetBuffs.Size}
/call SplitString tmp_tmp ${PetBuffs[${iCount}]} "|"
/if ( ${String[-${tmp_tmp[1]}-].Equal[--]} ) {
/echo MaintainPetBuffs - One of the spells in the array was missing!
/goto :cont3
}
/varset t ${Me.PetBuff[${tmp_tmp[1]}]}
/if ( ${t.Equal[NULL]} ) {
/if ( !${Target.ID}!=${Me.Pet.ID} ) {
/target ${Me.Pet.Name}
}
|If we are to far away to buff pet - run to it
/if (${Spell["${tmp_tmp[1]}"].Range}<${Me.Pet.Distance}) {
|Echo pet to far away to buff. Summoning it, or running to it
/if ( ${Me.Pet.Distance}>200 ) {
} else {
/call RunToSpotTarget
}
}
|Cast with gemselection or default
/if ( ${tmp_tmp.Size}>1 ) {
/echo Trying to cast "${tmp_tmp[1]}"
/call Cast "${tmp_tmp[1]}" gem${tmp_tmp[2]}
/varset JustCastedSpell true
} else {
/echo Trying to cast "${tmp_tmp[1]}"
/call Cast "${tmp_tmp[1]}"
/varset JustCastedSpell true
}
/varcalc tickcnt ${tickcnt} + ${Math.Calc[${Spell["${tmp_tmp[1]}"].MyCastTime}*10]}
|/call Delay 5
|Return to top - so we dont keep buffing if being attacked
/return 0
}
:cont3
/next iCount
/return 1
|||||||||||
|healing pet sub
||||||||||||||
Sub HealPet
|Heal pet?
/if ( ${Me.Pet.PctHPs}<50 ) {
/if ( ${Me.Pet.ID} ) {
/target ${Me.Pet.CleanName}
/alt activate 58
/call Cast "Muada's Mending" 2
/varcalc tickcnt ${tickcnt} + ${Math.Calc[${Spell["Muada's Mending"].MyCastTime}*10]}
/varset JustCastedSpell true
/if ( !${Me.Sitting} ) /sit
/return 0
}
}
/return 1
|----------------------------------------------------------------------------
|SUB: Delay(int ticks) - Used to do delays and count ticks
|----------------------------------------------------------------------------
Sub Delay
/varcalc tickcnt ${tickcnt} + ${Param0}
/delay ${Param0}
/return ${tickcnt}
|----------------------------------------------------------------------------
|SUB: UntargetPet - If pet is targeted, untarget it.
|----------------------------------------------------------------------------
Sub UntargetPet
/if ( ${Me.Pet.ID} ) {
/if ( ${Target.Name.Equal[${Me.Pet.Name}]} ) {
/squelch /if ( ${Target.ID} ) /target clear
|/call ClearTarget "untargetpet"
}
}
/return
|----------------------------------------------------------------------------
|SUB: SplitString - A generic string splitter.
|----------------------------------------------------------------------------
Sub SplitString(string varname, string inputstring, string splitter)
|/echo varname: "${varname}", inputstring: "${inputstring}", splitter: "${splitter}"
/declare i int local
/declare stringcnt int local
|If there was not 3 params sent, return
/if (!${Defined[splitter]} ) {
/if (!${Defined[${varname}]}) {
/declare ${varname}[1] string outer
} else {
/deletevar ${varname}
/declare ${varname}[1] string outer
}
/varset ${varname}[1]
/return
}
|The normal splitter. Splitter string is just 1 in length.
/if (${splitter.Length}==1) {
/varcalc stringcnt ${inputstring.Count["${splitter}"]} + 1
/if (!${Defined[${varname}]}) {
/declare ${varname}[${stringcnt}] string outer
} else {
/deletevar ${varname}
/declare ${varname}[${stringcnt}] string outer
}
/for i 1 to ${stringcnt}
/varset ${varname}[${i}] ${inputstring.Token[${i},"${splitter}"]}
/next i
} else {
|The TOKEN method on string does not support splitters of length>1
/declare tmp string local
/varset tmp ${inputstring}
/declare i2 int local
:FindCount
/if ( ${tmp.Find["${splitter}"]} ) {
/varset i ${tmp.Find["${splitter}"]}
/varset tmp ${tmp.Left[${Math.Calc[${i}-1]}]}${tmp.Right[${Math.Calc[${tmp.Length}-${i}-${splitter.Length} +1]}]}
/varcalc stringcnt ${stringcnt} + 1
/if ( ${tmp.Find["${splitter}"]} ) /goto :FindCount
}
/varcalc stringcnt ${stringcnt} + 1
/if (!${Defined[${varname}]}) {
/declare ${varname}[${stringcnt}] string outer
} else {
/deletevar ${varname}
/declare ${varname}[${stringcnt}] string outer
}
|Find the parts.
/varset tmp ${inputstring}
/for i 1 to ${stringcnt}
/if ( ${tmp.Find["${splitter}"]} ) {
/varset i2 ${tmp.Find["${splitter}"]}
/varset ${varname}[${i}] ${tmp.Left[${Math.Calc[${i2}-1]}]}
/varset tmp ${tmp.Right[${Math.Calc[${tmp.Length}-${i2}-${splitter.Length} +1]}]}
} else {
/varset ${varname}[${i}] ${tmp}
}
/next i
}
/return
|----------------------------------------------------------------------------
|SUB: SitDown - Sit down if standing
|----------------------------------------------------------------------------
Sub SitDown
/if ( !${Me.Sitting} ) /sit
/return
|----------------------------------------
|clearing target if mob too far
|-----------------------------------------
sub Toofar
/if ( ${Spawn[${Target.ID}].Distance}>180 ) {
/echo Mob is ABOVE Max Range while fighting, picking another clock for Beastlord to Kill
/varset RV_InvalidTargetID ${Target.ID}
/keypress esc
}
/return
Rich (BB code):
[Plane of Innovation]
Loot1=diamond
Rich (BB code):
[[Plane of Innovation]
Mob1=clock
i beleive those are the two files you would need for it to run correctly. hope it works.
uploaded the macro as an attatchment, I'm not sure what the error is your getting but try the attatchment again see if that will work, if not could you post a screenshot of the error and i can take a look at the coding.
Last edited:


