profile option LOOT_ALL broken

Runes of Magic/Radiant Arcana (http://www.runesofmagic.com)
Post Reply
Message
Author
User avatar
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

profile option LOOT_ALL broken

#1 Post by Ego95 » Tue Mar 12, 2013 7:43 pm

Hi,
I just checked for a new revision and it updated to revision 754. Now the LOOT_ALL function in the profile is broken. I've tried to restart my game and the script but it just loots the mob it targets. So if I run ks with my mage it doesn't loot the other trash mobs :(
I don't know which update broke this but I'm using rev 750 now. Hopefully it will get fixed soon. Many thanks ;)


AlterEgo95

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

Re: profile option LOOT_ALL broken

#2 Post by lisa » Tue Mar 12, 2013 7:54 pm

Before I have a look at the thousands of lines of code to work out the issue can you double check it is using the profile you think it is using, just add a simple print to the onload section of the profile you think it should be using.

something like

Code: Select all

<onLoad><![CDATA[
print("I am the right profile")
]]></onLoad>
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
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: profile option LOOT_ALL broken

#3 Post by Ego95 » Tue Mar 12, 2013 8:04 pm

Yes it is using the right profile. I noticed that the bot targets the mob it wants to attack, I mean, like it is shown when you do it manually. But I really don't know why it doesn't loot nearby mobs anymore. If you don't understand my problem, maybe try it yourself with one of your ks bots.

I am not using the new micromacro beta version.

AlterEgo95

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

Re: profile option LOOT_ALL broken

#4 Post by lisa » Tue Mar 12, 2013 8:48 pm

k I'll test it out a bit later, lots of work to do today, first glance of the SVN log doesn't show any changes to the looting though.
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: profile option LOOT_ALL broken

#5 Post by rock5 » Wed Mar 13, 2013 12:15 am

But the targeting has changed. I just tested it. Looting still works and so does loot all. I also tested it with the stable 1.02 beta 4 version. So I'm not sure what your issues is.
  • 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: profile option LOOT_ALL broken

#6 Post by Ego95 » Wed Mar 13, 2013 1:35 am

One person of my server that I know has the same problem. My gold/hour went down to 50k because it targets the first mob in range, uses thunderstorm to get all mobs which stay around and then just loot the targetted mob. Like I said I reverted back to rev 750. Later I will try rev. 751-753 to look if the error is in one of those revisions.

AlterEgo95

Bubi
Posts: 57
Joined: Tue May 04, 2010 3:51 pm

Re: profile option LOOT_ALL broken

#7 Post by Bubi » Wed Mar 13, 2013 1:59 am

I'm running with R/S , K/S and S/Warden. All three chars have the problem with the looting. When I watch them running, they do not loot all the mobs. Most of the time the first killed mob will not looted (loot in battle -> false). I also realised, the wait after killing a mob is increased (almost 1second).

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

Re: profile option LOOT_ALL broken

#8 Post by lisa » Wed Mar 13, 2013 2:21 am

seems to be working ok for me, 1 time it did kill the next group of frogs and then went back to loot the last group of frogs but it didn't miss any loot.

Maybe turn on debugging and see what the prints have to say about it?
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
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: profile option LOOT_ALL broken

#9 Post by Ego95 » Wed Mar 13, 2013 5:49 am

Hi,
Here the micromacro output with debugging

Code: Select all

Attempt to read playerAddress
[DEBUG] playerAddr: 0x29F5F00
[DEBUG] player classes: 4/5
[DEBUG] player pet: 0x0
[DEBUG] Player target: 0x29F5F00
[DEBUG] player target type: 0x1
[DEBUG] player target attackable: false
[DEBUG] player target aggressive: false
[DEBUG] player in battle: false
[DEBUG] mousePawn: 0x0
[DEBUG] mousePawn id: -1
[DEBUG] camAddress: 0xBDD800
[DEBUG] Cam X: -18831.61, Y: -762.04, Z: 12294.98
[DEBUG] Cam XU: 0.11, YU: 0.99, ZU: -0.04
Game Version is 5.0.8.2623
RoM windows size is 1920x1018, upper left corner at 0,22
Loading profile MyChar.xml
commandMacro set to 1.
resultMacro set to 2.
The macro hotkey is x.
The 'Attack' hotkey is set to 'macro'.
Testing 'ingamefunctions' macro. If it gets stuck here, please update the 'ingam
efunctions' by copying the 'ingamefunctions' folder from 'rom/devtools' to the g
ames 'interface/addons' folder.
MACRO Test: ok
Ranged skill found: MAGE_THUNDERSTORM
[DEBUG] CPU Frequency 2539.13
Client Language changed.
Getting item type names.
100% [********************]

Loaded waypoint path Speed_KS.xml
No return path with default naming Speed_KS_return.xml found.
We use the normal waypoint path Speed_KS.xml now.
Waypoint #2 is closer then #1. Hence we start with waypoint #2.
We changed the option 'INV_AUTOSELL_ENABLE' from 'true' to 'true'.
We changed the option 'INV_AUTOSELL_FROMSLOT' from '1' to '1'.
We changed the option 'INV_AUTOSELL_TOSLOT' from '180' to '180'.
We changed the option 'INV_AUTOSELL_QUALITY' from 'white,green,blue,purple' to '
white, green, blue, purple'.
[DEBUG] 43998976 Can't have self as target
Clearing target.
Moving to waypoint #1, (-18550, 12303)
[DEBUG] waypoint type RUN or TRAVEL. We don't target mobs.
Use MACRO: MAGE_ELECTROSTATIC_C=>   <UNKNOWN> (0/1000)
Use MACRO: MAGE_ENERGY_INFLUX  =>   MyChar (25023/25023)
Honour party ticket used!
Created party successfully!
Clearing target.
Moving to waypoint #2, (-18577, 12388)
[DEBUG] waypoint type RUN or TRAVEL. We don't target mobs.
Targeting portal 112072, range 121.22758363192
Player address changed: 0x39A56400
Ranged skill found: MAGE_THUNDERSTORM
Moving to waypoint #3, (4714, 824)
[DEBUG] waypoint type RUN or TRAVEL. We don't target mobs.
Moving to waypoint #4, (4704, 911)
[DEBUG] waypoint type RUN or TRAVEL. We don't target mobs.
Forced waypoint type 'NORMAL' set by user.
Moving to waypoint #5, (4464, 911)
Stopping waypoint: Target acquired.
Engaging enemy [Ousul Salamander] in combat.
Use MACRO: MAGE_THUNDERSTORM   =>   Ousul Salamander (15683/15683)
[DEBUG] 967145472 target HP is less than 1
Fight finished. Killed 1 Ousul Salamander. (fight #1 / runtime 0 minutes)
[DEBUG] don't loot reason: target not lootable.
[DEBUG] don't loot reason: target not lootable.
[DEBUG] don't loot reason: target not lootable.
Clearing target.
[DEBUG] FightStartX 4654.2436523438 FightStartZ 917.5888671875
[DEBUG] dir_FS->WP rad -3.107 dir_FS->FE rad -3.007
[DEBUG] Line FS->WP / FS->FE: angleDif rad 0.100 grad 5
[DEBUG] We (would) pass(ed) wp #5 (dist 190.4) in a dist of 18 (skip at 100)
Moving to waypoint #5, (4464, 911)
[DEBUG] 967144192 target HP is less than 1
Stopping waypoint: Target acquired.
Engaging enemy [Ousul Poison Frog] in combat.
Use MACRO: MAGE_THUNDERSTORM   =>   Ousul Poison Frog (15683/15683)
[DEBUG] 967151872 target HP is less than 1
Fight finished. Killed 1 Ousul Poison Frog. (fight #2 / runtime 0 minutes)
[DEBUG] don't loot reason: target not lootable.
[DEBUG] don't loot reason: target not lootable.
[DEBUG] don't loot reason: target not lootable.
Clearing target.
[DEBUG] FightStartX 4464.96875 FightStartZ 910.9912109375
[DEBUG] dir_FS->WP rad 3.133 dir_FS->FE rad 2.326
[DEBUG] Line FS->WP / FS->FE: angleDif rad 0.806 grad 46
[DEBUG] We (would) pass(ed) wp #5 (dist 1.0) in a dist of 0 (skip at 100)
[DEBUG] currentWp #5 4464 911, FE->WP rad -0.824
[DEBUG] nextWp #6 4328 910, FE->WP rad -2.556
[DEBUG] FE->wp#6 to FE->wp#5 is in a angle of 99 grad (skip at 90)
[DEBUG] We overrun waypoint #5, skip it and move on to #6
We overrun waypoint #5, skip it and move on to #6
Moving to waypoint #6, (4328, 910)
[DEBUG] 967149312 target HP is less than 1
Paused. (ENTF) to continue, (CTRL+L) exit to shell, (CTRL+C) quit
So it says the target is no lootable, but it is a normal mob in ks. For some reason it is nor working :/
Also removed the whole bot, saved my waypoints, profiles and userfunctions and downloaded the bot files again.

Edit: Just tried the older revisions. Rev. 753 is still working, so the problem occured with rev. 754 ;)

AlterEgo95

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

Re: profile option LOOT_ALL broken

#10 Post by lisa » Wed Mar 13, 2013 6:08 am

it goes through a lot of checks to determine if something is "lootable" or not, it's not simply a bit indicating it has loot on the mob.

Maybe have a look at your profile settings for
COMBAT_DISTANCE
and
LOOT_DISTANCE
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: profile option LOOT_ALL broken

#11 Post by lisa » Wed Mar 13, 2013 6:15 am

try this player.lua and make sure you have debugging on and debug loot as true.

This file had been changed since the last commit, tell me if it errors because of missing functions/options.
rev 754

Or you can just edit your evaltarget function in player.lua

Code: Select all

function evalTargetLootable(address, target)

	if not target or not target.HP then
		target = CPawn.new(address)
	end
	-- Check if still valid target
	if not target:exists() then
		if( settings.profile.options.DEBUG_LOOT) then
			cprintf(cli.yellow, "not exists")
		end
		return false
	end

	-- Check if lootable
	target:updateLootable()
	if not ( target.Lootable ) then
			if( settings.profile.options.DEBUG_LOOT) then
				cprintf(cli.yellow, "not lootable")
			end	
		return false;
	end

	-- Check if in lootIgnoreList
	for __, addr in pairs(lootIgnoreList) do
		if target.Address == addr then
			if( settings.profile.options.DEBUG_LOOT) then
				cprintf(cli.yellow, "ignore list")
			end
			return false
		end
	end

	-- Check height difference
	target:updateXYZ()
	if( math.abs(target.Y - player.Y) > 45 ) then
			if( settings.profile.options.DEBUG_LOOT) then
				cprintf(cli.yellow, "height angle difference")
			end
		return false;
	end

	-- check distance to target
	local dist = distance(player.X, player.Z, player.Y, target.X, target.Z, target.Y);
	local lootdist = 100;

	-- Set to combat distance; update later if loot distance is set
	if( settings.profile.options.COMBAT_TYPE == "ranged" ) then
		lootdist = settings.profile.options.COMBAT_DISTANCE;
	end

	if( settings.profile.options.LOOT_DISTANCE ) then
		lootdist = settings.profile.options.LOOT_DISTANCE;
	end

	if( dist > lootdist ) then 	-- only loot when close by
			if( settings.profile.options.DEBUG_LOOT) then
				cprintf(cli.yellow, "Distance")
			end
		return false
	end

	-- check target distance to path against MAX_TARGET_DIST
	local wpl; -- this is the waypoint list we're using
	local V; -- this is the point we will use for distance checking

	if( player.Returning ) then
		wpl = __RPL;
	else
		wpl = __WPL;
	end

	if (__WPL:getMode() == "waypoints") and #__WPL.Waypoints > 0 then
		local pA = wpl.Waypoints[wpl.LastWaypoint]
		local pB = wpl.Waypoints[wpl.CurrentWaypoint]

		V = getNearestSegmentPoint(player.X, player.Z, pA.X, pA.Z, pB.X, pB.Z);
	else
		V = CWaypoint(player.X, player.Z); -- Distance check from player in wander mode
	end

	-- use a bounding box first to avoid sqrt when not needed (sqrt is expensive)
	if( target.X > (V.X - lootdist) and
		target.X < (V.X + lootdist) and
		target.Z > (V.Z - lootdist) and
		target.Z < (V.Z + lootdist) ) then

		if( distance(V.X, V.Z, target.X, target.Z) > lootdist ) then
			if( settings.profile.options.DEBUG_LOOT) then
				cprintf(cli.yellow, "unlooted monster dist > lootdist")
			end
			return false;			-- he is not a valid target
		end;
	else
		-- must be too far away
		if( settings.profile.options.DEBUG_LOOT) then
			cprintf(cli.yellow, "unlooted monster dist > lootdist")
		end
		return false;
	end

	return true
end
Attachments
player.lua
debugging Loot
(127.67 KiB) Downloaded 112 times
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
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: profile option LOOT_ALL broken

#12 Post by Ego95 » Wed Mar 13, 2013 6:23 am

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<profile>
	<options>
		<!-- Try the bot with a new char mage                   -->
		<!-- At the pioneer village. Use demo.xml waypoint file -->
		<option name="HP_LOW"				value="50" />
		<option name="MP_LOW_POTION"		value="50" />
		<option name="HP_LOW_POTION"		value="50" />
		<option name="USE_HP_POTION"		value="best" />			<!-- potion select strategy: best|minstack -->
		<option name="USE_MANA_POTION"		value="best" />			<!-- potion select strategy: best|minstack -->
		<option name="USE_PHIRIUS_POTION"	value="false" /> 		<!-- false | true if you want to use the Phirus Potions -->
		<option name="PHIRIUS_MP_LOW"		value="40" />
		<option name="PHIRIUS_HP_LOW"		value="40" />

		<!-- Rest if HP or Mana is below that level -->
		<option name="HP_REST" 				value="10" />
		<option name="MP_REST" 				value="10" />

		<!-- Shopping options, how many of what do you want to keep in your inventory -->
		<option name="HEALING_POTION" 		value="0" />
		<option name="MANA_POTION" 			value="0" />			<!-- set to "0" if not required to buy -->
		<option name="ARROW_QUIVER" 		value="0" /> 			<!-- set to "0" if not required to buy -->
		<option name="THROWN_BAG" 			value="0" />			<!-- set to "0" if not required to buy -->
		<option name="POISON" 				value="0" />			<!-- set to "0" if not required to buy -->

		<!-- either false or arrow or thrown -->
		<option name="RELOAD_AMMUNITION" 	value="false" />		<!-- false|arrow|thrown -->

		<!-- Combat options -->
		<option name="COMBAT_TYPE"        	value="ranged" />				<!-- leave empty or choose ranged/melee if not using class default -->
		<option name="COMBAT_RANGED_PULL" 	value="false" /> 		<!-- only important for melees -->
		<option name="COMBAT_DISTANCE"    	value="100" />			<!-- Distance at which it starts using skills -->
		<option name="MAX_FIGHT_TIME"     	value="99" />			<!-- Max time without damage before break -->
		<option name="DOT_PERCENT"        	value="0" />
		<option name="ANTI_KS"            	value="true" />
		<option name="MAX_TARGET_DIST"    	value="110" />
		<option name="PRIORITY_CASTING"		value="false" />		<!-- If you want to cast attack skills by 'priority' or 'sequencially' -->
		<option name="COUNT_AGGRO_ONLY"		value="false" />		<!-- If you want to count only aggro mobs within range of aoe skills  -->

		<!-- Attack monsters 3 levels above or 10 below your level -->
		<option name="TARGET_LEVELDIF_ABOVE" value="5" />
		<option name="TARGET_LEVELDIF_BELOW" value="100" />

		<!-- Waypoint and movement settings -->
		<option name="WAYPOINTS"			value="Speed_KS" />  			<!-- leave empty to show a list -->
		<option name="RETURNPATH"			value="" />
		<option name="PATH_TYPE"			value="waypoints" />	<!-- waypoints | wander -->
		<option name="WANDER_RADIUS"		value="0" />
		<option name="WAYPOINT_DEVIATION"	value="0" />
		<option name="QUICK_TURN" 			value="true" />

		<!-- Loot settings -->
		<option name="LOOT"               	value="true" />
		<option name="LOOT_ALL"			  	value="true" />  		<!-- Loot all nearby dead mobs after combat -->
		<option name="LOOT_IN_COMBAT"     	value="false" />
		<option name="LOOT_DISTANCE"      	value="200" />
		<option name="LOOT_PAUSE_AFTER"   	value="0" />			<!-- probability in % for a short rest -->
		<option name="LOOT_SIGILS"			value="false" />				<!-- Loot sigils or not. If ommitted, will depend on "LOOT" value -->
		<option name="SIGILS_IGNORE_LIST"	value="" />				<!-- List of any sigils you wish to ignore, in language of client -->

		<!-- Auto selling options when used with player:merchant -->
		<option name="INV_AUTOSELL_ENABLE"	value="true" />		<!-- true | false -->
		<option name="INV_AUTOSELL_FROMSLOT" value="1" /> 			<!-- 1 = bag 1 slot 1 -->
		<option name="INV_AUTOSELL_TOSLOT"	value="180" /> 			<!-- 30 = last slot bag 1 -->
		<option name="INV_AUTOSELL_QUALITY"	value="white,green,blue,purple" /> 	<!-- white,green,blue,purple  -->
		<option name="INV_AUTOSELL_IGNORE"		value="III" />

		<!-- Harvest options -->
		<option name="HARVEST_DISTANCE"		value="120" />
		<option name="HARVEST_WOOD"			value="true" /> 		<!-- Choose which types to harvest. -->
		<option name="HARVEST_HERB"			value="true" /> 		<!-- "true" = harvest, "false" = do not harvest -->
		<option name="HARVEST_ORE"			value="true" />

		<!-- Eggpet options -->
		<option name="EGGPET_ENABLE_CRAFT"	value="false" />		<!-- If using same slot for assist and craft, onlt 1 can be enabled. -->
		<option name="EGGPET_CRAFT_SLOT"	value="1" />
		<option name="EGGPET_ENABLE_ASSIST"	value="false" />
		<option name="EGGPET_ASSIST_SLOT"	value="1" />
		<option name="EGGPET_CRAFT_RATIO"	value="1:1:1" /> 		<!-- mining:woodworking:herbalism ratio to produce. -->
		<option name="EGGPET_CRAFT_INDEXES"	value="" /> 	 		<!-- override auto craft index for mining,woodworking,herbalism eg. "2,,"-->


		<!-- Log out and resurrect settings -->
		<option name="LOGOUT_TIME" 			value="0" />			<!-- in minutes, 0 = timer disabled -->
		<option name="LOGOUT_SHUTDOWN"		value="false" />
		<option name="LOGOUT_WHEN_STUCK"	value="false" />
		<option name="CLOSE_WHEN_STUCK"		value="false" />
		<option name="RES_AFTER_DEATH" 		value="true" />
		<option name="MAX_DEATHS" 			value="999" /> 			<!-- Log out after this many deaths -->

		<!-- Party Bot options  -->
		<!-- <option name="PARTY"			value="true" /> -->
		<!-- <option name="PARTY_ICONS"		value="true" /> -->
		<!-- <option name="PARTY_INSTANCE"	value="true" /> -->

		<!-- Healing options -->
		<!-- <option name="HEALER_FIGHT"		value="true" /> --> 	<!-- For party bot if you want healer to also fight -->

		<!-- pvp -->
		<!--option name="PVP"			value="true" /> --> 		<!-- To enable PVP, with this set to true it will auto attack any players with red names -->

		<!-- For more options and documentation see the RoM Bot Wiki:  -->
		<!-- http://www.solarstrike.net/wiki/index.php5?title=RoM_Bot  -->

	</options>

	<friends>
		<!-- names of friends we help fighting or enemys we don't want to attack -->
		<!-- for umlauts use \129 (ue),\132 (ae),\148 (oe) e.g. K\132fer         -->
		<friend name="Eiserner" />
		<friend name="Yusalien" />
		<friend name="Elite_Mob_Name1" />
		<friend name="Elite_Mob_Name2" />
	</friends>

	<mobs>
		<!-- names of mobs we want to attack 				-->
		<!-- if no names defined we will attack all mobs	-->
		<mob name="" />
		<mob name="" />
		<mob name="" />
	</mobs>

	<hotkeys>
    	<!-- to communicate with the RoM API / define ingame dummy macro at place 1 -->
		<hotkey name="MACRO"          key="VK_0" />
	</hotkeys>

	<!-- define your skills depending from your actual primary class -->
	<!-- see the example for a priest/mage                           -->
	<!-- delete skills you don't have or don't want to use.          -->
	<!-- For more skills to use see /database/skills.xml             -->
	<!-- demo skills for LvL 1 character for all classes             -->
	<!-- to use a specific key instead of MACRO then use hotkey="VK_1" this example is for hotkey 1 -->
	<skills_priest>
		<skill name="PRIEST_SOUL_SOURCE"     	hotkey="MACRO" priority="110" inbattle="true" hpper="15" />
		<skill name="PRIEST_URGENT_HEAL"     	hotkey="MACRO" priority="100" hpper="50"  />
		<skill name="PRIEST_REGENERATE"      	hotkey="MACRO" priority="90"  hpper="80" />
		<skill name="PRIEST_RISING_TIDE"     	hotkey="MACRO" priority="80" />
		<skill name="PRIEST_WAVE_ARMOR"      	hotkey="MACRO" priority="40"  inbattle="true" />
		<skill name="PRIEST_AMPLIFIED_ATTACK" 	hotkey="MACRO" priority="20" rebuffcut="60" inbattle="false" />
		<skill name="PRIEST_GRACE_OF_LIFE" 		hotkey="MACRO" priority="20" rebuffcut="60" inbattle="false" />
		<skill name="PRIEST_HOLY_AURA"       	hotkey="MACRO" priority="100" inbattle="true" hpper="24" />
		<!--skill name="PRIEST_SOUL_BOND"     	hotkey="MACRO" priority="30" /> -->
		<!--skill name="PRIEST_MAGIC_BARRIER" 	hotkey="MACRO" priority="20" rebuffcut="60" inbattle="false" /> -->
	</skills_priest>

	<skills_warrior>
		<skill name="WARRIOR_SLASH"          	hotkey="MACRO" priority="90" />
		<skill name="WARRIOR_TACTICAL_ATTACK"   hotkey="MACRO" priority="70" />
		<skill name="WARRIOR_PROBING_ATTACK" 	hotkey="MACRO" priority="80" />
		<skill name="WARRIOR_OPEN_FLANK"      	hotkey="MACRO" priority="70" />
		<skill name="WARRIOR_SURPRISE_ATTACK"   hotkey="MACRO" priority="70" pullonly="true" />
		<skill name="WARRIOR_FRENZY"  			hotkey="MACRO" priority="30" inbattle="true" />
		<skill name="WARRIOR_THUNDER"     	  	hotkey="MACRO" priority="70" />
		<skill name="WARRIOR_MOON_CLEAVE"     	hotkey="MACRO" priority="70" />
		<skill name="WARRIOR_BLASTING_CYCLONE"  hotkey="MACRO" priority="70" />
	</skills_warrior>

	<skills_scout>
		<skill name="SCOUT_SHOT"          		hotkey="MACRO" priority="90" />
		<skill name="SCOUT_AUTOSHOT"      		hotkey="MACRO" priority="80" />
		<skill name="SCOUT_WIND_ARROWS"   		hotkey="MACRO" priority="70" />
		<skill name="SCOUT_VAMPIRE_ARROWS" 		hotkey="MACRO" priority="70" />
		<skill name="SCOUT_COMBO_SHOT"        	hotkey="MACRO" priority="95" />
		<skill name="SCOUT_ARROW_OF_ESSENCE"    hotkey="MACRO" priority="90" maxhpper="60" inbattle="true"/>
	</skills_scout>

	<skills_rogue>
		<skill name="ROGUE_SHADOWSTAB"    		hotkey="MACRO" priority="90" />
		<skill name="ROGUE_LOW_BLOW"      		hotkey="MACRO" priority="80" />
		<skill name="ROGUE_HIDE"    			hotkey="MACRO" priority="10" autouse="false" />
		<skill name="ROGUE_INFORMER"    		hotkey="MACRO" priority="80" />
		<skill name="ROGUE_ASSASSINS_RAGE"    	hotkey="MACRO" priority="60" />
		<skill name="ROGUE_WOUND_ATTACK"    	hotkey="MACRO" priority="80" />
	</skills_rogue>

	<skills_mage>
		<skill name="MAGE_THUNDERSTORM"               	hotkey="MACRO" priority="100" />
		<skill name="MAGE_PURGATORY_FIRE"              	hotkey="MACRO" priority="90" />
		<skill name="MAGE_DISCHARGE"              		hotkey="MACRO" priority="10" autouse="false" />
		<skill name="MAGE_ELECTROSTATIC_CHARGE"			hotkey="MACRO" priority="30" />
		<skill name="MAGE_ENERGY_INFLUX" 	  			hotkey="MACRO" priority="30" autouse="true" />
		<skill name="MAGE_ESSENCE_OF_MAGIC" 			hotkey="MACRO" priority="30" autouse="true" inbattle="false" />
		<skill name="PRIEST_MAGIC_BARRIER" 				hotkey="MACRO" priority="30" autouse="true" inbattle="false" />
		<skill name="PRIEST_HOLY_AURA" 					hotkey="MACRO" priority="110" hpper="30" />
		<skill name="PRIEST_URGENT_HEAL" 				hotkey="MACRO" priority="100" hpper="50" />
		<skill name="PRIEST_REGENERATE" 				hotkey="MACRO" priority="70" hpper="90" />		
	</skills_mage>

	<skills_knight>
		<skill name="KNIGHT_HOLY_STRIKE"    	hotkey="MACRO" priority="90" />
		<skill name="KNIGHT_HOLY_SHIELD"    	hotkey="MACRO" priority="80" inbattle="true" hpper="15" />
		<skill name="KNIGHT_HOLY_SEAL"      	hotkey="MACRO" priority="70" />
		<skill name="KNIGHT_PUNISHMENT"     	hotkey="MACRO" priority="60" />
		<skill name="KNIGHT_ENHANCED_ARMOR"   	hotkey="MACRO" priority="90" />
		<skill name="KNIGHT_MANA_RETURN"   	  	hotkey="MACRO" priority="60" />
		<skill name="KNIGHT_RESOLUTION"   	  	hotkey="MACRO" priority="60" />
		<skill name="KNIGHT_DISARMAMENT"   	  	hotkey="MACRO" priority="70" />
	</skills_knight>

	<skills_warden>
		<skill name="WARDEN_CHARGED_CHOP"	  			hotkey="MACRO" priority="100" />
		<skill name="WARDEN_ENERGY_ABSORB"	  			hotkey="MACRO" priority="80" inbattle="true" hpper="25" />
		<skill name="WARDEN_SUMMON_SPIRIT_OF_THE_OAK"	hotkey="MACRO" priority="90" />
		<skill name="WARDEN_SUMMON_NATURE_CRYSTAL"	  	hotkey="MACRO" priority="90" autouse="false" />
		<skill name="WARDEN_SUMMON_OAK_WALKER"	  		hotkey="MACRO" priority="90" autouse="false" />
		<skill name="WARDEN_BRIAR_SHIELD"	  			hotkey="MACRO" priority="90" />
		<skill name="WARDEN_POWER_OF_THE_WOOD_SPIRIT"	hotkey="MACRO" priority="100" />
		<skill name="WARDEN_SAVAGE_POWER"				hotkey="MACRO" priority="90" />
		<skill name="WARDEN_POWER_OF_THE_OAK" 			hotkey="MACRO" priority="90" />
		<skill name="WARDEN_ELVEN_PRAYER" 				hotkey="MACRO" priority="90" />
	</skills_warden>

	<skills_druid>
		<skill name="DRUID_RECOVER"          	hotkey="MACRO" priority="90" hpper="30" />
		<skill name="DRUID_EARTH_ARROW"      	hotkey="MACRO" priority="80" />
	</skills_druid>

	<skills_warlock>
		<skill name="WARLOCK_PERCEPTION_EXTRACTION"   	hotkey="MACRO" priority="90" />
		<skill name="WARLOCK_WARP_CHARGE"   			hotkey="MACRO" priority="80" />
		<skill name="WARLOCK_PSYCHIC_ARROWS"   			hotkey="MACRO" priority="70" />
	</skills_warlock>

	<skills_champion>
		<skill name="CHAMPION_FORGE" 		  		hotkey="MACRO" priority="110" />
		<skill name="CHAMPION_RUNE_PULSE"   		hotkey="MACRO" priority="100" pullonly="true" />
		<skill name="CHAMPION_RUNE_DRAW" 	  		hotkey="MACRO" priority="90" pullonly="true" />
		<skill name="CHAMPION_ELECTROCUTION"   		hotkey="MACRO" priority="80" />
		<skill name="CHAMPION_ENERGY_INFLUX_STRIKE" hotkey="MACRO" priority="70" />
		<skill name="CHAMPION_HEAVY_BASH"   		hotkey="MACRO" priority="60" />
	</skills_champion>


	<onLoad><![CDATA[
                print("I am the right profile")
	]]></onLoad>

	<onDeath><![CDATA[
		-- Additional Lua code to execute on death
		-- pauseOnDeath(); -- Stop the script
		-- player:logout();	-- logout
	]]></onDeath>

	<onLeaveCombat><![CDATA[
		-- Additional Lua code to execute after killing an enemy
	]]></onLeaveCombat>

	<onLevelup><![CDATA[
		-- Additional Lua code to execute after having a levelup
		-- and levelup the skills for a new character (mage or priest recommended)
		-- e.g. sendMacro("SetSpellPoint(_tabnr, _skillnr);"); would levelup a skill
	]]></onLevelup>
	
	<preCodeOnElite><![CDATA[
		-- code to use before a boss or tough mob
		-- _arg1 is target pawn, _arg1.Name = target's name
	]]></preCodeOnElite>

	<onSkillCast><![CDATA[
		-- Additional Lua code to execute when casting a skill
		-- Note: arg1 contains the skill being used.
		-- i.e. arg1.Name will be the name of the skill being cast
		-- e.g.:
		--if( 15 > player.HP/player.MaxHP*100 ) then
		--    player:cast("PRIEST_SOUL_SOURCE");
		--elseif( 25 > player.HP/player.MaxHP*100 ) then
		--    player:cast("PRIEST_HOLY_AURA");
		--    player:cast("PRIEST_URGENT_HEAL");
		--    player:cast("PRIEST_URGENT_HEAL");
	]]></onSkillCast>

	<onHarvest><![CDATA[
		-- Additional Lua code to execute directly before the actual harvesting takes place.
		-- Note: arg1 contains the object to be harvested.
		-- i.e. arg1.Name will be the name of the node you are about to harvest
		-- If this snippet returns 'false', the node will *not* be harvested.
		-- All other return values result in the player attempting to harvest the node.
		-- Note that returning 'false' here breaks out of harvesting completely;
		-- You will not attempt to harvest other nearby nodes instead.
	]]></onHarvest>

	<onUnstickFailure><![CDATA[
		-- Lua code to execute when MAX_UNSTICK_TRIALS is reached.
	]]></onUnstickFailure>
</profile>
This is the whole profile. But with rev. 753 it works and the revision updates don't change customized profiles, so normally it should work with 754 too. Additionally to say, after looting the first mob (the first mob is always looted) it doesn't walk to the other mobs. It waits a few seconds and then goes on. While waiting the looting error ([DEBUG] don't loot reason: target not lootable.) is printed for each mob in range which it would loot normally.

Just saw you posted something else, with /rom/bot debug it should debug everything, or doesn't it?

AlterEgo95

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

Re: profile option LOOT_ALL broken

#13 Post by lisa » Wed Mar 13, 2013 6:33 am

AlterEgo95 wrote:While waiting the looting error ([DEBUG] don't loot reason: target not lootable.) is printed for each mob in range which it would loot normally.
NVM it isn't the eval function, it is this part.

Code: Select all

		target:updateLootable();
		local lootStart = os.clock()
		while target:exists() and (not target.Lootable) and os.clock() - lootStart < .2 do
			yrest(20)
			target:updateLootable()
		end

		if target.Lootable then
			looten();
		else
			if( settings.profile.options.DEBUG_LOOT) then
				cprintf(cli.yellow, "[DEBUG] don't loot reason: target not lootable.\n");
			end;
		end;
So it is saying the mob isn't lootable which is another kettle of fish.

Without being able to test it as I don't have the issue I am purely guessing as to what is happening.

It seems to me though it is passing the eval loot function and then calling player:loot() but then the memory read of the pawn then says it doesn't have any loot, which is really weird as the eval loot function already said it does have loot.
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
Ego95
Posts: 564
Joined: Tue Feb 28, 2012 12:38 pm
Contact:

Re: profile option LOOT_ALL broken

#14 Post by Ego95 » Wed Mar 13, 2013 6:34 am

Code: Select all

Attempt to read playerAddress
[DEBUG] playerAddr: 0x2EA7D00
[DEBUG] player classes: 4/5
[DEBUG] player pet: 0x0
[DEBUG] Player target: 0x0
[DEBUG] player in battle: false
[DEBUG] mousePawn: 0x0
[DEBUG] mousePawn id: -1
[DEBUG] camAddress: 0xB5D800
[DEBUG] Cam X: -18579.70, Y: -748.70, Z: 11981.93
[DEBUG] Cam XU: 0.06, YU: 0.97, ZU: 0.24
Game Version is 5.0.8.2623
RoM windows size is 1920x1018, upper left corner at 0,22
Loading profile MyChar.xml
commandMacro set to 1.
resultMacro set to 2.
The macro hotkey is x.
The 'Attack' hotkey is set to 'macro'.
Testing 'ingamefunctions' macro. If it gets stuck here, please update the 'ingam
efunctions' by copying the 'ingamefunctions' folder from 'rom/devtools' to the g
ames 'interface/addons' folder.
MACRO Test: ok
Ranged skill found: MAGE_THUNDERSTORM
[DEBUG] CPU Frequency 2539.13
Client Language changed.
Getting item type names.
100% [********************]

Loaded waypoint path Speed_KS.xml
No return path with default naming Speed_KS_return.xml found.
We use the normal waypoint path Speed_KS.xml now.
Waypoint #125 is closer then #1. Hence we start with waypoint #125.
We changed the option 'INV_AUTOSELL_ENABLE' from 'true' to 'true'.
We changed the option 'INV_AUTOSELL_FROMSLOT' from '1' to '1'.
We changed the option 'INV_AUTOSELL_TOSLOT' from '180' to '180'.
We changed the option 'INV_AUTOSELL_QUALITY' from 'white,green,blue,purple' to '
white, green, blue, purple'.
Moving to waypoint #125, (-18523, 12086)
[DEBUG] waypoint type RUN or TRAVEL. We don't target mobs.
Use MACRO: MAGE_ELECTROSTATIC_C=>   <UNKNOWN> (0/1000)
Use MACRO: MAGE_ENERGY_INFLUX  =>   MyChar (24688/25023)
Clearing target.
Moving to waypoint #1, (-18550, 12303)
[DEBUG] waypoint type RUN or TRAVEL. We don't target mobs.
Created party successfully!
Moving to waypoint #2, (-18577, 12388)
[DEBUG] waypoint type RUN or TRAVEL. We don't target mobs.
Targeting portal 112072, range 116.47204878721
Player address changed: 0x3FBD6400
Ranged skill found: MAGE_THUNDERSTORM
Moving to waypoint #3, (4714, 824)
[DEBUG] waypoint type RUN or TRAVEL. We don't target mobs.
Moving to waypoint #4, (4704, 911)
[DEBUG] waypoint type RUN or TRAVEL. We don't target mobs.
Forced waypoint type 'NORMAL' set by user.
Moving to waypoint #5, (4464, 911)
Stopping waypoint: Target acquired.
Engaging enemy [Ousul Poison Frog] in combat.
Use MACRO: MAGE_THUNDERSTORM   =>   Ousul Poison Frog (16191/16191)
[DEBUG] 1069386752 target HP is less than 1
Fight finished. Killed 1 Ousul Poison Frog. (fight #1 / runtime 0 minutes)
not existsnot existsnot lootablenot lootablenot lootablenot lootablenot lootable
not lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot loot
ablenot lootablenot lootablenot lootablenot existsnot lootablenot lootablenot lo
otablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootableno
t lootablenot lootablenot lootable[DEBUG] 1069381632 target HP is less than 1
not existsnot lootablenot lootablenot lootablenot lootablenot lootablenot lootab
lenot lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot lo
otablenot lootablenot lootablenot existsnot lootablenot lootablenot lootablenot
lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootable
not lootablenot lootable[DEBUG] 1069384192 target HP is less than 1
not lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot loot
ablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot
lootablenot existsnot lootablenot lootablenot lootablenot lootablenot lootableno
t lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootab
leClearing target.
[DEBUG] FightStartX 4670.1528320313 FightStartZ 920.15447998047
[DEBUG] dir_FS->WP rad -3.097 dir_FS->FE rad -3.123
[DEBUG] Line FS->WP / FS->FE: angleDif rad 0.025 grad 1
[DEBUG] We (would) pass(ed) wp #5 (dist 206.4) in a dist of 5 (skip at 100)
Moving to waypoint #5, (4464, 911)
[DEBUG] 1069384192 target HP is less than 1
Stopping waypoint: Target acquired.
Engaging enemy [Ousul Poison Frog] in combat.
Moving in | Suggested range: 100 | Distance: 101
Use MACRO: MAGE_THUNDERSTORM   =>   Ousul Poison Frog (16191/16191)
[DEBUG] 794909184 target HP is less than 1
Fight finished. Killed 2 Ousul Poison Frog. (fight #2 / runtime 0 minutes)
not existsnot lootablenot existsnot existsnot lootablenot lootablenot lootableno
t lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootab
lenot lootablenot lootablenot lootablenot existsnot lootablenot lootablenot loot
ablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot
lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootable
not lootablenot lootablenot lootablenot lootable[DEBUG] 794906624 target HP is l
ess than 1
not lootablenot existsnot existsnot lootablenot lootablenot lootablenot lootable
not lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot loot
ablenot lootablenot lootablenot lootablenot existsnot lootablenot lootablenot lo
otablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootableno
t lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootab
lenot lootablenot lootablenot lootablenot lootable[DEBUG] 794907904 target HP is
 less than 1
not lootablenot existsnot lootablenot lootablenot lootablenot lootablenot lootab
lenot lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot lo
otablenot lootablenot existsnot lootablenot lootablenot lootablenot lootablenot
lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot lootable
not lootablenot lootablenot lootablenot lootablenot lootablenot lootablenot loot
ablenot lootablenot lootablePaused. (ENTF) to continue, (CTRL+L) exit to shell,
(CTRL+C) quit
Other yellow messages were printed, but it loots all other mobs ;)

AlterEgo95

Bubi
Posts: 57
Joined: Tue May 04, 2010 3:51 pm

Re: profile option LOOT_ALL broken

#15 Post by Bubi » Wed Mar 13, 2013 2:51 pm

I think it has something to do with this change in function CPlayer:target

Code: Select all

function CPlayer:target(pawnOrAddress)
	local address = nil;
	if( type(pawnOrAddress) == "number" ) then
		address = pawnOrAddress;
	elseif( type(pawnOrAddress) == "table" ) then
		address = pawnOrAddress.Address;
	end

	if( address == nil ) then return false; end;

	local addressId = memoryReadRepeat("uint", getProc(), address + addresses.pawnId_offset) or 0;

	if addressId == 0 or addressId > 999999 then -- The pawn or object no longer exists
		self.TargetPtr = 0
		return false
	end

	local flags = memoryReadUInt(getProc(),address + addresses.pawnAttackable_offset)
	if bitAnd(flags,0x10) then -- Has bloodbar
		local guid = memoryReadUInt(getProc(), address + addresses.pawnGUID_offset)
		RoMScript("OBB_ChangeTraget("..tostring(guid)..")")
	else -- Doesn't have bloodbar
		memoryWriteInt(getProc(), self.Address + addresses.pawnTargetPtr_offset, address);
	end
	self.TargetPtr = address

	return true
end
This code is new since 753

Code: Select all

	local flags = memoryReadUInt(getProc(),address + addresses.pawnAttackable_offset)
	if bitAnd(flags,0x10) then -- Has bloodbar
		local guid = memoryReadUInt(getProc(), address + addresses.pawnGUID_offset)
		RoMScript("OBB_ChangeTraget("..tostring(guid)..")")
	else -- Doesn't have bloodbar
		memoryWriteInt(getProc(), self.Address + addresses.pawnTargetPtr_offset, address);
	end
I changed it back to

Code: Select all

		memoryWriteInt(getProc(), self.Address + addresses.pawnTargetPtr_offset, address);
and it's working now
Bubi

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

Re: profile option LOOT_ALL broken

#16 Post by lisa » Wed Mar 13, 2013 8:54 pm

maybe it needs to still target via memory even though it is targeting with the in game function.

try

Code: Select all

   local flags = memoryReadUInt(getProc(),address + addresses.pawnAttackable_offset)
   if bitAnd(flags,0x10) then -- Has bloodbar
      local guid = memoryReadUInt(getProc(), address + addresses.pawnGUID_offset)
      RoMScript("OBB_ChangeTraget("..tostring(guid)..")")
   end
   memoryWriteInt(getProc(), self.Address + addresses.pawnTargetPtr_offset, address);
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: profile option LOOT_ALL broken

#17 Post by rock5 » Thu Mar 14, 2013 8:39 am

I think the posters problem might be that the in-game function is disabled on his server. I think that is the only explanation that explains his behavior.
lisa wrote:maybe it needs to still target via memory even though it is targeting with the in game function.
Well I know if you memory target first then the in-game command doesn't work properly but I don't think I ever tried the other way around. It should work because if the in-game function worked then the TargetPtr memory should already have the targets address and all you would be doing is rewriting it.
  • 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: profile option LOOT_ALL broken

#18 Post by Ego95 » Thu Mar 14, 2013 9:19 am

What exactly do you mean with the ingame function to target mobs? Anything where I have to put a checkmark?

AlterEgo95

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

Re: profile option LOOT_ALL broken

#19 Post by rock5 » Thu Mar 14, 2013 12:27 pm

In-game functions are called with RoMScripts so in the code above we are talking about "OBB_ChangeTraget".
  • 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: Ahrefs [Bot] and 19 guests