Post by Darth Maul on Feb 20, 2015 6:51:38 GMT
Skin / Stake Tutorial
Abstract (summary):
Have you tried setting up your bot to skin, or stake, monsters?
Have you always wanted to gather addon items and sell them?
I, like many of you, have wanted to however I ran into some trouble and thought I'd create a script to help us out.
Content:
[1] Download Link{s}
[2] The Script
[3] How to Setup the Script
[4] How the script came to be
[5] General Flow
[6] FAQs
[1] Download Link:
<click on the name to download the file>
1. Vengoth - Vampires - auto stake.elfc (5.39 KB)
2. Darashia - Minotaur Leathers
[2] The Script:
Script Part A
<Skin Minotaurs>
<Skin Lizards>
<Skin Behemoths>
You cannot Pickup Dead Behemoth Corpses.
If you're playing on a server that allows you to.. this would be the script needed:
<Skin Dragons>
You cannot Pickup Dead Dragon Corpses.
If you're playing on a server that allows you to.. this would be the script needed:
<Skin Dragon Lords>
You cannot Pickup Dead Dragon Lord Corpses.
If you're playing on a server that allows you to.. this would be the script needed:
<Skin Bone Beasts>
<Stake Vampires>
<Stake Demons>
You cannot Pickup Dead Dragon Lord Corpses.
If you're playing on a server that allows you to.. this would be the script needed:
Script Part B
[3] How to Setup the Script:
Setting up the scripts:
Open your elfbot.
Go to the 'Cavebot' section of Elfbot.
Open the Cavebot Hotkeys, located in the top-right section of the Cavebot Section. (Click on the 'Edit' button)
Paste one of the Part A scripts and All of the Part B Script into the Cavebot Hotkey.
Click Save\Restart.
Close the Cavebot Hotkeys.
Setting up the Walk Waypoints:
Make the first waypoint an Action waypoint.
The action needs to be 'wait 3000'.
Change the label of the first waypoint to WAIT.
Create your first walking waypoint.
Change the label of the first walking waypoint to HUNT.
Continue to create the walking waypoints around the desired spawn.
Make sure to only leave 1-3 squares in-between each waypoint or the script may bug out.
Ensure you reach all squares in the desired hunting area so your bot will be able to skin every possible corpse.
[4] How the script came to be:
I first tried to use the inbuilt system to skin/stake the dead corpses however it didn't seem to want to work:
After trying the above I tried to figure out why it wasn't working. When the script was running the obsidian knife, and blessed stake, was being used but the body wasn't being skinned. Strange. So I tested a few other things to find out what the problem was.
I first tried to check if something like this would work but this had the same issue as the in-build skin/stake functions had. It would use the item, but it wouldn't use it on the corpse.
After I tried that I came to the conclusion that using your knife, or stake, on the item while it's on the ground won't work. I could have continued to test and try something using this function but other players could/would interfere with it quite easily so I skipped this.
I figured, if I can't use the knife/stake while it's on the ground why not try picking the corpse up up and skinning/staking it while I'm carrying it..
So I looked at this function:
I picked up the dead corpse and threw this script on. To my suprise it skinned the monster and then I figured.. "Why don't I make it automatically pickup the monsters, skin the monster while it's in your backpack, and then drop the skinned corpse on the ground.."
So.. That's exactly what I did.
I inicially used this function while the bot ran around normally but this caused my character to step off his square and get stuck, so I removed this function and had to use something else.
And that is how this script was born!
[5] General Flow:
The bot will move around, slowly, making sure to reach every tile in the desired hunting area.
If a skinnable corpse is 1 square from the player the bot will go to the 'wait' waypoint, causing the bot to stop moving.
While it's in the 'wait' waypoint the bot will first try to pickup any skinable corpse around it.
It will then use the stake/knife on the corpse while it's in your backpack.
After that it will drop the dead corpse on the current tile you're on.
Once the 'wait' waypoint is finished it will continue to hunt.
The bot will still target while it's trying to skin the corpses, so if you're hunting demons or dragon lords you shouldn't die due to the bot not attacking.
[6] FAQs:
Ask questions below, I'll update this list as questions are asked.
Feel Free to comment below asking questions related to this script, or requesting new cavebot files. I'll create new waypoint scripts when I can, and when requested.
If you create a cavebot file and you want to release it, feel free to post it below and I'll add it to the list. I'll check over the file first.
Abstract (summary):
Have you tried setting up your bot to skin, or stake, monsters?
Have you always wanted to gather addon items and sell them?
I, like many of you, have wanted to however I ran into some trouble and thought I'd create a script to help us out.
Content:
[1] Download Link{s}
[2] The Script
[3] How to Setup the Script
[4] How the script came to be
[5] General Flow
[6] FAQs
[1] Download Link:
<click on the name to download the file>
1. Vengoth - Vampires - auto stake.elfc (5.39 KB)
[2] The Script:
Script Part A
<Skin Minotaurs>
set $unskinnedbody '4272'
set $skinnedbody '4273'
set $toolid '5908'
set $cname 'Minotaur Leather'
set $cid '5878'
<Skin Behemoths>
You cannot Pickup Dead Behemoth Corpses.
If you're playing on a server that allows you to.. this would be the script needed:
set $unskinnedbody '4112'
set $skinnedbody '4113'
set $toolid '5908'
set $cname 'Behemoth Fang'
set $cid '5893'
<Skin Dragons>
You cannot Pickup Dead Dragon Corpses.
If you're playing on a server that allows you to.. this would be the script needed:
set $unskinnedbody '4286'
set $skinnedbody '4287'
set $toolid '5908'
set $cname 'Green Dragon Leather'
set $cid '5877'
<Skin Dragon Lords>
You cannot Pickup Dead Dragon Lord Corpses.
If you're playing on a server that allows you to.. this would be the script needed:
set $unskinnedbody '4062'
set $skinnedbody '4063'
set $toolid '5908'
set $cname 'Red Dragon Leather'
set $cid '5948'
<Stake Vampires>
set $unskinnedbody '4137'
set $skinnedbody '4138'
set $toolid '5942'
set $cname 'Vampire Dust'
set $cid '5905'
<Stake Demons>
You cannot Pickup Dead Dragon Lord Corpses.
If you're playing on a server that allows you to.. this would be the script needed:
set $unskinnedbody '4097'
set $skinnedbody '4098'
set $toolid '5942'
set $cname 'Red Dragon Leather'
set $cid '5906'
Script Part B
set $ss '$winitemcount.$unskinnedbody'
set $skin 0
set $canskin 0
auto 100 | listas '[$cname] current count: $cid'
auto 100 | dontlist | if [$topitem.($self.posx-1).($self.posy-1).$self.posz == $unskinnedbody] {gotolabel WAIT | set $pickup 1}
auto 100 | dontlist | if [$topitem.($self.posx).($self.posy-1).$self.posz == $unskinnedbody] {gotolabel WAIT | set $pickup 1}
auto 100 | dontlist | if [$topitem.($self.posx+1).($self.posy-1).$self.posz == $unskinnedbody] {gotolabel WAIT | set $pickup 1}
auto 100 | dontlist | if [$topitem.($self.posx-1).($self.posy).$self.posz == $unskinnedbody] {gotolabel WAIT | set $pickup 1}
auto 100 | dontlist | if [$topitem.($self.posx).($self.posy).$self.posz == $unskinnedbody] {gotolabel WAIT | set $pickup 1}
auto 100 | dontlist | if [$topitem.($self.posx+1).($self.posy).$self.posz == $unskinnedbody] {gotolabel WAIT | set $pickup 1}
auto 100 | dontlist | if [$topitem.($self.posx-1).($self.posy+1).$self.posz == $unskinnedbody] {gotolabel WAIT | set $pickup 1}
auto 100 | dontlist | if [$topitem.($self.posx).($self.posy+1).$self.posz == $unskinnedbody] {gotolabel WAIT | set $pickup 1}
auto 100 | dontlist | if [$topitem.($self.posx+1).($self.posy+1).$self.posz == $unskinnedbody] {gotolabel WAIT | set $pickup 1}
auto 100 | dontlist | if [$winitemcount.$skinnedbody >= 1] {dropitems $skinnedbody | wait 1000 | set $skin 0}
auto 100 | dontlist | if [$pickup == 1] {collectitems 'empty' $unskinnedbody | wait 1000 | set $pickup 0}
auto 100 | dontlist | if [$winitemcount.$unskinnedbody >= 1] {useoninventoryitem $toolid $unskinnedbody | gotolabel WAIT | wait 1000}
[3] How to Setup the Script:
Setting up the scripts:
Open your elfbot.
Go to the 'Cavebot' section of Elfbot.
Open the Cavebot Hotkeys, located in the top-right section of the Cavebot Section. (Click on the 'Edit' button)
Paste one of the Part A scripts and All of the Part B Script into the Cavebot Hotkey.
Click Save\Restart.
Close the Cavebot Hotkeys.
Setting up the Walk Waypoints:
Make the first waypoint an Action waypoint.
The action needs to be 'wait 3000'.
Change the label of the first waypoint to WAIT.
Create your first walking waypoint.
Change the label of the first walking waypoint to HUNT.
Continue to create the walking waypoints around the desired spawn.
Make sure to only leave 1-3 squares in-between each waypoint or the script may bug out.
Ensure you reach all squares in the desired hunting area so your bot will be able to skin every possible corpse.
[4] How the script came to be:
I first tried to use the inbuilt system to skin/stake the dead corpses however it didn't seem to want to work:
stake {distance} {itemid} - will look for reachable stakeable corpses within a certain distance, and skin them
skin {distance} {itemid} - will look for reachable skinnable corpses within a certain distance, and skin them
After trying the above I tried to figure out why it wasn't working. When the script was running the obsidian knife, and blessed stake, was being used but the body wasn't being skinned. Strange. So I tested a few other things to find out what the problem was.
I first tried to check if something like this would work but this had the same issue as the in-build skin/stake functions had. It would use the item, but it wouldn't use it on the corpse.
useongrounditem {itemid} {itemid} - uses an item from your inventory on a ground item that’s within 1 squares range
repeatuseongroundxyz {itemid} {itemidonground} {x} {y} {z} - repeats using a certain item from your inventory on an item on x y z until the item on ground no longer can be found
useongroundxyz {itemid} {x} {y} {z} - use a certain item from your inventory on the item that is on a certain x y z location
After I tried that I came to the conclusion that using your knife, or stake, on the item while it's on the ground won't work. I could have continued to test and try something using this function but other players could/would interfere with it quite easily so I skipped this.
useitemsonground {sx} {sy} {sz} {dx} {dy} {dz} - uses the topmost item of a source tile onto the topmost item of a destination tile.
I figured, if I can't use the knife/stake while it's on the ground why not try picking the corpse up up and skinning/staking it while I'm carrying it..
So I looked at this function:
useoninventoryitem {itemidtouse} {itemidtouseon} - uses an item from your inventory on your own inventory
I picked up the dead corpse and threw this script on. To my suprise it skinned the monster and then I figured.. "Why don't I make it automatically pickup the monsters, skin the monster while it's in your backpack, and then drop the skinned corpse on the ground.."
So.. That's exactly what I did.
I inicially used this function while the bot ran around normally but this caused my character to step off his square and get stuck, so I removed this function and had to use something else.
reachgrounditem {itemid} - walks up to a certain item that is currently on your screen
And that is how this script was born!
[5] General Flow:
The bot will move around, slowly, making sure to reach every tile in the desired hunting area.
If a skinnable corpse is 1 square from the player the bot will go to the 'wait' waypoint, causing the bot to stop moving.
While it's in the 'wait' waypoint the bot will first try to pickup any skinable corpse around it.
It will then use the stake/knife on the corpse while it's in your backpack.
After that it will drop the dead corpse on the current tile you're on.
Once the 'wait' waypoint is finished it will continue to hunt.
The bot will still target while it's trying to skin the corpses, so if you're hunting demons or dragon lords you shouldn't die due to the bot not attacking.
[6] FAQs:
Ask questions below, I'll update this list as questions are asked.
Feel Free to comment below asking questions related to this script, or requesting new cavebot files. I'll create new waypoint scripts when I can, and when requested.
If you create a cavebot file and you want to release it, feel free to post it below and I'll add it to the list. I'll check over the file first.