Secret Garden Ideas

Additional botting resources. Addons may be either for the game itself or for the RoM bot.
Forum rules
Only post additional bot resources here. Please do not ask unrelated questions.
Message
Author
User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Secret Garden Ideas

#21 Post by rock5 » Mon Mar 24, 2014 11:03 pm

ZZZZZ wrote:I have found that if you follow that orange line along to the end looting the 2 on either side of you as you go, then go across to the next line to the left and start heading back towards the beginning you can get the most
I guess that would make about 56 easily reached which seems to be more that can be gotten. Then you're nice an close to the last 6 chests.
lisa wrote:yeah just tested and u cant get all 4 from 1 spot, takes a slight movement but being slight you "could" be just off centre and get 2 then do a small move to other side of centre and do other 2, its a very small movement.
As long as those small movements don't cause it to miss loot.
  • 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
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Secret Garden Ideas

#22 Post by lisa » Mon Mar 24, 2014 11:37 pm

yeah what I meant looks like this, spot to spot but since gap between 2nd and 3rd spot would be long I guess it would work out similar in the end.
Attachments
Garden.jpg
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

ninjazero
Posts: 6
Joined: Mon Mar 24, 2014 5:20 am

Re: Secret Garden Ideas

#23 Post by ninjazero » Mon Mar 24, 2014 11:53 pm

One other thing to consider is once its done and your out of the instance you may want to run around the corner and talk with NPC Jamie -- 123584 ChoiceOption(1);.

He is typically around x="3733" z="-549" y="44" but roams somewhat and gives out a daily Ancient Treasure Key and Jade Treasure Chest Key to open up the Ancient Jade Treasure Chest and Ancient Treasure Chest of Spendor.

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

Re: Secret Garden Ideas

#24 Post by rock5 » Tue Mar 25, 2014 1:52 am

Looking at that I think the easiest way to do it is to make a path or bunch of moveTos and then open the 4 chests within range sequentially. So what is the loot distance anyway. Strange that it's less than 35. What is it, 30?
  • 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
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Secret Garden Ideas

#25 Post by lisa » Tue Mar 25, 2014 2:13 am

Ok run this a few times and it gets consistantly 36-38 chests each time, I have no idea how you could possible get to 50, just seems a bit far fetched.

This teleports between 2 chests and opens them both then teleports again, coords are set in a table. For now it is still doing an CObjectList() every time it teleports, not sure if it adds much time at all in the long run but if rock did the number each chest type thing then you would only need to do it once at start. Like I said though not sure it is slowing it down much.

I set it up as a userfunction for testing, just do commandline and then call it with
logchest()
It will talk with NPC in instance and then start event and off it goes, so just enter instance and then call it.

Code: Select all

function logchest()
	local path = {
{X= -139 , Z= -291, Y= 5 },
{X= -106 , Z= -253, Y= 4 },
{X= -73 , Z= -219, Y= 5 },
{X= -38 , Z= -184, Y= 6 },
{X= -5 , Z= -147, Y= 7 },
{X= 30 , Z= -110, Y= 8 },
{X= 67 , Z= -78, Y= 10 },
{X= 101 , Z= -38, Y= 13 },
{X= 135 , Z= -4, Y= 15 },
{X= 169 , Z= 33, Y= 13 },
{X= 101 , Z= 104, Y= 14 },
{X= 66 , Z= 68, Y= 15 },
{X= 32 , Z= 32, Y= 14 },
{X= -2 , Z= -4, Y= 12 },
{X= -35 , Z= -39, Y= 9 },
{X= -70 , Z= -74, Y= 6 },
{X= -104 , Z= -110, Y= 4 },
{X= -140 , Z= -148, Y= 4 },
{X= -173 , Z= -183, Y= 5 },
{X= -208 , Z= -220, Y= 7 },
{X= -286 , Z= -154, Y= 8 },
{X= -252 , Z= -118, Y= 7 },
{X= -216 , Z= -79, Y= 7 },
{X= -182 , Z= -43, Y= 8 },
{X= -148 , Z= -8, Y= 9 },
{X= -111 , Z= 27, Y= 10 },
{X= -81 , Z= 60, Y= 12 },
{X= -44 , Z= 99, Y= 15 },
{X= -9 , Z= 134, Y= 16 },
}
	player:target_NPC("Kekonee")
	yrest(500)
	RoMScript("ChoiceOption(2)") 
	yrest(1000)
	local starttime = os.time()
	local count = 0
	local tablechest = {}
	
	local function openchest()
		local tablechest = {}
		local objectList = CObjectList();
		objectList:update();
		local objSize = objectList:size()
		for i = 0,objSize do
			local obj = objectList:getObject(i);
			if obj.Id == 123536 then
				--pawn = CPawn(obj.Address)
				obj.distance = distance(obj,player)
				--logInfo("secret2","{X= "..pawn.X..", Z="..pawn.Z.."},")
				table.insert(tablechest, table.copy(obj))
			end
		end
		-- sort by distance
		local function distancesortfunc(a,b)
			return b.distance > a.distance
		end
		table.sort(tablechest, distancesortfunc)
		for i = 1, 2 do
			if (os.time() - starttime) > 60 then break end
			local ttkeeper = os.time()
			if 30 > tablechest[i].distance then
				repeat
					player:target(tablechest[i].Address)
					yrest(100)
					Attack()
					yrest(300)
					player:updateCasting()
					yrest(200)
				until player.Casting or ((os.time() - starttime) > 60) or ((os.time() - ttkeeper) > 3)
			yrest(500)
			count = count + 1
			end
		end
	end
	for i = 1, #path do
		if (os.time() - starttime) > 60 then break end
		teleport(path[i].X,path[i].Z,path[i].Y)
		openchest(true)
	end
	print(count)
end
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Secret Garden Ideas

#26 Post by lisa » Tue Mar 25, 2014 2:37 am

Last run did 38 chests, not including last 6 and I got 2 luck fairies, got a tonne of loooots lol

This is before last 6 chests.
gardenloot.jpg
The char is lvl 20 lmao
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

Notorious
Posts: 19
Joined: Thu Jan 02, 2014 7:46 am

Re: Secret Garden Ideas

#27 Post by Notorious » Tue Mar 25, 2014 3:22 am

Thank you Lisa. Works great. :lol:

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Secret Garden Ideas

#28 Post by lisa » Tue Mar 25, 2014 3:37 am

tweaking the rests 50 milliseconds at a time, Best I got was looted 40 chests, I got to 42 but it would interupt the cast bar quite a lot and actually looted around 25. Cast bar is constantly on screen, milliseconds of it not on screen.

It is possible that people with faster PC and better ping might be able to tweak the yrests to get over 40 but to be honest I doubt it.

Note I am not counting the 6 that are left after the time is up.

makes me wonder why they had 110 chests and only enough time to loot 40 of them.

using this atm.
At the top is local tweakit = 100, change value to see if you can go faster
if cast bar never gets inturupted then reduce number, you can go negative numbers aswell, -50 -100.
If you are getting cast bar inturupted then increase number.

Code: Select all

function logchest()
	local tweakit = 100
	local path = {
{X= -139 , Z= -291, Y= 5 },
{X= -106 , Z= -253, Y= 4 },
{X= -73 , Z= -219, Y= 5 },
{X= -38 , Z= -184, Y= 6 },
{X= -5 , Z= -147, Y= 7 },
{X= 30 , Z= -110, Y= 8 },
{X= 67 , Z= -78, Y= 10 },
{X= 101 , Z= -38, Y= 13 },
{X= 135 , Z= -4, Y= 15 },
{X= 169 , Z= 33, Y= 13 },
{X= 101 , Z= 104, Y= 14 },
{X= 66 , Z= 68, Y= 15 },
{X= 32 , Z= 32, Y= 14 },
{X= -2 , Z= -4, Y= 12 },
{X= -35 , Z= -39, Y= 9 },
{X= -70 , Z= -74, Y= 6 },
{X= -104 , Z= -110, Y= 4 },
{X= -140 , Z= -148, Y= 4 },
{X= -173 , Z= -183, Y= 5 },
{X= -208 , Z= -220, Y= 7 },
{X= -286 , Z= -154, Y= 8 },
{X= -252 , Z= -118, Y= 7 },
{X= -216 , Z= -79, Y= 7 },
{X= -182 , Z= -43, Y= 8 },
{X= -148 , Z= -8, Y= 9 },
{X= -111 , Z= 27, Y= 10 },
{X= -81 , Z= 60, Y= 12 },
{X= -44 , Z= 99, Y= 15 },
{X= -9 , Z= 134, Y= 16 },
}
	player:target_NPC("Kekonee")
	yrest(500)
	RoMScript("ChoiceOption(2)") 
	yrest(1000)
	local starttime = os.time()
	local count = 0
	local tablechest = {}
	
	local function openchest()
		local tablechest = {}
		local objectList = CObjectList();
		objectList:update();
		local objSize = objectList:size()
		for i = 0,objSize do
			local obj = objectList:getObject(i);
			if obj.Id == 123536 then
				obj.distance = distance(obj,player)
				table.insert(tablechest, table.copy(obj))
			end
		end
		-- sort by distance
		local function distancesortfunc(a,b)
			return b.distance > a.distance
		end
		table.sort(tablechest, distancesortfunc)
		for i = 1, 2 do
			if (os.time() - starttime) > 60 then break end
			local ttkeeper = os.time()
			if 30 > tablechest[i].distance then
				player:target(tablechest[i].Address)
				yrest(50)
				Attack()
				yrest(500)
				if i == 1 then
					yrest(250+tweakit)
				else
					yrest(400+tweakit)
				end
				count = count + 1
			end
		end
	end
	for i = 1, #path do
		if (os.time() - starttime) > 60 then break end
		teleport(path[i].X,path[i].Z,path[i].Y)
		openchest(true)
	end
	print(count)
end
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

SouthernLights
Posts: 13
Joined: Mon Mar 24, 2014 3:24 am

Re: Secret Garden Ideas

#29 Post by SouthernLights » Tue Mar 25, 2014 5:06 am

Lisa, so how do I use that code you posted there? I have been running like 60+ chars through manually and it is killing my keyboard and mind! LoL I have a basic understanding of running MM and RoMbot. Basically meaning that I can turn it on, tell it to run, and copy/paste scripts and functions where they belong. Any help would be HUGELY appreciated!

~SL

ZZZZZ
Posts: 513
Joined: Sun Oct 21, 2012 1:42 am

Re: Secret Garden Ideas

#30 Post by ZZZZZ » Tue Mar 25, 2014 5:12 am

The tweakit variable can actually be adjusted to your ping. The reason you can click the next object before you finish the last is that it doesnt register server side until the info gets there. Which is why you can move before bar finish's etc. So for me I usually sit on about 266 ping. I set mine to 250 and its pretty accurate, getting around ~38 each round which is only 1 or 2 chests less than I can get manually if im spot on with timing.

ninjazero
Posts: 6
Joined: Mon Mar 24, 2014 5:20 am

Re: Secret Garden Ideas

#31 Post by ninjazero » Tue Mar 25, 2014 5:41 am

Lisa great job on the function, It's much better than what i was doing. The 50 number i stated was total (including the last 6). My ping is pretty low 40-60 so I'll play around with tweaking down the yrests.

Attached is my waypoint with relog and bagcleanup, I'm still working on a fast way to go find Jamie to get the extra two keys.
Attachments
SecretGarden.xml
(3.97 KiB) Downloaded 274 times

ZZZZZ
Posts: 513
Joined: Sun Oct 21, 2012 1:42 am

Re: Secret Garden Ideas

#32 Post by ZZZZZ » Tue Mar 25, 2014 6:04 am

As a temp solution to Jamie I have simply made the alts run to the center of his loop, checking on the way for him until there, at which point the character waits till he is in 200 range and goes to him.
I'm looking at adding in 4 coordinates (1 for each corner that he walks) and checking his position in relation to coords and going to certain waypoints depending on that....shouldn't be too hard..i hope xD

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Secret Garden Ideas

#33 Post by lisa » Tue Mar 25, 2014 6:08 am

ZZZZZ wrote:The tweakit variable can actually be adjusted to your ping.
I did try using it but found my ping didn't vary to much, so just used a value.

The function is
getPing()
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

SouthernLights
Posts: 13
Joined: Mon Mar 24, 2014 3:24 am

Re: Secret Garden Ideas

#34 Post by SouthernLights » Tue Mar 25, 2014 6:15 am

Awesome stuff guys! Question. When the first character finished and went outside, it sent an error ""attempt to call global 'SetCharList' <a nil value>"" Is this a setup failure on my part?

*EDIT*

Figured it out. My noob behind forgot to get the userfunction for LoginNextChar. Sorry for the bother!

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

Re: Secret Garden Ideas

#35 Post by rock5 » Tue Mar 25, 2014 10:24 am

lisa wrote:For now it is still doing an CObjectList() every time it teleports, not sure if it adds much time at all in the long run but if rock did the number each chest type thing then you would only need to do it once at start. Like I said though not sure it is slowing it down much.
Sounds like you are doing fine without it. If you really wanted to avoid the extra CObjectLists you could make the 1 table at the beginning and just reuse it at each location, finding the closest ones to your new location. This assumes the chests don't go anywhere. :)
  • 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

Elektronica
Posts: 2
Joined: Thu Jan 23, 2014 3:39 am

Re: Secret Garden Ideas

#36 Post by Elektronica » Tue Mar 25, 2014 11:03 am

he doesent loot des last 6 chest by my try and
as well as he doesent pick up the free daily keys, is it only by me so or is it not implemented yet?
is it possible that after he does all the next char loggt in? that was perfect =)

Btw: Good Work!
-------------------------------------------------------------------------------------
Sry for my english with Google translater :D

