Tomara Tavern Daily Script, need input

Runes of Magic/Radiant Arcana (http://www.runesofmagic.com)
Post Reply
Message
Author
swietlowka
Posts: 316
Joined: Wed Jun 16, 2010 8:16 am

Tomara Tavern Daily Script, need input

#1 Post by swietlowka » Tue Aug 03, 2010 4:18 pm

I would really use some tweaking from you guys, it works but its not perfect yet :)

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints>
<!-- Tomara Tavern Daily "Pig in a Pond's Helper" -->
<onLoad>
	repeat questname=RoMScript("TEXT('Sys421030_name')"); yrest(500) until questname 
	repeat npcname=RoMScript("TEXT('Sys114417_name')"); yrest(500) until npcname 
	changeProfileOption("HARVEST_DISTANCE", 40)
</onLoad>

	<!-- #  1 --><waypoint x="-1023" z="2171" tag="Main">
				repeat queststate = getQuestStatus(questname); yrest(500) until queststate
				if queststate == "complete" then
			-- Complete quest
			player:target_NPC(npcname); yrest(1000);
			sendMacro("OnClick_QuestListButton(3, 1)"); yrest(1000); sendMacro("CompleteQuest()"); yrest(2000);
			-- Accept quest
			player:target_NPC(npcname); yrest(1000);
			sendMacro("OnClick_QuestListButton(1, 2)"); yrest(1000); sendMacro("AcceptQuest()"); yrest(2000);
			__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));	
		elseif queststate == "incomplete" then
			-- Collect menus
			__WPL:setWaypointIndex(__WPL:findWaypointTag("Get Menus"))
		else
			-- Accept quest
			player:target_NPC(npcname); yrest(1000);
			sendMacro("OnClick_QuestListButton(1, 2)"); yrest(1000); sendMacro("AcceptQuest()"); yrest(2000);
			__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));	
		end
	</waypoint>
	<!-- #  2 --><waypoint x="-1013" z="2264" tag="Get Menus"> 
			repeat queststate = getQuestStatus(questname); yrest(500) until queststate
			if queststate == "complete" then
	__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
	end
	player:target_Object(114475,7000,true)
	 </waypoint>
	 <waypoint x="-995" z="2266"> </waypoint>
	<!-- #  3 --><waypoint x="-1006" z="2368">  
			repeat queststate = getQuestStatus(questname); yrest(500) until queststate
			if queststate == "complete" then
	__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
		end
	player:target_Object(114475,7000,true)
	</waypoint>
	<!-- #  4 --><waypoint x="-1050" z="2361"> player:target_Object(114475,7000,true) </waypoint>
	<!-- #  5 --><waypoint x="-1062" z="2296"> player:target_Object(114475,7000,true) </waypoint>
	<!-- #  5 --><waypoint x="-1097" z="2281"> </waypoint>
	<!-- #  5 --><waypoint x="-1029" z="2240"> 
		repeat queststate = getQuestStatus(questname); yrest(500) until queststate
		if queststate == "complete" then
	__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
	else
	__WPL:setWaypointIndex(__WPL:findWaypointTag("Get Menus"))
	end
	</waypoint>
</waypoints>
yup i was using Rock5 egg script, but its rewritten in many places to suit my needs...
what i'd like to achieve is to make the bot look more human, doesnt stuck so much, and sleep after 10 dailys done

Wundervice
Posts: 30
Joined: Fri Mar 12, 2010 6:40 pm

Re: Tomara Tavern Daily Script, need input

#2 Post by Wundervice » Tue Aug 03, 2010 5:27 pm

No shame in using Rock's work as a catalyst :] I learned from "reverse-engineering" it lol. Can be made into a fine template.

swietlowka
Posts: 316
Joined: Wed Jun 16, 2010 8:16 am

Re: Tomara Tavern Daily Script, need input

#3 Post by swietlowka » Wed Aug 04, 2010 1:53 am

I always learn from reverse :P thats how I see the world lol xD
Anyway, if someone would be willing to help get it work more swiftly i'd be really glad, also feel free to use it with your bots ofc :)
It work ok now, as it accept and complete the quest after getting all the items, but it runs there with problems probably because of the obstacles inside the tavern, if someone is willing to make a better pattern for it to run ill gladly implement it in this script :)

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

Re: Tomara Tavern Daily Script, need input

#4 Post by rock5 » Wed Aug 04, 2010 2:12 am

First I adjusted the path so it doesn't get stuck or bump into tables so much although because it is a narrow path and rombot isn't too accurate it's impossible to avoid a few bumps and getting stuck sometimes.

Then I looked at the logic. You don't want to head to the npc from the 2nd and 3rd tables because there are tables i in the way. You only want to head back to main where you have a clear run to the npc (I moved the 4th menu collection to the other side of the table for just that reason). Also if the quest is complete and it tries to pick up a menu it wastes 7 seconds so you want to avoid that.

Here's my logic.
At table 1:
If coming from the npc the quest wont be complete. If coming from table 4 the quest isn't complete because it should have gone to npc if complete. So the first thing it should do at table 1 is collect a menu. Because it might have finished the quest, we check the status and head to npc if finished.

At table 2:
It should come to table 2 from 1 only if the quest isn't complete so we only need to collect a menu.

At table 3:
The quest might be complete so check if it's complete, if not get menu.

At table 4:
The quest might be complete so check if it's complete, if it is goto npc or else get menu. If it gets a menu the quest might be complete so check again if quest is complete, if so head to npc.

So I ended up with something like this.

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints>
<!-- Tomara Tavern Daily "Pig in a Pond's Helper" -->
<onLoad>
	repeat questname=RoMScript("TEXT('Sys421030_name')"); yrest(500) until questname
	repeat npcname=RoMScript("TEXT('Sys114417_name')"); yrest(500) until npcname
	changeProfileOption("HARVEST_DISTANCE", 40)
</onLoad>

	<!-- #  1 --><waypoint x="-1023" z="2171" tag="Main">
	repeat queststate = getQuestStatus(questname); yrest(500) until queststate
	if queststate == "complete" then
		-- Complete quest
		player:target_NPC(npcname); yrest(1000);
		sendMacro("OnClick_QuestListButton(3, 1)"); yrest(1000); sendMacro("CompleteQuest()"); yrest(2000);
		-- Check if Dailies are finished
		repeat dailyQuestCount, dailyQuestsPerDay= RoMScript("Daily_count()") until dailyQuestCount and dailyQuestsPerDay
		if (dailyQuestsPerDay - dailyQuestCount) == 0 then
			player:sleep()
		end
		-- Accept quest
		player:target_NPC(npcname); yrest(1000);
		sendMacro("OnClick_QuestListButton(1, 2)"); yrest(1000); sendMacro("AcceptQuest()"); yrest(2000);
		__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));   
	elseif queststate == "incomplete" then
		-- Collect menus
		__WPL:setWaypointIndex(__WPL:findWaypointTag("Get Menus"))
	else
		-- Accept quest
		player:target_NPC(npcname); yrest(1000);
		sendMacro("OnClick_QuestListButton(1, 2)"); yrest(1000); sendMacro("AcceptQuest()"); yrest(2000);
		__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));   
	end
	</waypoint>
	<!-- #  2 --><waypoint x="-1017" z="2264" tag="Get Menus">
		player:target_Object(114475,7000,true)
		repeat queststate = getQuestStatus(questname); yrest(500) until queststate
		if queststate == "complete" then
			__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
		end
	</waypoint>
	<waypoint x="-985" z="2256"> </waypoint>
	<!-- #  3 --><waypoint x="-1016" z="2373"> 
		player:target_Object(114475,7000,true)
	</waypoint>
	<!-- #  4 --><waypoint x="-1054" z="2368">
		repeat queststate = getQuestStatus(questname); yrest(500) until queststate
		if queststate == "incomplete" then
			player:target_Object(114475,7000,true)
		end
	</waypoint>
	<!-- #  5 --><waypoint x="-1062" z="2318"> -- </waypoint>
	<!-- #  5 --><waypoint x="-1097" z="2265"> </waypoint>
	<!-- #  5 --><waypoint x="-1055" z="2260">
		repeat queststate = getQuestStatus(questname); yrest(500) until queststate
		if queststate == "complete" then
			__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
		else
			player:target_Object(114475,7000,true)
			repeat queststate = getQuestStatus(questname); yrest(500) until queststate
			if queststate == "complete" then
				__WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
			else
				__WPL:setWaypointIndex(__WPL:findWaypointTag("Get Menus"))
			end
		end
	</waypoint>
