That was the macro I have been trying, and since I am an idiot when it comes to macros I'm not sure what I am doing wrong. I dont want my guy casting spells (so at the top I edited it to Null... I'll post macro in a second. When I am running the macro I get spammed with Due to complete misuse of the String Top-level object, it has been removed. I have the hunterloot and spell_routines in the Macro foulder (I think thats where its suppost to be.) here is the macro that I have saved:
#Event MobDied "#*#You have slain#*#"
#Event Event_zone "#*#You have Entered#*#"
#event reset "#*#Reset mac#*#"
#event camp "#*#Camp out now#*#"
#include spell_routines.inc
#turbo 10
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Main
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Change This Stuff ---------------------------
|Spell List
/declare Spell1 string outer "Null"
/declare Spell2 string outer "Null"
/declare Spell3 string outer "Null"
/declare Spell4 string outer "Null"
/declare Spell5 string outer "Null"
/declare Spell6 string outer "Null"
|loot all items? (0 no, 1 yes)
/declare LootAllItems int outer 1
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Loot Array Information.
/call ReadINI HunterLoot.ini "${Zone.Name}" Loot
/if (!${Defined[ItemsToLoot]}) {
/echo No Loot Array Created...
}
|Variables that you don't need to worry about.
/deletevar Master
/declare Spell1Gem string outer "gem1"
/declare Spell2Gem string outer "gem2"
/declare Spell3Gem string outer "gem3"
/declare Spell4Gem string outer "gem4"
/declare Spell5Gem string outer "gem5"
/declare Spell6Gem string outer "item"
/declare Master string Global
/varset Master ${Param0}
/declare LootSlot int outer 0
/declare MyXLOCA int outer 0
/declare MyYLOCA int outer 0
/declare AnchorX int outer ${Me.X}
/declare AnchorY int outer ${Me.Y}
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/echo Starting Looting Macro.
:loop
/call GMcheck
/doevents
/delay 5
/goto :loop
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Looting
Sub Event_MobDied
/delay 150s
/squelch /declare LootSlot int inner 0
/declare LootCheck int inner 0
/declare LootTotal int inner 0
/target npc corpse radius 200
:MovementLoop
/face fast nolook
/if (${Int[${Target.Distance}]}>13) {
/keypress forward hold
}
/if (${Int[${Target.Distance}]}<13&&${Int[${Target.Distance}]}>11) {
/keypress forward
}
/if (${Int[${Target.Distance}]}<9) {
/keypress back
}
/if (${Int[${Target.Distance}]}>13) {
/goto :MovementLoop
}
/keypress forward
/keypress back
/delay 5
/loot
/delay 5
/if (!${Corpse.Items}) {
/echo NO LOOT!
/notify LootWnd DoneButton leftmouseup
/call checkanchor
/delay 5
/call sit
/delay 10
/call kill
/return
}
/varset LootTotal ${Corpse.Items}
/for LootSlot 1 to ${LootTotal}
/itemnotify loot${LootSlot} leftmouseup
/delay 5
/if (${LootAllItems}) {
/echo Keeping a ${Cursor.Name}... WOOT!
/autoinventory
/autoinventory
/delay 5
} else {
/for LootCheck 1 to ${ItemsToLoot.Size}
/if (${Cursor.Name.Find[${ItemsToLoot[${LootCheck}]}]}) {
/echo Keeping a ${Cursor.Name}... WOOT!
/autoinventory
/autoinventory
/delay 5
}
/next LootCheck
}
/if (${Cursor.ID}) {
/echo Destroying a ${Cursor.Name}...
/destroy
/destroy
/delay 5
}
/next LootSlot
/delay 5
/notify LootWnd DoneButton leftmouseup
/delay 2
/call checkanchor
/delay 5
/call sit
/delay 10
/call kill
/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 (${FileName.Equal["HunterLoot.ini"]}&&${nValues}>0) {
/echo Declaring Loot Array...
/declare ItemsToLoot[${nValues}] string outer
}
/for nArray 1 to ${nValues}
/if (${FileName.Equal["HunterLoot.ini"]}) {
/squelch /varset ItemsToLoot[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]}
}
/next nArray
/echo "${SectionName}" Zone Information Read Successfully from ${FileName}...
/delay 1s
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub CheckAnchor
/if (${Math.Distance[${AnchorY},${AnchorX}]}>12)
/call MoveToAnchor
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub MoveToAnchor
/declare iCount int local
/varset iCount 0
/echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}.
:AnchorMoveLoop
/delay 1
/doevents
/face nolook loc ${AnchorY},${AnchorX}
/if (${Math.Distance[${AnchorY},${AnchorX}]}>12) {
/keypress forward hold
} else {
/keypress forward
/face away loc ${AnchorY},${AnchorX}
/return
}
/if (${iCount}>2) {
/face nolook loc ${AnchorY},${AnchorX}
/varset iCount 0
}
/varcalc iCount ${iCount}+1
/goto :AnchorMoveLoop
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_zone
/echo ZONE! Ending macro!
/keypress instant_camp
/endmacro
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub sit
/if (${Me.State.NotEqual[SIT]}) {
/sit
}
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Kill
/tar ${Master}
/assist
/if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)
/call cast "${Spell1}" gem1
/if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)
/call cast "${Spell2}" gem2
/if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)
/call cast "${Spell3}" gem3
/if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)
/call cast "${Spell4}" gem4
/if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)
/call cast "${Spell5}" gem5
/if ((${Target.PctHPs}<70)
/call cast "${Spell6}" item
/if (${sit})
/sit
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_reset
/Tell ${Master} Resetting in 5
/delay 5s
/tar ${Master}
/macro lootwhore ${Master}
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_tell
/tell ${Master} ${Sender} told Me, '${ChatText}'
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_camp
/camp
/endmac
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GMcheck
/if (${Spawn[gm].ID}) {
/mqlog GM Fuggin up plan
/keypress instant_camp
/endmac
}
/return
I'm not really sure what needs to be changed in here. My other guy is a pally, and I am slacking on his spells so my only living damage spell is a stun, and due to argo I dont want him casting it.
Thanks for any help
Gavin