Rock5's Ancient Treasure

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
grande
Posts: 261
Joined: Tue Jun 28, 2011 4:46 pm

Re: Rock5's Ancient Treasure

#161 Post by grande » Sat Dec 08, 2012 7:46 am

Thanks so much rock5. I'm running it now as you show above. I'll post back later.

User avatar
solembum05
Posts: 57
Joined: Tue Jun 19, 2012 8:29 am

Re: Rock5's Ancient Treasure

#162 Post by solembum05 » Tue Jan 08, 2013 8:01 pm

Hi, first thx for this, very good job and nice Idea for how to make this ;)

But (:p) i had some problem for load path when this is finish i have an error, i try to change something, but error always her ! (i will take a screen next time)

And sometime, the player don't stay under when harvest so bot is swimming in the wall :(
Forget yesterday, live today and dream tomorrow.

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

Re: Rock5's Ancient Treasure

#163 Post by rock5 » Tue Jan 08, 2013 11:56 pm

solembum05 wrote: And sometime, the player don't stay under when harvest so bot is swimming in the wall :(
This has been a recurring problem during the whole development of this script. I personally have never had this issue.

We added the SlowTeleports option to try and help. You didn't set this to false did you? The only other thing I can suggest is if you run multiple clients, try running less.
  • 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
solembum05
Posts: 57
Joined: Tue Jun 19, 2012 8:29 am

Re: Rock5's Ancient Treasure

#164 Post by solembum05 » Wed Jan 09, 2013 7:59 pm

i will try slow teleports, the problem is random, sometime i had no probleme with multiple client and sometime i had ;) Same for one client ;)

I take a screen about error when i try to load on other file when this is finish, i don't understand where this error come from ><
Attachments
Sans titre.jpg
Forget yesterday, live today and dream tomorrow.

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

Re: Rock5's Ancient Treasure

#165 Post by rock5 » Wed Jan 09, 2013 9:46 pm

Tokens, in waypoint files, are 'waypoints', 'waypoint' and 'onload'. So I think that error message is saying you are missing a </waypoints>, </waypoint> or </onload>. Just make sure every 'token' has a corresponding close token.
  • 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
apple
Posts: 12
Joined: Mon Apr 09, 2012 7:35 am

Re: Rock5's Ancient Treasure

#166 Post by apple » Thu Jan 10, 2013 12:22 pm

iam using this waypoint for a long time now, but last 2 days iam getting something wierd, this is what happends:
I enter AT then my char talks to npc and the game starts.
bot goes up, wants to fly a bit to the right so he can go under (if i remember right)
but when i start moving, i get knocked down by a skill or something (the sign of the debuff is a white bunny (its not a joke) )
then 5 seconds later i get it again and i die -,- (no debt)

i do those minigames on 3 characters but its only happening on 1 (its random i think)
didn't change anything to script, only some configs changed but it works fine on the other characters.
Anyone else having this problem ?

Regards,
Apple

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

Re: Rock5's Ancient Treasure

#167 Post by rock5 » Thu Jan 10, 2013 2:36 pm

You should have got the name of the debuff. It might have been named something that would explain what happened.
  • 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
solembum05
Posts: 57
Joined: Tue Jun 19, 2012 8:29 am

Re: Rock5's Ancient Treasure

#168 Post by solembum05 » Fri Jan 11, 2013 6:29 am