SouthernLights
Posts: 13
Joined: Mon Mar 24, 2014 3:24 am

Re: Secret Garden Ideas

#37 Post by SouthernLights » Tue Mar 25, 2014 11:17 am

Z, Lisa, Rock Thanks a ton you guys. I just did in about an hour what it has taken me 4-5 to do for the past few days. You guys are EPIC! Now if I can just get Egg's mana stone system running ill be set! Again, thanks for all the hard work!

User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Secret Garden Ideas

#38 Post by lisa » Tue Mar 25, 2014 6:12 pm

rock5 wrote:
lisa wrote:For now it is still doing an CObjectList() every time it teleports, not sure if it adds much time at all in the long run but if rock did the number each chest type thing then you would only need to do it once at start. Like I said though not sure it is slowing it down much.
Sounds like you are doing fine without it. If you really wanted to avoid the extra CObjectLists you could make the 1 table at the beginning and just reuse it at each location, finding the closest ones to your new location. This assumes the chests don't go anywhere. :)
Would still mean going through the entire table and doing distance checks for all of the chests but to be honest I don't think it would make it much faster to not have to redo all the distance checks, I just liked the idea of doing table of chests once and then using your fancy numbering system thingy to then use that 1 table from the very begining.

Not overlly important though.

I did up the code so it only did the objectlist once and still had to do distance checks every teleport, was still getting consistently 40, exactly same as before doing the code that way. So yeah as I thought no real difference.
Elektronica wrote:he doesent loot des last 6 chest by my try andas well as he doesent pick up the free daily keys, is it only by me so or is it not implemented yet?is it possible that after he does all the next char loggt in? that was perfect =)
I like to think I do the tricky stuff and then others take care of all the easy stuff, like ninjazero and ZZZZZZ ;)
Most of my time is taken up with real life stuff and that probably won't change anytime soon, so I do what I can when I can.

Bags were getting to full so added this to mine, now itemshop bag is getting full lol

Code: Select all

	inventory:update()
	for slot = 61, 240 do
		item = inventory.BagSlot[slot]
 	    if item and item.ItemShopItem then
			item:moveTo("itemshop")
		end;
	end;
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

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

Re: Secret Garden Ideas

#39 Post by rock5 » Tue Mar 25, 2014 9:10 pm

lisa wrote:Would still mean going through the entire table and doing distance checks for all of the chests
Well..., compared to the time it takes to make the object list, the rest of the code takes nothing. Example, here is some code that searches for an object including distance check. There's about 80 objects nearby.

Code: Select all

Command> t=getTime() ol=CObjectList() ol:update() for k,v in pairs(ol.Objects) d
o if v.Id == 110726 and distance(player,v) < 100 then found = true end end t=del
taTime(getTime(),t) print(t)
21.450576619936
That time is about average for my system. If I take out the object list creation and just reuse the old list I get.

Code: Select all

Command> t=getTime() for k,v in pairs(ol.Objects) do if v.Id == 110726 and dista
nce(player,v) < 100 then found = true end end t=deltaTime(getTime(),t) print(t)
0.34310706004501
It varied between 0.27 to 0.46ms. So when trying to save time you only really have to worry about anything that does memory reads. I just assume the time it takes to do normal code is negligible.
lisa wrote:I just liked the idea of doing table of chests once and then using your fancy numbering system thingy to then use that 1 table from the very begining.
The thing is it's not just doing them in order like survival you have to put them in order in groups of 4. I'm not even sure how I would do that. Then you are not even going to the sorted list, you are going to other points between the groups of 4. If you already have this other list you may as well just use them to find the 4 nearest.
lisa wrote:I did up the code so it only did the objectlist once and still had to do distance checks every teleport, was still getting consistently 40, exactly same as before doing the code that way. So yeah as I thought no real difference.
Yeah that's what I would have thought too.
  • 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
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Secret Garden Ideas

#40 Post by lisa » Tue Mar 25, 2014 9:33 pm

rock5 wrote:The thing is it's not just doing them in order like survival you have to put them in order in groups of 4. I'm not even sure how I would do that. Then you are not even going to the sorted list, you are going to other points between the groups of 4. If you already have this other list you may as well just use them to find the 4 nearest.
Actually numbering the chests was all I was after, then I could click the numbered chest from the original list and not have to do anymore distance checks. The path is already set and the chests I want to open is already decided, I just need them numbered so I can target them without more checks being done.
End of the day though I think doing 40 chests before last 6 is about as good as it will get, I might try on a faster PC and see if I can get better.
Remember no matter you do in life to always have a little fun while you are at it ;)

wiki here http://www.solarstrike.net/wiki/index.php?title=Manual

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests