faster looting, a lot of bodies

Runes of Magic/Radiant Arcana (http://www.runesofmagic.com)
Message
Author
User avatar
dap
Posts: 23
Joined: Thu Aug 11, 2011 1:44 am

faster looting, a lot of bodies

#1 Post by dap » Wed Jun 06, 2012 9:44 am

Hello

I'm trying to decrease rest time between looting when have a lot of lootable bodies, did anyone know how to do this

i tried to modify classes/player.lua file but i didn't found nothing

thanks in advance

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: faster looting, a lot of bodies

#2 Post by rock5 » Wed Jun 06, 2012 9:59 am

I can't see anything. Maybe it's just taking as long as it takes. I'm assuming it's stopping longer than you'd like at some point. If you tell me exactly when that is, I'll have another look.

Have you considered using pet perfume?
  • 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.”
          • Ronald Reagan

User avatar
dap
Posts: 23
Joined: Thu Aug 11, 2011 1:44 am

Re: faster looting, a lot of bodies

#3 Post by dap » Wed Jun 06, 2012 10:37 am

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints type="TRAVEL">
<onload>
	function waitforaggro(waittime)
		printf("\nWaiting for aggro...\n\n");
		waittime = waittime or 60
		local starttime = os.time();
		local combatstate;
		repeat
			yrest(100);
			combatstate = RoMScript("GetPlayerCombatState();");
		until (os.time() - starttime >= waittime or combatstate == true)
		if combatstate == true then
			printf("...Done\n\n");
		else
			player:update();
			printf("...something goes wrong, check player position at (%d, %d)\t", player.X, player.Z)
		end
	end

	changeProfileSkill("MAGE_PURGATORY_FIRE", "AutoUse", true);
	changeProfileOption("COMBAT_DISTANCE", 50);
	changeProfileOption("MAX_TARGET_DIST", 50);
	changeProfileOption("LOOT_IN_COMBAT", false);
	changeProfileOption("LOOT_DISTANCE", 250);
</onload>
	<!-- # 1 -->
	<waypoint x="-38165" z="-9273" y="1061" type="RUN">
		player:update();
		waitForLoadingScreen(10);
	</waypoint>
	<!-- #  2 -->
	<waypoint x="1929" z="1085" y="47">
		keyboardPress(settings.hotkeys.JUMP.key);
		yrest(2000);
		player:cast("DRUID_SAVAGE_BLESSING");
		useGoodie("luck");
		printf("\a");
	</waypoint>
	<!-- #  3 -->
	<waypoint x="2043" z="1361" y="47">
		waitforaggro(10);                    --takes aggro and collect few mobs on another waypoints #4, #5, #6, #7, and #8
	</waypoint>
	<!-- #  4 --><waypoint x="2040" z="1402" y="47">	</waypoint>
	<!-- #  5 --><waypoint x="2017" z="1606" y="47">
	</waypoint>
	<!-- #  6 --><waypoint x="2166" z="1722" y="47">
	</waypoint>
	<!-- #  7 --><waypoint x="2156" z="1533" y="47">
	</waypoint>
	<!-- #  8 -->
	<waypoint x="2368" z="1622" y="47">
	</waypoint>
	<!-- #  9 -->
	<waypoint x="2532" z="1621" y="47" type="RUN"> -- now kill mobs with pugatory fire and takes drop, here i'm trying to decrease time between looting
	</waypoint>
player takes drop simply with lootmatic without pet perfume

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: faster looting, a lot of bodies

#4 Post by rock5 » Wed Jun 06, 2012 10:46 am

Do you have Lootomatic looting all or leaving some stuff unlooted?
  • 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.”
          • Ronald Reagan

User avatar
dap
Posts: 23
Joined: Thu Aug 11, 2011 1:44 am

Re: faster looting, a lot of bodies

#5 Post by dap » Wed Jun 06, 2012 10:48 am

loots all, but drops itmes of small value

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: faster looting, a lot of bodies

#6 Post by rock5 » Wed Jun 06, 2012 11:16 am

So does it stop longer than you'd like at some point. If you tell me exactly when that is, I'll have another look.
  • 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.”
          • Ronald Reagan

User avatar
dap
Posts: 23
Joined: Thu Aug 11, 2011 1:44 am

Re: faster looting, a lot of bodies

#7 Post by dap » Wed Jun 06, 2012 11:40 am

So, when he earns the mobs, killing all, and then collecting drop.
It looks like I'm doing it by hand until the collection ..
for example, when manually press the mouse a few times character gathers drop very quickly, but when does it bot, the time between harvest is long

Sorry for my English, I hope you understand me

Regards

User avatar
silinky
Posts: 213
Joined: Mon Nov 23, 2009 5:07 am

Re: faster looting, a lot of bodies

#8 Post by silinky » Thu Jun 07, 2012 5:39 am

it would be useful for you to use teleport when looting. it makes it faster or so it seems. the char spends time to stand up from the looted mob.
HOW to do that is a nother question and i don't know the answer. maybe the big guys can answer this.

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: faster looting, a lot of bodies

#9 Post by rock5 » Thu Jun 07, 2012 5:56 am

I've actually been thinking of adding teleport to loot in my ks script. A limitation I'm seeing is if I kill stuff too quickly my pet can end up looting too quickly (with Magi Perfume) and fill up the ItemQueue fster then it can empty which results in lost items. So the only solution is to loot some bodies myself. The faster I kill stuff the more bodies I have to loot myself. The more bodies I have to loot myself, the more time wasted looting. So I'm hoping teleporting to to loot will help.

On the subject of bending over to loot, it's possible if you are flying it might not bend over to loot so might be faster.
  • 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.”
          • Ronald Reagan

User avatar
dap
Posts: 23
Joined: Thu Aug 11, 2011 1:44 am

Re: faster looting, a lot of bodies

#10 Post by dap » Thu Jun 07, 2012 7:25 am

fly() helped a little, I think that fly() + teleport() should work perfectly, but I do not know how to implement the teleport() function to the lootall().

I'll try to create the loot() from the combination fly() + teleport() + lootall() but I'm afraid that my knowledge may not be enough

thank you very much for your answers

EDIT:

several changes and the fly() function added to the code lootall().

modified part of the code file "player.lua"

Code: Select all

function CPlayer:lootAll()
	if( settings.profile.options.FLYLOOT == true ) then fly(); end;
	if( settings.profile.options.LOOT ~= true ) then
		if( settings.profile.options.DEBUG_LOOT) then
			cprintf(cli.yellow, "[DEBUG] don't loot all reason: settings.profile.options.LOOT ~= true\n");
		end;
		return
	end

	if( settings.profile.options.LOOT_ALL ~= true ) then
		if( settings.profile.options.DEBUG_LOOT) then
			cprintf(cli.yellow, "[DEBUG] don't loot all reason: settings.profile.options.LOOT_ALL ~= true\n");
		end;
		return
	end

	-- Warn user if they still have 'lootbodies()' userfunction installed.
	if type(lootBodies) == "function" then
		cprintf(cli.yellow,"The userfunction 'lootBodies()' is obsolete and might interfere with the bots 'lootAll()' function. Please delete the 'addon_lootbodies.lua' file from the 'userfunctions' folder.\n")
	end


	while true do
		-- Check if inventory is full. We don't loot if inventory is full.
		if inventory:itemTotalCount(0) == 0 then
			if( settings.profile.options.DEBUG_LOOT) then
				cprintf(cli.yellow, "[DEBUG] don't loot all reason: inventory is full\n");
			end;
			return
		end

		self:update()
		if( self.Battling  and
			self:findEnemy(true,nil,evalTargetDefault)) then
			break
		end

		local Lootable = self:findEnemy(false, nil, evalTargetLootable)

		if Lootable == nil then
			break
		end

		self:target(Lootable)
		self:update()
		if self.TargetPtr ~= 0 then -- Target's still there.
			self:loot()
			if self:findEnemy(true, nil, evalTargetDefault) then
				-- not looting because of aggro
				return
			end
			yrest(50)
			Lootable:update();
			if Lootable.Lootable == true then
				-- Failed to loot. Add to ignore list
				lootIgnoreListPos = lootIgnoreListPos + 1
				if lootIgnoreListPos > settings.profile.options.LOOT_IGNORE_LIST_SIZE then lootIgnoreListPos = 1 end
				lootIgnoreList[lootIgnoreListPos] = Lootable.Address
			end
		end
	end
	if( settings.profile.options.FLYLOOT == true ) then flyoff(); end;
end
you still need to add an option to profile

Code: Select all

<!-- Loot settings -->
		<option name="FLYLOOT"			  value="false" /> <!-- Makes a loot faster, without animation. Use carefully -->
and turn it on of course.

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: faster looting, a lot of bodies

#11 Post by rock5 » Thu Jun 07, 2012 9:04 am

For my ks script I was just going to teleport to my last kill as part of onLeaveCombat because the bot does onLeaveCombat before looting and I don't need to loot all. But for a complete solution like what you want you probably have to put a teleport in the loot function. It should be pretty easy. Just before it loots it needs to teleport first. The part that actually loots is the "Attack()" command in the looten() function in player.lua. So just before the "Attack()" on line 1721 of player.lua try adding this.

Code: Select all

if settings.profile.options.FLYLOOT == true then teleport(target.X,target.Z,target.Y) end
Usually if the distance to the loot is more than 115 it will do multiple teleports. If you get any pull backs you might have to modify the pause time between teleports and/or the teleport distance with the following 2 functions
  • teleport_SetStepSize(val)
    teleport_SetStepPause(val)
  • 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.”
          • Ronald Reagan

User avatar
dap
Posts: 23
Joined: Thu Aug 11, 2011 1:44 am

Re: faster looting, a lot of bodies

#12 Post by dap » Thu Jun 07, 2012 10:12 am

I struggled with this a few days, now it works ok
Thanks again.

i've attached the whole file "player.lua"

regards
Attachments
player.rar
(26.44 KiB) Downloaded 163 times

BillDoorNZ
Posts: 446
Joined: Wed Aug 03, 2011 7:37 pm

Re: faster looting, a lot of bodies

#13 Post by BillDoorNZ » Thu Jun 07, 2012 3:38 pm

hmm....does the game onlyt queue up to 20 items in the ItemQueue rock??? if so, I'll need to modify my code :(

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: faster looting, a lot of bodies

#14 Post by rock5 » Thu Jun 07, 2012 6:33 pm

BillDoorNZ wrote:hmm....does the game onlyt queue up to 20 items in the ItemQueue rock??? if so, I'll need to modify my code :(
The queue only holds 20. I think anything received, after the queue is full, is lost.

If you haven't already discovered it there is a niffty little addon that shows the number of items in the item queue called itemqueuecount.
http://rom.curseforge.com/addons/itemqueuecount/
  • 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.”
          • Ronald Reagan

User avatar
silinky
Posts: 213
Joined: Mon Nov 23, 2009 5:07 am

Re: faster looting, a lot of bodies

#15 Post by silinky » Sat Jun 09, 2012 5:01 pm

rock5, if this works, could you commit it into the bot, so we would not have to hack it?
thanks :)

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: faster looting, a lot of bodies

#16 Post by rock5 » Sat Jun 09, 2012 6:05 pm

The problem is, it uses teleport, a userfunction. So I can't commit it without commiting teleport with it and I'd rather keep hacks out of the main bot files.
  • 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.”
          • Ronald Reagan

User avatar
silinky
Posts: 213
Joined: Mon Nov 23, 2009 5:07 am

Re: faster looting, a lot of bodies

#17 Post by silinky » Sun Jun 10, 2012 2:27 am

ah that makes logic :)
then i will merge when updating. it usually makes me run a ks instead of 15 minutes, in 10 minutes, making my profits bigger ^_^
i see that it does not teleport. i figured if i would put telefollow like this, it would teleport also.

Code: Select all

if self.TargetPtr ~= 0 then -- Target's still there.
		telefollow(5) -- this is the code i added
         self:loot()
         if self:findEnemy(true, nil, evalTargetDefault) then
            -- not looting because of aggro
            return
         end
         yrest(50)
         Lootable:update();
         if Lootable.Lootable == true then
            -- Failed to loot. Add to ignore list
            lootIgnoreListPos = lootIgnoreListPos + 1
            if lootIgnoreListPos > settings.profile.options.LOOT_IGNORE_LIST_SIZE then lootIgnoreListPos = 1 end
            lootIgnoreList[lootIgnoreListPos] = Lootable.Address
         end
      end
i will test it right now, if it does not work, or someone knows a better solution, please help me out. thx :)

User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: faster looting, a lot of bodies

#18 Post by rock5 » Tue Jun 12, 2012 3:37 am

I just had another idea. How about teleporting when moving into range of mobs? I'm testing it now.
  • 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.”
          • Ronald Reagan

User avatar
silinky
Posts: 213
Joined: Mon Nov 23, 2009 5:07 am

Re: faster looting, a lot of bodies

#19 Post by silinky » Tue Jun 12, 2012 1:10 pm

that is a super idea :) but until then, i simply turned on fly mode inside ks :))
also made a userfunction to kill all mobs in a small area before looting. those poison frogs are pesky.

User avatar
dap
Posts: 23
Joined: Thu Aug 11, 2011 1:44 am

Re: faster looting, a lot of bodies

#20 Post by dap » Thu Jun 14, 2012 8:16 am

now there's another problem.
character after looting target waiting for disappear and then moves to the next.
Previously, character didn't wait for the end of the animation

Any ideas why this is happening?

Post Reply

Who is online

Users browsing this forum: Amazon [Bot] and 2 guests