Page 26 of 39

Re: Rock5's Millers Ranch Scripts

Posted: Mon Sep 26, 2011 5:13 am
by stob
Hello,

first of all I want to thank you all for this work you are doing for all of us. It is really very helpful.

I have a problem with starting the MillersRanchMilk.xml:

Script> rom/bot.lua path:MillersRanchMilk.xml
Opening bot.lua...
Welcome to rom bot! press END to quit
RoM Bot Version 3.29, Revision 644
The macro is currently not running. Press the start key (ENTF) to begin.
You may use (ENDE) key to stop/pause the script.
Resumed.
RoM windows size is 800x600, upper left corner at 4,23
Loading profile XXXXXXXX.xml
...s/admin/Documents/micromacro2/scripts/rom/macros.lua:68: No valid action keys
available for the command macro. Please supply an empty action key with a hotke
y and no modifier.


Please enter the script name to run.
Type in 'exit' (without quotes) to exit.

I used the same directory on another PC but with less AddOns where it works.
Are there Addons which will the script stop starting?
What am I doing wrong?
Thanks for any help.

Re: Rock5's Millers Ranch Scripts

Posted: Mon Sep 26, 2011 6:13 am
by lisa
macros and action bar is saved per PC, so issue is actually with the macro or your skill bar.

Remove any macros from action bar.
Make sure to have atleast 1 free space in action bar, 0 is the prefered default.
Delete and macros from the macro menu
Start bot again

Re: Rock5's Millers Ranch Scripts

Posted: Mon Sep 26, 2011 6:33 am
by stob
I had deleted 2 Macros named RB and RB Command. After starting the bot, they are back again. Are they provided by an AddOn? I do not know what they are doing. I have never tried to play with macros.
Thanks again

Re: Rock5's Millers Ranch Scripts

Posted: Mon Sep 26, 2011 6:46 am
by rock5
The idea was to delete them so they could be recreated properly by the bot.

Did it work after the bot recreated those macros?

Re: Rock5's Millers Ranch Scripts

Posted: Mon Sep 26, 2011 7:04 am
by stob
No, it did not work afterwards.
I deleted 3-4 times and it was always recreated.

P.S.: I just make Place 0 in actionbar empty and now it works. Before there were place 13-16 free, but this was not enough.

Thank you

Re: Rock5's Millers Ranch Scripts

Posted: Mon Sep 26, 2011 8:06 am
by rock5
That's because the bot needs an action bar button that has a hotkey but no modifier. So that's normally any of the first 12 keys that have hotkey values of 0 to 9, '-' and '='.

Just like the error message said

Code: Select all

Please supply an empty action key with a hotkey and no modifier.

Re: Rock5's Millers Ranch Scripts

Posted: Thu Sep 29, 2011 5:53 pm
by bobdole
I just got a chance to test the new scripting and it logs out and back in but the script ends so it's not reloading the waypoint.
rock5 wrote:I never did that because relogging causes the clients to use more and more memory until it crashes.

You could still add it if you like. All you need to do is change what it does when all hens are stuck. At the moment it just keeps retrying every now and then until they become unstuck (if they do).

So around line 339 of the MRC_Optimized script you will see

Code: Select all

		if #ignoredHens == 3 and inventory:itemTotalCount(204789) > 0 then
Just replace everything in that 'if' statement with what you want it to do, so.

Code: Select all

		if #ignoredHens == 3 and inventory:itemTotalCount(204789) > 0 then
			-- Set relog option
			RoMScript("} fastLoginRelog=true a={")
			-- Logout
			player:logout(false)
			waitForLoadingScreen()
			-- Restore relog option
			RoMScript("} fastLoginRelog=false a={")
			-- Reload path
			loadPaths("MRC_Optimized")
		end
That is untested but should work

Re: Rock5's Millers Ranch Scripts

Posted: Thu Sep 29, 2011 10:02 pm
by rock5
Are you saying you tried the change above but it didn't do the "loadPath"? How did the script end? What message did it print last?

Re: Rock5's Millers Ranch Scripts

Posted: Thu Sep 29, 2011 11:28 pm
by bobdole
It just turned it self off during the character logging out. Even with the script off the character logged back in to the game. I will have to wait for it to happen again if you need the exact information.

Re: Rock5's Millers Ranch Scripts

Posted: Thu Sep 29, 2011 11:43 pm
by rock5
Looks like "player:logout(false)" exits the scipt. Sorry.

Try this instead.

Code: Select all

RoMScript("Logout()")

Re: Rock5's Millers Ranch Scripts

Posted: Sat Oct 01, 2011 2:20 pm
by bobdole
The new logout code works like a dream. Now please help resolve my next issue:

For some reason I sometimes get delays at waypoints that cause the character to run past the waypoint for a couple of seconds and then the character gets stuck behind something and will eventually auto logout. I know there used to be a eggpet crafting bug but I have eggpet crafting disabled and think you fixed the bug as well. From what I can tell it appears to always begin with a clearing target, so my question is I am sure it has a lot to do with lag but what is my best way to resolve this? Can you suggest a fix for the clearing target to resolve the moving past the waypoints or would this code work and be my best resolution?

Code: Select all

<onUnstickFailure><![CDATA[
         -- Set relog option
         RoMScript("} fastLoginRelog=true a={")
         -- Logout
         RoMScript("Logout()")
         waitForLoadingScreen()
         -- Restore relog option
         RoMScript("} fastLoginRelog=false a={")
         -- Reload path
         loadPaths("MRC_Optimized")
      end
   ]]></onUnstickFailure>

Re: Rock5's Millers Ranch Scripts

Posted: Sat Oct 01, 2011 10:11 pm
by rock5
Is it only certain waypoints that it runs past?

Try setting WP_NO_STOP to false in your profile under the options section.

Code: Select all

<option name="WP_NO_STOP" 			value="false" />
Or you could set it in the waypoint file onload section like this

Code: Select all

settings.profile.options.WP_NO_STOP = false

Re: Rock5's Millers Ranch Scripts

Posted: Sun Oct 02, 2011 11:28 pm
by bobdole
Added the following to my waypoint onload section:

Code: Select all

settings.profile.options.WP_NO_STOP = false
It appears they are still over running/over porting waypoints and its always following a "Clearing target". I looked in the classes/player.lua file and a see several codes using:

Code: Select all

self:clearTarget();


Any idea which one of those are being used with this script? I would like to comment it out and see if that resolves the issue.

Re: Rock5's Millers Ranch Scripts

Posted: Sun Oct 02, 2011 11:32 pm
by rock5
It could be anything. Do you have any userfunctions being used in the profile events, such as the onload or onleavecombat?

Re: Rock5's Millers Ranch Scripts

Posted: Sun Oct 02, 2011 11:34 pm
by yoyodoggg
id like to share my waypoint additions to this script. THIS WILL WORK IN LOGAR ONLY

For This Waypoint you will need
1. Rock5 Mail addon and userfunction found at viewtopic.php?f=27&t=1561
2. you will need to copy /rom/devtools/ingamefunctions to your /runesofmagic/Interface/Addons folder.
3. You will need FastLogin Revisted add found at viewtopic.php?f=27&t=1245
4. I also suggest GM detection for its log out feature if a GM(lvl 0 player) is nearby. found at viewtopic.php?f=27&t=2516
5. you will need the setwindow userfunction found at viewtopic.php?f=27&t=2924
6. you will need to change the name of your Millers Ranch Script to eggs.xml

i added

Code: Select all

<OnLoad>
setwindow(204792)
changeProfileOption("WAYPOINT_DEVIATION", 0) 
changeProfileOption("HARVEST_DISTANCE", 150)
local goldeggs = inventory:itemTotalCount(204792)
local goodcake = inventory:itemTotalCount(204791)

<!-- Were you just a Farmer, do you have golden eggs to mail -->
function eggchecks()
	if goldeggs >= 70 then
	 printf("I have Golden Eggs to Dump!\n");
	  loadPaths("maildumpranch");
	 else
	 __WPL:setWaypointIndex(__WPL:findWaypointTag("Main"))
	end
end
	
local zoneid = RoMScript("GetZoneID()")

<!-- Are we in Logar -->	
if (zoneid == 1) or (zoneid == 1001) then
	printf("We are in Logar, Moving to the Ranch\n");
	__WPL:setWaypointIndex(__WPL:findWaypointTag("logar"))
end
</OnLoad>
and i EDITED OUT THE

Code: Select all

<!--if zoneid ~= 304 then  not at Miller's Ranch
		 Try to find Sorrun and teleport in
		if player:target_NPC("Sorrun") then
			sendMacro("ChoiceOption(3)") yrest(1000)
			sendMacro("ChoiceOption(1)")
			waitForLoadingScreen()
			yrest(1000)
			__WPL:setWaypointIndex(__WPL:getNearestWaypoint(player.X,player.Z))
		else
			error("You are too far from Miller's Ranch")
		end
	end-->
next i taged

Code: Select all

<!-- #  1 --><waypoint x="4026" z="3400" tag="start">
then the very bottom of your Ranch script should look like

Code: Select all

		portTo(3926,3198);
		if 1 > inventory:itemTotalCount(204789) then yrest(LagTime+1000) end --if he gooes directly to feed he is rubberbanded!
	</waypoint>
	<!-- # 10 --><waypoint x="3926" z="3198">
		printf("Checking to See if we have enough Golden Eggs to Mail\n");
		eggchecks()
		</waypoint>
	
<!-- We are in Logar -->	
	<!-- #  1 --><waypoint x="-797" z="-5971" y="31" tag="logar"> </waypoint>
	<!-- #  2 --><waypoint x="-884" z="-5941" y="35">	</waypoint>
	<!-- #  3 --><waypoint x="-894" z="-5881" y="44">		
		player:target_NPC("Matt Sorrun"); yrest(2000);
		RoMScript("ChoiceOption(3)"); yrest(2000);
		RoMScript("ChoiceOption(1)"); yrest(4000);
		waitForLoadingScreen();	yrest(2000);
	</waypoint>
	<!-- #  7 --><waypoint x="4033" z="3405" y="-3">
	player:update();
	inventory:update();
	__WPL:setWaypointIndex(__WPL:findWaypointTag("start"))
	</waypoint>

</waypoints>
	
FINALLY make a NEW file and call it maildumpranch.xml

and add this code to it

Code: Select all

<?xml version="1.0" encoding="utf-8"?><waypoints>
<OnLoad>
<!-- Settings -->
	local bearclaw = inventory:itemTotalCount(200609)
	local boartusk = inventory:itemTotalCount(200624)
<!-- Combat Options -->	
	changeProfileOption("COMBAT_DISTANCE", 50)
	changeProfileOption("COMBAT_RANGED_PULL", false)
	changeProfileOption("WAYPOINT_DEVIATION", 0) 
<!-- Merchant Options -->	
	changeProfileOption("INV_AUTOSELL_ENABLE", true)
	changeProfileOption("INV_AUTOSELL_FROMSLOT", 1)
	changeProfileOption("INV_AUTOSELL_TOSLOT", 90)
	changeProfileOption("INV_AUTOSELL_QUALITY", "white,green")
	changeProfileOption("INV_AUTOSELL_IGNORE", "Pfeil,Element,III,Hero,Spirit,Meat,Pie,Source,Activ,Card,Potion,Formula,Candy")
	<!--changeProfileOption("INV_AUTOSELL_TYPES", "Weapons,Armor,Recipes,Others") -->
	changeProfileOption("INV_AUTOSELL_TYPES_NOSELL", "Accessories,Amulets")
	changeProfileOption("INV_AUTOSELL_STATS_NOSELL", "X,XI,V")
</OnLoad>
	<!-- #  1 --><waypoint x="3955" z="3163" y="0">	</waypoint>
	<!-- #  2 --><waypoint x="4014" z="3147" y="-5">	</waypoint>
	<!-- #  3 --><waypoint x="4032" z="3221" y="-4">	</waypoint>
	<!-- #  4 --><waypoint x="4039" z="3352" y="-4">	</waypoint>
	<!-- #  5 --><waypoint x="4009" z="3419" y="0">	
		player:target_NPC("Pykesile");yrest(2000);
		RoMScript("ChoiceOption(4)"); yrest(2000);
		RoMScript("ChoiceOption(1)"); yrest(4000);
		waitForLoadingScreen();	yrest(2000);
	</waypoint>
	<!-- #  6 --><waypoint x="-893" z="-5932" y="36">	</waypoint>
	<!-- #  7 --><waypoint x="-738" z="-5948" y="32">	</waypoint>
	<!-- #  8 --><waypoint x="-578" z="-5948" y="25">	</waypoint>
	<!-- #  9 --><waypoint x="-423" z="-5982" y="21">
<!-- Check the Mail and Dump Our Phats -->	
local goldeggs = inventory:itemTotalCount(204792)
local goodcake = inventory:itemTotalCount(204791)
local cgold = RoMScript('GetPlayerMoney("copper");')
	 player:target_Object("Logar mailbox",2000);
	 RoMScript("ChoiceOption(1)"); yrest(4000);
		UMM_TakeMail(); yrest(4000);
		inventory:update(); yrest(2000);
	 printf("Sending Cards, %s Gold, %s Eggs and %s Cakes\n", cgold, goldeggs, goodcake);
	 <!-- Send Gold -->
	  if (cgold >= 10000) then
	  UMM_SendMoney("MAILTO", "all"); yrest(4000);
	  end
     <!-- Send Golden Eggs and Cakes -->
	  UMM_SendByNameOrId("MAILTO", 204792); yrest(4000);
	  UMM_SendByNameOrId("MAILTO", 204791); yrest(4000);
	<!-- Send Other Junk -->
	 printf("Sending Any Other Junk we have in Bags\n");
	  UMM_SendAdvanced("MAILTO", nil,nil,nil,nil, "Cards"); yrest(4000);
	  UMM_SendByQuality("MAILTO", 3); yrest(4000);
	  UMM_SendByStatNumber("MAILTO", 2); yrest(4000);
	  <!-- Sending any Runes Left -->
	  if (player.Name ~= "MAILTO") then
	  UMM_SendAdvanced("MAILTO", nil,nil,nil,nil, "Runes"); yrest(4000);
	  end
	</waypoint>
	<!-- # 15 --><waypoint x="-499" z="-5979" y="21">	
	player:update(); yrest(1000);
	inventory:update(); yrest(1000);
	printf("I am Empty now\n"); yrest(1000);
	</waypoint>
	<!-- # 16 --><waypoint x="-630" z="-5976" y="26">	</waypoint>
	<!-- # 17 --><waypoint x="-802" z="-5952" y="31">	
		sendMacro("}LoginNextToon=true;a={")
        sendMacro("Logout();"); yrest(500)
        waitForLoadingScreen(); yrest(4000)
		printf("Loading Next Farmer..")
        loadPaths("eggs"); yrest(4000)
	</waypoint>
</waypoints>
now your bot will mail you eggs when u reach 70+ and switch to next character, and then enter the ranch again. and continue.

YOU WILL NEED TO CHANGE THE MAILTO text to the name of your character you want the eggs sent to.

Re: Rock5's Millers Ranch Scripts

Posted: Sun Oct 02, 2011 11:37 pm
by bobdole
Let me look, 2 question about:

Code: Select all

settings.profile.options.WP_NO_STOP = false
1) What does that change?
2) Based on other code I see in your script shouldn't the format be:

Code: Select all

changeProfileOption("WP_NO_STOP", false)
I checked and none of that code is in the profiles, I use the generic profile so I figured it would be blank.

Re: Rock5's Millers Ranch Scripts

Posted: Mon Oct 03, 2011 12:35 am
by rock5
They are basically the same thing. Probably would be easier to use the function instead of changing the value directly.

By default the bot will keep running after reaching a waypoint and change direction on the fly. Usually if you have high lag issues it will run past waypoints and then run back before continuing to the next waypoint. By setting that value to false, it will stop, change direction, then continue.

Probably this is not the issue in this case as most of the waypoints in this file have code in them so it should stop anyway.

I think this may have been reported before. I don't know if it was ever resolved.

Re: Rock5's Millers Ranch Scripts

Posted: Mon Oct 03, 2011 12:58 am
by bobdole
I think this works:

Code: Select all

<onUnstickFailure><![CDATA[
         -- Set relog option
         RoMScript("} fastLoginRelog=true a={")
         -- Logout
         RoMScript("Logout()")
         waitForLoadingScreen()
         -- Restore relog option
         RoMScript("} fastLoginRelog=false a={")
         -- Reload path
         loadPaths("MRC_Optimized")
]]></onUnstickFailure>
Question is can I load it from the waypoint script so I don't have to edit each profile?

Re: Rock5's Millers Ranch Scripts

Posted: Mon Oct 03, 2011 1:10 am
by lisa
add this to WP onload

Code: Select all

function unStick9()
         -- Set relog option
         RoMScript("} fastLoginRelog=true a={")
         -- Logout
         RoMScript("Logout()")
         waitForLoadingScreen()
         -- Restore relog option
         RoMScript("} fastLoginRelog=false a={")
         -- Reload path
         loadPaths("MRC_Optimized")
end

Re: Rock5's Millers Ranch Scripts

Posted: Mon Oct 03, 2011 11:44 am
by bobdole
I commented out the clear target code in bot.lua and it seems to be helping with the over running but I still am getting some where its either over running or over porting. Its clearly due to the game lagging due to running many times. Can you suggest any more ideas that can help with this?