Re: Harvesting with the bot - How To For Dummies
Posted: Sun Jan 17, 2010 7:01 pm
Apparently, one of the hotkeys in settings.xml or your profile is invalid or empty.
MicroMacro home
https://www.solarstrike.net/phpBB3/
I don't know what you're asking. Just provide your settings.xml and profile.hob0d4n wrote:hotkey 1 should be attack right?
Code: Select all
<settings>
<hotkeys>
<!-- Cannot use modifiers -->
<hotkey description="MOVE_FORWARD" key="VK_W" modifier="" />
<hotkey description="MOVE_BACKWARD" key="VK_S" modifier="" />
<hotkey description="ROTATE_LEFT" key="VK_Q" modifier="" />
<hotkey description="ROTATE_RIGHT" key="VK_E" modifier="" />
<hotkey description="STRAFF_LEFT" key="VK_A" modifier="" />
<hotkey description="STRAFF_RIGHT" key="VK_D" modifier="" />
<hotkey description="JUMP" key="VK_SPACE" modifier="" />
<hotkey description="TARGET" key="VK_TAB" modifier="" />
<hotkey description="TARGET_FRIEND" key="VK_J" modifier="" />
</hotkeys>
<options>
<option name="ENABLE_FIGHT_SLOW_TURN" value="false" />
<option name="MELEE_DISTANCE" value="45" />
<option name="LANGUAGE" value="english" /> <!-- english|deutsch|french|russian -->
<option name="USE_CLIENT_LANGUAGE" value="true" />
<option name="DEBUGGING" value="false" />
<!--
Leave ROMDATA_PATH blank to use automatic settings.
If it cannot find your bindings.txt automatically,
place the FULL PATH to the "Runes of Magic"
directory here.
-->
<option name="ROMDATA_PATH" value="" />
</options>
</settings>
Code: Select all
<profile>
<options>
<!-- Try the bot with a new char mage -->
<!-- At the pioneer village. Use demo.xml waypoint file -->
<option name="HP_LOW" value="85" />
<option name="MP_LOW_POTION" value="50" />
<option name="HP_LOW_POTION" value="40" />
<option name="USE_HP_POTION" value="best" /> <!-- potion select strategy: best|minstack -->
<option name="USE_MANA_POTION" value="best" /> <!-- potion select strategy: best|minstack -->
<!-- Rest if HP or Mana is below that level -->
<option name="HP_REST" value="15" />
<option name="MP_REST" value="15" />
<!-- Shopping options, how many of what do you want to keep in your inventory -->
<option name="HEALING_POTION" value="99" />
<option name="MANA_POTION" value="99" />
<option name="ARROW_QUIVER" value="2" />
<option name="THROWN_BAG" value="2" />
<option name="POISON" value="30" />
<!-- either false or arrow or thrown -->
<option name="RELOAD_AMMUNITION" value="false" /> <!-- false|arrow|thrown -->
<!-- Combat options -->
<option name="COMBAT_TYPE" value="" /> <!-- leave empty or choose ranged/melee if not using class default -->
<option name="COMBAT_RANGED_PULL" value="true" /> <!-- only important for melees -->
<option name="COMBAT_DISTANCE" value="200" />
<option name="MAX_FIGHT_TIME" value="15" /> <!-- Max time without damage before break -->
<option name="DOT_PERCENT" value="90" />
<option name="ANTI_KS" value="true" />
<!-- Attack monsters 3 levels above or 10 below your level -->
<option name="TARGET_LEVELDIF_ABOVE" value="3" />
<option name="TARGET_LEVELDIF_BELOW" value="10" />
<!-- Waypoint and movement settings -->
<option name="WAYPOINTS" value="" /> <!-- leave empty to show a list -->
<option name="RETURNPATH" value="" />
<option name="PATH_TYPE" value="waypoints" /> <!-- waypoints | wander -->
<option name="WANDER_RADIUS" value="500" />
<option name="WAYPOINT_DEVIATION" value="0" />
<option name="QUICK_TURN" value="false" />
<!-- Loot settings -->
<option name="LOOT" value="true" />
<option name="LOOT_IN_COMBAT" value="true" />
<option name="LOOT_DISTANCE" value="100" />
<option name="LOOT_PAUSE_AFTER" value="0" /> <!-- probability in % for a short rest -->
<!-- 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="true" />
<option name="RES_AUTOMATIC_AFTER_DEATH" value="true" />
<option name="MAX_DEATHS" value="10" /> <!-- Log out after this many deaths -->
<!-- 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="MyOtherCharacter1" />
<friend name="MyOtherCharacter2" />
<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" modifier="" 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 -->
<skills_priest>
<skill name="PRIEST_SOUL_SOURCE" modifier="" hotkey="VK_4" priority="110" inbattle="true" hpper="15" />
<skill name="PRIEST_HOLY_AURA" modifier="" hotkey="VK_7" priority="100" inbattle="true" hpper="24" />
<skill name="PRIEST_URGENT_HEAL" modifier="" hotkey="VK_2" priority="100" hpper="30" />
<skill name="PRIEST_REGENERATE" modifier="" hotkey="VK_6" priority="90" />
<skill name="PRIEST_RISING_TIDE" modifier="" hotkey="VK_3" priority="80" />
<skill name="MAGE_FIREBALL" modifier="" hotkey="VK_8" priority="70" />
<skill name="PRIEST_WAVE_ARMOR" modifier="" hotkey="VK_5" priority="40" inbattle="true" />
<!--skill name="PRIEST_SOUL_BOND" hotkey="VK_T" priority="30" /> -->
<!--skill name="PRIEST_MAGIC_BARRIER" hotkey="VK_F" priority="20" rebuffcut="60" inbattle="false" /> -->
</skills_priest>
<skills_warrior>
<skill name="WARRIOR_SLASH" modifier="" hotkey="VK_2" priority="90" />
<skill name="WARRIOR_PROBING_ATTACK" modifier="" hotkey="VK_4" priority="80" />
<skill name="WARRIOR_OPEN_FLANK" modifier="" hotkey="VK_5" priority="70" />
</skills_warrior>
<skills_scout>
<skill name="SCOUT_SHOT" modifier="" hotkey="VK_2" priority="90" />
<skill name="SCOUT_AUTOSHOT" modifier="" hotkey="VK_4" priority="80" />
<skill name="SCOUT_WIND_ARROWS" modifier="" hotkey="VK_5" priority="70" />
</skills_scout>
<skills_rogue>
<skill name="ROGUE_SHADOWSTAB" modifier="" hotkey="VK_2" priority="90" />
<skill name="ROGUE_LOW_BLOW" modifier="" hotkey="VK_4" priority="80" />
</skills_rogue>
<skills_mage>
<skill name="MAGE_FLAME" modifier="" hotkey="VK_3" priority="80" />
<skill name="MAGE_ELEMENTAL_CATALYST" modifier="" hotkey="VK_2" priority="30" inbattle="true" />
</skills_mage>
<skills_knight>
<skill name="KNIGHT_HOLY_STRIKE" modifier="" hotkey="VK_3" priority="90" />
<skill name="KNIGHT_HOLY_SHIELD" modifier="" hotkey="VK_4" priority="80" inbattle="true" hpper="15" />
<skill name="KNIGHT_HOLY_SEAL" modifier="" hotkey="VK_5" priority="70" />
<skill name="KNIGHT_PUNISHMENT" modifier="" hotkey="VK_2" priority="60" />
</skills_knight>
<skills_warden>
<skill name="WARDEN_CHARGED_CHOP" modifier="" hotkey="VK_2" priority="90" />
<skill name="WARDEN_ENERGY_ABSORB" modifier="" hotkey="VK_3" priority="80" inbattle="true" hpper="25" />
</skills_warden>
<skills_druid>
<skill name="DRUID_RECOVER" modifier="" hotkey="VK_2" priority="90" hpper="30" />
<skill name="DRUID_EARTH_ARROW" modifier="" hotkey="VK_3" priority="80" />
</skills_druid>
<onLoad><![CDATA[
-- Additional Lua code to execute after loading the profile
-- and before the bot starts. e.g. You could overwrite profile settings here
-- like: changeProfileOption("HP_REST", 60);
]]></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>
<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>
</profile>
Code: Select all
if( string.upper(v.key) == "MACRO" ) then
Code: Select all
printf("v.name: %s\n", tostring(v.name));
There is no configuration error (or possibility to do one) that is not be used by someone.Administrator wrote:Try changing your hotkeys in game (through the game menu) for Target Nearest Friend to a single hotkey (I assume you have something like CTRL + TAB).
Code: Select all
HARVEST_SCAN_WIDTH = 10, -- steps horizontal
HARVEST_SCAN_HEIGHT = 8, -- steps vertical
HARVEST_SCAN_STEPSIZE = 35, -- wide of every step
HARVEST_SCAN_TOPDOWN = false, -- true = top->down false = botton->up
HARVEST_SCAN_XMULTIPLIER = 1.0, -- multiplier for scan width
HARVEST_SCAN_YMULTIPLIER = 1.1, -- multiplier for scan line height
HARVEST_SCAN_YREST = 10, -- scanspeed
HARVEST_SCAN_YMOVE = 1.1, -- move scan area top/down ( 1=middle of screen )
Code: Select all
<option name="HARVEST_SCAN_WIDTH" value="6" /> -- steps horizontal
<option name="HARVEST_SCAN_HEIGHT" value="7" /> -- steps vertical
<option name="HARVEST_SCAN_STEPSIZE" value="25" /> -- wide of every step
<option name="HARVEST_SCAN_TOPDOWN" value="true" /> -- true = top->down false = botton->up
<option name="HARVEST_SCAN_YREST" value="8" /> -- scanspeed
<option name="HARVEST_SCAN_YMOVE" value="1.4" /> -- move scan area top/down ( 1 middle of screen )
Take a look for the waypoint file thats behind your selection '1'. Than open that waypoint file with an editor. Compare the contentent with one of the demo files.ciccione wrote: ...
You choose 1 (my waypoint)
...micromacro/lib/mod/xml.lua:316: error closing parser: no element found
If I choose one of the demo waypoint instead of the one I made file it works fine.
What I have to do?
By the way, you've made a great job with this bot!!
fixed itSleinzelmann wrote:if i start the bot with profile:default it works fine
but if i try my own profile ther is an error :
settings.lua:660: bad argument #1 to `upper` <string expected, got nil>
can someone help me?
Shouldn't 'hpper' be optional? So it doesnt' matter if one 'forget' that option. And if one forget the 'priority' option there should be a default value for the 'priority'. There should not happen an error from that two options.Administrator wrote:Can you provide a copy of how it looked when you received this error? It would help to provide a meaningful error message in the future.
Should be. But without seeing it, I have no idea what was really wrong.d003232 wrote:Shouldn't 'hpper' be optional? So it doesnt' matter if one 'forget' that option. And if one forget the 'priority' option there should be a default value for the 'priority'. There should not happen an error from that two options.Administrator wrote:Can you provide a copy of how it looked when you received this error? It would help to provide a meaningful error message in the future.
I think it would be helpful to post the 'wrong' profile.
d003232 wrote:Yes. There are some expert profile options for doing that:yellow wrote:but it's possible to enlarge the area of the cursor to scan the windows ?Code: Select all
<option name="HARVEST_SCAN_WIDTH" value="15" /> -- steps horizontal <option name="HARVEST_SCAN_HEIGHT" value="10" /> -- steps vertical <option name="HARVEST_SCAN_STEPSIZE" value="22" /> -- wide of every step <option name="HARVEST_SCAN_TOPDOWN" value="false" /> -- true = top->down false = botton->up <option name="HARVEST_SCAN_YREST" value="7" /> -- scanspeed <option name="HARVEST_SCAN_YMOVE" value="1.1" /> -- move scan area top/down ( 1 middle of screen )
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="85" />
<option name="MP_LOW_POTION" value="50" />
<option name="HP_LOW_POTION" value="40" />
<option name="USE_HP_POTION" value="best" /> <!-- potion select strategy: best|minstack -->
<option name="USE_MANA_POTION" value="best" /> <!-- potion select strategy: best|minstack -->
<!-- Rest if HP or Mana is below that level -->
<option name="HP_REST" value="15" />
<option name="MP_REST" value="15" />
<!-- Shopping options, how many of what do you want to keep in your inventory -->
<option name="HEALING_POTION" value="99" />
<option name="MANA_POTION" value="99" />
<option name="ARROW_QUIVER" value="2" />
<option name="THROWN_BAG" value="2" />
<option name="POISON" value="30" />
<!-- either false or arrow or thrown -->
<option name="RELOAD_AMMUNITION" value="false" /> <!-- false|arrow|thrown -->
<!-- Combat options -->
<option name="COMBAT_TYPE" value="" /> <!-- leave empty or choose ranged/melee if not using class default -->
<option name="COMBAT_RANGED_PULL" value="true" /> <!-- only important for melees -->
<option name="COMBAT_DISTANCE" value="200" />
<option name="MAX_FIGHT_TIME" value="15" /> <!-- Max time without damage before break -->
<option name="DOT_PERCENT" value="90" />
<option name="ANTI_KS" value="true" />
<!-- Attack monsters 3 levels above or 10 below your level -->
<option name="TARGET_LEVELDIF_ABOVE" value="3" />
<option name="TARGET_LEVELDIF_BELOW" value="3" />
<!-- Waypoint and movement settings -->
<option name="WAYPOINTS" value="" /> <!-- 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="false" />
<!-- Loot settings -->
<option name="LOOT" value="false" />
<option name="LOOT_IN_COMBAT" value="false" />
<option name="LOOT_DISTANCE" value="100" />
<option name="LOOT_PAUSE_AFTER" value="0" /> <!-- probability in % for a short rest -->
<!-- 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="true" />
<option name="RES_AUTOMATIC_AFTER_DEATH" value="true" />
<option name="MAX_DEATHS" value="2" /> <!-- Log out after this many deaths -->
<!-- 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="MyOtherCharacter1" />
<friend name="MyOtherCharacter2" />
<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" modifier="" 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 -->
<skills_priest>
<skill name="PRIEST_SOUL_SOURCE" modifier="" hotkey="VK_4" priority="110" inbattle="true" hpper="15" />
<skill name="PRIEST_HOLY_AURA" modifier="" hotkey="VK_7" priority="100" inbattle="true" hpper="24" />
<skill name="PRIEST_URGENT_HEAL" modifier="" hotkey="VK_2" priority="100" hpper="30" />
<skill name="PRIEST_REGENERATE" modifier="" hotkey="VK_6" priority="90" />
<skill name="PRIEST_RISING_TIDE" modifier="" hotkey="VK_3" priority="80" />
<skill name="MAGE_FIREBALL" modifier="" hotkey="VK_8" priority="70" />
<skill name="PRIEST_WAVE_ARMOR" modifier="" hotkey="VK_5" priority="40" inbattle="true" />
<!--skill name="PRIEST_SOUL_BOND" hotkey="VK_T" priority="30" /> -->
<!--skill name="PRIEST_MAGIC_BARRIER" hotkey="VK_F" priority="20" rebuffcut="60" inbattle="false" /> -->
</skills_priest>
<skills_warrior>
<skill name="WARRIOR_SLASH" modifier="" hotkey="VK_2" priority="90" />
<skill name="WARRIOR_PROBING_ATTACK" modifier="" hotkey="VK_4" priority="80" />
<skill name="WARRIOR_OPEN_FLANK" modifier="" hotkey="VK_5" priority="70" />
</skills_warrior>
<skills_scout>
<skill name="SCOUT_SHOT" modifier="" hotkey="VK_2" priority="90" />
<skill name="SCOUT_AUTOSHOT" modifier="" hotkey="VK_4" priority="80" />
<skill name="SCOUT_WIND_ARROWS" modifier="" hotkey="VK_5" priority="70" />
</skills_scout>
<skills_rogue>
<skill name="ROGUE_SHADOWSTAB" modifier="" hotkey="VK_2" priority="90" />
<skill name="ROGUE_LOW_BLOW" modifier="" hotkey="VK_4" priority="80" />
</skills_rogue>
<skills_mage>
<skill name="MAGE_FLAME" modifier="" hotkey="VK_3" priority="80" />
<skill name="MAGE_ELEMENTAL_CATALYST" modifier="" hotkey="VK_2" priority="30" inbattle="true" />
</skills_mage>
<skills_knight>
<skill name="KNIGHT_HOLY_STRIKE" modifier="" hotkey="VK_3" priority="90" />
<skill name="KNIGHT_HOLY_SHIELD" modifier="" hotkey="VK_4" priority="80" inbattle="true" hpper="15" />
<skill name="KNIGHT_HOLY_SEAL" modifier="" hotkey="VK_5" priority="70" />
<skill name="KNIGHT_PUNISHMENT" modifier="" hotkey="VK_2" priority="60" />
</skills_knight>
<skills_warden>
<skill name="WARDEN_CHARGED_CHOP" modifier="" hotkey="VK_2" priority="90" />
<skill name="WARDEN_ENERGY_ABSORB" modifier="" hotkey="VK_3" priority="80" inbattle="true" hpper="25" />
</skills_warden>
<skills_druid>
<skill name="DRUID_RECOVER" modifier="" hotkey="VK_2" priority="90" hpper="30" />
<skill name="DRUID_EARTH_ARROW" modifier="" hotkey="VK_3" priority="80" />
</skills_druid>
<onLoad><![CDATA[
-- Additional Lua code to execute after loading the profile
-- and before the bot starts. e.g. You could overwrite profile settings here
-- like: changeProfileOption("HP_REST", 60);
]]></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>
<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>
</profile>