So i check code, i don't find error

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints type="TRAVEL">
<onLoad>

	--= Ancient Treasure  =--
	--=== version 3.6 ===--
	-- www.solarstrike.net/phpBB3/viewtopic.php?p=35357

	--=== User Options ===--

	CollectFragments       = true	-- If you want to collect the Stone Totem Fragments
	CollectMatChests       = true	-- If you want to open the materials Chests
	CollectRunesChests     = true	-- If you want to to open the Rune chests
	CollectMountChests     = true	-- If you want to open the Mount chests
	ExchangeFragments      = true	-- If you want to exchange Stone Totem Fragments for Ruins Investigation Team Medals before entering.
	PutMaterialsIn     = "itemshop"			-- "guild" to donate materials to guild or "itemshop" to put them in itemshop backpack.
	ExitBeforeNextFile     = true	-- If you want it to exit game before loading next "waypointfilename".
	ExchangeForMedals      = ""		-- Item you want to exchange for Medals - "hammer", "card", "matchest", "runechest", "backpack" or "atrepeat"
	SlowTeleports          = true	-- If you want it to go slower for older computers

	When_Finished = "Minijeu/7finAT.xml"
		-- "end" to end script, "relog" to log next character, "charlist" to log next in 'charlist' and "waypointfilename" to load that waypointfile.

	CharList = {
	}
		-- Character list to use when using the "charlist" option above. Requires my "userfunction_LoginNextChar" userfunction.
		-- Find it here. http://www.solarstrike.net/phpBB3/viewtopic.php?p=10350
		--		eg.
		--		CharList = {
		--			{account=4,chars={}},
		--			{account=8,chars={1}},
		--			{account=7,chars={1,2,5}},
		--		}

	--====================--
	local medalshop = {
		hammer = {price = 1, option = 1},
		card = {price = 3, option = 2},
		matchest = {price = 3, option = 3},
		runechest = {price = 5, option = 4},
		backpack = {price = 5, option = 5},
		atrepeat = {price = 7, option = 6},
	}
	local numshells = inventory:getItemCount(240181)
	local startwaittime = nil

	if fly == nil or teleport == nil then
		error("This waypoint cannot run without the 'swimhack' and 'teleport' userfunctions.")
	end

	local downwards = {[1] ={ X=4132, Z=4303, Y=7},[2] ={ X=3327, Z=3834, Y=7},[3] ={ X=4109, Z=3397, Y=7},[4] ={ X=3708, Z=4289, Y=7}}
	for k,v in pairs(settings.profile.skills) do
		v.AutoUse = false
	end

	local elemental = GetIdName(113614) -- Elemental Candstick
	local luke = GetIdName(113622) -- Luke Xavi
	local ange = GetIdName(113689) -- Ange Rasa
	local totem = GetIdName(114080) -- Ancient Stone Totem (item to click)
	local tran = GetIdName(113615) -- Transport Candlestick
	local frag = GetIdName(206422) -- Stone Totem Fragment (item in bag)
	local fragquest = GetIdName(422959) -- Gather Stone Totem Fragments
	local proceedquest = GetIdName(422958) -- Proceed to the Scar of Despair Camp
	local medals = GetIdName(206423) -- Ruins Investigation Team Medal
	local records = GetIdName(206426) -- Ancient Treasures Investigation Record

	local function buyitems()
		-- Exchange fragments first
		if ExchangeFragments and player.Level > 20 then
			player:target_NPC(ange)
			while inventory:itemTotalCount(frag) > 4 do
				AcceptQuestByName(fragquest)
				CompleteQuestByName(fragquest)
				yrest(500)
			end
		end

		-- no option. Return
		if ExchangeForMedals == "" or ExchangeForMedals == nil or ExchangeForMedals == "nil" then
			return
		end

		-- Invalid option
		if not medalshop[ExchangeForMedals] then
			error("Invalid value used for 'ExchangeForMedals': "..(ExchangeForMedals or "nil"))
		end

		local option = medalshop[ExchangeForMedals].option
		local price = medalshop[ExchangeForMedals].price

		-- Buy items
		while math.floor(inventory:itemTotalCount(medals)/price) > 0 do
			if player:target_NPC(ange) then
				RoMScript("ChoiceOption(2)") yrest(500)
				RoMScript("ChoiceOption(" .. 2 + option ..")") yrest(500)
				yrest(1000)
			end
		end
	end

	function checkRelog()
		flyoff()

		-- Log result
		local filename = getExecutionPath() .. "/logs/at.log";
		local file, err = io.open(filename, "a+");
		if file then
			file:write("Acc: "..RoMScript("GetAccountName()").."\tName: " ..string.format("%-10s",player.Name ).." \tDate: " .. os.date() ..
			"\tCoins:"..inventory:itemTotalCount(203038).." \tShells gained/total: "..inventory:getItemCount(240181) - numshells.."/".. inventory:getItemCount(240181).. "\t" ..logentry .. "\n")
			file:close();
		end

		if When_Finished == "relog" then
			ChangeChar()
			waitForLoadingScreen();
			yrest(3000)
			loadProfile()
			loadPaths(__WPL.FileName);
		elseif When_Finished == "charlist" then
			SetCharList(CharList)
			LoginNextChar()
			loadProfile()
			loadPaths(__WPL.FileName);
		elseif When_Finished == "end" then
			error("Ending script",2)
		else
			player:update()

			-- Leave before loading next waypoint file.
			if ExitBeforeNextFile == true then
				if player:target_Object(tran) then
					RoMScript("StaticPopup_OnClick(StaticPopup1, 1);")
					waitForLoadingScreen();
					yrest(3000)
					buyitems()
				end
			end

			if not string.find(When_Finished,".", 1, true) then
				When_Finished = When_Finished .. ".xml"
			end
			loadProfile() -- Because we messed with the skills

			local filename = getExecutionPath() .. "/waypoints/" .. When_Finished
			local file, err = io.open(filename, "r");
			if file then
				file:close();
				loadPaths(When_Finished)
			else
				error("'When_Finished' option is invalid",0)
			end
		end
	end

	local function UpThroughFloor()
		local rightheight = 18.5
		local dir = 3.14
		repeat
			if dir == 0 then dir = 3.14 else dir = 0 end -- Alternate direction
			teleport(nil,nil,rightheight) yrest(700)
			player:faceDirection(dir,-1.3) yrest(300)
			keyboardHold(settings.hotkeys.MOVE_FORWARD.key) yrest(300)
			keyboardRelease(settings.hotkeys.MOVE_FORWARD.key) yrest(1000)
			player:update()
		until player.Y > rightheight
	end

	local function UpThroughRoof(op)
		player:update()
		if player.Y > 105 then -- already above roof.
			return
		end

		local startpos, steps
		if op == 1 then -- in Luke room
			startpos = 74
			steps = 12
		elseif op == 2 then -- Hallways
			startpos = 91
			steps = 12
		else -- When not sure which
			startpos = 74
			steps = 30
		end

		for i = 0,steps,1 do teleport(nil,nil,startpos+i) player:turnDirection(1) yrest(50) end
		yrest(1000)
		teleport(nil,nil,120)
		player:update()
	end

	local function evalClickable(address)
		local chest = memoryReadRepeat("byte", getProc(), address + 0x2F0) or 0
		if chest ~= 0 then
			return true
		else
			return false
		end
	end

	local function HarvestItem(ID)
		local stt = os.time()
		repeat
			yrest(1)
		until player:target_Object(ID,3) or os.time() - stt > 5
		if startwaittime == nil then
			if (GetIdName(ID) == elemental and (player:hasBuff(505596) or not player:hasBuff(505594))) or
			   (player:findNearestNameOrId(113617) ~= nil) then
				startwaittime = os.clock()
			end
		end
	end

	local function First2Fragments()
		print("Doing first 2 "..totem)
		player:update()
		if player.Y > 105 then
			player:moveTo(CWaypoint(3716,4288,120),true)
		else
			player:moveTo(CWaypoint(3716,4288,7),true)
		end
		teleport(nil,nil,7)
		local tmptotem = player:findNearestNameOrId(114080,nil,evalClickable)
		if (not tmptotem) or distance(player.X,player.Z,tmptotem.X,tmptotem.Z) > 200 then
			print("First 2 ".. totem .. " already collected.")
			return
		end
		print("Moving to "..totem)
		player:moveTo(CWaypoint(3700,4192,7),true)
		UpThroughFloor()
		player:moveTo(CWaypoint(3652,4204,34),true)
		HarvestItem(114080)
		UpThroughRoof(2)
		print("Moving to "..totem)
		player:moveTo(CWaypoint(3702,4289,120),true)
		teleport(nil,nil,7)
		player:moveTo(CWaypoint(3716,4155,7),true)
		player:moveTo(CWaypoint(3665,4110,7),true)
		player:moveTo(CWaypoint(3637,4124,7),true)
		teleport(3637,4124,7)
		UpThroughFloor()
		player:moveTo(CWaypoint(3609,4183,45),true)
		HarvestItem(114080)
		UpThroughRoof(2)
	end

	local function getunder()
		print("Going under.")
		player:update()
		if player.Y > 105 then
			local dist,bestdist,bestX,bestZ
			for k,v in pairs(downwards) do
				--table.print(v)
				dist = distance(player.X,player.Z,v.X,v.Z)
				if bestdist == nil then
					bestdist = dist
					bestX = v.X
					bestZ = v.Z
				else
					if bestdist > dist then
						bestdist = dist
						bestX = v.X
						bestZ = v.Z
					end
				end
			end

			player:moveTo(CWaypoint(bestX,bestZ),true)
		end

		teleport(nil,nil,7) yrest(1000)
		player:moveTo(CWaypoint(3890,3788,7),true) -- under instance in the middle
	end

	local function sortpath(initialtable)
		player:update()
		local returnedtable = {
			{X=player.X,Z=player.Z}, -- Where yuo're starting from
			{X=3838,Z=3994}, -- Where you're ending. Where it waits for mobs to despawn.
		}

		for __, obj in pairs (initialtable) do
			local bestintertplace
			local addeddist

			-- Find best place to insert
			for place = 2,#returnedtable do
				local currdist = distance(returnedtable[place-1].X,returnedtable[place-1].Z,returnedtable[place].X,returnedtable[place].Z)
				local newdist = distance(returnedtable[place-1].X,returnedtable[place-1].Z,obj.X,obj.Z) +
								 distance(obj.X,obj.Z,returnedtable[place].X,returnedtable[place].Z)
				if addeddist then
					if addeddist > newdist - currdist then
						bestintertplace = place
						addeddist = newdist - currdist
					end
				else
					bestintertplace = place
					addeddist = newdist - currdist
				end
			end

			-- Intert into new location
			table.insert(returnedtable,bestintertplace,obj)
		end

		-- remove first and last to return only initial points
		table.remove(returnedtable,1)
		table.remove(returnedtable,#returnedtable)

		return returnedtable
	end

	local function getcandles()

		local function candlelist()
			yrest(1000)
			local chestsappeared = player:findNearestNameOrId(113617) ~= nil
			local tmpcandles = {}
			local objectList = CObjectList();
			objectList:update();
			local objSize = objectList:size()
			for i = 0,objSize do
				obj = objectList:getObject(i);
				if ((not chestsappeared) and obj.Name == elemental) or
					(CollectFragments and obj.Name == totem and evalClickable(obj.Address) and 4000 > obj.Z) then -- Also easy to get fragments
					table.insert(tmpcandles, obj)
				end
			end

			return tmpcandles
		end

		local candles = candlelist()

		while #candles > 0 do
			candles = sortpath(candles)
			--for k,v in pairs(candles) do printf("%d X = %d, Z = %d\n",k,v.X,v.Z) end

			for k,v in pairs(candles) do
				print("Moving to ".. v.Name)
				player:moveTo(CWaypoint(v.X,v.Z,7),true)
				teleport(nil,nil,12)
				if SlowTeleports == true then yrest(1000) end
				keyboardPress(settings.hotkeys.STRAFF_RIGHT.key)
				keyboardPress(settings.hotkeys.STRAFF_LEFT.key)
				HarvestItem(v.Id)
				teleport(nil,nil,7)
				if SlowTeleports == true then yrest(1000) end
			end

			player:moveTo(CWaypoint(3838,3994),true)
			candles = candlelist()
		end

		player:moveTo(CWaypoint(3838,3994),true)

		local waittime = 12
		if startwaittime then
			waittime = waittime - (os.clock() - startwaittime)
		end

		if waittime > 0 then
			printf("Waiting %ds for mobs to despawn.\n",waittime)
			yrest(waittime*1000) -- 10 seconds to let mobs despawn
		end

		print("Going to chest room.")
		UpThroughFloor()

		teleport(3842,3838,49) -- get to chest room
		teleport(3880,3867,55)
	end

	local function getchests()

		--=== Open chests ===--
		function matchests()
			local matchest
			repeat
				matchest = player:findNearestNameOrId(113617,nil,evalClickable)
				if matchest then
					teleport(matchest.X,matchest.Z+3,matchest.Y+6)
					keyboardPress(settings.hotkeys.STRAFF_RIGHT.key)
					keyboardPress(settings.hotkeys.STRAFF_LEFT.key)
					repeat
						player:target_Object(matchest.Id, nil, nil, true, evalClickable);
					until evalClickable(matchest.Address) ~= true
				end
			until matchest == nil

			if type(PutMaterialsIn) == "string" then
				if string.lower(PutMaterialsIn) == "guild" then
					local guild = RoMScript("GetGuildInfo()")
					if GuildDonate == nil then
						print("Unable to donate to guild. Need \"GuildDonate\" userfunction.")
					elseif guild == nil or guild == "" then
						print("Unable to donate to guild. Character not a member of a guild.")
					else
						yrest(1000)
						inventory:update()
						GuildDonate("all",8)
					end
				elseif string.lower(PutMaterialsIn) == "itemshop" then
					yrest(1000)
					inventory:update()
					for i = 61,240 do
						local item = inventory.BagSlot[i]
						if (not item.Empty) and item.Available and item.ObjType == 3 and -- Type Materials
						   (item.ObjSubType == 0 or item.ObjSubType == 1 or item.ObjSubType == 2) then -- SubType Ore, Herbs or Wood
							item:moveTo("itemshop")
							yrest(1000)
						end
					end
				end
			end
		end

		function runechests()
			local runechest
			repeat
				runechest = player:findNearestNameOrId(113618,nil,evalClickable)
				if runechest then
					teleport(runechest.X,runechest.Z,runechest.Y+6)
					keyboardPress(settings.hotkeys.STRAFF_RIGHT.key)
					keyboardPress(settings.hotkeys.STRAFF_LEFT.key)
					repeat
						player:target_Object(runechest.Id, nil, nil, true, evalClickable);
					until evalClickable(runechest.Address) ~= true
				end
			until runechest == nil
		end
		function mountchests()
			local mountchest
			repeat
				mountchest = player:findNearestNameOrId(113619,nil,evalClickable)
				if mountchest then
					teleport(mountchest.X,mountchest.Z,mountchest.Y+6)
					keyboardPress(settings.hotkeys.STRAFF_RIGHT.key)
					keyboardPress(settings.hotkeys.STRAFF_LEFT.key)
					repeat
						player:target_Object(mountchest.Id, nil, nil, true, evalClickable);
					until evalClickable(mountchest.Address) ~= true
				end
			until mountchest == nil
		end
		if CollectMatChests then
			print("Opening Material chests.")
			matchests()
		end
		if CollectRunesChests then
			print("Opening Rune chests.")
			runechests()
		end
		if CollectMountChests then
			print("Opening Mount chests.")
			mountchests()
		end
	end

	repeat
		player:update()
		if getZoneId() ~= 355 then
			if 50 > player.Level and (player.Level2 >= 50 or player.Level3 >= 50) then
				-- Wait for user to change class
				cprintf(cli.yellow,"If you want to earn Phirius Shells, change to your 50+ class before continuing.\n")
				player:sleep()
			end
			if inventory:itemTotalCount(240181) > 970 then
				print("Too many Phirius Shells. Skipping.")
				logentry = "Too many Phirius Shells. Skipping."
				numshells = inventory:getItemCount(240181)
				checkRelog()
				return
			end
			local empties = inventory:itemTotalCount(0)
			if 10 > empties then
				-- Wait for user to make some space in inventory.
				cprintf(cli.yellow,"Not much space left in inventory. Are you sure you want to continue with only %d spaces left?\n",empties)
				player:sleep()
			end
			if 30 > inventory:itemTotalCount(203038) then
				print("Not enough Phirius Token Coins.")
				logentry = "Not enough Phirius Token Coins."
				checkRelog()
				return
			end

			if player:target_NPC(ange) then
				CompleteQuestByName(proceedquest)
			end

			buyitems()

			if player:target_NPC(ange) then
				yrest(2000);
				sendMacro("ChoiceOption(4);");
				yrest(2000);
				sendMacro("ChoiceOption(1);");
				yrest(1000);
				if not waitForLoadingScreen(10) then
					print("Failed to teleport into Ancient Treasure. Maybe you already done it today.")
					logentry = "Failed to teleport into Ancient Treasure. Maybe you already done it today."
					checkRelog()
					return
				end
			else
				print("Too far from Ange Rasa")
				logentry = "Too far from Ange Rasa"
				checkRelog()
				return
			end
		end

		fly()

		if not RoMScript("TimeKeeperFrame:IsVisible()") then -- no timer so click NPC and start it
			if player:target_NPC(luke) then
				yrest(2000);
				sendMacro("ChoiceOption(3);");
				yrest(2000);
				sendMacro("ChoiceOption(1);");
				yrest(5000);
				player:clearTarget()
				UpThroughRoof(1)
			else
				print("Can't find Luke Xavi")
				logentry = "Can't find Luke Xavi"
				checkRelog()
				return
			end
		end

		player:update()
		if player.Y > 15 then
			UpThroughRoof()
		end

		if CollectFragments then
			First2Fragments()
		end

		getunder()
		getcandles()
		getchests()

		local secondsleft
		repeat secondsleft = RoMScript("TimeKeeperFrame.startTime-GetTime()") yrest(100) until secondsleft
		local mm = string.format("%2s", math.floor(secondsleft/ 60))
		local ss = string.format("%02s", math.floor(math.mod(secondsleft, 60)))
		printf("Succeeded with %s:%s remaining.\n",mm,ss)
		logentry = string.format("Succeeded with %s:%s remaining.",mm,ss)

		if inventory:itemTotalCount(records) > 0 or (ExchangeForMedals == "atrepeat" and
		  (inventory:itemTotalCount(medals) + inventory:itemTotalCount(frag)/5) >= 7) then	-- Exit to repeat AT
			if player:target_Object(tran) then
				RoMScript("StaticPopup_OnClick(StaticPopup1, 1);")
				waitForLoadingScreen();
				yrest(3000)
				buyitems() yrest(1000)
				inventory:useItem(records)
				yrest(1000)
			end
		else
			checkRelog()
			return
		end

	until false
</onLoad>
</waypoints>
it is your code, i just add where he can find my other file when finish.
Forget yesterday, live today and dream tomorrow.

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

Re: Rock5's Ancient Treasure

#169 Post by rock5 » Fri Jan 11, 2013 9:30 am

No, the error is with your file "Minijeu/7finAT.xml", it happened after it loaded your file.
  • 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
solembum05
Posts: 57
Joined: Tue Jun 19, 2012 8:29 am

Re: Rock5's Ancient Treasure

#170 Post by solembum05 » Fri Jan 11, 2013 12:36 pm

yes i check, i found my error, thx ;)
Forget yesterday, live today and dream tomorrow.

