Ancient Treasures waypoint

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: Ancient Treasures waypoint

#61 Post by rock5 »

If they share the same name you can also get the name using one of the ids. eg.

Code: Select all

_Elemental = GetIdName(113614)
and then

Code: Select all

local cecandle = player:findNearestNameOrId(_Elemental)
We did something similar in survival I think.
  • 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
Sithlord512589
Posts: 36
Joined: Thu Mar 04, 2010 9:21 am

Re: Ancient Treasures waypoint

#62 Post by Sithlord512589 »

I tested the script using english in client settings and it worked very well as expected.

Just for your information
MAGE 75/ PRIEST 72 (soon 75) / ROUGE 6x
german client, Server Europe
Thankful User of the other peoples mindwork :-)
kuripot
Posts: 493
Joined: Mon Nov 07, 2011 9:14 pm

Re: Ancient Treasures waypoint

#63 Post by kuripot »

this few days i got a problem in mini treasure... when fly is activate and try to enter in the entrance door.. my character was stuck in door because he fly to high the the entrance door... i dont know if there id wrong in my wp userfunction. etc.. can you gave me the list of the link of updated userfunction or compatible... or other file needed in this waypoint
kanta
Posts: 424
Joined: Thu Nov 11, 2010 4:08 pm

Re: Ancient Treasures waypoint

#64 Post by kanta »

Do you mean entering after getting to the first totem? Sorry I haven't been around, real life has taken the drivers' seat for a bit.
Scout/Knight/Rogue 70/66/66
kuripot
Posts: 493
Joined: Mon Nov 07, 2011 9:14 pm

Re: Ancient Treasures waypoint

#65 Post by kuripot »

after talking to npc and pay token
User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Ancient Treasures waypoint

#66 Post by rock5 »

I think he means the first door you go through. It always got a bit stuck for me but always made it through. I haven't run this script that many times, though.
  • 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
kanta
Posts: 424
Joined: Thu Nov 11, 2010 4:08 pm

Re: Ancient Treasures waypoint

#67 Post by kanta »

rock5 wrote:If they share the same name you can also get the name using one of the ids. eg.

Code: Select all

_Elemental = GetIdName(113614)
and then

Code: Select all

local cecandle = player:findNearestNameOrId(_Elemental)
We did something similar in survival I think.
I think I didn't understand this when I first read it. This thought occurred to me tonight. The GetIdName command doesn't need to have the object targetable does it? It's pulling the information from the internal RoM database?
Scout/Knight/Rogue 70/66/66
User avatar
lisa
Posts: 8332
Joined: Tue Nov 09, 2010 11:46 pm
Location: Australia

Re: Ancient Treasures waypoint

#68 Post by lisa »

kanta wrote:The GetIdName command doesn't need to have the object targetable does it?
Correct, it gets the info direct from memory and it doesn't matter if you have ever seend the item/npc in your entire playing of the game.
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
kkulesza
Posts: 150
Joined: Fri May 27, 2011 9:00 pm
Location: Poland

Re: Ancient Treasures waypoint

#69 Post by kkulesza »

Another corrections
1. inside getecandle()
instead of:

Code: Select all

-- click ecandle
					player:target(cecandle)
					yrest(100)
					player:target_Object("Elemental Candlestick", 6000);
					yrest(5000)
					player:update()
it is better to do it inside a loop:

Code: Select all

-- click ecandle
					player:target(cecandle)
					rest(100)
					repeat
						player:target_Object("Elemental Candlestick", 6000);
						player:update()
					until not player.Casting
2. Lighting last candle

Code: Select all

<!-- #105 --><waypoint x="4021" z="3944" y="34">
		player:target_Object("Elemental Candlestick", 6000);
		flyoff()
		player:rest(10)
	</waypoint>	
Bot doesn't check if the third candle was already alight. So when there is no candle at wp105 then bot starts to fly through a wall to light nearest candle. This is unnecessary.
it is better to check if the treasure chests has spawned, because they spawn immediately after you light third candle

Code: Select all

<!-- #105 --><waypoint x="4021" z="3944" y="34">
		roomOpenA=player:findNearestNameOrId(113617);
		roomOpenB=player:findNearestNameOrId(113619);
		if roomOpenA==nil and roomOpenB==nil then
			player:target_Object("Elemental Candlestick", 6000);
			rest(9*1000);
		end
		flyoff();
	</waypoint>	
3. Coordinates
I had many unstick problems while moving to waypoints 72 and 85 so I've added two additional wps:

Code: Select all

<!-- # 72b --><waypoint x="3624" z="3666" y="92">	</waypoint> 

Code: Select all

<!-- # 84 b--><waypoint x="4087" z="3589" y="92">	</waypoint>
also changed a little bit coords for wp 110, because i've stuck many times while trying to collect last stone totem:

Code: Select all

	<!-- #110 --><waypoint x="3780" z="3800" y="34">
		if gettotems == 1 then
			player:target_Object(114080, 6000);
		end
	</waypoint>
User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Ancient Treasures waypoint

#70 Post by rock5 »

kkulesza wrote:it is better to do it inside a loop:

Code: Select all

-- click ecandle
               player:target(cecandle)
               rest(100)
               repeat
                  player:target_Object("Elemental Candlestick", 6000);
                  player:update()
               until not player.Casting
Not really. That doesn't do anything. player:target_Object wont finish until it finishes collecting, so if it succeeds or fails, player.Casting will always be false. To be sure it suceeded you would have to check the candle to see if it has been clicked. Not sure how. Maybe Lisas "open chest" offset will work here.

Code: Select all

      roomOpenA=player:findNearestNameOrId(113617);
      roomOpenB=player:findNearestNameOrId(113619);
      if roomOpenA==nil and roomOpenB==nil then
You can also do this like this

Code: Select all

      roomOpen=player:findNearestNameOrId({113617,113619});
      if roomOpen==nil then
  • 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
kuripot
Posts: 493
Joined: Mon Nov 07, 2011 9:14 pm

Re: Ancient Treasures waypoint

#71 Post by kuripot »

how can i enable the opening of the mount chest?

i need to edit something??

Code: Select all

			--=== Create table for rune and mount chests ===--
			chests = {runes = {}, mount = {}}

			local objectList = CObjectList();
			objectList:update();
			local objSize = objectList:size()

			for i = 0,objSize do
				local obj = objectList:getObject(i);
				if obj.Id == 113618 or obj.Id == 113619 then
					if obj.Z > 3825 then -- mount
						table.insert(chests.mount, table.copy(obj))
					else -- runes
						table.insert(chests.runes, table.copy(obj))
					end
				end
			end

			-- Sort chests
			table.sort(chests.mount, function(a,b) return b.X > a.X end)
			table.sort(chests.runes, function(a,b) return a.X > b.X end)

			-- Get mount
			if getcmount == 1 then
				for k,v in pairs(chests.mount) do
					player:target(v.Address);
					Attack()
					yrest(2000)
					Attack()
					yrest(2000)
					repeat
						yrest(2000)
						player:update()
					until not player.Casting
				end
			end

			-- Get runes
			for k,v in pairs(chests.runes) do
				player:target(v.Address);
				Attack()
				yrest(2000)
				Attack()
				yrest(2000)
				repeat
					yrest(2000)
					player:update()
				until not player.Casting
			end
because my character not open the mount chest


need to delete this???

Code: Select all

       if getcmount == 1 then
like the rune chest..
User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Ancient Treasures waypoint

#72 Post by rock5 »

Did you set

Code: Select all

	getcmount = 1 -- "0" do not collect mount chests "1" collect mount chests
on line 12?
  • 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
kuripot
Posts: 493
Joined: Mon Nov 07, 2011 9:14 pm

Re: Ancient Treasures waypoint

#73 Post by kuripot »

rock5 wrote:Did you set

Code: Select all

	getcmount = 1 -- "0" do not collect mount chests "1" collect mount chests
on line 12?




edited.... i try again later but. i think its work now
kanta
Posts: 424
Joined: Thu Nov 11, 2010 4:08 pm

Re: Ancient Treasures waypoint

#74 Post by kanta »

I guess I should have been very specific about the options in my first post. Near the top of the mini_treasure.xml you will find:
getcmount = 0 -- "0" do not collect mount chests "1" collect mount chests
gettotems = 1 -- "0" do not collect totems "1" collect totems
-- (don't know why people would want this but adding the option anyway)
exitat = 0 -- Until a check for all chests are opened use this option to set if
-- you want the bot to exit the mini game "0" do not exit "1" exit
If you want to collect, do as the description says and change "getcmount = 0" to "getcmount = 1"

I'll update the 1st post with this info.
Scout/Knight/Rogue 70/66/66
kanta
Posts: 424
Joined: Thu Nov 11, 2010 4:08 pm

Re: Ancient Treasures waypoint

#75 Post by kanta »

rock5 wrote:

Code: Select all

      roomOpenA=player:findNearestNameOrId(113617);
      roomOpenB=player:findNearestNameOrId(113619);
      if roomOpenA==nil and roomOpenB==nil then
You can also do this like this

Code: Select all

      roomOpen=player:findNearestNameOrId({113617,113619});
      if roomOpen==nil then
I'm assuming I could also have it use the value I am setting?

Code: Select all

roomOpen=player:findNearestNameOrId({_Elemental});
I'll be trying it anyway in a few minutes. If all goes well I'll be updating the first post with the new file.
Scout/Knight/Rogue 70/66/66
User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Ancient Treasures waypoint

#76 Post by rock5 »

Hey Kanta, when are we going to see an updated version? Didn't you say you were going to tweak some coords or something?
  • 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
kanta
Posts: 424
Joined: Thu Nov 11, 2010 4:08 pm

Re: Ancient Treasures waypoint

#77 Post by kanta »

Ya, real life kind of took over so I haven't had time to do anything with the waypoint. I'm doing some work on it right now.
Scout/Knight/Rogue 70/66/66
kanta
Posts: 424
Joined: Thu Nov 11, 2010 4:08 pm

Re: Ancient Treasures waypoint

#78 Post by kanta »

Just a thought. The code that kkulesza posted... Why not just add that into the candle function itself? Something like this?

Code: Select all

	_Elemental = GetIdName(113614)

	function getecandle()
      roomOpen = player:findNearestNameOrId({_Elemental});
      if roomOpen == nil then
			local lastpllocx = 0
			local lastpllocz = 0
			local lastpllocy = 0
			player:update()
			local cecandle = player:findNearestNameOrId(_Elemental)
			local dist = distance(cecandle.X,cecandle.Z,player.X,player.Z)
			local lastpllocx = player.X
			local lastpllocz = player.Z
			local lastpllocy = player.Y
			if cecandle and (30 > dist) then
				-- goto ecandle
				teleport_SetStepSize(40)
				teleport(cecandle.X, cecandle.Z)	-- teleport to above ecandle
				yrest(1000)
				teleport(nil, nil, cecandle.Y +25)	-- teleport in range to click ecandle
				yrest(1000)

				-- click ecandle
					player:target(cecandle)
					yrest(1000)
					player:target_Object(_Elemental, 5000);
					yrest(1000)
					player:update()

				teleport(nil, nil, lastpllocy)
				yrest(1000)
				teleport(lastpllocx,lastpllocz)
				yrest(1000)
			end
	end
	end
Scout/Knight/Rogue 70/66/66
User avatar
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Ancient Treasures waypoint

#79 Post by rock5 »

Yep but isn't roomopen supposed to be checking for chests?

Also, Is there any way to have it teleport behind the candle with that hard one with the dog and guard?

And is there any reason to have stepsize as 40?
  • 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
kanta
Posts: 424
Joined: Thu Nov 11, 2010 4:08 pm

Re: Ancient Treasures waypoint

#80 Post by kanta »

I had changed the stepsize in an attempt to stop the client error message. I guess I can take that out since I still get the message.

As for the tough candle, that's one of the things I'm working on. Going to remove the door models and do some dry runs with the waypoint coordinates to try and optimize them a little.

I was checking with the roomopen idea because I'm still a coding noob :oops:
I'll put it on the last candle check like was suggested. Mainly I was curious if using the

Code: Select all

player:findNearestNameOrId({_Elemental});
would work properly.
Scout/Knight/Rogue 70/66/66
Post Reply