</waypoints>
  • 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

swietlowka
Posts: 316
Joined: Wed Jun 16, 2010 8:16 am

Re: Tomara Tavern Daily Script, need input

#5 Post by swietlowka » Wed Aug 04, 2010 3:32 am

As always i'll check it asap :)
Thx for all your help, and sorry for the PM I though You might be interested in what have I done since I asked you about that before. I didn't mean that You somehow should do it, my point was just to let You know that i work on it and that I used your script for my needs. I will not send another one like that for sure :) Keep the good work guys :)


EDIT:
I though of something, can i somehow make the bot switch channel when i can't find menus(for some time), i mean like more ppl run there for this.

swietlowka
Posts: 316
Joined: Wed Jun 16, 2010 8:16 am

Re: Tomara Tavern Daily Script, need input

#6 Post by swietlowka » Thu Aug 05, 2010 1:54 am

Ok it works almost perfectly. Only problem i noticed is that when char is at table #4 (the nearest to the entrance) it for some reason once in couple of runs try to harvest the menu thats upstairs...
Do You guys think that changing HARVEST_DISTANCE to even smaller value could help? or should i change a little the path so it wont touch that non reachable menu?

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

Re: Tomara Tavern Daily Script, need input

#7 Post by rock5 » Thu Aug 05, 2010 2:10 am

swietlowka wrote:Ok it works almost perfectly. Only problem i noticed is that when char is at table #4 (the nearest to the entrance) it for some reason once in couple of runs try to harvest the menu thats upstairs...
Do You guys think that changing HARVEST_DISTANCE to even smaller value could help? or should i change a little the path so it wont touch that non reachable menu?
I noticed that too but didn't realize what was making him run around like that. LoL

I'd say try changing the harvest distance a little first.
  • 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

swietlowka
Posts: 316
Joined: Wed Jun 16, 2010 8:16 am

Re: Tomara Tavern Daily Script, need input

#8 Post by swietlowka » Thu Aug 05, 2010 3:02 am

will check it asap an report here after :)

swietlowka
Posts: 316
Joined: Wed Jun 16, 2010 8:16 am

Re: Tomara Tavern Daily Script, need input

#9 Post by swietlowka » Fri Aug 06, 2010 2:47 am

Now it works just fine, and doesn't run like mad at table 4, but when there no one around it will harvest menus faster than they spawn :?

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints>
<!-- Tomara Tavern Daily "Pig in a Pond's Helper" -->
<onLoad>
   repeat questname=RoMScript("TEXT('Sys421030_name')"); yrest(500) until questname
   repeat npcname=RoMScript("TEXT('Sys114417_name')"); yrest(500) until npcname
   changeProfileOption("HARVEST_DISTANCE", 30)
</onLoad>

   <!-- #  1 --><waypoint x="-1023" z="2171" tag="Main">
   repeat queststate = getQuestStatus(questname); yrest(500) until queststate
   if queststate == "complete" then
      -- Complete quest
      player:target_NPC(npcname); yrest(1000);
      sendMacro("OnClick_QuestListButton(3, 1)"); yrest(1000); sendMacro("CompleteQuest()"); yrest(2000);
      -- Check if Dailies are finished
      repeat dailyQuestCount, dailyQuestsPerDay= RoMScript("Daily_count()") until dailyQuestCount and dailyQuestsPerDay
      if (dailyQuestsPerDay - dailyQuestCount) == 0 then
         player:sleep()
      end
      -- Accept quest
      player:target_NPC(npcname); yrest(1000);
      sendMacro("OnClick_QuestListButton(1, 2)"); yrest(1000); sendMacro("AcceptQuest()"); yrest(2000);
      __WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));   
   elseif queststate == "incomplete" then
      -- Collect menus
      __WPL:setWaypointIndex(__WPL:findWaypointTag("Get Menus"))
   else
      -- Accept quest
      player:target_NPC(npcname); yrest(1000);
      sendMacro("OnClick_QuestListButton(1, 2)"); yrest(1000); sendMacro("AcceptQuest()"); yrest(2000);
      __WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));   
   end
   </waypoint>
   <!-- #  2 --><waypoint x="-1017" z="2264" tag="Get Menus">
      player:target_Object(114475,7000,true)
      repeat queststate = getQuestStatus(questname); yrest(500) until queststate
      if queststate == "complete" then
         __WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
      end
   </waypoint>
   <waypoint x="-985" z="2256"> </waypoint>
   <!-- #  3 --><waypoint x="-1016" z="2373">
      player:target_Object(114475,7000,true)
   </waypoint>
   <!-- #  4 --><waypoint x="-1054" z="2368">
      repeat queststate = getQuestStatus(questname); yrest(500) until queststate
      if queststate == "incomplete" then
         player:target_Object(114475,7000,true)
      end
   </waypoint>
   <!-- #  5 --><waypoint x="-1062" z="2318"> -- </waypoint>
   <!-- #  5 --><waypoint x="-1097" z="2265"> </waypoint>
   <!-- #  5 --><waypoint x="-1055" z="2260">
      repeat queststate = getQuestStatus(questname); yrest(500) until queststate
      if queststate == "complete" then
         __WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
      else
         player:target_Object(114475,7000,true)
         repeat queststate = getQuestStatus(questname); yrest(500) until queststate
         if queststate == "complete" then
            __WPL:setWaypointIndex(__WPL:findWaypointTag("Main"));
         else
            __WPL:setWaypointIndex(__WPL:findWaypointTag("Get Menus"))
         end
      end
   </waypoint>
</waypoints>

jboggan
Posts: 55
Joined: Sun Jun 05, 2011 3:18 am

Re: Tomara Tavern Daily Script, need input

#10 Post by jboggan » Tue Jun 07, 2011 10:06 pm

i like this but is there a way that u can set it to send them to a alt everytime u get 10 using a convenient mailbox?

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

Re: Tomara Tavern Daily Script, need input

#11 Post by rock5 » Tue Jun 07, 2011 10:33 pm

I'm not familiar with using the Convenient Mailbox but there have been other posts about it. Try doing a search and see if anyone else has posted instructions on how to use them with rombot.
  • 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: Tomara Tavern Daily Script, need input

#12 Post by lisa » Tue Jun 07, 2011 11:38 pm

arn't all menus bound?
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

jboggan
Posts: 55
Joined: Sun Jun 05, 2011 3:18 am

Re: Tomara Tavern Daily Script, need input

#13 Post by jboggan » Wed Jun 08, 2011 1:38 am

no they arent, i have done it manually one day like that but i would like it to be able to send them and me go aways

kanta
Posts: 424
Joined: Thu Nov 11, 2010 4:08 pm

Re: Tomara Tavern Daily Script, need input

#14 Post by kanta » Wed Jun 08, 2011 4:18 pm

swietlowka wrote:Now it works just fine, and doesn't run like mad at table 4, but when there no one around it will harvest menus faster than they spawn :?
Could he use this because they are respawning slower than he can collect?

Code: Select all

repeat
until player:target_Object(114475,7000,true)
Scout/Knight/Rogue 70/66/66

Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests