Right now it does what I need it to do but when it reaches all 5 butterflies completed it doesn't go turn it in until it finishes the waypoints, how can I make it auto turn in at five?
I want it to be more efficient it takes a while to complete it just once
What I do is use a function in the onLeaveCombat so that as soon as it has all 5 killed, it will work on heading back. Try putting this in your onLoad section:
settings.profile.events.onLeaveCombat = function()
local queststate = getQuestStatus("Catch Butterflies")
if queststate == "complete" then
if not player.Mounted then
__WPL:setForcedWaypointType("TRAVEL");
__WPL:setDirection(WPT_BACKWARD);
player:mount("Flying Rune Disk (Permanent)");
yrest(500)
speed()
end
end
end
That should, as soon as you have all 5 kills, reverse your direction (looksto me like that's how you run it), set travel so it won't fight anymore, mount, and use speed().
It's hard to know how you have your waypoints set up (Where is tag "one", "two" and "Three" at?) You can try in the code I posted for you earlier, remove the "__WPL:setDirection(WPT_BACKWARD);" from it so it would do what yours normally would do except it won't continue killing mobs along the way. So that part would look like this:
settings.profile.events.onLeaveCombat = function()
local queststate = getQuestStatus("Catch Butterflies")
if queststate == "complete" then
if not player.Mounted then
__WPL:setForcedWaypointType("TRAVEL");
player:mount("Flying Rune Disk (Permanent)");
yrest(500)
speed()
end
end
end
I like your idea on the anti-ks I forget about that in public areas, I like to list each mob not to target it keeps my wp easy for me. I can see how just targeting one mob works better here.
I disagree on the loot option though others come in and get mad if the room is full of dead butterflys unlooted. I just use lootit and have it destroy all the loot.
Oh, yeah, that's true about dead butterflies lying around. I always just worried about trying to keep the bags clean while at the same time trying not to drop items I might have in my bags that I want to keep so instead, I just wouldn't loot. It's not as bad now as it used to be back in the day when there would be several groups of people farming the area. Plus with my script, I have 4 distinct sections where it will farm butterflies, chosen randomly, as well as 4 random separate paths to go to and from the questgiver in order to not be doing the same thing over and over and over again. But yeah, if there are other people there, looting might be a good idea. I might have to make some adjustments.
Nice I thought about making a wp that ran all over but settled on a simple one. Its a work in progress i'm always tweaking it I posted a very old version of it on here at one time that one got stuck to much though. I'm looking at calculating the respawn time and if it needs to run back and get some. I also need a bit of code to run away from that horse if I get agro..
how can i generate random numbers? Is there some way to trace the program execution besides print(your here)
I saved a copy so I can see if you did anything fun that would help my little wp. I usually edit and move points around on ones I make so they are different than other peoples
[quote="noobbotter"]What I do is use a function in the onLeaveCombat so that as soon as it has all 5 killed, it will work on heading back. Try putting this in your onLoad section:
settings.profile.events.onLeaveCombat = function()
local queststate = getQuestStatus("Catch Butterflies")
if queststate == "complete" then
if not player.Mounted then
__WPL:setForcedWaypointType("TRAVEL");
__WPL:setDirection(WPT_BACKWARD);
player:mount("Flying Rune Disk (Permanent)");
yrest(500)
speed()
end
end
end
Just an off topic i had the same problem abt 1-2 years back which i never managed to solve. If anyone is willing to do it, it is the fastest eoj farm possible as far as i know. The bot was accepting quest and killing mobs but kept on killing even if the required kills were done. http://www.solarstrike.net/phpBB3/viewt ... =21&t=5745
I want it to only mount on the travel to the bflies and back though, it cosntantly mountin after killing a b fly and not mounting there kills alot of time
What waypoint code are you using? Code posted on this topic or your own? The code on this topic should only mount when the quest state is complete. Can you post your code?
noobbotter wrote:What waypoint code are you using? Code posted on this topic or your own? The code on this topic should only mount when the quest state is complete. Can you post your code?
<?xml version="1.0" encoding="utf-8"?><waypoints type="TRAVEL">
<waypoints><!-- MountSpeedhack -->
<onLoad>
RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00MountSpeedhack: "Horse" Press key.CTRL to ACTIVATE! or DEactivate.|r')")
repeat
while not keyPressedLocal(key.VK_CONTROL) do yrest(100); end;
MountSpeedHack();
RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00MountSpeedhack: ACTIVATED!|r')")
yrest(1500);
while not keyPressedLocal(key.VK_CONTROL) do yrest(100); end;
MountSpeedoff();
RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00MountSpeedhack: DEactivated.|r')")
yrest(1500);
until false
startjParty();
startGMDetect()
while (true) do
yrest(100);
end;
settings.profile.events.onLeaveCombat = function()
local queststate = getQuestStatus("Catch Butterflies")
if queststate == "complete" then
if not player.Mounted then
__WPL:setForcedWaypointType("TRAVEL");
__WPL:setDirection(WPT_BACKWARD);
player:mount("Flying Rune Disk (Permanent)");
yrest(500)
speed()
end
end
end
--== User Option ==--
Deliver = 0 -- Change if you want to enable/disable deliver quests 0=disable, any number = deliver after that amount of eggs (must b bigger than 9)
LagTime = 0 -- Affects accepting/completing quests. Increase LagTime if time is wasted by repeated CompleteQuests or AcceptQuests.
RunningSpeed = 59 -- The speed the character runs when not teleporting. 50 is normal. Recommended 100.
UseTeleporter = false -- Use Jduratedj's teleport userfunction. Please make sure you have it installed to use this option.
Timeout = 300 -- Time hens and eggs stay in the ignore list before being given another chance. '0' disables it, remains permanently in ignore list.
debugging = true -- Set to true to display extra useful information regarding egg drop rates and ignore lists.
--=================--
-- Apply speed hack
local playerAddress = memoryReadIntPtr(getProc(), addresses.staticbase_char, addresses.charPtr_offset);
if playerAddress ~= 0 then
memoryWriteFloat(getProc(), playerAddress + 0x40, RunningSpeed);
end
</onLoad>
settings.profile.mobs = {"Inferno Butterfly"}
changeProfileOption("LOOT", false)
changeProfileOption("ANTI_KS", true)
</waypoints>
<!-- # 1 --><waypoint x="6414" z="5468" y="159">
player:target_NPC("Robbie Butcher");
AcceptQuestByName("Catch Butterflies");
local dqCount, dqPerDay = RoMScript("Daily_count()");
if dqCount == 10 then
sendMacro("LeaveParty();")
player:sleep();
else
player:target_NPC("Robbie Butcher");
AcceptQuestByName("Catch Butterflies")
end
</waypoint>
<!-- # 4 --><waypoint x="6339" z="4882" y="182">
player:mount("Flying Rune Disk (Permanent)");
__WPL:setForcedWaypointType("TRAVEL")
</waypoint>
<!-- # 5 --><waypoint x="6435" z="4451" y="182"> </waypoint>
<!-- # 6 --><waypoint x="6503" z="4201" y="182"> </waypoint>
<!-- # 7 --><waypoint x="6530" z="4085" y="204"> </waypoint>
<!-- # 8 --><waypoint x="6551" z="3997" y="204"> </waypoint>
<!-- # 10 --><waypoint x="6572" z="3904" y="204"> </waypoint>
<!-- # 11 --><waypoint x="6605" z="3765" y="172"> </waypoint>
<!-- # 12 --><waypoint x="6834" z="3592" y="173"> </waypoint>
<!-- # 13 --><waypoint x="7031" z="3445" y="190"> </waypoint>
<!-- # 1 --><waypoint x="7135" z="3174" y="190"> </waypoint>
<!-- # 3 --><waypoint x="7360" z="3209" y="182"> </waypoint>
<!-- # 4 --><waypoint x="7342" z="3323" y="181"> </waypoint>
<!-- # 5 --><waypoint x="7449" z="3364" y="181"> </waypoint>
<!-- # 6 --><waypoint x="7514" z="3167" y="182"> </waypoint>
<!-- # 7 --><waypoint x="7631" z="3176" y="181"> </waypoint>
<!-- # 8 --><waypoint x="7662" z="3082" y="182"> </waypoint>
<!-- # 9 --><waypoint x="7555" z="3034" y="181"> </waypoint>
<!-- # 10 --><waypoint x="7541" z="3054" y="181">
queststate = getQuestStatus("Catch Butterflies")
if queststate == "complete" then
__WPL:setDirection(WPT_BACKWARD);
else
__WPL:setForcedWaypointType("NORMAL")
__WPL:setWaypointIndex(__WPL:findWaypointTag("one"));
end
</waypoint>
<!-- # 12 --><waypoint x="7610" z="2659" tag ='one'> </waypoint>
<!-- # 13 --><waypoint x="7662" z="2315" y="182"> </waypoint>
<!-- # 14 --><waypoint x="7646" z="2063" y="182">player:mount(); </waypoint>
<!-- # 15 --><waypoint x="7416" z="2033" y="177">player:mount(); </waypoint>
<!-- # 16 --><waypoint x="7104" z="2209" y="176">player:mount(); </waypoint>
<!-- # 17 --><waypoint x="6914" z="2155" y="176">player:mount(); </waypoint>
<!-- # 18 --><waypoint x="6911" z="2450" y="182">player:mount(); </waypoint>
<!-- # 19 --><waypoint x="7425" z="2660" y="181">
queststate = getQuestStatus("Catch Butterflies")
if queststate == "incomplete" then
__WPL:setWaypointIndex(__WPL:findWaypointTag("two"));
else
__WPL:setForcedWaypointType("TRAVEL")
__WPL:setWaypointIndex(__WPL:findWaypointTag("three"));
end
</waypoint>
<!-- # 21 --><waypoint x="7400" z="2656" tag ='two'> </waypoint>
<!-- # 22 --><waypoint x="6991" z="2577" y="181"> </waypoint>
<!-- # 23 --><waypoint x="6211" z="2389" y="181"> </waypoint>
<!-- # 24 --><waypoint x="6261" z="2211" y="182">player:mount(); </waypoint>
<!-- # 25 --><waypoint x="6356" z="1784" y="182">player:mount(); </waypoint>
<!-- # 26 --><waypoint x="6537" z="1786" y="181">player:mount(); </waypoint>
<!-- # 27 --><waypoint x="6689" z="1788" y="178">player:mount(); </waypoint>
<!-- # 28 --><waypoint x="6769" z="1995" y="177">player:mount(); </waypoint>
<!-- # 29 --><waypoint x="6927" z="2180" y="177">player:mount(); </waypoint>
<!-- # 30 --><waypoint x="7015" z="2507" y="181"> </waypoint>
<!-- # 31 --><waypoint x="7611" z="2707" y="182">
queststate = getQuestStatus("Catch Butterflies")
if queststate == "complete" then
__WPL:setWaypointIndex(__WPL:findWaypointTag("three"));
else
__WPL:setForcedWaypointType("TRAVEL")
__WPL:setWaypointIndex(__WPL:findWaypointTag("one"));
end
</waypoint>
<!-- # 33 --><waypoint x="7610" z="2722" tag ='three'> </waypoint>
<!-- # 34 --><waypoint x="7534" z="3036" y="181">player:mount(); </waypoint>
<!-- # 35 --><waypoint x="7638" z="3073" y="182"> </waypoint>
<!-- # 36 --><waypoint x="7629" z="3177" y="182"> </waypoint>
<!-- # 37 --><waypoint x="7523" z="3183" y="182"> </waypoint>
<!-- # 38 --><waypoint x="7471" z="3355" y="181">player:mount(); </waypoint>
<!-- # 39 --><waypoint x="7348" z="3326" y="182"> </waypoint>
<!-- # 40 --><waypoint x="7366" z="3204" y="182"> </waypoint>
<!-- # 41 --><waypoint x="7140" z="3172" y="189">player:mount(); </waypoint>
<!-- # 42 --><waypoint x="7031" z="3498" y="189"> </waypoint>
<!-- # 43 --><waypoint x="6621" z="3769" y="173">player:mount(); </waypoint>
<!-- # 44 --><waypoint x="6558" z="3958" y="203">player:mount(); </waypoint>
<!-- # 45 --><waypoint x="6474" z="4284" y="182"> </waypoint>
<!-- # 46 --><waypoint x="6320" z="4903" y="181">player:mount(); </waypoint>
<!-- # 47 --><waypoint x="6350" z="5072" y="182"> </waypoint>
<!-- # 48 --><waypoint x="6427" z="5398" y="177">
queststate = getQuestStatus("Catch Butterflies");
if queststate == "complete" then
player:target_NPC("Robbie Butcher");
CompleteQuestByName("Catch Butterflies")
end
local dqCount, dqPerDay = RoMScript("Daily_count()");
if dqCount == 10 then
sendMacro("LeaveParty();")
player:sleep();
else
player:target_NPC("Robbie Butcher");
AcceptQuestByName("Catch Butterflies")
end
</waypoint>
</waypoints>
This is the code I am using, I want to make my script as efficient as possible it still doesn't go back when I've killed 5 butterflys and when It gets the quest it runs to the butterflys instead of mounting and going which takes even more time. It takes about 5-6 minutes a daily and I want to make it less time.
Let's try to tackle this one issue at a time, starting first with the issue of running all the way to the butterflies.
In your second waypoint (you have labeled as #4), you have a player:mount function there so it should be mounting after accepting the quest. Maybe it starts mounting but doesn't finish? Try making that waypoint like this to see if it helps fix the mounting after accepting the quest:
noobbotter wrote:Let's try to tackle this one issue at a time, starting first with the issue of running all the way to the butterflies.
In your second waypoint (you have labeled as #4), you have a player:mount function there so it should be mounting after accepting the quest. Maybe it starts mounting but doesn't finish? Try making that waypoint like this to see if it helps fix the mounting after accepting the quest:
<!-- # 4 --><waypoint x="6339" z="4882" y="182">
player:mount("Flying Rune Disk (Permanent)");
repeat
yrest(1000) --or maybe player:rest(1)
player:update()
until not player.Casting
__WPL:setForcedWaypointType("TRAVEL")
</waypoint>
The next problem I'm having is when its attacking the butterflys it has a circle it goes in and kills all butterflys and guardiners, It will try to mount and finish up the waypoints once it hits 5 but the problem I'm having is the second it sees a butterfly on the way back or a gardener it will kill it and inturpt the return process
<?xml version="1.0" encoding="utf-8"?><waypoints type="TRAVEL">
<waypoints><!-- MountSpeedhack -->
<onLoad>
RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00MountSpeedhack: "Horse" Press key.CTRL to ACTIVATE! or DEactivate.|r')")
repeat
while not keyPressedLocal(key.VK_CONTROL) do yrest(100); end;
MountSpeedHack();
RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00MountSpeedhack: ACTIVATED!|r')")
yrest(1500);
while not keyPressedLocal(key.VK_CONTROL) do yrest(100); end;
MountSpeedoff();
RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00MountSpeedhack: DEactivated.|r')")
yrest(1500);
until false
startjParty();
startGMDetect()
while (true) do
yrest(100);
end;
settings.profile.events.onLeaveCombat = function()
local queststate = getQuestStatus("Catch Butterflies")
if queststate == "complete" then
if not player.Mounted then
__WPL:setForcedWaypointType("TRAVEL");
__WPL:setDirection(WPT_BACKWARD);
player:mount("Flying Rune Disk (Permanent)");
yrest(500)
speed()
end
end
end
--== User Option ==--
Deliver = 0 -- Change if you want to enable/disable deliver quests 0=disable, any number = deliver after that amount of eggs (must b bigger than 9)
LagTime = 0 -- Affects accepting/completing quests. Increase LagTime if time is wasted by repeated CompleteQuests or AcceptQuests.
RunningSpeed = 59 -- The speed the character runs when not teleporting. 50 is normal. Recommended 100.
UseTeleporter = false -- Use Jduratedj's teleport userfunction. Please make sure you have it installed to use this option.
Timeout = 300 -- Time hens and eggs stay in the ignore list before being given another chance. '0' disables it, remains permanently in ignore list.
debugging = true -- Set to true to display extra useful information regarding egg drop rates and ignore lists.
--=================--
-- Apply speed hack
local playerAddress = memoryReadIntPtr(getProc(), addresses.staticbase_char, addresses.charPtr_offset);
if playerAddress ~= 0 then
memoryWriteFloat(getProc(), playerAddress + 0x40, RunningSpeed);
end
</onLoad>
settings.profile.mobs = {"Inferno Butterfly"}
changeProfileOption("LOOT", false)
changeProfileOption("ANTI_KS", true)
</waypoints>
<!-- # 1 --><waypoint x="6414" z="5468" y="159">
player:target_NPC("Robbie Butcher");
AcceptQuestByName("Catch Butterflies");
local dqCount, dqPerDay = RoMScript("Daily_count()");
if dqCount == 10 then
sendMacro("LeaveParty();")
player:sleep();
else
player:target_NPC("Robbie Butcher");
AcceptQuestByName("Catch Butterflies")
end
</waypoint>
<!-- # 4 --><waypoint x="6339" z="4882" y="182">
player:mount("Flying Rune Disk (Permanent)");
repeat
yrest(1000) --or maybe player:rest(1)
player:update()
until not player.Casting
__WPL:setForcedWaypointType("TRAVEL")
</waypoint>
<!-- # 5 --><waypoint x="6435" z="4451" y="182"> </waypoint>
<!-- # 6 --><waypoint x="6503" z="4201" y="182"> </waypoint>
<!-- # 7 --><waypoint x="6530" z="4085" y="204"> </waypoint>
<!-- # 8 --><waypoint x="6551" z="3997" y="204"> </waypoint>
<!-- # 10 --><waypoint x="6572" z="3904" y="204"> </waypoint>
<!-- # 11 --><waypoint x="6605" z="3765" y="172"> </waypoint>
<!-- # 12 --><waypoint x="6834" z="3592" y="173"> </waypoint>
<!-- # 13 --><waypoint x="7031" z="3445" y="190"> </waypoint>
<!-- # 1 --><waypoint x="7135" z="3174" y="190"> </waypoint>
<!-- # 3 --><waypoint x="7360" z="3209" y="182"> </waypoint>
<!-- # 4 --><waypoint x="7342" z="3323" y="181"> </waypoint>
<!-- # 5 --><waypoint x="7449" z="3364" y="181"> </waypoint>
<!-- # 6 --><waypoint x="7514" z="3167" y="182"> </waypoint>
<!-- # 7 --><waypoint x="7631" z="3176" y="181"> </waypoint>
<!-- # 8 --><waypoint x="7662" z="3082" y="182"> </waypoint>
<!-- # 9 --><waypoint x="7555" z="3034" y="181"> </waypoint>
<!-- # 10 --><waypoint x="7541" z="3054" y="181">
queststate = getQuestStatus("Catch Butterflies")
if queststate == "complete" then
__WPL:setDirection(WPT_BACKWARD);
else
__WPL:setForcedWaypointType("NORMAL")
__WPL:setWaypointIndex(__WPL:findWaypointTag("one"));
end
</waypoint>
<!-- # 12 --><waypoint x="7610" z="2659" tag ='one'> </waypoint>
<!-- # 13 --><waypoint x="7662" z="2315" y="182"> </waypoint>
<!-- # 14 --><waypoint x="7646" z="2063" y="182">player:mount(); </waypoint>
<!-- # 15 --><waypoint x="7416" z="2033" y="177">player:mount(); </waypoint>
<!-- # 16 --><waypoint x="7104" z="2209" y="176">player:mount(); </waypoint>
<!-- # 17 --><waypoint x="6914" z="2155" y="176">player:mount(); </waypoint>
<!-- # 18 --><waypoint x="6911" z="2450" y="182">player:mount(); </waypoint>
<!-- # 19 --><waypoint x="7425" z="2660" y="181">
queststate = getQuestStatus("Catch Butterflies")
if queststate == "incomplete" then
__WPL:setWaypointIndex(__WPL:findWaypointTag("two"));
else
__WPL:setForcedWaypointType("TRAVEL")
__WPL:setWaypointIndex(__WPL:findWaypointTag("three"));
end
</waypoint>
<!-- # 21 --><waypoint x="7400" z="2656" tag ='two'> </waypoint>
<!-- # 22 --><waypoint x="6991" z="2577" y="181"> </waypoint>
<!-- # 23 --><waypoint x="6211" z="2389" y="181"> </waypoint>
<!-- # 24 --><waypoint x="6261" z="2211" y="182">player:mount(); </waypoint>
<!-- # 25 --><waypoint x="6356" z="1784" y="182">player:mount(); </waypoint>
<!-- # 26 --><waypoint x="6537" z="1786" y="181">player:mount(); </waypoint>
<!-- # 27 --><waypoint x="6689" z="1788" y="178">player:mount(); </waypoint>
<!-- # 28 --><waypoint x="6769" z="1995" y="177">player:mount(); </waypoint>
<!-- # 29 --><waypoint x="6927" z="2180" y="177">player:mount(); </waypoint>
<!-- # 30 --><waypoint x="7015" z="2507" y="181"> </waypoint>
<!-- # 31 --><waypoint x="7611" z="2707" y="182">
queststate = getQuestStatus("Catch Butterflies")
if queststate == "complete" then
__WPL:setWaypointIndex(__WPL:findWaypointTag("three"));
else
__WPL:setForcedWaypointType("TRAVEL")
__WPL:setWaypointIndex(__WPL:findWaypointTag("one"));
end
</waypoint>
<!-- # 33 --><waypoint x="7610" z="2722" tag ='three'> </waypoint>
<!-- # 34 --><waypoint x="7534" z="3036" y="181">player:mount(); </waypoint>
<!-- # 35 --><waypoint x="7638" z="3073" y="182"> </waypoint>
<!-- # 36 --><waypoint x="7629" z="3177" y="182"> </waypoint>
<!-- # 37 --><waypoint x="7523" z="3183" y="182"> </waypoint>
<!-- # 38 --><waypoint x="7471" z="3355" y="181">player:mount(); </waypoint>
<!-- # 39 --><waypoint x="7348" z="3326" y="182"> </waypoint>
<!-- # 40 --><waypoint x="7366" z="3204" y="182"> </waypoint>
<!-- # 41 --><waypoint x="7140" z="3172" y="189">player:mount(); </waypoint>
<!-- # 42 --><waypoint x="7031" z="3498" y="189"> </waypoint>
<!-- # 43 --><waypoint x="6621" z="3769" y="173">player:mount(); </waypoint>
<!-- # 44 --><waypoint x="6558" z="3958" y="203">player:mount(); </waypoint>
<!-- # 45 --><waypoint x="6474" z="4284" y="182"> </waypoint>
<!-- # 46 --><waypoint x="6320" z="4903" y="181">player:mount(); </waypoint>
<!-- # 47 --><waypoint x="6350" z="5072" y="182"> </waypoint>
<!-- # 48 --><waypoint x="6427" z="5398" y="177">
queststate = getQuestStatus("Catch Butterflies");
if queststate == "complete" then
player:target_NPC("Robbie Butcher");
CompleteQuestByName("Catch Butterflies")
end
local dqCount, dqPerDay = RoMScript("Daily_count()");
if dqCount == 10 then
sendMacro("LeaveParty();")
player:sleep();
else
player:target_NPC("Robbie Butcher");
AcceptQuestByName("Catch Butterflies")
end
</waypoint>
</waypoints>
I added into wP number 4 what you suggested but it still doesn't mount it just runs straight from the quest giver to the butterflys but on the way back it mounts
It looked like you had a lot of player:mount() commands spread out in there. If I remember right, if you are mounted already and you have that command, it will unmount you. I went through your code, created a function for mounted and inserted that in the places that need it. Then I found some areas where the travel type might have been incorrect. Did a few other adjustments. Try this and see if it works for you:
player:mount() only mounts. It does accept an optional argument to dismount, eg. player:mount(true) will dismount. So it looks like player:mount("Flying Rune Disk (Permanent)") will make it think you want to dismount. You should just be using player:mount()
Please consider making a small donation to me to support my continued contributions to the bot and this forum. Thank you. Donate
I check all posts before reading PMs. So if you want a fast reply, don't PM me but post a topic instead. PM me for private or personal topics only.
So, Miahiscool34, if you just remove the rune disk part from the player:mount function you should be good to go. In my previous code I posted, just change line 35 from
and then you should be good to go. I would still keep and try out the changes I posted for you because there were some other issues I think I corrected in there as well. Let me know how it goes.