from the top...
I follow one guideline when it comes to working on my miner: The dig routine is king
Any action that's not
either recalling to the next spot
or dropping off at secure, like making shovels, smelting, etc. is time wasted on not mining. Yes, these are support functions that are necessary, but I believe this can be optiomized (and I know it can on my free shard, and would be willing to bet some actions will also work on OSI), and these functions can be absorbed into the actual dig routine.
Following the logic of "a tile may only be mined once per second," from what I've seen, most dig routines look someting like (semi-pseudo code):
dig:
finditem %shovel * c_ , #backpackid
set #lobjectid #findid
event macro 17 0
target
set #ltarget x/y/z
...
event macro 22 0
wait 20 <------------------ this is what i don't like
goto dig
Using the same "once per second," logic, there is another way to set up a wait timer of 1 second (semi-pseudo code):
dig:
finditem %shovel * c_ , #backpackid
set #lobjectid #findid
digwait:
if #systime - %digwait < 1000 <--------------------- variable wait timer
goto digwait
event macro 17 0
target
event macro 22 0
set %digwait #systime
goto dig
I initally switched to this variable style of wait timer because of the variance that I was seeing from finditem returns, and by setting it up this way, I'm able to ignore the finditem return time. But rather than ignore, I realized it's more like
ABSORB. And once I realized this, I realized I could cram all sorts of functions into this loop as long as they don't push the dig routine past one second, and gain in efficiency.
... fast forward to this thread and the firebeetle....
But reading above it sounds like you smelt after every dig
This had sort of crossed my mind, but I didn't give it any serious thought, until EN posted this.
Now, back on topic...
My experience on my Free Shard is that smelting has no real cooldown, just ping related response, so I'm able to smelt ALL my ore like this:
finditem %oretypes * c_ , #backpackid
for #findindex 1 #findcnt
{
if #findcol notin 2219_1174_1152_1153_1272_1278 ; this is the skipper I currently use to not smelt valorite and bonus ore on the fly
{
set #lobjectid #findid
event macro 17 0
target
set #ltargetid %firebeetleid
set #ltargetkind 1
event macro 22 0
wait 6 <------------- 300ms... just over my ping
}
}
This is what I know about smelting on the Fire Beetle:
if #weight > %carryweight
{
gosub firebeetle smelt
wait %genericwait
if #weight > %carryweight - 100
{
gosub firebeetle mount
gosub travel home
gosub secops
gosub firebeetle mount
gosub travel back
gosub firebeetle dismount
}
}
writing my smelt routine like this resulted in a range from 700ms - 2100ms.
ALL of the variance due to how many
DIFFERENT ores there were at the time of smelting... so, 1 ore type = 700ms
so, I tried this:
repeat
{
...
digwait:
if %loopspeedcheck < %digloopupperbound
goto digwait
event sysmessage mining at Book %bookcnt Rune %runecnt Vein %onvein
finditem %digtools * c_ , #backpackid
set #lobjectid #findid
event macro 17 0
target
event macro 22 0
set %reploopcheck #systime
set %digwait #systime
...
if There_is_no in #journal
...
finditem %oretypes * c_ , #backpackid
if #findcnt > 0
{
for #findindex 1 #findcnt
{
if #findcol notin 2219_1174_1152_1153_1272_1278
{
set #lobjectid #findid
event macro 17 0
target
set #ltargetid %firebeetleid
set #ltargetkind 1
event macro 22 0
goto stopdigging
}
}
}
...
stopdigging:
}
until %1 = stop
and my mule is still pounding dirt every second (#systime checked)... so it's possible at least on my freeshard to dig smelt dig smelt continuously, and depending on the "use ore," cooldown on OSI, it may be possible on there as well.
I don't see how that would be possible. You're smelting many fewer times by only smelting when the pack is full.
true, but that time is time spent not digging. By incorporating smelting into the 1 second dig wait, there is literrally no time lost in the total operation of the script... that .7 - 2.1 seconds to smelt is now essentially 0 seconds.
Wait a sec you said on your FS as in free shard..... well that might explain it.
Yes, this is always a possibilty, but I think you may be surprised. The ability to dig smelt dig smelt hinges on the fact that there is no real cooldown for smelting on my FS, and i didn't even write in a wait after it smelts in the digroutine... If you can spam smelt on OSI, this should be possible, but you'll have to check out the snippet about smelting in general up above.
How does that effect the % of ingots you get .
so my FS is a little weird. Valorite seems to be 100% smeltable at 105 mining. We have bonus ores Blaze, Electrum, Toxic, and Platinum. Blaze being the only one I can mine because my skill isn't high enough.
We also have another pair of leather mining gloves that are +20, so Blaze seems to be 100% smeltable at mining 120.. My miner with the +20 gloves smelts everything except the ores I can't get yet, and my miner with the +5 gloves smelts valorite and below, only... If I lost some I wouldn't know because I don't track ores, because I literrally have multiple 60k stacks of everything... but it seems to be 2 ingots per 1 ore, with incredibly low failure rate.