User avatar
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: Rock5's Ancient Treasure

#171 Post by Ego95 » Fri Jan 11, 2013 4:00 pm

I have still got the same problem, that the bot gets stuck in the floor after harvesting a candle. After using this 4 times per day for months I now know, a bit more about it:
It seems to happen only at the chars that are using this file in the background. If a char does this in the background it seems to happen 50%. I think RC3 reduced this a lot for me. The bot only gets stuck, because he flys too nearly under the floor. To fix this I think it would be better to let the bot walk on the ground. If there's a candle or a fragment it should turn the flyhack on and harvest the object like it does now. Then turn off the flyhack and walk again. Or is it maybe possible to harvest the objects a few coordinates under the coordinates it's using now?

AlterEgo95

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

Re: Rock5's Ancient Treasure

#172 Post by rock5 » Sat Jan 12, 2013 1:07 am

You said the problem occurs when it gets the candle. Changing the way it gets from point to point isn't going to change that.

Because it uses teleport to get the candles, it's not possible that it over shoots the coordinates and gets stuck in the floor. The only thing I can think of that might cause it to go through the floor is if the location of the candle is incorrect and it has to go up a bit more to reach it.

I'm not sure how to deal with that. We can't avoid collecting the candle or we wont be able to get in the chest room. The only real solution would be, if it goes through the floor then it has to go up through the roof and then go back under. Of course it means you might aggro a mob but it might work sometimes at least.

I'll see what I can come up with.
  • 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
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Rock5's Ancient Treasure

#173 Post by rock5 » Sat Jan 12, 2013 1:33 am

Try this

--== Obsolete file removed ==--
  • 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
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: Rock5's Ancient Treasure

#174 Post by Ego95 » Sat Jan 12, 2013 4:05 am

Just tested the script, but it looks like it did the same than the original script :D

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

Re: Rock5's Ancient Treasure

#175 Post by rock5 » Sat Jan 12, 2013 6:19 am

Can you confirm exactly what happens? Tell me if this is correct.
  • 1. It swims to under the candle.
    2. It teleports up to just under the candle.
    3. It does a quick left/right jiggle.
    4. Now at this point it is supposed to be able to collect the candle without moving but, when it fails, I suspect it moves up a bit to collect the candle. Is that what it does?
    5. Then it tries to go down but pops above the ground instead.
    6 Then maybe it swims along the floor trying to go to the next point.
Does that sound right?
  • 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
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: Rock5's Ancient Treasure

#176 Post by Ego95 » Sat Jan 12, 2013 6:55 am

Are we talking about the version you have uploaded a few hours ago or about the original script. For the original script, everything sounds right so far except I don't know if it really moves up when it fails. If I interrupt the cast myself, then it goes on to the next candle. If the char moves up with the new script I don't know, didn't tried that. For today, all my chars have done the game, so I can only test it tomorrow.

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

Re: Rock5's Ancient Treasure

#177 Post by rock5 » Sat Jan 12, 2013 8:26 am

I meant any time it failed, so either the old or new script. Tomorrow, try to catch it in the act of failing and try to see what it does.
  • 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
rock5
Posts: 12173
Joined: Tue Jan 05, 2010 3:30 am
Location: Australia

Re: Rock5's Ancient Treasure

#178 Post by rock5 » Sat Jan 12, 2013 8:46 am

I double checked my logic and made a few minor changes. I also added a few extra print messages to help follow what's happening. Try this one tomorrow and if it fails, copy the MM output here for me to look at.
Attachments
AT.xml
Version 3.7b2
(17.67 KiB) Downloaded 130 times
  • 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
apple
Posts: 12
Joined: Mon Apr 09, 2012 7:35 am

Re: Rock5's Ancient Treasure

#179 Post by apple » Sat Jan 12, 2013 9:12 am

i managed to take a screenshot about the debuff thing that knocks me down (see few posts above).
it killed me again for some reason. Also it seems to happen on my mage characters, never had it on my warrior.
regards apple
Image

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

Re: Rock5's Ancient Treasure

#180 Post by rock5 » Sat Jan 12, 2013 10:08 am

Funny. I'd say it is either some sort of automatic feature against botting or maybe it's cast at you from a gm who is targeting that character. There is a related skill to that buff called "Little Rabbit's Hammerhead". There is not much more information except it has a range of 80 and is instant cast skill.
  • 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

Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests