I was inspired by Fuzzymelon's macro that automated the bone chips, I wrote some mods to it and felt like I had almost hijacked his thread. So now I had this idea to double the speed of the bone chips so I asked Fuzzy to get his ok and then to ctaylor22 to give me the snippets to make it work, viola! Double speed bone chips, FULLY Automated! Enjoy!
How does it double the speed you ask? The old one ported the leveler to Brells and bought chips, this was very time consuming, the new one sends the wiz to brells to fill up on bone chips and even to destroy the trash that filled your bags, the overall effect is your levelee does what he needs to be doing 100% of the time gaining exp! You will see when you run this, the wiz gets back with just a little time to spare for the next round, this is the fastest I can think of on bone chip leveling!
This requires:
an 85+ wiz with Brell's Rest portal and Teleport to bind AA (Heroic Wiz ready to go)
EQBC running and EQBC plugin loaded
mq2navigation loaded with underfoot mesh files
MQ2Cast loaded
20 extraplanar trading satchels + 5k plat or so on toon that is getting the chips
(the turn in toons will get paid per turnin, so may have him trade plat as well as bags later)
Both characters should be bound right in front of turn-in NPC in Kaladim
Here's how to use it:
Add wizards name in Bonetrade macro
Run toons to kaladim and bind both the level 1 toon and 85 wiz in front of the NPC
on wiz run Getbones.mac 1 time
When the wiz gets back Run Bonetrade.mac
Watch it for a few minutes, then go do something productive
The code was pieced together from code in fuzzymelons's bone chip macro and the other bonechips mac posted here. Many thanks to all who contributed!
I am no programmer but I love testing things and pushing them to make them better, I hope you find this macro useful!
Note: MQ2Navigation has been buggy so the mac loads it every time it is needed just to make sure it works!
Razkle
The Macros will follow in the next few posts so I can edit and update them with download links as well...
- - - Updated - - -
- - - Updated - - -
- - - Updated - - -
- - - Updated - - -
- - - Updated - - -
working kinks out of main one atm, seems it keeps saying subroutine main not found grrr....
- - - Updated - - -
THIS IS A WORK IN PROGRESS, I am working the bugs out now, if you run it as is it may EAT your extraplanar trade satchles as "trash" I will post when it is done and tested, but I have lost 3 satchels in testing
How does it double the speed you ask? The old one ported the leveler to Brells and bought chips, this was very time consuming, the new one sends the wiz to brells to fill up on bone chips and even to destroy the trash that filled your bags, the overall effect is your levelee does what he needs to be doing 100% of the time gaining exp! You will see when you run this, the wiz gets back with just a little time to spare for the next round, this is the fastest I can think of on bone chip leveling!
This requires:
an 85+ wiz with Brell's Rest portal and Teleport to bind AA (Heroic Wiz ready to go)
EQBC running and EQBC plugin loaded
mq2navigation loaded with underfoot mesh files
MQ2Cast loaded
20 extraplanar trading satchels + 5k plat or so on toon that is getting the chips
(the turn in toons will get paid per turnin, so may have him trade plat as well as bags later)
Both characters should be bound right in front of turn-in NPC in Kaladim
Here's how to use it:
Add wizards name in Bonetrade macro
Run toons to kaladim and bind both the level 1 toon and 85 wiz in front of the NPC
on wiz run Getbones.mac 1 time
When the wiz gets back Run Bonetrade.mac
Watch it for a few minutes, then go do something productive
The code was pieced together from code in fuzzymelons's bone chip macro and the other bonechips mac posted here. Many thanks to all who contributed!
I am no programmer but I love testing things and pushing them to make them better, I hope you find this macro useful!
Note: MQ2Navigation has been buggy so the mac loads it every time it is needed just to make sure it works!
Razkle
The Macros will follow in the next few posts so I can edit and update them with download links as well...
- - - Updated - - -
Rich (BB code):
sub main
| original tradin.mac, by amml
| full automation added by fuzzymelon
| Buy function courtesy of RedGuides.com
| TradeBags function by ctaylor22, without him this would not work!
| rewritten by Razkle for Doublespeed of original macro
| addons required to make this work: EQBC and MQ2Navigation and MQ2Cast
|***
|This macro is the ONLY one you will be running, the other 3 are called from this one!
| Put the name of the wiz or druid that will be getting your bone chips in the wiznamehere below
| This mac will then do all the work to level your toon! Enjoy!
|
|1. have both toons parked at same spot at Gunlok Jure, I do this by grouping them and then having wiz do Teleport Bind, then leave group
|2. Both toons need to have 10 Extraplanar Trade Satchels as you will be swapping them back and forth
|3. Once you run this macro the other toon will go get more chips and force feed this one for max speed
|4. for a faster start you can run getbones.mac 1 time on the wiz to prep him, when he gets back start this macro
/declare wizard string outer wiznamehere
/declare destroydelay int local 1
/declare chips int local
/declare bags int local
/declare done int local 0
:Start
/echo step1
/call cursorclear
/echo step2
/call givebones
/echo step3
/call tradebags
/goto :Start
/return
Sub givebones
/echo Opening Bags
/keypress OPEN_INV_BAGS
/delay 5
/target clear
/target Gunlok Jure
/delay 5
/face fast
:handin
/if (!${FindItem[=Bone Chips].InvSlot}) {
/echo I ran out of Bone Chips, will trade for more!
/call tradebags
}
/echo Handing in Chips
/for chips 1 to 4
/shift /itemnotify ${FindItem[=Bone Chips].InvSlot} leftmouseup
/delay 5
/click left target
/click left target
/delay 5
/next chips
/delay 8
/notify GiveWnd GVW_Give_Button leftmouseup
/delay 2s
/call cursorclear
/goto :handin
/return
Sub cursorclear
/echo Clearing Cursor
/if (${Cursor.ID} && ${Cursor.ID} != 13073) {
| /destroy
/delay ${destroydelay}
/goto :cursorclear
}
/return
Sub tradebags
/target ${wizard}
/bct ${wizard} //target ${Me}
/bct ${wizard} //mac tradebags1
/mac tradebags1
/delay 20
/bct ${wizard} //notify TradeWnd TRDW_Trade_Button leftmouseup
/delay 20
/bct ${wizard} //target ${Me}
/bct ${wizard} //mac tradebags2
/mac tradebags2
/delay 20
/bct ${wizard} //notify TradeWnd TRDW_Trade_Button leftmouseup
/delay 20
/bct ${wizard} //mac getbones
/return
/return
- - - Updated - - -
Rich (BB code):
sub main
|Getbones.mac
| tradin.mac, by amml
| modified by tms
| full automation added by fuzzymelon
| Buy function courtesy of RedGuides.com
| modified by Razkle for Doublespeed
| Requires EQBC, MQ2Navigation, MQ2Cast
:top
| *** Increase the destroydelay ONE by ONE until every item on your cursor gets destroyed.
/declare destroydelay int local 1
/declare chips int local
/declare done int local 0
/target clear
| ----------------------------------------------------------------------------
| Check for trash in bags
| ----------------------------------------------------------------------------
:Loop
/if (!${FindItem[=Bone Chips].InvSlot}) {
/echo My bags are full of trash, clearing it out, please be patient
/goto :EmptyBags
}
/delay 8
/if (!${FindItem[=Bone Chips].InvSlot}) /goto :EmptyBags
/goto :Loop
:EmptyBags
/if (!${done}) {
/varset done 1
/goto :cursorclear
}
/echo Clearing up your bags, this will take a moment.
/delay 8
/while (${FindItem[=Rusty Axe].InvSlot}) {
/shift /itemnotify ${FindItem[=Rusty Axe].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Rusty Broad Sword].InvSlot}) {
/shift /itemnotify ${FindItem[=Rusty Broad Sword].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Rusty Mace].InvSlot}) {
/shift /itemnotify ${FindItem[=Rusty Mace].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Rusty Short Sword].InvSlot}) {
/shift /itemnotify ${FindItem[=Rusty Short Sword].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Rusty Two Handed Sword].InvSlot}) {
/shift /itemnotify ${FindItem[=Rusty Two Handed Sword].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Small Lantern].InvSlot}) {
/shift /itemnotify ${FindItem[=Small Lantern].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Small Tattered Gloves].InvSlot}) {
/shift /itemnotify ${FindItem[=Small Tattered Gloves].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Torch].InvSlot}) {
/shift /itemnotify ${FindItem[=Torch].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Small Patchwork Tunic].InvSlot}) {
/shift /itemnotify ${FindItem[=Small Patchwork Tunic].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Small Tattered Skullcap].InvSlot}) {
/shift /itemnotify ${FindItem[=Small Tattered Skullcap].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Small Patchwork Sleeves].InvSlot}) {
/shift /itemnotify ${FindItem[=Small Patchwork Sleeves].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
/while (${FindItem[=Small Patchwork Pants].InvSlot}) {
/shift /itemnotify ${FindItem[=Small Patchwork Pants].InvSlot} leftmouseup
/delay 5
/if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
/delay ${destroydelay}
}
:cursorclear
/if (${Cursor.ID} && ${Cursor.ID} != 13073) {
/destroy
/delay ${destroydelay}
/goto :cursorclear
}
:Done
/delay 8
/notify GiveWnd GVW_Give_Button leftmouseup
/delay 8
/echo Closing Bags
/keypress CLOSE_INV_BAGS
/echo Done .. Have fun..
/goto :port
} else {
/delay 2s
/goto :top
}
:port
/target clear
/delay 5s
/casting "Brell's Rest Portal" -maxtries|5
/delay 45s
/goto :buy
} else {
/delay 2s
/goto :port
}
:buy
/plugin mq2navigation
/delay 30
/target clear
/target "Marie Fay"
/if (${Target.Type.Equal[npc]}) {
/delay 2s
/navigate target
/delay 30s
/face fast
/delay 3s
/call npc "Marie Fay"
/call Buy "bone chips" 32000
/goto :bind
} else {
/delay 2s
/goto :buy
}
:bind
/target clear
/if (${Merchant.Open}) {
/notify MerchantWnd MW_Done_Button leftmouseup
/delay 1s !${Merchant.Open}
/delay 5s
/casting "Gate" -maxtries|5
/delay 45s
/end
} else {
/delay 2s
/goto :bind
}
/goto :top
/return
Sub NPC(NPCName)
/target npc ${NPCName}
/delay 1s
/if (!${Select[${Target.Type},npc,pet]} || !${Target.ID} || ${Target.Type.Equal[pet]} && !${Target.CleanName.Find[familiar]}) {
/echo Please target a vendor or guildbanker
/return
}
/echo Doing business with ${NPCName}
/target id ${Spawn[${NPCName}].ID}
/delay 3s ${Target.ID}==${Spawn[${NPCName}].ID}
/if (${Target.Distance}>15) {
/moveto id ${Spawn[${NPCName}].ID}
/delay 250 ${MoveTo.Stopped}
}
/face nolook
/delay 1s
/echo Opening merchant/guildbank window
/nomodkey /click right target
/echo Waiting 5s for merchant/guildbank window to populate
/delay 5s
/return
Sub Buy(string ItemToBuy, int amount)
/declare i int local
| /echo Buying ${ItemToBuy}!
/declare QTY int local
/declare ListItem int local
/varcalc QTY ${amount}-${FindItemCount[${ItemToBuy}]}
/delay 1s
/if (${FindItemCount[${ItemToBuy}]}>= ${amount}) {
/echo I have enough ${ItemToBuy}.
/return
}
/varset ListItem ${Window[MerchantWnd].Child[ItemList].List[=${ItemToBuy},2]}
/if (!${ListItem}) {
/echo couldn't find ${ItemToBuy}
/return
} else {
/notify MerchantWnd ItemList listselect ${ListItem}
/delay 1s
}
/echo Buying ${ItemToBuy} Till I get ${amount}
:BuyLoop
/doevents
/if (${InventoryFull}) /return
/if (${QTY}>0) {
/if (${QTY}>19) {
/Shiftkey /notify merchantwnd MW_Buy_Button leftmouseup
/delay 1s ${FindItemCount[${ItemToBuy}]}>=${QTY}
/echo ${FindItemCount[${ItemToBuy}]} ${ItemToBuy} in inventory
/varcalc QTY ${amount}-${FindItemCount[${ItemToBuy}]}
/delay 2
/if (${QTY}<=0) /return
/goto :BuyLoop
}
/if (${QTY}>0 && ${QTY}<20) {
/for i 1 to ${QTY}
/Ctrlkey /notify merchantwnd MW_Buy_Button leftmouseup
/delay 1s ${FindItemCount[${ItemToBuy}]}>=${Math.Calc[${FindItemCount[${ItemToBuy}]}+${i}]}
/echo Buying ${ItemToBuy} ${i} of ${QTY}
/if (${i}>=${QTY}) {
/echo ${FindItemCount[${ItemToBuy}]} ${ItemToBuy} in inventory
/return
}
/next i
/varcalc QTY ${amount}-${FindItemCount[${ItemToBuy}]}
}
}
/return
- - - Updated - - -
Rich (BB code):
| TradeBags1.mac v1 by Razkle 9/20/2014
| Original code designed by ctaylor22
| This macro will trade the 1st 5 bags in your upper inventory slot to the targeted player, see tradebags2.mac for bags 6-10
Sub Main
/declare bags int local
:TradeBags
/delay 2s
/for bags 1 to 5
/itemnotify pack${bags} leftmouseup
/delay 2s ${Cursor.ID}
/nomodkey /click left target
/delay 2s !${Cursor.ID}
/next bags
/notify TradeWnd TRDW_Trade_Button leftmouseup
/endmacro
/return
- - - Updated - - -
Rich (BB code):
| TradeBags2.mac v1 by Razkle 9/20/2014
|| Original code designed by ctaylor22
| This macro will trade bags 6 - 10 in your upper inventory slot to the targeted player, see tradebags1.mac for bags 1-5
Sub Main
/declare bags int local
:TradeBags
/delay 2s
/for bags 6 to 10
/itemnotify pack${bags} leftmouseup
/delay 2s ${Cursor.ID}
/nomodkey /click left target
/delay 2s !${Cursor.ID}
/next bags
/notify TradeWnd TRDW_Trade_Button leftmouseup
/endmacro
/return
- - - Updated - - -
working kinks out of main one atm, seems it keeps saying subroutine main not found grrr....
- - - Updated - - -
THIS IS A WORK IN PROGRESS, I am working the bugs out now, if you run it as is it may EAT your extraplanar trade satchles as "trash" I will post when it is done and tested, but I have lost 3 satchels in testing
Last edited:

