-
lisa
- Posts: 8332
- Joined: Tue Nov 09, 2010 11:46 pm
- Location: Australia
#21
Post
by lisa » Fri Feb 28, 2014 6:52 am
since find nearest name or id uses name or id I am just going with this atm
Code: Select all
local mBag = player:findNearestNameOrId(GetIdName(105930))
if mBag and inventory:itemTotalCount(0) ~= 0 then
print("\n\n found bag \n\n")
player:target_Object(mBag.Id)
yrest(1000) -- If not enough time to pick up bag, increase it.
player:target_Object(mBag.Id)
yrest(1000)
end
Since the name hasn't changed then it will still work for any language.
-
beanybabe
- Posts: 647
- Joined: Wed Mar 06, 2013 1:27 am
#22
Post
by beanybabe » Thu Oct 23, 2014 10:06 pm
I rewrote your bags routing a year ago but hesitated to post it since it never misses any bags but being so near 100 it does not matter much now.
Here is my super improved bag looter for all zones so far till the jungle. this will get more bags.
Code: Select all
-- get gift bags
local mBag=player:findNearestNameOrId({107447,105930,105982,107217,107442,107444,107445,107446})
if mBag ~= nul then
player:lootAll();
yrest(1000);
player:target_Object(mBag.Id,100,true,true)
else local mBag=nul
end
-
rock5
- Posts: 12173
- Joined: Tue Jan 05, 2010 3:30 am
- Location: Australia
#23
Post
by rock5 » Thu Oct 23, 2014 11:13 pm
This is a bit strange. LootAll has nothing to do with looting mysterious bags, it's for looting bodies. And "else local mBag=nul" does nothing.
I assume you used a list of Ids because of language naming problems. So you could just use Lisas version but with your list of ids.
- 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.
- How to: copy and paste in micromacro
________________________
Quote:
- “They say hard work never hurt anybody, but I figure, why take the chance.”
-
beanybabe
- Posts: 647
- Joined: Wed Mar 06, 2013 1:27 am
#24
Post
by beanybabe » Fri Oct 24, 2014 12:59 pm
The list of id's is to get every bag in every zone I came across.
Lisa was the original code I used but I watched it run over time and if you were in party the timing on bags would take longer and it would miss a lot of them. If you solo the timing would be less and you don't need the extra wait. yrest(1000); this number needs be lots bigger to not miss any on Lisa's version.
The changes I made cause it to only wait the time needed and to not leave before it gets the bag. Its makes Lisa waypoint lots better. I could have not made it without Lisa's but from reading lots of other people code I found this change (mBag.Id,100,true,true) made the difference.
The lootall was just to clean up mobs before getting bag. I keep loot after kill set to false.
I made this with one of her first versions. It works perfectly every time.
-
rock5
- Posts: 12173
- Joined: Tue Jan 05, 2010 3:30 am
- Location: Australia
#25
Post
by rock5 » Fri Oct 24, 2014 10:32 pm
Yeah, maybe your target_Object settings would work better. I think those settings will make it keep trying until it successfully loots the bag. And maybe it would be a good idea to loot first before trying to get the bag, so it gives the bag more time to be lootable. Although with those fail-safe target_Object settings it's probably not necessary. You couldn just leave the looting to the profile loot settings. It may even be possible that by going to loot other bodies you might go out of range of the bag. I believe looting range is usually larger than target_Object range which uses HARVEST_DISTANCE which is usually 120.
- 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.
- How to: copy and paste in micromacro
________________________
Quote:
- “They say hard work never hurt anybody, but I figure, why take the chance.”
-
beanybabe
- Posts: 647
- Joined: Wed Mar 06, 2013 1:27 am
#26
Post
by beanybabe » Sat Oct 25, 2014 10:56 pm
All I can say it it gets so many rings you need to throw them away. lol
-
wishblades
- Posts: 36
- Joined: Fri Aug 31, 2012 4:31 pm
#27
Post
by wishblades » Wed Dec 31, 2014 2:02 pm
None of these have worked for me yet and I think I tried them all so if I am doing it wrong, please let me know.....
Code: Select all
<onLeaveCombat><![CDATA[
-- get gift bags
local mBag=player:findNearestNameOrId({107447,105930,105982,107217,107442,107444,107445,107446})
if mBag ~= nul then
player:lootAll();
yrest(1000);
player:target_Object(mBag.Id,100,true,true)
else local mBag=nul
end
-- Additional Lua code to execute after killing an enemy
]]></onLeaveCombat>
-
BlubBlab
- Posts: 948
- Joined: Fri Nov 30, 2012 11:33 pm
- Location: My little Pony cafe
#28
Post
by BlubBlab » Wed Dec 31, 2014 2:10 pm
I don't know is nul right mustn't it be nil instead?
The other thing is which zone maybe there were some new versions added to the list of bags in the newest zone.
-
wishblades
- Posts: 36
- Joined: Fri Aug 31, 2012 4:31 pm
#29
Post
by wishblades » Wed Dec 31, 2014 6:27 pm
OK I got it to work, this one works for me....
Code: Select all
<onLeaveCombat><![CDATA[
-- get gift bags
local mBag = player:findNearestNameOrId(GetIdName(105930))
if mBag and inventory:itemTotalCount(0) ~= 0 then
print("\n\n found bag \n\n")
player:target_Object(mBag.Id)
yrest(1000) -- If not enough time to pick up bag, increase it.
player:target_Object(mBag.Id)
yrest(1000)
end
-- Additional Lua code to execute after killing an enemy
]]></onLeaveCombat>
-
beanybabe
- Posts: 647
- Joined: Wed Mar 06, 2013 1:27 am
#30
Post
by beanybabe » Wed Jan 07, 2015 10:44 am
This also has code for rogues to hide while waiting for bag. enjoy updated to the 92 zone
Code: Select all
-- get gift bags
local mBag = player:findNearestNameOrId({107447,105930,105982,107217,107442,107444,107445,107446,107448,107449})
if mBag ~= nul then
yrest(1000);
if (player.Class1 == CLASS_ROGUE) and (not player:hasBuff("500675")) then
player:cast("ROGUE_HIDE");
end
yrest(10000);
player:target_Object(mBag.Id,100,true,true)
player:lootAll(); -- you may not need this line depending on your loot settings
else local mBag=nul
end
-
beanybabe
- Posts: 647
- Joined: Wed Mar 06, 2013 1:27 am
#31
Post
by beanybabe » Wed Jun 03, 2015 12:46 am
the first script in this thread will handle bags in every zone in rom as far as I have tried.
-
wishblades
- Posts: 36
- Joined: Fri Aug 31, 2012 4:31 pm
#32
Post
by wishblades » Fri Jun 17, 2016 11:02 pm
None of the scripts are working in the new zone.
-
beanybabe
- Posts: 647
- Joined: Wed Mar 06, 2013 1:27 am
#33
Post
by beanybabe » Sat Jun 18, 2016 8:10 am
They are working you may have another problem.
check your versions they need to be near
MicroMacro v1.04.174
RoM Bot Version 3.29, Revision 787
-
wishblades
- Posts: 36
- Joined: Fri Aug 31, 2012 4:31 pm
#34
Post
by wishblades » Sun Jun 19, 2016 5:19 pm
I have:
MicroMacro v1.05.207
RoM Bot Version 3.29, Revision <UNKNOWN>
-
kenzu38
- Posts: 279
- Joined: Sun Dec 02, 2012 8:52 am
#35
Post
by kenzu38 » Wed Jun 22, 2016 1:34 pm
I don't play the game anymore so I'm not sure, but I can only think of two reasons why it wouldn't work.
First:
Vengefulmilk wrote:Hey guys, with the newest zone some of the bags bug out and you'll need to add 107446 in to loot them. Works flawlessly for me now that bags were dropping with the names Sys107446 or something similar.
So like said above, if the bags don't have proper names, like Sys_somenumbers_Name, then finding it through its name will not work.
Second:
If your code lists the Ids to find in a table, then it's highly likely the Id for the new zone bags are not the same. You'll have to add the Id to the table of Ids first.
-
beanybabe
- Posts: 647
- Joined: Wed Mar 06, 2013 1:27 am
#36
Post
by beanybabe » Mon Jun 27, 2016 1:58 am
here is what I use in my onleave combat to get bags and chests
Code: Select all
-- get gift bags
if player:findNearestNameOrId("Gift Bag") or player:findNearestNameOrId("Mysterious Bag") then
player:lootAll()
rest(1000);
if (player.Class1 == CLASS_ROGUE) and (not player:hasBuff("500675")) then
player:cast("ROGUE_HIDE");
end
rest(10000);
player:target_Object("Gift Bag",100,true,true)
player:target_Object("Mysterious Bag",100,true,true)
else
end
-- get mirror chests
local mBag = player:findNearestNameOrId(GetIdName(104529))
if mBag and inventory:itemTotalCount(0) ~= 0 then
print("\n\n found bag \n\n")
player:target_Object(mBag.Id)
yrest(1000) -- If not enough time to pick up bag, increase it.
player:target_Object(mBag.Id)
yrest(1000)
end
Who is online
Users browsing this forum: Bing [Bot] and 5 guests