<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://solarstrike.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=D003232</id>
		<title>SolarStrike wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://solarstrike.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=D003232"/>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php/Special:Contributions/D003232"/>
		<updated>2026-04-24T13:47:42Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=368</id>
		<title>RoM Auto repair</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=368"/>
				<updated>2009-11-19T00:44:02Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Use a Items Based AutoRepair */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Auto Repair at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
For using the autorepair ingame, you need normaly to press the 'repair' button. You can install the ingame addon [http://rom.curse.com/downloads/rom-addons/details/streamline.aspx Streamline]. Streamline will automaticly repair if you open a dialog window with a merchant and it will automaticly deliver quests, if you open a dialog with a quest NPC.&lt;br /&gt;
&lt;br /&gt;
You can also doing that by using the function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:merchant( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will try to target the nearest NPC's and find the NPC by name. After that, the bot will open the dialog window, autorepair and buy consumables depending from your profile options. It will also work while using multiple bots.&lt;br /&gt;
&lt;br /&gt;
If you only want to target a NPC and do the further stuff by yourself you can use the function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:target_NPC( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have to create a waypoint file, which leads your character to the repair NPC&lt;br /&gt;
&lt;br /&gt;
e.g. '5-7_bugs_repair.xml'&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Thats a demo to interact with the NPC Tracy                         --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12282&amp;quot; z=&amp;quot;11183&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12391&amp;quot; z=&amp;quot;10982&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12529&amp;quot; z=&amp;quot;10941&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-808&amp;quot; z=&amp;quot;-6067&amp;quot;&amp;gt;&lt;br /&gt;
		player:merchant(&amp;quot;Tracy&amp;quot;);&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair_back&amp;quot;);&lt;br /&gt;
   &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
The bot will use the waypoint file '5-7_bugs_repair_back' to find back the way to the original boting place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have to insert some code into your boting waypoint file (in this example into the file '5-7_bugs.xml'), to give the bot the information when to repair. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Durability Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be based on the duration of your items:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;!-- #  1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;13752&amp;quot; z=&amp;quot;6726&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.free_flag1 == true ) then &lt;br /&gt;
		player.free_flag1 = false; &lt;br /&gt;
		loadPaths(&amp;quot;5-7_bugs_repair.xml);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you see, we don't check the duration directly in the waypoint file. Simply because the duration is dependent from your armor and by that, dependend from your character. Hence we check the duration in our characters profile and set just a flag, if we should go for repairing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	local dura = inventory:getMainHandDurability();&lt;br /&gt;
	printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
	if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
		player.free_flag1 = true;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Fight Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be fight based:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Fights-player.free_counter1 &amp;gt; 300 ) then&lt;br /&gt;
		player.free_counter1 = player.Fights;&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use a Time Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
Or time based:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if(player.free_counter1 == 0) then player.free_counter1 = os.time(); end;&lt;br /&gt;
	if( os.difftime(os.time(), player.free_counter1) &amp;gt; 3600 ) then&lt;br /&gt;
		player.free_counter1 = os.time();&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Items Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
You also can check for an item amount like healing or mana potions. But I would recommend more to use a durability check and by that fill up enough of your potions &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if( 20 &amp;gt; inventory:itemTotalCount(&amp;lt;itemNameOrId&amp;gt;) ) then&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Replace &amp;lt;itemNameOrId&amp;gt; with the itemname or item-id of the potions you want to check. Be sure your cached inventory is up to date. See the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions#Inventory_and_Item_Functions inventory functions section] for more informatione about that.&lt;br /&gt;
&lt;br /&gt;
== Switch an item ==&lt;br /&gt;
&lt;br /&gt;
Instead of repairing your items, you could also switch a item based on the durabilty:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
   local dura = inventory:getMainHandDurability();&lt;br /&gt;
   printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
   if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
      inventory:useItem(&amp;lt;itemNameOrId&amp;gt;);&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Replace '&amp;lt;itemNameOrId&amp;gt;' with the itemname or itemid of the item you want to equipt. You have to be sure that your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions#Inventory_and_Item_Functions inventory is up to date], because the funtion 'inventory:useItem(itemNameOrId);' uses the cached inventory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You also could combine some of that methods.&lt;br /&gt;
&lt;br /&gt;
= Auto Sell at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
==General Autosell Options==&lt;br /&gt;
&lt;br /&gt;
There are some expert options for your profile if you want to automaticly sale items to the merchant NPC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_ENABLE&amp;quot;	value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_FROMSLOT&amp;quot;	value=&amp;quot;61&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_TOSLOT&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_QUALITY&amp;quot;	value=&amp;quot;white, green&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_IGNORE&amp;quot;	value=&amp;quot;Pfeil, Elementar, III&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_ENABLE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable the Auto Sell function. Valid values are true|false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_FROMSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Starting bagslot for autosell. Bag 1 has slots 1-30, bag 2 has slots 31-60, ...&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_TOSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Ending bagslot for autosell.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_QUALITY&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter the item qualities you want to sell. Recommended value is &amp;quot;white, green&amp;quot; ( white | green | blue | purple | orange | gold).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_IGNORE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter items names (or parts of the names) or item-Ids, you don't want to sell. You can enter more than one item. Use commata as delimites.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Use the normal 'player:merchant()' function in your waypoint file to autosale your items. The bagslot are starting from the top left with 1, 2, 3, ... in the first row, 6, 7, 8, ... in the second row, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Check Durability and Stats while using Autosell==&lt;br /&gt;
&lt;br /&gt;
You can also check the durability and/or stats of an item while selling it. We need to read the ingame tooltip to check the durability and the stats. That's at the moment not possible by only using the RoMScript() MACRO function. So we need a little ingame addon. That addon is named 'igf' (ingamefunctions). You found that addon in the bot folder 'rom/devtools/'.&lt;br /&gt;
&lt;br /&gt;
'''Please copy the folder 'ingamefunctions' into your RoM installation into the folder '\Runes of Magic\Interface\AddOns' to install that addon. And restart the RoM games client.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_NOSELL_DURA&amp;quot;      value=&amp;quot;110&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_STATS_NOSELL&amp;quot;      value=&amp;quot; X,XI&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_STATS_SELL&amp;quot;      value=&amp;quot;IX&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_NOSELL_DURA&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Items with a durability eq or greater that value will not be sold.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_STATS_NOSELL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Items with that text strings in the right tooltip side will not be sold. Caution: It's only a very easy check. So that text strings are checked against the whole right side tooltip text. E.g. if you want to save the stat 'defense', also items with 'magical defense' will not be sold. Not only items with the stat 'defense'. Sry for that. If you set the value 'X', all stats with 'X' wouldn't be sold: 'X', 'IX', 'XI'.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_STATS_SELL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | By using that items, you could overwrite the 'INV_AUTOSELL_STATS_NOSELL' value. e.g. if you set 'INV_AUTOSELL_STATS_NOSELL'=&amp;quot;X&amp;quot; you would not sell 'IX' stats. But if you know set 'INV_AUTOSELL_STATS_SELL=&amp;quot;IX&amp;quot; you would sell 'IX' stats and save all other stats with 'X'.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Debuging Option for Autosell==&lt;br /&gt;
&lt;br /&gt;
You can use the option:&lt;br /&gt;
 &amp;lt;option name=&amp;quot;DEBUG_AUTOSELL&amp;quot;      value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
to get some debuging options while using autosell.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=365</id>
		<title>RoM Auto repair</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=365"/>
				<updated>2009-11-09T09:30:19Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Auto Repair at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
For using the autorepair ingame, you need normaly to press the 'repair' button. You can install the ingame addon [http://rom.curse.com/downloads/rom-addons/details/streamline.aspx Streamline]. Streamline will automaticly repair if you open a dialog window with a merchant and it will automaticly deliver quests, if you open a dialog with a quest NPC.&lt;br /&gt;
&lt;br /&gt;
You can also doing that by using the function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:merchant( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will try to target the nearest NPC's and find the NPC by name. After that, the bot will open the dialog window, autorepair and buy consumables depending from your profile options. It will also work while using multiple bots.&lt;br /&gt;
&lt;br /&gt;
If you only want to target a NPC and do the further stuff by yourself you can use the function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:target_NPC( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have to create a waypoint file, which leads your character to the repair NPC&lt;br /&gt;
&lt;br /&gt;
e.g. '5-7_bugs_repair.xml'&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Thats a demo to interact with the NPC Tracy                         --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12282&amp;quot; z=&amp;quot;11183&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12391&amp;quot; z=&amp;quot;10982&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12529&amp;quot; z=&amp;quot;10941&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-808&amp;quot; z=&amp;quot;-6067&amp;quot;&amp;gt;&lt;br /&gt;
		player:merchant(&amp;quot;Tracy&amp;quot;);&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair_back&amp;quot;);&lt;br /&gt;
   &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
The bot will use the waypoint file '5-7_bugs_repair_back' to find back the way to the original boting place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have to insert some code into your boting waypoint file (in this example into the file '5-7_bugs.xml'), to give the bot the information when to repair. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Durability Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be based on the duration of your items:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;!-- #  1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;13752&amp;quot; z=&amp;quot;6726&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.free_flag1 == true ) then &lt;br /&gt;
		player.free_flag1 = false; &lt;br /&gt;
		loadPaths(&amp;quot;5-7_bugs_repair.xml);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you see, we don't check the duration directly in the waypoint file. Simply because the duration is dependent from your armor and by that, dependend from your character. Hence we check the duration in our characters profile and set just a flag, if we should go for repairing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	local dura = inventory:getMainHandDurability();&lt;br /&gt;
	printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
	if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
		player.free_flag1 = true;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Fight Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be fight based:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Fights-player.free_counter1 &amp;gt; 300 ) then&lt;br /&gt;
		player.free_counter1 = player.Fights;&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use a Time Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
Or time based:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if(player.free_counter1 == 0) then player.free_counter1 = os.time(); end;&lt;br /&gt;
	if( os.difftime(os.time(), player.free_counter1) &amp;gt; 3600 ) then&lt;br /&gt;
		player.free_counter1 = os.time();&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Items Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
You also can check for an item amount like healing or mana potions. But I would recommend more to use a durability check and by that fill up enough of your potions &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if( inventory:itemTotalCount(&amp;lt;itemNameOrId&amp;gt;) &amp;lt; 20 ) then&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Replace &amp;lt;itemNameOrId&amp;gt; with the itemname or item-id of the potions you want to check. Be sure your cached inventory is up to date. See the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions#Inventory_and_Item_Functions inventory functions section] for more informatione about that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Switch an item ==&lt;br /&gt;
&lt;br /&gt;
Instead of repairing your items, you could also switch a item based on the durabilty:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
   local dura = inventory:getMainHandDurability();&lt;br /&gt;
   printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
   if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
      inventory:useItem(&amp;lt;itemNameOrId&amp;gt;);&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Replace '&amp;lt;itemNameOrId&amp;gt;' with the itemname or itemid of the item you want to equipt. You have to be sure that your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions#Inventory_and_Item_Functions inventory is up to date], because the funtion 'inventory:useItem(itemNameOrId);' uses the cached inventory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You also could combine some of that methods.&lt;br /&gt;
&lt;br /&gt;
= Auto Sell at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
==General Autosell Options==&lt;br /&gt;
&lt;br /&gt;
There are some expert options for your profile if you want to automaticly sale items to the merchant NPC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_ENABLE&amp;quot;	value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_FROMSLOT&amp;quot;	value=&amp;quot;61&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_TOSLOT&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_QUALITY&amp;quot;	value=&amp;quot;white, green&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_IGNORE&amp;quot;	value=&amp;quot;Pfeil, Elementar, III&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_ENABLE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable the Auto Sell function. Valid values are true|false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_FROMSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Starting bagslot for autosell. Bag 1 has slots 1-30, bag 2 has slots 31-60, ...&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_TOSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Ending bagslot for autosell.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_QUALITY&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter the item qualities you want to sell. Recommended value is &amp;quot;white, green&amp;quot; ( white | green | blue | purple | orange | gold).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_IGNORE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter items names (or parts of the names) or item-Ids, you don't want to sell. You can enter more than one item. Use commata as delimites.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Use the normal 'player:merchant()' function in your waypoint file to autosale your items. The bagslot are starting from the top left with 1, 2, 3, ... in the first row, 6, 7, 8, ... in the second row, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Check Durability and Stats while using Autosell==&lt;br /&gt;
&lt;br /&gt;
You can also check the durability and/or stats of an item while selling it. We need to read the ingame tooltip to check the durability and the stats. That's at the moment not possible by only using the RoMScript() MACRO function. So we need a little ingame addon. That addon is named 'igf' (ingamefunctions). You found that addon in the bot folder 'rom/devtools/'.&lt;br /&gt;
&lt;br /&gt;
'''Please copy the folder 'ingamefunctions' into your RoM installation into the folder '\Runes of Magic\Interface\AddOns' to install that addon. And restart the RoM games client.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_NOSELL_DURA&amp;quot;      value=&amp;quot;110&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_STATS_NOSELL&amp;quot;      value=&amp;quot; X,XI&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_STATS_SELL&amp;quot;      value=&amp;quot;IX&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_NOSELL_DURA&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Items with a durability eq or greater that value will not be selled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_STATS_NOSELL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Items with that text strings in the right tooltip side will not be selled. Caution: It's only a very easy check. So that text strings are checked against the whole right side tooltip text. E.g. if you want to save the stat 'defense', also items with 'magical defense' will not be selled. Not only items with the stat 'defense'. Sry for that. If you set the value 'X', all stats with 'X' wouldn't be selled: 'X', 'IX', 'XI'.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_STATS_SELL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | By using that items, you could overwrite the 'INV_AUTOSELL_STATS_NOSELL' value. e.g. if you set 'INV_AUTOSELL_STATS_NOSELL'=&amp;quot;X&amp;quot; you would not sell 'IX' stats. But if you know set 'INV_AUTOSELL_STATS_SELL=&amp;quot;IX&amp;quot; you would sell 'IX' stats and save all other stats with 'X'.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debuging Option for Autosell==&lt;br /&gt;
&lt;br /&gt;
You can use the option:&lt;br /&gt;
 &amp;lt;option name=&amp;quot;DEBUG_AUTOSELL&amp;quot;      value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
to get some debuging options while using autosell.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=364</id>
		<title>RoM Auto repair</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=364"/>
				<updated>2009-11-08T23:41:35Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Auto Sell at the merchant NPC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Auto Repair at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
For using the autorepair ingame, you need normaly to press the 'repair' button. You can install the ingame addon [http://rom.curse.com/downloads/rom-addons/details/streamline.aspx Streamline]. Streamline will automaticly repair if you open a dialog window with a merchant and it will automaticly deliver quests, if you open a dialog with a quest NPC.&lt;br /&gt;
&lt;br /&gt;
You can also doing that by using the function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:merchant( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will try to target the nearest NPC's and find the NPC by name. After that, the bot will open the dialog window, autorepair and buy consumables depending from your profile options. It will also work while using multiple bots.&lt;br /&gt;
&lt;br /&gt;
If you only want to target a NPC and do the further stuff by yourself you can use the function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:target_NPC( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have to create a waypoint file, which leads your character to the repair NPC&lt;br /&gt;
&lt;br /&gt;
e.g. '5-7_bugs_repair.xml'&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Thats a demo to interact with the NPC Tracy                         --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12282&amp;quot; z=&amp;quot;11183&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12391&amp;quot; z=&amp;quot;10982&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12529&amp;quot; z=&amp;quot;10941&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-808&amp;quot; z=&amp;quot;-6067&amp;quot;&amp;gt;&lt;br /&gt;
		player:merchant(&amp;quot;Tracy&amp;quot;);&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair_back&amp;quot;);&lt;br /&gt;
   &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
The bot will use the waypoint file '5-7_bugs_repair_back' to find back the way to the original boting place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have to insert some code into your boting waypoint file (in this example into the file '5-7_bugs.xml'), to give the bot the information when to repair. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Durability Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be based on the duration of your items:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;!-- #  1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;13752&amp;quot; z=&amp;quot;6726&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.free_flag1 == true ) then &lt;br /&gt;
		player.free_flag1 = false; &lt;br /&gt;
		loadPaths(&amp;quot;5-7_bugs_repair.xml);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you see, we don't check the duration directly in the waypoint file. Simply because the duration is dependent from your armor and by that, dependend from your character. Hence we check the duration in our characters profile and set just a flag, if we should go for repairing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	local dura = inventory:getMainHandDurability();&lt;br /&gt;
	printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
	if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
		player.free_flag1 = true;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Fight Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be fight based:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Fights-player.free_counter1 &amp;gt; 300 ) then&lt;br /&gt;
		player.free_counter1 = player.Fights;&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use a Time Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
or time based;&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if(player.free_counter1 == 0) then player.free_counter1 = os.time(); end;&lt;br /&gt;
	if( os.difftime(os.time(), player.free_counter1) &amp;gt; 3600 ) then&lt;br /&gt;
		player.free_counter1 = os.time();&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Switch an item ==&lt;br /&gt;
&lt;br /&gt;
Instead of repairing your items, you could also switch a item based on the durabilty:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
   local dura = inventory:getMainHandDurability();&lt;br /&gt;
   printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
   if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
      inventory:useItem(&amp;lt;itemNameOrId&amp;gt;);&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Replace '&amp;lt;itemNameOrId&amp;gt;' with the itemname or itemid of the item you want to equipt. You have to be sure that your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions#Inventory_and_Item_Functions inventory is up to date], because the funtion 'inventory:useItem(itemNameOrId);' uses the cached inventory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You also could combine some of that methods.&lt;br /&gt;
&lt;br /&gt;
= Auto Sell at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
==General Autosell Options==&lt;br /&gt;
&lt;br /&gt;
There are some expert options for your profile if you want to automaticly sale items to the merchant NPC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_ENABLE&amp;quot;	value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_FROMSLOT&amp;quot;	value=&amp;quot;61&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_TOSLOT&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_QUALITY&amp;quot;	value=&amp;quot;white, green&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_IGNORE&amp;quot;	value=&amp;quot;Pfeil, Elementar, III&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_ENABLE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable the Auto Sell function. Valid values are true|false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_FROMSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Starting bagslot for autosell. Bag 1 has slots 1-30, bag 2 has slots 31-60, ...&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_TOSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Ending bagslot for autosell.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_QUALITY&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter the item qualities you want to sell. Recommended value is &amp;quot;white, green&amp;quot; ( white | green | blue | purple | orange | gold).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_IGNORE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter items names (or parts of the names) or item-Ids, you don't want to sell. You can enter more than one item. Use commata as delimites.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Use the normal 'player:merchant()' function in your waypoint file to autosale your items. The bagslot are starting from the top left with 1, 2, 3, ... in the first row, 6, 7, 8, ... in the second row, ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Check Durability and Stats while using Autosell==&lt;br /&gt;
&lt;br /&gt;
You can also check the durability and/or stats of an item while selling it. We need to read the ingame tooltip to check the durability and the stats. That's at the moment not possible by only using the RoMScript() MACRO function. So we need a little ingame addon. That addon is named 'igf' (ingamefunctions). You found that addon in the bot folder 'rom/devtools/'.&lt;br /&gt;
&lt;br /&gt;
'''Please copy the folder 'ingamefunctions' into your RoM installation into the folder '\Runes of Magic\Interface\AddOns' to install that addon. And restart the RoM games client.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_NOSELL_DURA&amp;quot;      value=&amp;quot;110&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_STATS_NOSELL&amp;quot;      value=&amp;quot; X,XI&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_STATS_SELL&amp;quot;      value=&amp;quot;IX&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_NOSELL_DURA&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Items with a durability eq or greater that value will not be selled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_STATS_NOSELL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Items with that text strings in the right tooltip side will not be selled. Caution: It's only a very easy check. So that text strings are checked against the whole right side tooltip text. E.g. if you want to save the stat 'defense', also items with 'magical defense' will not be selled. Not only items with the stat 'defense'. Sry for that. If you set the value 'X', all stats with 'X' wouldn't be selled: 'X', 'IX', 'XI'.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_STATS_SELL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | By using that items, you could overwrite the 'INV_AUTOSELL_STATS_NOSELL' value. e.g. if you set 'INV_AUTOSELL_STATS_NOSELL'=&amp;quot;X&amp;quot; you would not sell 'IX' stats. But if you know set 'INV_AUTOSELL_STATS_SELL=&amp;quot;IX&amp;quot; you would sell 'IX' stats and save all other stats with 'X'.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debuging Option for Autosell==&lt;br /&gt;
&lt;br /&gt;
You can use the option:&lt;br /&gt;
 &amp;lt;option name=&amp;quot;DEBUG_AUTOSELL&amp;quot;      value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
to get some debuging options while using autosell.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=363</id>
		<title>RoM Auto repair</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=363"/>
				<updated>2009-11-08T23:37:50Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Auto Sell at the merchant NPC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Auto Repair at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
For using the autorepair ingame, you need normaly to press the 'repair' button. You can install the ingame addon [http://rom.curse.com/downloads/rom-addons/details/streamline.aspx Streamline]. Streamline will automaticly repair if you open a dialog window with a merchant and it will automaticly deliver quests, if you open a dialog with a quest NPC.&lt;br /&gt;
&lt;br /&gt;
You can also doing that by using the function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:merchant( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will try to target the nearest NPC's and find the NPC by name. After that, the bot will open the dialog window, autorepair and buy consumables depending from your profile options. It will also work while using multiple bots.&lt;br /&gt;
&lt;br /&gt;
If you only want to target a NPC and do the further stuff by yourself you can use the function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:target_NPC( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have to create a waypoint file, which leads your character to the repair NPC&lt;br /&gt;
&lt;br /&gt;
e.g. '5-7_bugs_repair.xml'&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Thats a demo to interact with the NPC Tracy                         --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12282&amp;quot; z=&amp;quot;11183&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12391&amp;quot; z=&amp;quot;10982&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12529&amp;quot; z=&amp;quot;10941&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-808&amp;quot; z=&amp;quot;-6067&amp;quot;&amp;gt;&lt;br /&gt;
		player:merchant(&amp;quot;Tracy&amp;quot;);&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair_back&amp;quot;);&lt;br /&gt;
   &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
The bot will use the waypoint file '5-7_bugs_repair_back' to find back the way to the original boting place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have to insert some code into your boting waypoint file (in this example into the file '5-7_bugs.xml'), to give the bot the information when to repair. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Durability Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be based on the duration of your items:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;!-- #  1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;13752&amp;quot; z=&amp;quot;6726&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.free_flag1 == true ) then &lt;br /&gt;
		player.free_flag1 = false; &lt;br /&gt;
		loadPaths(&amp;quot;5-7_bugs_repair.xml);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you see, we don't check the duration directly in the waypoint file. Simply because the duration is dependent from your armor and by that, dependend from your character. Hence we check the duration in our characters profile and set just a flag, if we should go for repairing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	local dura = inventory:getMainHandDurability();&lt;br /&gt;
	printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
	if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
		player.free_flag1 = true;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Fight Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be fight based:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Fights-player.free_counter1 &amp;gt; 300 ) then&lt;br /&gt;
		player.free_counter1 = player.Fights;&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use a Time Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
or time based;&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if(player.free_counter1 == 0) then player.free_counter1 = os.time(); end;&lt;br /&gt;
	if( os.difftime(os.time(), player.free_counter1) &amp;gt; 3600 ) then&lt;br /&gt;
		player.free_counter1 = os.time();&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Switch an item ==&lt;br /&gt;
&lt;br /&gt;
Instead of repairing your items, you could also switch a item based on the durabilty:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
   local dura = inventory:getMainHandDurability();&lt;br /&gt;
   printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
   if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
      inventory:useItem(&amp;lt;itemNameOrId&amp;gt;);&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Replace '&amp;lt;itemNameOrId&amp;gt;' with the itemname or itemid of the item you want to equipt. You have to be sure that your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions#Inventory_and_Item_Functions inventory is up to date], because the funtion 'inventory:useItem(itemNameOrId);' uses the cached inventory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You also could combine some of that methods.&lt;br /&gt;
&lt;br /&gt;
= Auto Sell at the merchant NPC =&lt;br /&gt;
There are some expert options for your profile if you want to automaticly sale items to the merchant NPC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_ENABLE&amp;quot;	value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_FROMSLOT&amp;quot;	value=&amp;quot;61&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_TOSLOT&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_QUALITY&amp;quot;	value=&amp;quot;white, green&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_IGNORE&amp;quot;	value=&amp;quot;Pfeil, Elementar, III&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_ENABLE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable the Auto Sell function. Valid values are true|false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_FROMSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Starting bagslot for autosell. Bag 1 has slots 1-30, bag 2 has slots 31-60, ...&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_TOSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Ending bagslot for autosell.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_QUALITY&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter the item qualities you want to sell. Recommended value is &amp;quot;white, green&amp;quot; ( white | green | blue | purple | orange | gold).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_IGNORE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter items names (or parts of the names) or item-Ids, you don't want to sell. You can enter more than one item. Use commata as delimites.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Use the normal 'player:merchant()' function in your waypoint file to autosale your items. The bagslot are starting from the top left with 1, 2, 3, ... in the first row, 6, 7, 8, ... in the second row, ...&lt;br /&gt;
&lt;br /&gt;
You can also check the durability and/or stats of an item while selling it. We need to read the ingame tooltip to check the durability and the stats. That's at the moment not possible by only using the RoMScript() MACRO function. So we need a little ingame addon. That addon is named 'igf' (ingamefunctions). You found that addon in the bot folder 'rom/devtools/'.&lt;br /&gt;
&lt;br /&gt;
'''Please copy the folder 'ingamefunctions' into your RoM installation into the folder '\Runes of Magic\Interface\AddOns' to install that addon. And restart the RoM games client.&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_NOSELL_DURA&amp;quot;      value=&amp;quot;110&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_STATS_NOSELL&amp;quot;      value=&amp;quot; X,XI&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_STATS_SELL&amp;quot;      value=&amp;quot;IX&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_NOSELL_DURA&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Items with a durability eq or greater that value will not be selled.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_STATS_NOSELL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Items with that text strings in the right tooltip side will not be selled. Caution: It's only a very easy check. So that text strings are checked against the whole right side tooltip text. E.g. if you want to save the stat 'defense', also items with 'magical defense' will not be selled. Not only items with the stat 'defense'. Sry for that. If you set the value 'X', all stats with 'X' wouldn't be selled: 'X', 'IX', 'XI'.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_STATS_SELL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | By using that items, you could overwrite the 'INV_AUTOSELL_STATS_NOSELL' value. e.g. if you set 'INV_AUTOSELL_STATS_NOSELL'=&amp;quot;X&amp;quot; you would not sell 'IX' stats. But if you know set 'INV_AUTOSELL_STATS_SELL=&amp;quot;IX&amp;quot; you would sell 'IX' stats and save all other stats with 'X'.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=362</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=362"/>
				<updated>2009-11-04T08:47:13Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Waypoint File Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
 levelupSkill(_skillname [, _times] )&lt;br /&gt;
&lt;br /&gt;
Levelup a Single Skill by Name. For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way. &lt;br /&gt;
&lt;br /&gt;
 levelupSkills1To10( [&amp;quot;loadonly&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event: &lt;br /&gt;
&lt;br /&gt;
 openGiftbags1To10( [[_player_level] , _maxslot] );&lt;br /&gt;
open the level 1-10 giftbags and equipt the items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
 example:&lt;br /&gt;
 local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest([&amp;quot;test&amp;quot;|id]);&lt;br /&gt;
Use 'player:harvest()' to scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground). Use 'player:harvest(&amp;quot;test&amp;quot;)' to list id's of objects in front of you (e.g. quest objects), use 'player:harvest(id-nr)' to scan and use/open a object with that given object-id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:getItemCount(itemId)&lt;br /&gt;
&lt;br /&gt;
 examples:&lt;br /&gt;
 if( inventory:getItemCount(214536) &amp;gt; 25 ) then&lt;br /&gt;
    loadPaths(&amp;quot;deliver_quest&amp;quot;);&lt;br /&gt;
 end&lt;br /&gt;
Get the quantity for a item directly from the games client.&lt;br /&gt;
&lt;br /&gt;
 inventory:itemTotalCount(itemNameOrId)&lt;br /&gt;
Get the quantity for a item from the cached inventory. You have to be sure, that your inventory is up to date to get the right values. You can use the item-id or the name of the item&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem(itemNameOrId)&lt;br /&gt;
Use a item from the cached inventory.&lt;br /&gt;
&lt;br /&gt;
 inventory:update()&lt;br /&gt;
Update the whole inventory from the games client. Depending from you slots, that takes about 10-15 seconds. Nevertheless from using that function, the bot updates the whole inventory at the bot starting time and about 3-4 slots after every fight and about 10-15 slots while the bot is looting. &lt;br /&gt;
&lt;br /&gt;
By default the bot updates slot 1-60. If you want to use more slots please use the profile option&lt;br /&gt;
 &amp;lt;option name=&amp;quot;INV_MAX_SLOTS&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;	&amp;lt;!-- max slots for inventory scan --&amp;gt;&lt;br /&gt;
Use the option&lt;br /&gt;
 &amp;lt;option name=&amp;quot;INV_MAX_SLOTS&amp;quot;	value=&amp;quot;0&amp;quot; /&amp;gt;	&amp;lt;!-- max slots for inventory scan --&amp;gt;&lt;br /&gt;
if you want to deactivate the inventory update.&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
 __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 __WPL:setWaypointIndex( number);&lt;br /&gt;
Set the waypoint # 'number' as next waypoint to reach&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 __WPL:getNearestWaypoint(player.X, player.Z);&lt;br /&gt;
Get back the number of the closest waypoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can submit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script SendSystemChat(tonumber(string.sub(GetBagItemLink(GetBagItemInfo(1)), 8, 12), 16));&lt;br /&gt;
Print the itemid of slot-nr 1 into the system chat. Change the slot number to the item you want to get informations about or move that item to slot #1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;GetBagItemCount(&amp;quot;..itemid..&amp;quot;)&amp;quot;)&lt;br /&gt;
Get back the quantity of an givem item ID in your bags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 occupiedSlots, totalSlots = sendMacro(&amp;quot;GetBagCount();&amp;quot;);&lt;br /&gt;
Get back the number of total slots in your bag and the number of the occupied slot in your bag.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=361</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=361"/>
				<updated>2009-11-04T08:46:22Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Waypoint File Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
 levelupSkill(_skillname [, _times] )&lt;br /&gt;
&lt;br /&gt;
Levelup a Single Skill by Name. For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way. &lt;br /&gt;
&lt;br /&gt;
 levelupSkills1To10( [&amp;quot;loadonly&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event: &lt;br /&gt;
&lt;br /&gt;
 openGiftbags1To10( [[_player_level] , _maxslot] );&lt;br /&gt;
open the level 1-10 giftbags and equipt the items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
 example:&lt;br /&gt;
 local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest([&amp;quot;test&amp;quot;|id]);&lt;br /&gt;
Use 'player:harvest()' to scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground). Use 'player:harvest(&amp;quot;test&amp;quot;)' to list id's of objects in front of you (e.g. quest objects), use 'player:harvest(id-nr)' to scan and use/open a object with that given object-id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:getItemCount(itemId)&lt;br /&gt;
&lt;br /&gt;
 examples:&lt;br /&gt;
 if( inventory:getItemCount(214536) &amp;gt; 25 ) then&lt;br /&gt;
    loadPaths(&amp;quot;deliver_quest&amp;quot;);&lt;br /&gt;
 end&lt;br /&gt;
Get the quantity for a item directly from the games client.&lt;br /&gt;
&lt;br /&gt;
 inventory:itemTotalCount(itemNameOrId)&lt;br /&gt;
Get the quantity for a item from the cached inventory. You have to be sure, that your inventory is up to date to get the right values. You can use the item-id or the name of the item&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem(itemNameOrId)&lt;br /&gt;
Use a item from the cached inventory.&lt;br /&gt;
&lt;br /&gt;
 inventory:update()&lt;br /&gt;
Update the whole inventory from the games client. Depending from you slots, that takes about 10-15 seconds. Nevertheless from using that function, the bot updates the whole inventory at the bot starting time and about 3-4 slots after every fight and about 10-15 slots while the bot is looting. &lt;br /&gt;
&lt;br /&gt;
By default the bot updates slot 1-60. If you want to use more slots please use the profile option&lt;br /&gt;
 &amp;lt;option name=&amp;quot;INV_MAX_SLOTS&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;	&amp;lt;!-- max slots for inventory scan --&amp;gt;&lt;br /&gt;
Use the option&lt;br /&gt;
 &amp;lt;option name=&amp;quot;INV_MAX_SLOTS&amp;quot;	value=&amp;quot;0&amp;quot; /&amp;gt;	&amp;lt;!-- max slots for inventory scan --&amp;gt;&lt;br /&gt;
if you want to deactivate the inventory update.&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
      __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__WPL:setWaypointIndex( number);&lt;br /&gt;
Set the waypoint # 'number' as next waypoint to reach&lt;br /&gt;
&lt;br /&gt;
__WPL:getNearestWaypoint(player.X, player.Z);&lt;br /&gt;
Get back the number of the closest waypoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can submit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script SendSystemChat(tonumber(string.sub(GetBagItemLink(GetBagItemInfo(1)), 8, 12), 16));&lt;br /&gt;
Print the itemid of slot-nr 1 into the system chat. Change the slot number to the item you want to get informations about or move that item to slot #1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;GetBagItemCount(&amp;quot;..itemid..&amp;quot;)&amp;quot;)&lt;br /&gt;
Get back the quantity of an givem item ID in your bags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 occupiedSlots, totalSlots = sendMacro(&amp;quot;GetBagCount();&amp;quot;);&lt;br /&gt;
Get back the number of total slots in your bag and the number of the occupied slot in your bag.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=360</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=360"/>
				<updated>2009-11-02T08:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Inventory and Item Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
 levelupSkill(_skillname [, _times] )&lt;br /&gt;
&lt;br /&gt;
Levelup a Single Skill by Name. For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way. &lt;br /&gt;
&lt;br /&gt;
 levelupSkills1To10( [&amp;quot;loadonly&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event: &lt;br /&gt;
&lt;br /&gt;
 openGiftbags1To10( [[_player_level] , _maxslot] );&lt;br /&gt;
open the level 1-10 giftbags and equipt the items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
 example:&lt;br /&gt;
 local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest([&amp;quot;test&amp;quot;|id]);&lt;br /&gt;
Use 'player:harvest()' to scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground). Use 'player:harvest(&amp;quot;test&amp;quot;)' to list id's of objects in front of you (e.g. quest objects), use 'player:harvest(id-nr)' to scan and use/open a object with that given object-id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:getItemCount(itemId)&lt;br /&gt;
&lt;br /&gt;
 examples:&lt;br /&gt;
 if( inventory:getItemCount(214536) &amp;gt; 25 ) then&lt;br /&gt;
    loadPaths(&amp;quot;deliver_quest&amp;quot;);&lt;br /&gt;
 end&lt;br /&gt;
Get the quantity for a item directly from the games client.&lt;br /&gt;
&lt;br /&gt;
 inventory:itemTotalCount(itemNameOrId)&lt;br /&gt;
Get the quantity for a item from the cached inventory. You have to be sure, that your inventory is up to date to get the right values. You can use the item-id or the name of the item&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem(itemNameOrId)&lt;br /&gt;
Use a item from the cached inventory.&lt;br /&gt;
&lt;br /&gt;
 inventory:update()&lt;br /&gt;
Update the whole inventory from the games client. Depending from you slots, that takes about 10-15 seconds. Nevertheless from using that function, the bot updates the whole inventory at the bot starting time and about 3-4 slots after every fight and about 10-15 slots while the bot is looting. &lt;br /&gt;
&lt;br /&gt;
By default the bot updates slot 1-60. If you want to use more slots please use the profile option&lt;br /&gt;
 &amp;lt;option name=&amp;quot;INV_MAX_SLOTS&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;	&amp;lt;!-- max slots for inventory scan --&amp;gt;&lt;br /&gt;
Use the option&lt;br /&gt;
 &amp;lt;option name=&amp;quot;INV_MAX_SLOTS&amp;quot;	value=&amp;quot;0&amp;quot; /&amp;gt;	&amp;lt;!-- max slots for inventory scan --&amp;gt;&lt;br /&gt;
if you want to deactivate the inventory update.&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
      __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can submit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script SendSystemChat(tonumber(string.sub(GetBagItemLink(GetBagItemInfo(1)), 8, 12), 16));&lt;br /&gt;
Print the itemid of slot-nr 1 into the system chat. Change the slot number to the item you want to get informations about or move that item to slot #1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;GetBagItemCount(&amp;quot;..itemid..&amp;quot;)&amp;quot;)&lt;br /&gt;
Get back the quantity of an givem item ID in your bags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 occupiedSlots, totalSlots = sendMacro(&amp;quot;GetBagCount();&amp;quot;);&lt;br /&gt;
Get back the number of total slots in your bag and the number of the occupied slot in your bag.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=359</id>
		<title>RoM Auto repair</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=359"/>
				<updated>2009-11-02T08:44:39Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Auto Repair at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
For using the autorepair ingame, you need normaly to press the 'repair' button. You can install the ingame addon [http://rom.curse.com/downloads/rom-addons/details/streamline.aspx Streamline]. Streamline will automaticly repair if you open a dialog window with a merchant and it will automaticly deliver quests, if you open a dialog with a quest NPC.&lt;br /&gt;
&lt;br /&gt;
You can also doing that by using the function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:merchant( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will try to target the nearest NPC's and find the NPC by name. After that, the bot will open the dialog window, autorepair and buy consumables depending from your profile options. It will also work while using multiple bots.&lt;br /&gt;
&lt;br /&gt;
If you only want to target a NPC and do the further stuff by yourself you can use the function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:target_NPC( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have to create a waypoint file, which leads your character to the repair NPC&lt;br /&gt;
&lt;br /&gt;
e.g. '5-7_bugs_repair.xml'&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Thats a demo to interact with the NPC Tracy                         --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12282&amp;quot; z=&amp;quot;11183&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12391&amp;quot; z=&amp;quot;10982&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12529&amp;quot; z=&amp;quot;10941&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-808&amp;quot; z=&amp;quot;-6067&amp;quot;&amp;gt;&lt;br /&gt;
		player:merchant(&amp;quot;Tracy&amp;quot;);&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair_back&amp;quot;);&lt;br /&gt;
   &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
The bot will use the waypoint file '5-7_bugs_repair_back' to find back the way to the original boting place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have to insert some code into your boting waypoint file (in this example into the file '5-7_bugs.xml'), to give the bot the information when to repair. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Durability Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be based on the duration of your items:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;!-- #  1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;13752&amp;quot; z=&amp;quot;6726&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.free_flag1 == true ) then &lt;br /&gt;
		player.free_flag1 = false; &lt;br /&gt;
		loadPaths(&amp;quot;5-7_bugs_repair.xml);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you see, we don't check the duration directly in the waypoint file. Simply because the duration is dependent from your armor and by that, dependend from your character. Hence we check the duration in our characters profile and set just a flag, if we should go for repairing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	local dura = inventory:getMainHandDurability();&lt;br /&gt;
	printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
	if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
		player.free_flag1 = true;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Fight Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be fight based:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Fights-player.free_counter1 &amp;gt; 300 ) then&lt;br /&gt;
		player.free_counter1 = player.Fights;&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use a Time Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
or time based;&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if(player.free_counter1 == 0) then player.free_counter1 = os.time(); end;&lt;br /&gt;
	if( os.difftime(os.time(), player.free_counter1) &amp;gt; 3600 ) then&lt;br /&gt;
		player.free_counter1 = os.time();&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Switch an item ==&lt;br /&gt;
&lt;br /&gt;
Instead of repairing your items, you could also switch a item based on the durabilty:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
   local dura = inventory:getMainHandDurability();&lt;br /&gt;
   printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
   if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
      inventory:useItem(&amp;lt;itemNameOrId&amp;gt;);&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Replace '&amp;lt;itemNameOrId&amp;gt;' with the itemname or itemid of the item you want to equipt. You have to be sure that your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions#Inventory_and_Item_Functions inventory is up to date], because the funtion 'inventory:useItem(itemNameOrId);' uses the cached inventory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You also could combine some of that methods.&lt;br /&gt;
&lt;br /&gt;
= Auto Sell at the merchant NPC =&lt;br /&gt;
There are some expert options for your profile if you want to automaticly sale items to the merchant NPC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_ENABLE&amp;quot;	value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_FROMSLOT&amp;quot;	value=&amp;quot;61&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_TOSLOT&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_QUALITY&amp;quot;	value=&amp;quot;white, green&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_IGNORE&amp;quot;	value=&amp;quot;Pfeil, Elementar, III, Magen, Schallblase&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_ENABLE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable the Auto Sell function. Valid values are true|false..&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_FROMSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Starting bagslot for autosell. Bag 1 has slots 1-30, bag 2 has slots 31-60, ...&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_TOSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Ending bagslot for autosell.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_QUALITY&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter the item qualities you want to sell. Recommended value is &amp;quot;white, green&amp;quot; ( white | green | blue | purple | orange | gold).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_IGNORE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter items names (or parts of the names) or item-Ids, you don't want to sell. You can enter more than one item. Use commata as delimites.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Use the normal 'player:merchant()' function in your waypoint file to autosale your items. The bagslot are starting from the top left with 1, 2, 3, ... in the first row, 6, 7, 8, ... in the second row, ...&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=358</id>
		<title>RoM Auto repair</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=358"/>
				<updated>2009-11-01T20:58:00Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Use a Time Based AutoRepair */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Auto Repair at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
For using the autorepair ingame, you need normaly to press the 'repair' button. You can install the ingame addon [http://rom.curse.com/downloads/rom-addons/details/streamline.aspx Streamline]. Streamline will automaticly repair if you open a dialog window with a merchant and it will automaticly deliver quests, if you open a dialog with a quest NPC.&lt;br /&gt;
&lt;br /&gt;
You can also doing that by using the function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:merchant( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will try to target the nearest NPC's and find the NPC by name. After that, the bot will open the dialog window, autorepair and buy consumables depending from your profile options. It will also work while using multiple bots.&lt;br /&gt;
&lt;br /&gt;
If you only want to target a NPC and do the further stuff by yourself you can use the function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:target_NPC( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have to create a waypoint file, which leads your character to the repair NPC&lt;br /&gt;
&lt;br /&gt;
e.g. '5-7_bugs_repair.xml'&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Thats a demo to interact with the NPC Tracy                         --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12282&amp;quot; z=&amp;quot;11183&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12391&amp;quot; z=&amp;quot;10982&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12529&amp;quot; z=&amp;quot;10941&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-808&amp;quot; z=&amp;quot;-6067&amp;quot;&amp;gt;&lt;br /&gt;
		player:merchant(&amp;quot;Tracy&amp;quot;);&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair_back&amp;quot;);&lt;br /&gt;
   &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
The bot will use the waypoint file '5-7_bugs_repair_back' to find back the way to the original boting place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have to insert some code into your boting waypoint file (in this example into the file '5-7_bugs.xml'), to give the bot the information when to repair. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Durability Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be based on the duration of your items:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;!-- #  1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;13752&amp;quot; z=&amp;quot;6726&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.free_flag1 == true ) then &lt;br /&gt;
		player.free_flag1 = false; &lt;br /&gt;
		loadPaths(&amp;quot;5-7_bugs_repair.xml);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you see, we don't check the duration directly in the waypoint file. Simply because the duration is dependent from your armor and by that, dependend from your character. Hence we check the duration in our characters profile and set just a flag, if we should go for repairing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	local dura = inventory:getMainHandDurability();&lt;br /&gt;
	printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
	if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
		player.free_flag1 = true;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Fight Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be fight based:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Fights-player.free_counter1 &amp;gt; 300 ) then&lt;br /&gt;
		player.free_counter1 = player.Fights;&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use a Time Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
or time based;&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if(player.free_counter1 == 0) then player.free_counter1 = os.time(); end;&lt;br /&gt;
	if( os.difftime(os.time(), player.free_counter1) &amp;gt; 3600 ) then&lt;br /&gt;
		player.free_counter1 = os.time();&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also could combine some of that methods.&lt;br /&gt;
&lt;br /&gt;
= Auto Sell at the merchant NPC =&lt;br /&gt;
There are some expert options for your profile if you want to automaticly sale items to the merchant NPC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_ENABLE&amp;quot;	value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_FROMSLOT&amp;quot;	value=&amp;quot;61&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_TOSLOT&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_QUALITY&amp;quot;	value=&amp;quot;white, green&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_IGNORE&amp;quot;	value=&amp;quot;Pfeil, Elementar, III, Magen, Schallblase&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_ENABLE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable the Auto Sell function. Valid values are true|false..&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_FROMSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Starting bagslot for autosell. Bag 1 has slots 1-30, bag 2 has slots 31-60, ...&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_TOSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Ending bagslot for autosell.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_QUALITY&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter the item qualities you want to sell. Recommended value is &amp;quot;white, green&amp;quot; ( white | green | blue | purple | orange | gold).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_IGNORE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter items names (or parts of the names) or item-Ids, you don't want to sell. You can enter more than one item. Use commata as delimites.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Use the normal 'player:merchant()' function in your waypoint file to autosale your items. The bagslot are starting from the top left with 1, 2, 3, ... in the first row, 6, 7, 8, ... in the second row, ...&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=357</id>
		<title>RoM Auto repair</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Auto_repair&amp;diff=357"/>
				<updated>2009-11-01T06:39:17Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Use a Time Based AutoRepair */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Auto Repair at the merchant NPC =&lt;br /&gt;
&lt;br /&gt;
For using the autorepair ingame, you need normaly to press the 'repair' button. You can install the ingame addon [http://rom.curse.com/downloads/rom-addons/details/streamline.aspx Streamline]. Streamline will automaticly repair if you open a dialog window with a merchant and it will automaticly deliver quests, if you open a dialog with a quest NPC.&lt;br /&gt;
&lt;br /&gt;
You can also doing that by using the function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:merchant( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will try to target the nearest NPC's and find the NPC by name. After that, the bot will open the dialog window, autorepair and buy consumables depending from your profile options. It will also work while using multiple bots.&lt;br /&gt;
&lt;br /&gt;
If you only want to target a NPC and do the further stuff by yourself you can use the function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;player:target_NPC( npc_name );&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have to create a waypoint file, which leads your character to the repair NPC&lt;br /&gt;
&lt;br /&gt;
e.g. '5-7_bugs_repair.xml'&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints&amp;gt;&lt;br /&gt;
   &amp;lt;!-- Thats a demo to interact with the NPC Tracy                         --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12282&amp;quot; z=&amp;quot;11183&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12391&amp;quot; z=&amp;quot;10982&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12529&amp;quot; z=&amp;quot;10941&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-808&amp;quot; z=&amp;quot;-6067&amp;quot;&amp;gt;&lt;br /&gt;
		player:merchant(&amp;quot;Tracy&amp;quot;);&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair_back&amp;quot;);&lt;br /&gt;
   &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
The bot will use the waypoint file '5-7_bugs_repair_back' to find back the way to the original boting place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You now have to insert some code into your boting waypoint file (in this example into the file '5-7_bugs.xml'), to give the bot the information when to repair. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Durability Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be based on the duration of your items:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;!-- #  1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;13752&amp;quot; z=&amp;quot;6726&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.free_flag1 == true ) then &lt;br /&gt;
		player.free_flag1 = false; &lt;br /&gt;
		loadPaths(&amp;quot;5-7_bugs_repair.xml);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you see, we don't check the duration directly in the waypoint file. Simply because the duration is dependent from your armor and by that, dependend from your character. Hence we check the duration in our characters profile and set just a flag, if we should go for repairing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	local dura = inventory:getMainHandDurability();&lt;br /&gt;
	printf(&amp;quot;Durability:%s\n&amp;quot;, dura);&lt;br /&gt;
	if( dura &amp;amp;lt; 0.9 ) then&lt;br /&gt;
		player.free_flag1 = true;&lt;br /&gt;
	end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use a Fight Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
It could be fight based:&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Fights-player.free_counter1 &amp;gt; 300 ) then&lt;br /&gt;
		player.free_counter1 = player.Fights;&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use a Time Based AutoRepair ==&lt;br /&gt;
&lt;br /&gt;
or time based;&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #16 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-12364&amp;quot; z=&amp;quot;10939&amp;quot;&amp;gt;&lt;br /&gt;
	if(player.free_counter1 == 0) then player.free_counter1 = os.time(); end;&lt;br /&gt;
	if( os.difftime(os.time(), player.free_counter1) &amp;gt; 3600 )	&lt;br /&gt;
		player.free_counter1 = os.time();&lt;br /&gt;
		load_paths(&amp;quot;5-7_bugs_repair.xml&amp;quot;);&lt;br /&gt;
	end&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also could combine some of that methods.&lt;br /&gt;
&lt;br /&gt;
= Auto Sell at the merchant NPC =&lt;br /&gt;
There are some expert options for your profile if you want to automaticly sale items to the merchant NPC.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;option name=&amp;quot;INV_AUTOSELL_ENABLE&amp;quot;	value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_FROMSLOT&amp;quot;	value=&amp;quot;61&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_TOSLOT&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_QUALITY&amp;quot;	value=&amp;quot;white, green&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;option name=&amp;quot;INV_AUTOSELL_IGNORE&amp;quot;	value=&amp;quot;Pfeil, Elementar, III, Magen, Schallblase&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_ENABLE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable the Auto Sell function. Valid values are true|false..&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_FROMSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Starting bagslot for autosell. Bag 1 has slots 1-30, bag 2 has slots 31-60, ...&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_TOSLOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Ending bagslot for autosell.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_QUALITY&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter the item qualities you want to sell. Recommended value is &amp;quot;white, green&amp;quot; ( white | green | blue | purple | orange | gold).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | INV_AUTOSELL_IGNORE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Enter items names (or parts of the names) or item-Ids, you don't want to sell. You can enter more than one item. Use commata as delimites.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Use the normal 'player:merchant()' function in your waypoint file to autosale your items. The bagslot are starting from the top left with 1, 2, 3, ... in the first row, 6, 7, 8, ... in the second row, ...&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Troubleshooting&amp;diff=354</id>
		<title>RoM Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Troubleshooting&amp;diff=354"/>
				<updated>2009-10-31T11:19:00Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Debugging options =&lt;br /&gt;
There are some special profile options to print out some debugging messages. Please enter that options in your profile e.g.:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;option name=&amp;quot;DEBUG_TARGET&amp;quot;		value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | DEBUG_TARGET&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Print out some targeting informations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | DEBUG_LOOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Print out messages why we don't loot.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | DEBUG_INV&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Printout messages about the inventory update process.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | DEBUG_HARVEST&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Print out some messages about the harvesting process.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Debugging Inentory Issues =&lt;br /&gt;
&lt;br /&gt;
You can set the option&lt;br /&gt;
 &amp;lt;option name=&amp;quot;DEBUG_INV&amp;quot;		value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
to get debuging informations about the inventory update process. Main reason for update errors is a not proper working MACRO hotekey. That could be caused by a corruped macro file. &lt;br /&gt;
&lt;br /&gt;
'''Solution for a corrupt macro file:'''&lt;br /&gt;
Close the games client. Delete the macro file 'Macro.bsd' at 'My Documents\Runes of Magic\&amp;lt;charname&amp;gt;'. Restart the game and the bot again and [http://www.solarstrike.net/wiki/index.php5?title=RoM_Getting_started#Configure_the_macro configure a new empty macro as described here].&lt;br /&gt;
&lt;br /&gt;
= Debugging Skill Use Issues =&lt;br /&gt;
&lt;br /&gt;
There are a lot of possible reasons if a skill will not used as you estimate. Mostly it's the misuse of options in the skills section within the profile. You can activate debugging messages to see the skill use checks. You have to set that option in the &amp;lt;onLoad&amp;gt; event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;onLoad&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      settings.profile.options.DEBUG_SKILLUSE.ENABLE = true;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/onLoad&amp;gt;&amp;lt;/source&amp;gt;If you enable that option, you will be spammed with a lot of messages. You can deactivate every type of message by using the following options (one 'false' setting for every type of message).&lt;br /&gt;
&lt;br /&gt;
 settings.profile.options.DEBUG_SKILLUSE.TIMEGAP = true;&lt;br /&gt;
 settings.profile.options.DEBUG_SKILLUSE.ONCOOLDOWN = false;&lt;br /&gt;
 settings.profile.options.DEBUG_SKILLUSE.HPLOW = false;&lt;br /&gt;
 settings.profile.options.DEBUG_SKILLUSE.MAXHPPER = false;&lt;br /&gt;
 settings.profile.options.DEBUG_SKILLUSE.ONLYFRIENDLY = false;&lt;br /&gt;
 settings.profile.options.DEBUG_SKILLUSE.ONLYINBATTLE = false;&lt;br /&gt;
 settings.profile.options.DEBUG_SKILLUSE.NOTINBATTLE = false;&lt;br /&gt;
 settings.profile.options.DEBUG_SKILLUSE.TARGETNOENEMY = false;&lt;br /&gt;
 ...&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=352</id>
		<title>RoM Configuration</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=352"/>
				<updated>2009-10-29T20:58:40Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Profile - Skills */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two main settings files for RoM bot: settings.xml and your profile.&lt;br /&gt;
Profiles contain character-specific settings, while settings.xml contains hotkey settings and general preferences.&lt;br /&gt;
&lt;br /&gt;
== Settings.xml ==&lt;br /&gt;
Here is an example settings file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
	&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Cannot use modifiers --&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_FORWARD&amp;quot; key=&amp;quot;VK_W&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_BACKWARD&amp;quot; key=&amp;quot;VK_S&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_LEFT&amp;quot; key=&amp;quot;VK_A&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_RIGHT&amp;quot; key=&amp;quot;VK_D&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_LEFT&amp;quot; key=&amp;quot;VK_Q&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_RIGHT&amp;quot; key=&amp;quot;VK_E&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;JUMP&amp;quot; key=&amp;quot;VK_SPACE&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET&amp;quot; key=&amp;quot;VK_TAB&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET_FRIEND&amp;quot; key=&amp;quot;VK_J&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/hotkeys&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;options&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;ENABLE_FIGHT_SLOW_TURN&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;MELEE_DISTANCE&amp;quot; value=&amp;quot;45&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;LANGUAGE&amp;quot; value=&amp;quot;english&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;DEBUGGING&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/options&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Settings - Hotkeys===&lt;br /&gt;
The hotkey settings are mostly self-explanatory. MOVE_FORWARD, obviously, coresponds to the key that makes your character walk forward. This is &amp;quot;W&amp;quot; by default. Note that '''all''' keys must preceeded by 'VK_'.&lt;br /&gt;
&lt;br /&gt;
You may also notice the 'modifier'. Modifiers are keys such as CONTROL, SHIFT, or ALT. However, be aware that modifiers currently '''do not work'''. You should not set modifiers or you may run into problems. Instead, just leave the modifier set to an empty string(&amp;quot;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If your Runes of Magic bindings file (By default, is located at 'My Documents/Runes of Magic/bindings.txt') can be found and loaded, the RoM bot will instead use these settings so that you will not need to manually change your hotkey settings.&lt;br /&gt;
&lt;br /&gt;
===Settings - Options===&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ENABLE_FIGHT_SLOW_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable &amp;quot;slow turning&amp;quot; in combat. If you have click-to-move on, you should not need this. It should be set to either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. The default is &amp;quot;false&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | MELEE_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance at which to conduct melee combat. A value of 45 is good and should not be changed unless you have problems with being either too close or too far away for melee combat. Default: &amp;quot;45&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | LANGUAGE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to set your prefered language. Acceptable values are &amp;quot;english&amp;quot;, &amp;quot;deutsch&amp;quot;, , &amp;quot;russian&amp;quot; and &amp;quot;french&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | USE_CLIENT_LANGUAGE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | After loading the bot, we will automaticly use the game clients language as bot language.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | DEBUGGING&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | This is a debugging option. When set to true, it will instantly exit on memory read errors and provide better debugging information. Default: &amp;quot;false&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Character Profiles ==&lt;br /&gt;
There are a few things you should know about character profiles first:&lt;br /&gt;
* They typically are named after the character that will use them&lt;br /&gt;
* They must be inside the 'rom/profiles' folder&lt;br /&gt;
* They must follow proper XML formatting&lt;br /&gt;
* They may contain custom Lua code&lt;br /&gt;
&lt;br /&gt;
There are many profile options that can be set so it is highly recommended you make a copy of the default profile (Default.xml) and modify that to your character's needs instead of starting from scratch.&lt;br /&gt;
&lt;br /&gt;
'''If you have extension hiding turned off,''' the .xml extension will not show on any of your files. If this is the case, '''do not''' add the .xml extension or you will end up with a file named something like Default.xml.xml. This may cause the profile to not be found and you may get errors. However, if you are able to see extensions, you should of course include the .xml extension when naming your profile.&lt;br /&gt;
&lt;br /&gt;
===Profile - Options===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;options&amp;gt;&lt;br /&gt;
	&amp;lt;option name=&amp;quot;HP_LOW&amp;quot;        value=&amp;quot;85&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;option name=&amp;quot;MP_LOW_POTION&amp;quot; value=&amp;quot;50&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;option name=&amp;quot;HP_LOW_POTION&amp;quot; value=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
	...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Healing and Potions'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use heal skills at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use potions at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of mana to use mana potions at&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Resting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_REST&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If health falls below this percentage, then rest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If mana falls below this percentage, then rest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Shopping options'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HEALING_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | How many healing potions should we have in the inventory after visiting a merchant.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MANA_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | How many mana potions should we have in the inventory after visiting a merchant.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ARROW_QUIVER&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | How many arrow quivers should we have in the inventory after visiting a merchant.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | THROWN_BAG&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | How many thrown bags should we have in the inventory after visiting a merchant.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | POISON&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | How many poison should we have in the inventory after visiting a merchant.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Ammunition reload'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RELOAD_AMMUNITION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Which kind of ammunition should we reload ( arrow | thrown | false) .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Combat Options'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either &amp;quot;melee&amp;quot; or &amp;quot;ranged&amp;quot;. Whichever best fits your character. Default: empty string (&amp;quot;&amp;quot;). When unset (default), it will determine this automatically based on your class. There is no need to change this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_RANGED_PULL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to attempt to &amp;quot;pull&amp;quot; enemies towards you with ranged skills while you are a melee-based class&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance to remain at when fighting. This only affects your character when COMBAT_TYPE is &amp;quot;ranged&amp;quot; or when you use COMBAT_RANGED_PULL as melee.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MAX_FIGHT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you stop damaging a target within this amount of time, you will skip this target (prevents getting stuck).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | DOT_PERCENT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Only use DOTs on this target if it has more than this percentage of HP.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ANTI_KS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to avoid stealing other players' kills. true or false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Waypoint and Movement'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINTS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RETURNPATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use for returning after death. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | PATH_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The type of movement to use. Should be either 'waypoints' or 'wander'. See path types for more information.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WANDER_RADIUS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance that your character is allowed to &amp;quot;wander&amp;quot; freely when using wander mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINT_DEVIATION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A 'random' offset applied to each waypoint in your path giving it less of a bot-like appearance; suggested value of 50. Lower value means you stick closer to your normal path; 0 means no deviation.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | QUICK_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to use quick turn mode. Quick turn mode emulates a click-to-move type movement style. This means your character does not stop to slowly turn around.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Level Difference'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_ABOVE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy above your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels above your own.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_BELOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy below your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels below your own.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Looting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether you want to loot enemies or not. True or false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_IN_COMBAT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not you want to pick up loot when other enemies are still attacking you.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The max distance away a corpse can be that you will attempt to loot.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_PAUSE_AFTER&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A percentage probability to attempt a short &amp;quot;rest&amp;quot; (to look more human) after looting an enemy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Log out &amp;amp; Resurrection Settings'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Log out after this amount of time (in minutes). A value of 0 means you will not use this setting. Default: 0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_WHEN_STUCK&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If your character gets stuck and cannot unstuck himself, you can use this option to have him log off. Default: true&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RES_AUTOMATIC_AFTER_DEATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not your character should attempt resurrecting when he dies. Default: true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Friends===&lt;br /&gt;
The &amp;quot;Friends&amp;quot; list can be used to mark targets that you do not want to attack. This can be other players that may be marked for PVP, or targets that you want to ignore (ie. &amp;quot;Ystra Ferret&amp;quot;). You may also add players to your friend list to get the bot to assist them when it notices they are fighting something.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;friends&amp;gt;&lt;br /&gt;
		&amp;lt;!-- names of friends we help fighting or enemys we don't want to attack --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jack&amp;quot; /&amp;gt; &amp;lt;!-- A player, lets assist him --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jill&amp;quot; /&amp;gt; &amp;lt;!-- A player, do not attack her --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Ambas&amp;quot; /&amp;gt; &amp;lt;!-- Elite, avoid him --&amp;gt;&lt;br /&gt;
	&amp;lt;/friends&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to use umlauts in your friends list, you have to use the escape character with the proper ascii code, since LUA can't handle umlauts (ü=\129, ä=\132, ö=\148, ...). For a mob named 'Kuhkäfer' if would look like &lt;br /&gt;
 &amp;lt;friend name=&amp;quot;Kuhk\132fer&amp;quot; /&amp;gt;&lt;br /&gt;
For more ASCII character look at the [http://www.cdrummond.qc.ca/cegep/informat/Professeurs/Alain/files/ascii.htm extended ASCII table].&lt;br /&gt;
&lt;br /&gt;
===Profile - Mobs===&lt;br /&gt;
The &amp;quot;Mobs&amp;quot; list can be used to limit the mobs we will attack. That can be helpful if you only want to attack one kind of mobs (e.g. for doing a daily). Leave the list empty if you don't want to restrict the bot.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;mobs&amp;gt;&lt;br /&gt;
		&amp;lt;!-- names of mobs we want to attack 				--&amp;gt;&lt;br /&gt;
		&amp;lt;mob name=&amp;quot;Fungus&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;mob name=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;mob name=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/mobs&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to use umlauts in your list, you have to use the escape character with the proper ascii code, since LUA can't handle umlauts (ü=\129, ä=\132, ö=\148, ...). For a mob named 'Kuhkäfer' if would look like &lt;br /&gt;
 &amp;lt;mob name=&amp;quot;Kuhk\132fer&amp;quot; /&amp;gt;&lt;br /&gt;
For more ASCII character look at the [http://www.cdrummond.qc.ca/cegep/informat/Professeurs/Alain/files/ascii.htm extended ASCII table].&lt;br /&gt;
&lt;br /&gt;
===Profile - Hotkeys===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
	&amp;lt;!-- to communicate with the RoM API / define ingame dummy macro at place 1 --&amp;gt;&lt;br /&gt;
	&amp;lt;hotkey name=&amp;quot;MACRO&amp;quot;        key=&amp;quot;VK_0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/hotkeys&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although your main hotkeys are configured either through settings.xml or your bindings.txt files, hotkeys for action bars are character or profile specific. &lt;br /&gt;
&lt;br /&gt;
We need only the hotkey to your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MACRO&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The hotkey that we use to communicate with the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro]. We will call RoM API functions that way&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you used a former bot version before: You now can delete your 'old' hotkeys like RES_MACRO, LOGOUT_MACRO, ...) We don't need them anymore.&lt;br /&gt;
&lt;br /&gt;
===Profile - Skills===&lt;br /&gt;
The bot will only attempt to use skills that are noted in your profile. There are two different ways to set skills up: using the 'skills' tag (does not depend on class) or using 'skills_class' (where class is an actual in-game class) tags.&lt;br /&gt;
&lt;br /&gt;
When using the 'skills' tag, it does not mater which main class your character currently is. This works pretty well for non-class specific skills that you wish to use for either class combination. For example, MAGE_FIREBALL is usable as both a mage/priest and priest/mage. Placing MAGE_FIREBALL into this tag will allow it to be used as either mage or priest primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FIREBALL&amp;quot; hotkey=&amp;quot;VK_7&amp;quot; priority=&amp;quot;110&amp;quot; hpper=&amp;quot;30&amp;quot; inbattle=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may often use different sets of skills for your two classes. This is when a class-specific skill tag is strongly suggested (that way you don't need to re-confgiure your profile every time you change classes). Skills placed inside this tag will only be used when it matches your primary class. For example, 'skills_mage' skills will only be used when mage is your primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills_mage&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FLAME&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_mage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;skills_priest&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;PRIEST_RISING_TIDE&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_priest&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hotkeys:'''&lt;br /&gt;
You can only use hotkeys without modifiers. Normaly that are the keys 'a-z' and '0-9'. If you want to use special keys like MINUS, PLUS, ... take a look into the file '\micromacro\lib\mods\keyboard\en_uk.lua' to find the right virtual keyname. Alternately you can assign the hotkey &amp;quot;MACRO&amp;quot;. In that case the skill will be cast by using the RoM API function 'CastSpellByName()' via the MACRO hotkey (it is not garanted, that all needed skill names are within the database file 'skills_local.xml').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Skill over-rides:'''&lt;br /&gt;
You can over-ride a few options to your skills. Particularly, those skills you want to limit to only use in battle, or set to use at a certain health percent (such as heals).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 100px; border-bottom:1px dotted #000000;&amp;quot; | priority&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Higher priority means it will use it before other skills. Use 100+ for your opening attacks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | hpper&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Percentage of HP to use the skill at. Your HP % must be below that level to use the skill. This will over-ride HP_LOW for heals!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | manaper&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Percentage of Mana to use the skill at. Your Mana % must be below that level to use the skill.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | inbattle&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either true or false. True means it only can be used in battle; false means if only can be used out of battle.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | targethp&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Targets HP in healthpoints has to be below this level to use the skill.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | targethpper&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Targets HP in percentage has to be below this level to use the skill.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | rebuffcut&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Recast that skill x seconds before the cooldown/duration fades out. Thats usefull for your own buffs.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | cooldown&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Cooldown/duration value for that skill. If not set, we use the default value from the skill. You can overwrite that here for special situations.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | pullonly&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Can only be used in the pull phase at the begin of a fight. They will not be used during the rest of the fight (only for melee classes if option 'COMBAT_RANGED_PULL' is set to 'true').&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | maxuse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with that option will only be used 'maxuse'-times within a fight.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | autouse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with autouse=false will not be automaticly casted from the Bot. Thats usefull if you want to cast a skill only in a event like '&amp;lt;onSkillCast&amp;gt;' .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Events===&lt;br /&gt;
While botting, several events may be triggered. When these events are triggered, you may have custom Lua code executed. This code is placed directly in the event-specific tags inside your profile.&lt;br /&gt;
&lt;br /&gt;
Events include:&lt;br /&gt;
* onLoad : When the profile is loaded&lt;br /&gt;
* onDeath: When your character dies&lt;br /&gt;
* onLeaveCombat: When leaving combat&lt;br /&gt;
* onSkillCast: Triggered after your character uses a skill&lt;br /&gt;
&lt;br /&gt;
onSkillCast will, additionally, receive a Lua table ('arg1') that is a copy of the skill being cast. You can use this to query information about the skill. This can be useful in &amp;quot;skill chaining.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;onLoad&amp;gt;&lt;br /&gt;
        -- Load a waypoint path based on level&lt;br /&gt;
        if( player.Level &amp;gt; 10 ) then&lt;br /&gt;
            load_paths(&amp;quot;some_path&amp;quot;);&lt;br /&gt;
        else&lt;br /&gt;
            load_paths(&amp;quot;some_other_path&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onDeath&amp;gt;&lt;br /&gt;
        printf(&amp;quot;\a\a\a&amp;quot;); -- BEEP BEEP BEEP!&lt;br /&gt;
        pauseOnDeath();   -- Wait for me. Do not continue script execution&lt;br /&gt;
    &amp;lt;/onDeath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; player.free_counter1) then&lt;br /&gt;
		player.free_counter1 = player.Level;&lt;br /&gt;
&lt;br /&gt;
		-- levelup skills&lt;br /&gt;
		-- 4 = third skill tab, 2 = mage flame&lt;br /&gt;
		if( player.Level == 2 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
			yrest(1000);&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		else&lt;br /&gt;
			player.free_counter1 = player.Level;&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- open giftbag and equipt content&lt;br /&gt;
		-- updates first 18 bag slots / update all if empty&lt;br /&gt;
		open_giftbag(player.Level, 18);&lt;br /&gt;
	end&lt;br /&gt;
    &amp;lt;/onLeaveCombat&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onSkillCast&amp;gt;&lt;br /&gt;
        if( arg1.Name == &amp;quot;PRIEST_HOLY_AURA&amp;quot; ) then&lt;br /&gt;
            yrest(1000);&lt;br /&gt;
            player:cast(&amp;quot;PRIEST_URGENT_HEAL&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onSkillCast&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In-Game Settings ==&lt;br /&gt;
In order for the bot to fully work, you will need to modify a few in-game settings. You should start with the Interface Settings and then set up your macro hotkey.&lt;br /&gt;
&lt;br /&gt;
===Interface Settings===&lt;br /&gt;
Bring up your interface settings under the System menu. Under control, make sure that '''Click-to-move''' and '''Self Cast''' are checked. Under Miscellaneous, also check '''Auto loot'''.&lt;br /&gt;
&lt;br /&gt;
===Settings up a Macro===&lt;br /&gt;
This macro is how the bot will interface with RoM's API. You should type ''/macro'' into the game's chat to bring up the macro window. Select the top-left most box and click '''New''', and in the new window that pops open click '''Save'''.&lt;br /&gt;
&lt;br /&gt;
It should now look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:rom_macro_screen.png]]&lt;br /&gt;
&lt;br /&gt;
Now, all you need to do is click and drag this new icon in your macro window into your hotkey bar and set your MACRO hotkey in [[RoM_Configuration#Profile_-_Hotkeys|profile hotkeys]] to reflect this change.&lt;br /&gt;
&lt;br /&gt;
Note that the macro slot directly to the right of the one you just created will also be used internally. Do not keep macros you intend to use there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expert Settings ==&lt;br /&gt;
&lt;br /&gt;
===Expert Profile - Options===&lt;br /&gt;
&lt;br /&gt;
 MAX_TARGET_DIST = 999,		-- maximum distance to select a target (helpfull to limit at small places)&lt;br /&gt;
 AUTO_ELITE_FACTOR = 4,		-- mobs with x * your HP value counts as 'Elite' and we will not target it&lt;br /&gt;
 SKILL_USE_PRIOR = 300,		-- cast x ms before cooldown is finished&lt;br /&gt;
 PK_COUNTS_AS_DEATH = true,	-- count playerkill's as death&lt;br /&gt;
 POTION_COOLDOWN = 15,		-- allways 15&lt;br /&gt;
 POTION_COOLDOWN_HP = 0,	-- will only be used if not 0, if 0 POTION_COOLDOWN will be used&lt;br /&gt;
 POTION_COOLDOWN_MANA = 0,	-- will only be used if not 0, if 0 POTION_COOLDOWN will be used&lt;br /&gt;
 WAYPOINTS_REVERSE = false,	-- use the waypoint file in reverse order&lt;br /&gt;
 MAX_DEATHS = 10,		-- maximal death if automatic resurrect befor logout&lt;br /&gt;
 WAIT_TIME_AFTER_RES = 8000,	-- time to wait after resurrection, needs more on slow PCs&lt;br /&gt;
 RETURNPATH_SUFFIX = &amp;quot;_return&amp;quot;,	-- suffix for default naming of returnpath&lt;br /&gt;
 HARVEST_SCAN_WIDTH = 10,	-- steps horizontal&lt;br /&gt;
 HARVEST_SCAN_HEIGHT = 8,	-- steps vertical&lt;br /&gt;
 HARVEST_SCAN_STEPSIZE = 35,	-- wide of every step&lt;br /&gt;
 HARVEST_SCAN_TOPDOWN = false,	-- true = top-&amp;gt;down  false = botton-&amp;gt;up&lt;br /&gt;
 HARVEST_SCAN_XMULTIPLIER = 1.0,	-- multiplier for scan width&lt;br /&gt;
 HARVEST_SCAN_YMULTIPLIER = 1.1,	-- multiplier for scan line height&lt;br /&gt;
 HARVEST_SCAN_YREST = 10,	-- scanspeed&lt;br /&gt;
 HARVEST_SCAN_YMOVE = 1.1,	-- move scan area top/down ( 1=middle of screen )&lt;br /&gt;
 USE_SLEEP_AFTER_RESUME = false, -- enter sleep mode after pressing pause/resume key&lt;br /&gt;
 IGNORE_MACRO_ERROR = false, 	-- ignore missing MACRO hotkey error (only temporary option while beta)&lt;br /&gt;
 DEBUG_INV = false,	 	-- to help to find the item use error (only temporary option  while beta)&lt;br /&gt;
 INV_MAX_SLOTS = 60,	 	-- maximal slots to update in the inventory:update()&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Fight_Support_Only&amp;diff=351</id>
		<title>RoM Fight Support Only</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Fight_Support_Only&amp;diff=351"/>
				<updated>2009-10-29T15:32:28Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: New page: =How To use the Bot as Fight Support only System=  ==Deactivating of the Targeting Function== Set the option  &amp;lt;option name=&amp;quot;AUTO_TARGET&amp;quot;		value=&amp;quot;false&amp;quot; /&amp;gt; if you want to deactivate the tar...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=How To use the Bot as Fight Support only System=&lt;br /&gt;
&lt;br /&gt;
==Deactivating of the Targeting Function==&lt;br /&gt;
Set the option&lt;br /&gt;
 &amp;lt;option name=&amp;quot;AUTO_TARGET&amp;quot;		value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
if you want to deactivate the targeting function. If you do so, you can target you mobs by yourselfe. The bot will start fighting a mob if you select a target.&lt;br /&gt;
==Deactivating of the Movement Function==&lt;br /&gt;
If you only want to use the bot as fight support system without moving along a waypoint file, you can set the profile option:&lt;br /&gt;
 &amp;lt;option name=&amp;quot;PATH_TYPE&amp;quot;              value=&amp;quot;wander&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;option name=&amp;quot;WANDER_RADIUS&amp;quot;          value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
Or just set the WANDER_RADIUS to '0' and select point '0: wander' within your pathlist. After doing that you can move your character manual to every position in the game. Depending from your setting for the targeting function, you can select your own targets or let the bot select the targets.&lt;br /&gt;
==Using the Sleep Mode==&lt;br /&gt;
You can optional to the options above also use the Sleep mode to set the bot to sleeping after ever fight is finished. Use the profile option:&lt;br /&gt;
 &amp;lt;option name=&amp;quot;USE_SLEEP_AFTER_RESUME&amp;quot;		value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
to go to sleep after a fight. You have to press the 'END' key for pause the bot and directly after that press the 'DEL' key to resume. After that the bot will go to sleep as soon as possible. If you get aggro or pull a mob, the bot will awake and fight and after the fight go to sleep again.&lt;br /&gt;
&lt;br /&gt;
That's also a good solution if you want to go AFK and want to be able to fight back respawns or PK players.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Custom_Scripting&amp;diff=350</id>
		<title>RoM Custom Scripting</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Custom_Scripting&amp;diff=350"/>
				<updated>2009-10-29T15:21:25Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[RoM Heal Yourself|How To: Heal yourself with the Bot]]&lt;br /&gt;
* [[RoM Working with profile events|How To: Working with profile events]]&lt;br /&gt;
* [[RoM Harvest|How To: Harvest]]&lt;br /&gt;
* [[RoM Leveling|How To: Automatic Leveling e.g. Level 1-10]] - Connect waypoint files, level up skills, open bags and equipt items&lt;br /&gt;
* [[RoM Working with waypoint files|How to work with waypoint files]]&lt;br /&gt;
* [[RoM Auto repair|How To: Auto Repair and Auto Sell]]&lt;br /&gt;
* [[RoM Fight Support Only|How To: Use the Bot as Fight Support Only]]&lt;br /&gt;
* [[RoM Looting Issues|How To: Looting Issues, Lootfilter, Problems ...]]&lt;br /&gt;
* [[RoM Click in foreground|How to use mouseclick on foreground window]]&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=349</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=349"/>
				<updated>2009-10-29T13:37:52Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Inventory and Item Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
 levelupSkill(_skillname [, _times] )&lt;br /&gt;
&lt;br /&gt;
Levelup a Single Skill by Name. For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way. &lt;br /&gt;
&lt;br /&gt;
 levelupSkills1To10( [&amp;quot;loadonly&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event: &lt;br /&gt;
&lt;br /&gt;
 openGiftbags1To10( [[_player_level] , _maxslot] );&lt;br /&gt;
open the level 1-10 giftbags and equipt the items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
 example:&lt;br /&gt;
 local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest([&amp;quot;test&amp;quot;|id]);&lt;br /&gt;
Use 'player:harvest()' to scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground). Use 'player:harvest(&amp;quot;test&amp;quot;)' to list id's of objects in front of you (e.g. quest objects), use 'player:harvest(id-nr)' to scan and use/open a object with that given object-id.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:getItemCount(itemId)&lt;br /&gt;
&lt;br /&gt;
 examples:&lt;br /&gt;
 if( inventory:getItemCount(214536) &amp;gt; 25 ) then&lt;br /&gt;
    loadPaths(&amp;quot;deliver_quest&amp;quot;);&lt;br /&gt;
 end&lt;br /&gt;
Get the quantity for a item directly from the games client.&lt;br /&gt;
&lt;br /&gt;
 inventory:itemTotalCount(itemNameOrId)&lt;br /&gt;
Get the quantity for a item from the cached inventory. You have to be sure, that your inventory is up to date to get the right values. You can use the item-id or the name of the item&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem(itemNameOrId)&lt;br /&gt;
Use a item from the cached inventory.&lt;br /&gt;
&lt;br /&gt;
 inventory:update()&lt;br /&gt;
Update the whole inventory from the games client. Depending from you slots, that takes about 10-15 seconds. Nevertheless from using that function, the bot updates the whole inventory at the bot starting time and about 3-4 slots after every fight and about 10-15 slots while the bot is looting. &lt;br /&gt;
&lt;br /&gt;
By default the bot updates slot 1-60. If you want to use more slots please use the profile option&lt;br /&gt;
 &amp;lt;option name=&amp;quot;INV_MAX_SLOTS&amp;quot;	value=&amp;quot;120&amp;quot; /&amp;gt;	&amp;lt;!-- max slots for inventory scan --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
      __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can submit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 /script SendSystemChat(tonumber(string.sub(GetBagItemLink(GetBagItemInfo(1)), 8, 12), 16));&lt;br /&gt;
Print the itemid of slot-nr 1 into the system chat. Change the slot number to the item you want to get informations about or move that item to slot #1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;GetBagItemCount(&amp;quot;..itemid..&amp;quot;)&amp;quot;)&lt;br /&gt;
Get back the quantity of an givem item ID in your bags.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 occupiedSlots, totalSlots = sendMacro(&amp;quot;GetBagCount();&amp;quot;);&lt;br /&gt;
Get back the number of total slots in your bag and the number of the occupied slot in your bag.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Variables&amp;diff=348</id>
		<title>RoM Variables</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Variables&amp;diff=348"/>
				<updated>2009-10-29T13:27:44Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Player Variables =&lt;br /&gt;
&lt;br /&gt;
==Player User Fields==&lt;br /&gt;
Thats only a small selection of some important variables. Please look at the coding if you want more.&lt;br /&gt;
&lt;br /&gt;
 self.free_field1 = nil;				-- free field for user use&lt;br /&gt;
 self.free_field2 = nil;				-- free field for user use&lt;br /&gt;
 self.free_field3 = nil;				-- free field for user use&lt;br /&gt;
 self.free_counter1 = 0;				-- free counter for user use&lt;br /&gt;
 self.free_counter2 = 0;				-- free counter for user use&lt;br /&gt;
 self.free_counter3 = 0;				-- free counter for user use		&lt;br /&gt;
 self.free_flag1 = false;			-- free flag for user use&lt;br /&gt;
 self.free_flag2 = false;			-- free flag for user use&lt;br /&gt;
 self.free_flag3 = false;			-- free flag for user use		&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==General Player Fields==&lt;br /&gt;
example:&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
if( player.Level &amp;gt; 9 ) then&lt;br /&gt;
   printf(&amp;quot;do some other coding stuff&amp;quot;);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 player.BotStartTime&lt;br /&gt;
 player.BotStartTime_nr&lt;br /&gt;
&lt;br /&gt;
Bot start time. 'player.BotStartTime' will be reseted if you pause the bot by pressing 'END'. 'player.BotStartTime_nr' will not be reseted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;example:&lt;br /&gt;
if( os.difftime(os.time(), player.BotStartTime) &amp;gt; 3600 ) then&lt;br /&gt;
   printf(&amp;quot;do some other coding stuff&amp;quot;);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Player Fight and Target Variables==&lt;br /&gt;
 player.Fights&lt;br /&gt;
Counter for the number of the fights.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;example:&lt;br /&gt;
if( player.Fights-player.free_counter1 &amp;gt; 300 ) then&lt;br /&gt;
    player.free_counter1 = player.Fights;&lt;br /&gt;
    loadPaths(&amp;quot;l4-5.xml&amp;quot;);&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 player.mobs[mobname]&lt;br /&gt;
Counter for the number of the fights per mob&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;example:&lt;br /&gt;
if( player.mobs[&amp;quot;Fungus&amp;quot;] &amp;gt; 25 ) then&lt;br /&gt;
    printf(&amp;quot;do some other coding stuff&amp;quot;);&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Inventory Variables =&lt;br /&gt;
&lt;br /&gt;
The most inventory fields are accessible by using the inventory functions. Fore more informations about that see the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions#Inventory_and_Item_Functions inventory function].&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=333</id>
		<title>RoM Getting started</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=333"/>
				<updated>2009-10-18T12:38:19Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
MicroMacro 1.0, which you can get [http://www.solarstrike.net/phpBB3/viewtopic.php?f=6&amp;amp;t=177 here]&lt;br /&gt;
&lt;br /&gt;
You will need rom scripts and put them in micromacro/scripts folder. here is how you get them:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 1: Downloading rom bot from SVN (recommended but harder) ==&lt;br /&gt;
Advanced:&lt;br /&gt;
&lt;br /&gt;
For those of you who already have some working knowledge of SVN, you can use this command to checkout:&lt;br /&gt;
      svn checkout http://rom-bot.googlecode.com/svn/trunk/ rom-bot-read-only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple:&lt;br /&gt;
&lt;br /&gt;
First, I suggest you install Tortoise SVN. Once installed, you may need to reboot your machine. Now, locate your 'rom' folder (should be inside micromacro/scripts/) and right-click it. Select 'SVN Checkout'.&lt;br /&gt;
&lt;br /&gt;
Now, a window should open. Inside &amp;quot;URL of repository:&amp;quot;, enter this url:&lt;br /&gt;
      http://rom-bot.googlecode.com/svn/trunk/rom&lt;br /&gt;
&lt;br /&gt;
Everything else can be left at default. Click OK and it should begin downloading and updating all of your files. Now that you've got it all setup, you can simply right click the 'rom' folder again and select SVN update. Typically, a red icon over the folder should indicate that there are updates to download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Problems with file conflicts?&lt;br /&gt;
&lt;br /&gt;
This typically happens if you've made any modifications to the scripts. To fix it, you should delete any files that have conflicts, and try to SVN update again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 2: Downloading rom bot from forums ==&lt;br /&gt;
Download [http://www.solarstrike.net/phpBB3/viewtopic.php?f=21&amp;amp;t=163 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Make a path ==&lt;br /&gt;
Now you'll need to make a waypoint script. Start MicroMacro and execute the rom/createpath.lua script when prompted. You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Configure RoM bot ==&lt;br /&gt;
Next you must make a profile. Go to the profile directory and make a copy of Default.xml, but rename it to whatever your character name is. It must be exact, but capitalization shouldn't mater. For the waypoint script option, you will apply the '.xml' extension this time.&lt;br /&gt;
&lt;br /&gt;
To see how to configure your bot, go to [[RoM_Configuration|configuration]]&lt;br /&gt;
&lt;br /&gt;
Heres a video tutorial on configuring your bot. [http://www.youtube.com/watch?v=mUe8g4Eplj4 YouTube link]&lt;br /&gt;
&lt;br /&gt;
== Configure RoM in game ==&lt;br /&gt;
In rom, click esc and click interface options, and be sure to have set Turn on Self Cast, Click to move and Auto loot&lt;br /&gt;
&lt;br /&gt;
== Configure the macro ==&lt;br /&gt;
Create ingame a empty macro at macro slot 1. You do that by:&lt;br /&gt;
&lt;br /&gt;
Press ESC (System-Menu) -&amp;gt; Macros). Then click at the macro slot 1 at the very up left.&lt;br /&gt;
&lt;br /&gt;
[[Image:macroslot.jpg]]&lt;br /&gt;
&lt;br /&gt;
Press the button 'New' -&amp;gt; 'Save'.&lt;br /&gt;
&lt;br /&gt;
Now move (via Drag&amp;amp;Drop) that empty macro to your action bar button with the defined hotkey from your profile (default key is 0).&lt;br /&gt;
&lt;br /&gt;
'''Tipp to avoid missing keypress:'''&lt;br /&gt;
If your bot works in the background and you do some writings in a foreground window, your keypress of modifiers (CTRL/SHIFT/ALT) in the editor will be the cause that sometimes the RoM client receive a CTRL+0 instead of a keypress 0 (if 0 is your hotkey for the macro). To avoid that, it is recommendet to take a second action button and also assign your dummy macro to that second button. After doing that assign the hotkey CTRL+0 and ALT+0 to that second button. Also assign SHIFT+0 to the key 2 for your main MACRO button 0. By doing that you can avoid the miss of keypresses.&lt;br /&gt;
&lt;br /&gt;
== Run ==&lt;br /&gt;
Run by starting mircomacro and typing &lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To see the bot at full work, create a new character (at best a mage or a priest) at the pioneer village and start the bot with&lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua profile:l1-10&lt;br /&gt;
&lt;br /&gt;
Then choose path '1-10Pi../l1t_start.xml' from the list. That will level you the character from level 1 to 10 and after doing that run to Varanas class hall (best works mage, priest and scout ... in that order). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this helps! If you see anything i forgot to tell you about, please add it to this wiki page.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=332</id>
		<title>RoM Getting started</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=332"/>
				<updated>2009-10-18T12:32:18Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: Undo revision 331 by 213.190.85.1 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;QvpvB5  &amp;lt;a href=&amp;quot;http://ogqzghpknpuu.com/&amp;quot;&amp;gt;ogqzghpknpuu&amp;lt;/a&amp;gt;, [url=http://obsdsrinmhla.com/]obsdsrinmhla[/url], [link=http://xdzwzgpbybby.com/]xdzwzgpbybby[/link], http://jbeiikffjwdp.com/&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Waypoint_file&amp;diff=290</id>
		<title>RoM Waypoint file</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Waypoint_file&amp;diff=290"/>
				<updated>2009-09-24T14:59:38Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Waypoint types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Working with waypoint files =&lt;br /&gt;
&lt;br /&gt;
== Executing createpath.lua ==&lt;br /&gt;
Start MicroMacro and execute the rom/createpath.lua script by entering&lt;br /&gt;
 rom/createpath.lua&lt;br /&gt;
into your MM window. You need a valid profile for your ingame charactername and have to set the dummy macro ingame. You could also execute the script with a forced profile&lt;br /&gt;
 rom/createpath.lua profile:default&lt;br /&gt;
&lt;br /&gt;
You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
The new created waypointfile boars.xml will look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;NORMAL&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-791&amp;quot; z=&amp;quot;-8322&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-737&amp;quot; z=&amp;quot;-8155&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-552&amp;quot; z=&amp;quot;-8251&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-540&amp;quot; z=&amp;quot;-8412&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Waypoint types ===&lt;br /&gt;
&lt;br /&gt;
You can determine the targeting and attacking behaviour of the bot by using waypoint types. You can add the 'type' option at the top of the waypoint file or separately for each waypoint. The default value is 'NORMAL'. If you don't specify a type at the waypoint, the waypoint will inherit the type from the &amp;lt;WAYPOINTS&amp;gt; tag at the top of the file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-791&amp;quot; z=&amp;quot;-8322&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-737&amp;quot; z=&amp;quot;-8155&amp;quot;&amp;gt;RUN&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-552&amp;quot; z=&amp;quot;-8251&amp;quot;&amp;gt;RUN&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-540&amp;quot; z=&amp;quot;-8412&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;In this example, the waypoints #1 and #4 have the type 'TRAVEL' and the waypoints #2 and #3 have the type 'RUN'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | NORMAL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Default value for waypoints. The bot will try to target new mobs and attack them.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | TRAVEL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The bot will not targeting mobs by itself. He will still stand and fight back if he gets aggro.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | RUN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The bot will not targeting mobs and will not stop if he gets aggro. He will just run until he reach a waypoint with one of the other waypoint types or get a stop command within the waypoint coding.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Using LUA coding with your waypoint files ==&lt;br /&gt;
&lt;br /&gt;
You can insert your own lua code within a waypoint file. The lua code will be executed after you reach that waypoint. Insert the code '''within''' the tags '&amp;lt;waypoint&amp;gt;&amp;lt;/waypoint&amp;gt;'. It would look like:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- # 6 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-2462&amp;quot; z=&amp;quot;-9625&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
 &amp;lt;!-- # 7 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-2391&amp;quot; z=&amp;quot;-9639&amp;quot;&amp;gt;&lt;br /&gt;
 	if( player.Level &amp;gt; 2 ) then&lt;br /&gt;
 		loadPaths(&amp;quot;1-10Pioneers/l3t_3-4_bear&amp;quot;);&lt;br /&gt;
   	end&lt;br /&gt;
 &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
 &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-2144&amp;quot; z=&amp;quot;-9585&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions list of functions] that you can use for your own coding.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Waypoint_file&amp;diff=289</id>
		<title>RoM Waypoint file</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Waypoint_file&amp;diff=289"/>
				<updated>2009-09-24T14:54:44Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Working with waypoint files =&lt;br /&gt;
&lt;br /&gt;
== Executing createpath.lua ==&lt;br /&gt;
Start MicroMacro and execute the rom/createpath.lua script by entering&lt;br /&gt;
 rom/createpath.lua&lt;br /&gt;
into your MM window. You need a valid profile for your ingame charactername and have to set the dummy macro ingame. You could also execute the script with a forced profile&lt;br /&gt;
 rom/createpath.lua profile:default&lt;br /&gt;
&lt;br /&gt;
You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
The new created waypointfile boars.xml will look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;NORMAL&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-791&amp;quot; z=&amp;quot;-8322&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-737&amp;quot; z=&amp;quot;-8155&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-552&amp;quot; z=&amp;quot;-8251&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-540&amp;quot; z=&amp;quot;-8412&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Waypoint types ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | NORMAL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Default value for waypoints. The bot will try to target new mobs and attack them.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | TRAVEL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The bot will not targeting mobs by itself. He will still stand and fight back if he gets aggro.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | RUN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The bot will not targeting mobs and will not stop if he gets aggro. He will just run until he reach a waypoint with one of the other waypoint types or get a stop command within the waypoint coding.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Using LUA coding with your waypoint files ==&lt;br /&gt;
&lt;br /&gt;
You can insert your own lua code within a waypoint file. The lua code will be executed after you reach that waypoint. Insert the code '''within''' the tags '&amp;lt;waypoint&amp;gt;&amp;lt;/waypoint&amp;gt;'. It would look like:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- # 6 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-2462&amp;quot; z=&amp;quot;-9625&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
 &amp;lt;!-- # 7 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-2391&amp;quot; z=&amp;quot;-9639&amp;quot;&amp;gt;&lt;br /&gt;
 	if( player.Level &amp;gt; 2 ) then&lt;br /&gt;
 		loadPaths(&amp;quot;1-10Pioneers/l3t_3-4_bear&amp;quot;);&lt;br /&gt;
   	end&lt;br /&gt;
 &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
 &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-2144&amp;quot; z=&amp;quot;-9585&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Functions list of functions] that you can use for your own coding.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=288</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=288"/>
				<updated>2009-09-24T14:52:49Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Waypoint File Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
 levelupSkill(_skillname [, _times] )&lt;br /&gt;
&lt;br /&gt;
Levelup a Single Skill by Name. For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way. &lt;br /&gt;
&lt;br /&gt;
 levelupSkills1To10( [&amp;quot;loadonly&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event: &lt;br /&gt;
&lt;br /&gt;
 openGiftbags1To10( [[_player_level] , _maxslot] );&lt;br /&gt;
open the level 1-10 giftbags and equipt the items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
 example:&lt;br /&gt;
 local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest();&lt;br /&gt;
Scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
      __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can sumbit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Waypoint_file&amp;diff=287</id>
		<title>RoM Waypoint file</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Waypoint_file&amp;diff=287"/>
				<updated>2009-09-24T14:51:42Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Executing createpath.lua */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Working with waypoint files =&lt;br /&gt;
&lt;br /&gt;
== Executing createpath.lua ==&lt;br /&gt;
Start MicroMacro and execute the rom/createpath.lua script by entering&lt;br /&gt;
 rom/createpath.lua&lt;br /&gt;
into your MM window. You need a valid profile for your ingame charactername and have to set the dummy macro ingame. You could also execute the script with a forced profile&lt;br /&gt;
 rom/createpath.lua profile:default&lt;br /&gt;
&lt;br /&gt;
You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
The new created waypointfile boars.xml will look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;NORMAL&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-791&amp;quot; z=&amp;quot;-8322&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-737&amp;quot; z=&amp;quot;-8155&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-552&amp;quot; z=&amp;quot;-8251&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-540&amp;quot; z=&amp;quot;-8412&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Waypoint types ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | NORMAL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Default value for waypoints. The bot will try to target new mobs and attack them.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | TRAVEL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The bot will not targeting mobs by itself. He will still stand and fight back if he gets aggro.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | RUN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The bot will not targeting mobs and will not stop if he gets aggro. He will just run until he reach a waypoint with one of the other waypoint types or get a stop command within the waypoint coding.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Waypoint_file&amp;diff=286</id>
		<title>RoM Waypoint file</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Waypoint_file&amp;diff=286"/>
				<updated>2009-09-24T14:51:23Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: New page: = Working with waypoint files =  == Executing createpath.lua == Start MicroMacro and execute the rom/createpath.lua script by entering  rom/createpath.lua into your MM window. You need a v...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Working with waypoint files =&lt;br /&gt;
&lt;br /&gt;
== Executing createpath.lua ==&lt;br /&gt;
Start MicroMacro and execute the rom/createpath.lua script by entering&lt;br /&gt;
 rom/createpath.lua&lt;br /&gt;
into your MM window. You need a valid profile for your ingame charactername and have to set the dummy macro ingame. You could also execute the script with a forced profile&lt;br /&gt;
 rom/createpath.lua profile:default&lt;br /&gt;
&lt;br /&gt;
You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
The new created waypointfile boars.xml will look like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;NORMAL&amp;quot; &amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 1 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-791&amp;quot; z=&amp;quot;-8322&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 2 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-737&amp;quot; z=&amp;quot;-8155&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-552&amp;quot; z=&amp;quot;-8251&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
	&amp;lt;!-- # 4 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-540&amp;quot; z=&amp;quot;-8412&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Waypoint types&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | NORMAL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Default value for waypoints. The bot will try to target new mobs and attack them.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | TRAVEL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The bot will not targeting mobs by itself. He will still stand and fight back if he gets aggro.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | RUN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The bot will not targeting mobs and will not stop if he gets aggro. He will just run until he reach a waypoint with one of the other waypoint types or get a stop command within the waypoint coding.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Bot&amp;diff=285</id>
		<title>RoM Bot</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Bot&amp;diff=285"/>
				<updated>2009-09-24T14:42:49Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[RoM Getting started|Getting started]] - Download the installation files and run the demo&lt;br /&gt;
* [[RoM Configuration|Configuration]] - Configure the RoM bot to your needs&lt;br /&gt;
* [[RoM Waypoinf files|Waypoint files]] - Working with waypoint files&lt;br /&gt;
* [[RoM Functions|Functions]] - List of functions you can use in your own profile events and waypoint files.&lt;br /&gt;
* [[RoM Variables|Variables]] - List of important variables you can use in your own profile events and waypoint files.&lt;br /&gt;
* [[RoM Custom Scripting|Examples &amp;amp; Tutorials]] - Learn how to do various tasks with the RoM Bot.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=284</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=284"/>
				<updated>2009-09-24T14:40:50Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Waypoint File Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
 levelupSkill(_skillname [, _times] )&lt;br /&gt;
&lt;br /&gt;
Levelup a Single Skill by Name. For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way. &lt;br /&gt;
&lt;br /&gt;
 levelupSkills1To10( [&amp;quot;loadonly&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event: &lt;br /&gt;
&lt;br /&gt;
 openGiftbags1To10( [[_player_level] , _maxslot] );&lt;br /&gt;
open the level 1-10 giftbags and equipt the items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
 example:&lt;br /&gt;
 local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest();&lt;br /&gt;
Scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
You can insert your own lua code within a waypoint file. The lua code will be executed after you reach that waypoint. Insert the code '''within''' the tags '&amp;lt;waypoint&amp;gt;&amp;lt;/waypoint&amp;gt;'. It would look like:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!-- # 6 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-2462&amp;quot; z=&amp;quot;-9625&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
 &amp;lt;!-- # 7 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-2391&amp;quot; z=&amp;quot;-9639&amp;quot;&amp;gt;&lt;br /&gt;
 	if( player.Level &amp;gt; 2 ) then&lt;br /&gt;
 		loadPaths(&amp;quot;1-10Pioneers/l3t_3-4_bear&amp;quot;);&lt;br /&gt;
   	end&lt;br /&gt;
 &amp;lt;/waypoint&amp;gt;&lt;br /&gt;
 &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-2144&amp;quot; z=&amp;quot;-9585&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can sumbit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=282</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=282"/>
				<updated>2009-09-22T14:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Automatic Level of Skills from 1 - 10 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example Files from 1 - 10 =&lt;br /&gt;
&lt;br /&gt;
There are example files for leveling from 1 - 10 in the profile folder. Just start the bot with&lt;br /&gt;
 rom/bot.lua profile:l1-10&lt;br /&gt;
After doing that select the waypointfile 'l1_goto_2.xml' from the list.&lt;br /&gt;
&lt;br /&gt;
Best classes for a fast leveling are at first mage and at second priest. The other classes will also come to a finish. But they would normaly need a new weapoin while leveling. To do the way from level 1 to 10 with the beginners level 1 weapon is a little annoying.&lt;br /&gt;
&lt;br /&gt;
It is recommented that you copy that files and change the paths. Simply because of running to much people the same path will look very bottish and could result into an accout ban.&lt;br /&gt;
&lt;br /&gt;
= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag();&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintained the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and levelup a skill by skill parameters.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
&lt;br /&gt;
== Automatic Open Bags from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
 openGiftbags1To10( [player.Level [, maxslot] );&lt;br /&gt;
&lt;br /&gt;
That function knows the giftbags from 1 - 10, opens them and equipt the armor from within. Just enter that function within your onLevelup event into your profile.&lt;br /&gt;
&lt;br /&gt;
== Open Bags with the bot inventory functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem( itemid | itemname );&lt;br /&gt;
&lt;br /&gt;
To be sure, your inventory knows all items. You should do a full inventory update after levelup&lt;br /&gt;
&lt;br /&gt;
 inventory:update();&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=278</id>
		<title>RoM Configuration</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=278"/>
				<updated>2009-09-17T15:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Profile - Skills */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two main settings files for RoM bot: settings.xml and your profile.&lt;br /&gt;
Profiles contain character-specific settings, while settings.xml contains hotkey settings and general preferences.&lt;br /&gt;
&lt;br /&gt;
== Settings.xml ==&lt;br /&gt;
Here is an example settings file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
	&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Cannot use modifiers --&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_FORWARD&amp;quot; key=&amp;quot;VK_W&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_BACKWARD&amp;quot; key=&amp;quot;VK_S&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_LEFT&amp;quot; key=&amp;quot;VK_A&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_RIGHT&amp;quot; key=&amp;quot;VK_D&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_LEFT&amp;quot; key=&amp;quot;VK_Q&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_RIGHT&amp;quot; key=&amp;quot;VK_E&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;JUMP&amp;quot; key=&amp;quot;VK_SPACE&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET&amp;quot; key=&amp;quot;VK_TAB&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET_FRIEND&amp;quot; key=&amp;quot;VK_J&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/hotkeys&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;options&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;ENABLE_FIGHT_SLOW_TURN&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;MELEE_DISTANCE&amp;quot; value=&amp;quot;45&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;LANGUAGE&amp;quot; value=&amp;quot;english&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;DEBUG_ASSERT&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/options&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Settings - Hotkeys===&lt;br /&gt;
The hotkey settings are mostly self-explanatory. MOVE_FORWARD, obviously, coresponds to the key that makes your character walk forward. This is &amp;quot;W&amp;quot; by default. Note that '''all''' keys must preceeded by 'VK_'.&lt;br /&gt;
&lt;br /&gt;
You may also notice the 'modifier'. Modifiers are keys such as CONTROL, SHIFT, or ALT. However, be aware that modifiers currently '''do not work'''. You should not set modifiers or you may run into problems. Instead, just leave the modifier set to an empty string(&amp;quot;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If your Runes of Magic bindings file (By default, is located at 'My Documents/Runes of Magic/bindings.txt') can be found and loaded, the RoM bot will instead use these settings so that you will not need to manually change your hotkey settings.&lt;br /&gt;
&lt;br /&gt;
===Settings - Options===&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ENABLE_FIGHT_SLOW_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable &amp;quot;slow turning&amp;quot; in combat. If you have click-to-move on, you should not need this. It should be set to either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. The default is &amp;quot;false&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | MELEE_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance at which to conduct melee combat. A value of 45 is good and should not be changed unless you have problems with being either too close or too far away for melee combat. Default: &amp;quot;45&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | LANGUAGE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to set your prefered language. Acceptable values are &amp;quot;english&amp;quot;, &amp;quot;deutsch&amp;quot;, and &amp;quot;french&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | DEBUG_ASSERT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | This is a debugging option. When set to true, it will instantly exit on memory read errors and provide better debugging information. Default: &amp;quot;false&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Character Profiles ==&lt;br /&gt;
There are a few things you should know about character profiles first:&lt;br /&gt;
* They typically are named after the character that will use them&lt;br /&gt;
* They must be inside the 'rom/profiles' folder&lt;br /&gt;
* They must follow proper XML formatting&lt;br /&gt;
* They may contain custom Lua code&lt;br /&gt;
&lt;br /&gt;
There are many profile options that can be set so it is highly recommended you make a copy of the default profile (Default.xml) and modify that to your character's needs instead of starting from scratch.&lt;br /&gt;
&lt;br /&gt;
'''If you have extension hiding turned off,''' the .xml extension will not show on any of your files. If this is the case, '''do not''' add the .xml extension or you will end up with a file named something like Default.xml.xml. This may cause the profile to not be found and you may get errors. However, if you are able to see extensions, you should of course include the .xml extension when naming your profile.&lt;br /&gt;
&lt;br /&gt;
===Profile - Options===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;options&amp;gt;&lt;br /&gt;
	&amp;lt;option name=&amp;quot;HP_LOW&amp;quot;        value=&amp;quot;85&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;option name=&amp;quot;MP_LOW_POTION&amp;quot; value=&amp;quot;50&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;option name=&amp;quot;HP_LOW_POTION&amp;quot; value=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
	...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Healing and Potions'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use heal skills at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use potions at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of mana to use mana potions at&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Combat Options'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either &amp;quot;melee&amp;quot; or &amp;quot;ranged&amp;quot;. Whichever best fits your character. Default: empty string (&amp;quot;&amp;quot;). When unset (default), it will determine this automatically based on your class. There is no need to change this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_RANGED_PULL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to attempt to &amp;quot;pull&amp;quot; enemies towards you with ranged skills while you are a melee-based class&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance to remain at when fighting. This only affects your character when COMBAT_TYPE is &amp;quot;ranged&amp;quot; or when you use COMBAT_RANGED_PULL as melee.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MAX_FIGHT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you stop damaging a target within this amount of time, you will skip this target (prevents getting stuck).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | DOT_PERCENT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Only use DOTs on this target if it has more than this percentage of HP.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ANTI_KS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to avoid stealing other players' kills. true or false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Waypoint and Movement'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINTS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RETURNPATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use for returning after death. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | PATH_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The type of movement to use. Should be either 'waypoints' or 'wander'. See path types for more information.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WANDER_RADIUS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance that your character is allowed to &amp;quot;wander&amp;quot; freely when using wander mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINT_DEVIATION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A 'random' offset applied to each waypoint in your path giving it less of a bot-like appearance; suggested value of 50. Lower value means you stick closer to your normal path; 0 means no deviation.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | QUICK_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to use quick turn mode. Quick turn mode emulates a click-to-move type movement style. This means your character does not stop to slowly turn around.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Level Difference'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_ABOVE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy above your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels above your own.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_BELOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy below your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels below your own.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Looting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether you want to loot enemies or not. True or false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_IN_COMBAT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not you want to pick up loot when other enemies are still attacking you.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The max distance away a corpse can be that you will attempt to loot.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_PAUSE_AFTER&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A percentage probability to attempt a short &amp;quot;rest&amp;quot; (to look more human) after looting an enemy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Resting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_REST&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If health falls below this percentage, then rest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If mana falls below this percentage, then rest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Log out &amp;amp; Resurrection Settings'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Log out after this amount of time (in minutes). A value of 0 means you will not use this setting. Default: 0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_WHEN_STUCK&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If your character gets stuck and cannot unstuck himself, you can use this option to have him log off. Default: true&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RES_AUTOMATIC_AFTER_DEATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not your character should attempt resurrecting when he dies. Default: true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Friends===&lt;br /&gt;
The &amp;quot;Friends&amp;quot; list can be used to mark targets that you do not want to attack. This can be other players that may be marked for PVP, or targets that you want to ignore (ie. &amp;quot;Ystra Ferret&amp;quot;). You may also add players to your friend list to get the bot to assist them when it notices they are fighting something.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;friends&amp;gt;&lt;br /&gt;
		&amp;lt;!-- names of friends we help fighting or enemys we don't want to attack --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jack&amp;quot; /&amp;gt; &amp;lt;!-- A player, lets assist him --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jill&amp;quot; /&amp;gt; &amp;lt;!-- A player, do not attack her --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Ambas&amp;quot; /&amp;gt; &amp;lt;!-- Elite, avoid him --&amp;gt;&lt;br /&gt;
	&amp;lt;/friends&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to use umlauts in your friends list, you have to use the escape character with the proper ascii code, since LUA can't handle umlauts (ü=\129, ä=\132, ö=\148, ...). For a mob named 'Kuhkäfer' if would look like &lt;br /&gt;
 &amp;lt;friend name=&amp;quot;Kuhk\132fer&amp;quot; /&amp;gt;&lt;br /&gt;
For more ASCII character look at the [http://www.cdrummond.qc.ca/cegep/informat/Professeurs/Alain/files/ascii.htm extended ASCII table].&lt;br /&gt;
&lt;br /&gt;
===Profile - Hotkeys===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
	&amp;lt;!-- to communicate with the RoM API / define ingame dummy macro at place 1 --&amp;gt;&lt;br /&gt;
	&amp;lt;hotkey name=&amp;quot;MACRO&amp;quot;        key=&amp;quot;VK_0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/hotkeys&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although your main hotkeys are configured either through settings.xml or your bindings.txt files, hotkeys for action bars are character or profile specific. &lt;br /&gt;
&lt;br /&gt;
We need only the hotkey to your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MACRO&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The hotkey that we use to communicate with the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro]. We will call RoM API functions that way&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you used a former bot version before: You now can delete your 'old' hotkeys like RES_MACRO, LOGOUT_MACRO, ...) We don't need them anymore.&lt;br /&gt;
&lt;br /&gt;
===Profile - Skills===&lt;br /&gt;
The bot will only attempt to use skills that are noted in your profile. There are two different ways to set skills up: using the 'skills' tag (does not depend on class) or using 'skills_class' (where class is an actual in-game class) tags.&lt;br /&gt;
&lt;br /&gt;
When using the 'skills' tag, it does not mater which main class your character currently is. This works pretty well for non-class specific skills that you wish to use for either class combination. For example, MAGE_FIREBALL is usable as both a mage/priest and priest/mage. Placing MAGE_FIREBALL into this tag will allow it to be used as either mage or priest primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FIREBALL&amp;quot; hotkey=&amp;quot;VK_7&amp;quot; priority=&amp;quot;110&amp;quot; hpper=&amp;quot;30&amp;quot; inbattle=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may often use different sets of skills for your two classes. This is when a class-specific skill tag is strongly suggested (that way you don't need to re-confgiure your profile every time you change classes). Skills placed inside this tag will only be used when it matches your primary class. For example, 'skills_mage' skiills will only be used when mage is your primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills_mage&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FLAME&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_mage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;skills_priest&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;PRIEST_RISING_TIDE&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_priest&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Skill over-rides:'''&lt;br /&gt;
You can over-ride a few options to your skills. Particularly, those skills you want to limit to only use in battle, or set to use at a certain health percent (such as heals).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 100px; border-bottom:1px dotted #000000;&amp;quot; | priority&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Higher priority means it will use it before other skills. Use 100+ for your opening attacks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | hpper&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Percentage of HP to use the skill at. Your HP % must be below that level to use the skill. This will over-ride HP_LOW for heals!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | manaper&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Percentage of Mana to use the skill at. Your Mana % must be below that level to use the skill.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | inbattle&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either true or false. True means it only can be used in battle; false means if only can be used out of battle.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | pullonly&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Can only be used in the pull phase at the begin of a fight. They will not be used during the rest of the fight (only for melee classes if option 'COMBAT_RANGED_PULL' is set to 'true').&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | maxuse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with that option will only be used 'maxuse'-times within a fight.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | autouse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with autouse=false will not be automaticly casted from the Bot. Thats usefull if you want to cast a skill only in a event like '&amp;lt;onSkillCast&amp;gt;' .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Events===&lt;br /&gt;
While botting, several events may be triggered. When these events are triggered, you may have custom Lua code executed. This code is placed directly in the event-specific tags inside your profile.&lt;br /&gt;
&lt;br /&gt;
Events include:&lt;br /&gt;
* onLoad : When the profile is loaded&lt;br /&gt;
* onDeath: When your character dies&lt;br /&gt;
* onLeaveCombat: When leaving combat&lt;br /&gt;
* onSkillCast: Triggered after your character uses a skill&lt;br /&gt;
&lt;br /&gt;
onSkillCast will, additionally, receive a Lua table ('arg1') that is a copy of the skill being cast. You can use this to query information about the skill. This can be useful in &amp;quot;skill chaining.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;onLoad&amp;gt;&lt;br /&gt;
        -- Load a waypoint path based on level&lt;br /&gt;
        if( player.Level &amp;gt; 10 ) then&lt;br /&gt;
            load_paths(&amp;quot;some_path&amp;quot;);&lt;br /&gt;
        else&lt;br /&gt;
            load_paths(&amp;quot;some_other_path&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onDeath&amp;gt;&lt;br /&gt;
        printf(&amp;quot;\a\a\a&amp;quot;); -- BEEP BEEP BEEP!&lt;br /&gt;
        pauseOnDeath();   -- Wait for me. Do not continue script execution&lt;br /&gt;
    &amp;lt;/onDeath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; player.free_counter1) then&lt;br /&gt;
		player.free_counter1 = player.Level;&lt;br /&gt;
&lt;br /&gt;
		-- levelup skills&lt;br /&gt;
		-- 4 = third skill tab, 2 = mage flame&lt;br /&gt;
		if( player.Level == 2 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
			yrest(1000);&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		else&lt;br /&gt;
			player.free_counter1 = player.Level;&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- open giftbag and equipt content&lt;br /&gt;
		-- updates first 18 bag slots / update all if empty&lt;br /&gt;
		open_giftbag(player.Level, 18);&lt;br /&gt;
	end&lt;br /&gt;
    &amp;lt;/onLeaveCombat&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onSkillCast&amp;gt;&lt;br /&gt;
        if( arg1.Name == &amp;quot;PRIEST_HOLY_AURA&amp;quot; ) then&lt;br /&gt;
            yrest(1000);&lt;br /&gt;
            player:cast(&amp;quot;PRIEST_URGENT_HEAL&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onSkillCast&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In-Game Settings ==&lt;br /&gt;
In order for the bot to fully work, you will need to modify a few in-game settings. You should start with the Interface Settings and then set up your macro hotkey.&lt;br /&gt;
&lt;br /&gt;
===Interface Settings===&lt;br /&gt;
Bring up your interface settings under the System menu. Under control, make sure that '''Click-to-move''' and '''Self Cast''' are checked. Under Miscellaneous, also check '''Auto loot'''.&lt;br /&gt;
&lt;br /&gt;
===Settings up a Macro===&lt;br /&gt;
This macro is how the bot will interface with RoM's API. You should type ''/macro'' into the game's chat to bring up the macro window. Select the top-left most box and click '''New''', and in the new window that pops open click '''Save'''.&lt;br /&gt;
&lt;br /&gt;
It should now look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:rom_macro_screen.png]]&lt;br /&gt;
&lt;br /&gt;
Now, all you need to do is click and drag this new icon in your macro window into your hotkey bar and set your MACRO hotkey in [[RoM_Configuration#Profile_-_Hotkeys|profile hotkeys]] to reflect this change.&lt;br /&gt;
&lt;br /&gt;
Note that the macro slot directly to the right of the one you just created will also be used internally. Do not keep macros you intend to use there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expert Settings ==&lt;br /&gt;
&lt;br /&gt;
===Expert Profile - Options===&lt;br /&gt;
&lt;br /&gt;
 WAYPOINTS_REVERSE = false,	-- use the waypoint file in reverse order&lt;br /&gt;
 MAX_DEATHS = 10,		-- maximal death if automatic resurrect befor logout&lt;br /&gt;
 WAIT_TIME_AFTER_RES = 8000,	-- time to wait after resurrection, needs more on slow PCs&lt;br /&gt;
 RETURNPATH_SUFFIX = &amp;quot;_return&amp;quot;,	-- suffix for default naming of returnpath&lt;br /&gt;
 HARVEST_SCAN_WIDTH = 10,	-- steps horizontal&lt;br /&gt;
 HARVEST_SCAN_HEIGHT = 8,	-- steps vertical&lt;br /&gt;
 HARVEST_SCAN_STEPSIZE = 35,	-- wide of every step&lt;br /&gt;
 HARVEST_SCAN_TOPDOWN = false,	-- true = top-&amp;gt;down  false = botton-&amp;gt;up&lt;br /&gt;
 HARVEST_SCAN_XMULTIPLIER = 1.0,	-- multiplier for scan width&lt;br /&gt;
 HARVEST_SCAN_YMULTIPLIER = 1.1,	-- multiplier for scan line height&lt;br /&gt;
 HARVEST_SCAN_YREST = 10,	-- scanspeed&lt;br /&gt;
 HARVEST_SCAN_YMOVE = 1.1,	-- move scan area top/down ( 1=middle of screen )&lt;br /&gt;
 USE_SLEEP_AFTER_RESUME = false, -- enter sleep mode after pressing pause/resume key&lt;br /&gt;
 IGNORE_MACRO_ERROR = false, 	-- ignore missing MACRO hotkey error (only temporary option while beta)&lt;br /&gt;
 DEBUG_INV = false,	 	-- to help to find the item use error (only temporary option  while beta)&lt;br /&gt;
 INV_MAX_SLOTS = 60,	 	-- maximal slots to update in the inventory:update()&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=277</id>
		<title>RoM Getting started</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=277"/>
				<updated>2009-09-17T08:37:04Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Configure the macro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
MicroMacro 1.0, which you can get [http://www.solarstrike.net/phpBB3/viewtopic.php?f=6&amp;amp;t=177 here]&lt;br /&gt;
&lt;br /&gt;
You will need rom scripts and put them in micromacro/scripts folder. here is how you get them:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 1: Downloading rom bot from SVN (recommended but harder) ==&lt;br /&gt;
Advanced:&lt;br /&gt;
&lt;br /&gt;
For those of you who already have some working knowledge of SVN, you can use this command to checkout:&lt;br /&gt;
      svn checkout http://rom-bot.googlecode.com/svn/trunk/ rom-bot-read-only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple:&lt;br /&gt;
&lt;br /&gt;
First, I suggest you install Tortoise SVN. Once installed, you may need to reboot your machine. Now, locate your 'rom' folder (should be inside micromacro/scripts/) and right-click it. Select 'SVN Checkout'.&lt;br /&gt;
&lt;br /&gt;
Now, a window should open. Inside &amp;quot;URL of repository:&amp;quot;, enter this url:&lt;br /&gt;
      http://rom-bot.googlecode.com/svn/trunk/rom&lt;br /&gt;
&lt;br /&gt;
Everything else can be left at default. Click OK and it should begin downloading and updating all of your files. Now that you've got it all setup, you can simply right click the 'rom' folder again and select SVN update. Typically, a red icon over the folder should indicate that there are updates to download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Problems with file conflicts?&lt;br /&gt;
&lt;br /&gt;
This typically happens if you've made any modifications to the scripts. To fix it, you should delete any files that have conflicts, and try to SVN update again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 2: Downloading rom bot from forums ==&lt;br /&gt;
Download [http://www.solarstrike.net/phpBB3/viewtopic.php?f=21&amp;amp;t=163 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Make a path ==&lt;br /&gt;
Now you'll need to make a waypoint script. Start MicroMacro and execute the rom/createpath.lua script when prompted. You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Configure RoM bot ==&lt;br /&gt;
Next you must make a profile. Go to the profile directory and make a copy of Default.xml, but rename it to whatever your character name is. It must be exact, but capitalization shouldn't mater. For the waypoint script option, you will apply the '.xml' extension this time.&lt;br /&gt;
&lt;br /&gt;
To see how to configure your bot, go to [[RoM_Configuration|configuration]]&lt;br /&gt;
&lt;br /&gt;
Heres a video tutorial on configuring your bot. [http://www.youtube.com/watch?v=mUe8g4Eplj4 YouTube link]&lt;br /&gt;
&lt;br /&gt;
== Configure RoM in game ==&lt;br /&gt;
In rom, click esc and click interface options, and be sure to have set Turn on Self Cast, Click to move and Auto loot&lt;br /&gt;
&lt;br /&gt;
== Configure the macro ==&lt;br /&gt;
Create ingame a empty macro at macro slot 1. You do that by:&lt;br /&gt;
&lt;br /&gt;
Press ESC (System-Menu) -&amp;gt; Macros). Then click at the macro slot 1 at the very up left.&lt;br /&gt;
&lt;br /&gt;
[[Image:macroslot.jpg]]&lt;br /&gt;
&lt;br /&gt;
Press the button 'New' -&amp;gt; 'Save'.&lt;br /&gt;
&lt;br /&gt;
Now move (via Drag&amp;amp;Drop) that empty macro to your action bar button with the defined hotkey from your profile (default key is 0).&lt;br /&gt;
&lt;br /&gt;
== Run ==&lt;br /&gt;
Run by starting mircomacro and typing &lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To see the bot at full work, create a new character (at best a mage or a priest) at the pioneer village and start the bot with&lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua profile:l1-10&lt;br /&gt;
&lt;br /&gt;
Then choose path '1-10Pi../l1t_start.xml' from the list. That will level you the character from level 1 to 10 and after doing that run to Varanas class hall (best works mage, priest and scout ... in that order). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this helps! If you see anything i forgot to tell you about, please add it to this wiki page.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=276</id>
		<title>RoM Getting started</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=276"/>
				<updated>2009-09-17T08:36:10Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Configure the macro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
MicroMacro 1.0, which you can get [http://www.solarstrike.net/phpBB3/viewtopic.php?f=6&amp;amp;t=177 here]&lt;br /&gt;
&lt;br /&gt;
You will need rom scripts and put them in micromacro/scripts folder. here is how you get them:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 1: Downloading rom bot from SVN (recommended but harder) ==&lt;br /&gt;
Advanced:&lt;br /&gt;
&lt;br /&gt;
For those of you who already have some working knowledge of SVN, you can use this command to checkout:&lt;br /&gt;
      svn checkout http://rom-bot.googlecode.com/svn/trunk/ rom-bot-read-only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple:&lt;br /&gt;
&lt;br /&gt;
First, I suggest you install Tortoise SVN. Once installed, you may need to reboot your machine. Now, locate your 'rom' folder (should be inside micromacro/scripts/) and right-click it. Select 'SVN Checkout'.&lt;br /&gt;
&lt;br /&gt;
Now, a window should open. Inside &amp;quot;URL of repository:&amp;quot;, enter this url:&lt;br /&gt;
      http://rom-bot.googlecode.com/svn/trunk/rom&lt;br /&gt;
&lt;br /&gt;
Everything else can be left at default. Click OK and it should begin downloading and updating all of your files. Now that you've got it all setup, you can simply right click the 'rom' folder again and select SVN update. Typically, a red icon over the folder should indicate that there are updates to download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Problems with file conflicts?&lt;br /&gt;
&lt;br /&gt;
This typically happens if you've made any modifications to the scripts. To fix it, you should delete any files that have conflicts, and try to SVN update again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 2: Downloading rom bot from forums ==&lt;br /&gt;
Download [http://www.solarstrike.net/phpBB3/viewtopic.php?f=21&amp;amp;t=163 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Make a path ==&lt;br /&gt;
Now you'll need to make a waypoint script. Start MicroMacro and execute the rom/createpath.lua script when prompted. You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Configure RoM bot ==&lt;br /&gt;
Next you must make a profile. Go to the profile directory and make a copy of Default.xml, but rename it to whatever your character name is. It must be exact, but capitalization shouldn't mater. For the waypoint script option, you will apply the '.xml' extension this time.&lt;br /&gt;
&lt;br /&gt;
To see how to configure your bot, go to [[RoM_Configuration|configuration]]&lt;br /&gt;
&lt;br /&gt;
Heres a video tutorial on configuring your bot. [http://www.youtube.com/watch?v=mUe8g4Eplj4 YouTube link]&lt;br /&gt;
&lt;br /&gt;
== Configure RoM in game ==&lt;br /&gt;
In rom, click esc and click interface options, and be sure to have set Turn on Self Cast, Click to move and Auto loot&lt;br /&gt;
&lt;br /&gt;
== Configure the macro ==&lt;br /&gt;
Create ingame a empty macro at macro slot 1. You do that by:&lt;br /&gt;
&lt;br /&gt;
Press ESC (System-Menu) -&amp;gt; Macros). Then click at the macro slot 1 at the very up left.&lt;br /&gt;
&lt;br /&gt;
[[Image:macroslot.jpg]]&lt;br /&gt;
&lt;br /&gt;
Press the button 'New' -&amp;gt; 'Save'.&lt;br /&gt;
&lt;br /&gt;
Now move that empty macro to your action button with the defined hotkey from your profile (default key is 0).&lt;br /&gt;
&lt;br /&gt;
== Run ==&lt;br /&gt;
Run by starting mircomacro and typing &lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To see the bot at full work, create a new character (at best a mage or a priest) at the pioneer village and start the bot with&lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua profile:l1-10&lt;br /&gt;
&lt;br /&gt;
Then choose path '1-10Pi../l1t_start.xml' from the list. That will level you the character from level 1 to 10 and after doing that run to Varanas class hall (best works mage, priest and scout ... in that order). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this helps! If you see anything i forgot to tell you about, please add it to this wiki page.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=275</id>
		<title>RoM Getting started</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=275"/>
				<updated>2009-09-16T09:56:22Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
MicroMacro 1.0, which you can get [http://www.solarstrike.net/phpBB3/viewtopic.php?f=6&amp;amp;t=177 here]&lt;br /&gt;
&lt;br /&gt;
You will need rom scripts and put them in micromacro/scripts folder. here is how you get them:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 1: Downloading rom bot from SVN (recommended but harder) ==&lt;br /&gt;
Advanced:&lt;br /&gt;
&lt;br /&gt;
For those of you who already have some working knowledge of SVN, you can use this command to checkout:&lt;br /&gt;
      svn checkout http://rom-bot.googlecode.com/svn/trunk/ rom-bot-read-only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple:&lt;br /&gt;
&lt;br /&gt;
First, I suggest you install Tortoise SVN. Once installed, you may need to reboot your machine. Now, locate your 'rom' folder (should be inside micromacro/scripts/) and right-click it. Select 'SVN Checkout'.&lt;br /&gt;
&lt;br /&gt;
Now, a window should open. Inside &amp;quot;URL of repository:&amp;quot;, enter this url:&lt;br /&gt;
      http://rom-bot.googlecode.com/svn/trunk/rom&lt;br /&gt;
&lt;br /&gt;
Everything else can be left at default. Click OK and it should begin downloading and updating all of your files. Now that you've got it all setup, you can simply right click the 'rom' folder again and select SVN update. Typically, a red icon over the folder should indicate that there are updates to download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Problems with file conflicts?&lt;br /&gt;
&lt;br /&gt;
This typically happens if you've made any modifications to the scripts. To fix it, you should delete any files that have conflicts, and try to SVN update again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 2: Downloading rom bot from forums ==&lt;br /&gt;
Download [http://www.solarstrike.net/phpBB3/viewtopic.php?f=21&amp;amp;t=163 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Make a path ==&lt;br /&gt;
Now you'll need to make a waypoint script. Start MicroMacro and execute the rom/createpath.lua script when prompted. You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Configure RoM bot ==&lt;br /&gt;
Next you must make a profile. Go to the profile directory and make a copy of Default.xml, but rename it to whatever your character name is. It must be exact, but capitalization shouldn't mater. For the waypoint script option, you will apply the '.xml' extension this time.&lt;br /&gt;
&lt;br /&gt;
To see how to configure your bot, go to [[RoM_Configuration|configuration]]&lt;br /&gt;
&lt;br /&gt;
Heres a video tutorial on configuring your bot. [http://www.youtube.com/watch?v=mUe8g4Eplj4 YouTube link]&lt;br /&gt;
&lt;br /&gt;
== Configure RoM in game ==&lt;br /&gt;
In rom, click esc and click interface options, and be sure to have set Turn on Self Cast, Click to move and Auto loot&lt;br /&gt;
&lt;br /&gt;
== Configure the macro ==&lt;br /&gt;
Set MACRO key to default 0 key&lt;br /&gt;
&lt;br /&gt;
[[Image:macroslot.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Run ==&lt;br /&gt;
Run by starting mircomacro and typing &lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To see the bot at full work, create a new character (at best a mage or a priest) at the pioneer village and start the bot with&lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua profile:l1-10&lt;br /&gt;
&lt;br /&gt;
Then choose path '1-10Pi../l1t_start.xml' from the list. That will level you the character from level 1 to 10 and after doing that run to Varanas class hall (best works mage, priest and scout ... in that order). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this helps! If you see anything i forgot to tell you about, please add it to this wiki page.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=273</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=273"/>
				<updated>2009-09-13T09:23:42Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* General Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
 levelupSkill(_skillname [, _times] )&lt;br /&gt;
&lt;br /&gt;
Levelup a Single Skill by Name. For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way. &lt;br /&gt;
&lt;br /&gt;
 levelupSkills1To10( [&amp;quot;loadonly&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event: &lt;br /&gt;
&lt;br /&gt;
 openGiftbags1To10( [[_player_level] , _maxslot] );&lt;br /&gt;
open the level 1-10 giftbags and equipt the items.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
 example:&lt;br /&gt;
 local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest();&lt;br /&gt;
Scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
      __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can sumbit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=272</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=272"/>
				<updated>2009-09-13T09:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Automatic Open Bags from 1 - 10 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example Files from 1 - 10 =&lt;br /&gt;
&lt;br /&gt;
There are example files for leveling from 1 - 10 in the profile folder. Just start the bot with&lt;br /&gt;
 rom/bot.lua profile:l1-10&lt;br /&gt;
After doing that select the waypointfile 'l1_goto_2.xml' from the list.&lt;br /&gt;
&lt;br /&gt;
Best classes for a fast leveling are at first mage and at second priest. The other classes will also come to a finish. But they would normaly need a new weapoin while leveling. To do the way from level 1 to 10 with the beginners level 1 weapon is a little annoying.&lt;br /&gt;
&lt;br /&gt;
It is recommented that you copy that files and change the paths. Simply because of running to much people the same path will look very bottish and could result into an accout ban.&lt;br /&gt;
&lt;br /&gt;
= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag(player.Level, 18);&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintained the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and levelup a skill by skill parameters.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
&lt;br /&gt;
== Automatic Open Bags from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
 openGiftbags1To10( [player.Level [, maxslot] );&lt;br /&gt;
&lt;br /&gt;
That function knows the giftbags from 1 - 10, opens them and equipt the armor from within. Just enter that function within your onLevelup event into your profile.&lt;br /&gt;
&lt;br /&gt;
== Open Bags with the bot inventory functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem( itemid | itemname );&lt;br /&gt;
&lt;br /&gt;
To be sure, your inventory knows all items. You should do a full inventory update after levelup&lt;br /&gt;
&lt;br /&gt;
 inventory:update();&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=271</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=271"/>
				<updated>2009-09-13T00:03:57Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Levelup a Single Skill by Name */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example Files from 1 - 10 =&lt;br /&gt;
&lt;br /&gt;
There are example files for leveling from 1 - 10 in the profile folder. Just start the bot with&lt;br /&gt;
 rom/bot.lua profile:l1-10&lt;br /&gt;
After doing that select the waypointfile 'l1_goto_2.xml' from the list.&lt;br /&gt;
&lt;br /&gt;
Best classes for a fast leveling are at first mage and at second priest. The other classes will also come to a finish. But they would normaly need a new weapoin while leveling. To do the way from level 1 to 10 with the beginners level 1 weapon is a little annoying.&lt;br /&gt;
&lt;br /&gt;
It is recommented that you copy that files and change the paths. Simply because of running to much people the same path will look very bottish and could result into an accout ban.&lt;br /&gt;
&lt;br /&gt;
= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag(player.Level, 18);&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintained the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and levelup a skill by skill parameters.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
&lt;br /&gt;
== Automatic Open Bags from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
 openGiftbag( [player.Level [, maxslot] );&lt;br /&gt;
&lt;br /&gt;
That function knows the giftbags from 1 - 10, opens them and equipt the armor from within. Just enter that function within your onLevelup event into your profile.&lt;br /&gt;
&lt;br /&gt;
== Open Bags with the bot inventory functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem( itemid | itemname );&lt;br /&gt;
&lt;br /&gt;
To be sure, your inventory knows all items. You should do a full inventory update after levelup&lt;br /&gt;
&lt;br /&gt;
 inventory:update();&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=270</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=270"/>
				<updated>2009-09-13T00:03:43Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Levelup a Single Skill by Name */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example Files from 1 - 10 =&lt;br /&gt;
&lt;br /&gt;
There are example files for leveling from 1 - 10 in the profile folder. Just start the bot with&lt;br /&gt;
 rom/bot.lua profile:l1-10&lt;br /&gt;
After doing that select the waypointfile 'l1_goto_2.xml' from the list.&lt;br /&gt;
&lt;br /&gt;
Best classes for a fast leveling are at first mage and at second priest. The other classes will also come to a finish. But they would normaly need a new weapoin while leveling. To do the way from level 1 to 10 with the beginners level 1 weapon is a little annoying.&lt;br /&gt;
&lt;br /&gt;
It is recommented that you copy that files and change the paths. Simply because of running to much people the same path will look very bottish and could result into an accout ban.&lt;br /&gt;
&lt;br /&gt;
= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag(player.Level, 18);&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintained the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and levelup a skill by using parameters.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
&lt;br /&gt;
== Automatic Open Bags from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
 openGiftbag( [player.Level [, maxslot] );&lt;br /&gt;
&lt;br /&gt;
That function knows the giftbags from 1 - 10, opens them and equipt the armor from within. Just enter that function within your onLevelup event into your profile.&lt;br /&gt;
&lt;br /&gt;
== Open Bags with the bot inventory functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem( itemid | itemname );&lt;br /&gt;
&lt;br /&gt;
To be sure, your inventory knows all items. You should do a full inventory update after levelup&lt;br /&gt;
&lt;br /&gt;
 inventory:update();&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=269</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=269"/>
				<updated>2009-09-13T00:03:07Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Levelup a Single Skill by Name */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example Files from 1 - 10 =&lt;br /&gt;
&lt;br /&gt;
There are example files for leveling from 1 - 10 in the profile folder. Just start the bot with&lt;br /&gt;
 rom/bot.lua profile:l1-10&lt;br /&gt;
After doing that select the waypointfile 'l1_goto_2.xml' from the list.&lt;br /&gt;
&lt;br /&gt;
Best classes for a fast leveling are at first mage and at second priest. The other classes will also come to a finish. But they would normaly need a new weapoin while leveling. To do the way from level 1 to 10 with the beginners level 1 weapon is a little annoying.&lt;br /&gt;
&lt;br /&gt;
It is recommented that you copy that files and change the paths. Simply because of running to much people the same path will look very bottish and could result into an accout ban.&lt;br /&gt;
&lt;br /&gt;
= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag(player.Level, 18);&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintained the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
&lt;br /&gt;
== Automatic Open Bags from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
 openGiftbag( [player.Level [, maxslot] );&lt;br /&gt;
&lt;br /&gt;
That function knows the giftbags from 1 - 10, opens them and equipt the armor from within. Just enter that function within your onLevelup event into your profile.&lt;br /&gt;
&lt;br /&gt;
== Open Bags with the bot inventory functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem( itemid | itemname );&lt;br /&gt;
&lt;br /&gt;
To be sure, your inventory knows all items. You should do a full inventory update after levelup&lt;br /&gt;
&lt;br /&gt;
 inventory:update();&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=268</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=268"/>
				<updated>2009-09-12T21:58:26Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Example Files from 1 - 10 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example Files from 1 - 10 =&lt;br /&gt;
&lt;br /&gt;
There are example files for leveling from 1 - 10 in the profile folder. Just start the bot with&lt;br /&gt;
 rom/bot.lua profile:l1-10&lt;br /&gt;
After doing that select the waypointfile 'l1_goto_2.xml' from the list.&lt;br /&gt;
&lt;br /&gt;
Best classes for a fast leveling are at first mage and at second priest. The other classes will also come to a finish. But they would normaly need a new weapoin while leveling. To do the way from level 1 to 10 with the beginners level 1 weapon is a little annoying.&lt;br /&gt;
&lt;br /&gt;
It is recommented that you copy that files and change the paths. Simply because of running to much people the same path will look very bottish and could result into an accout ban.&lt;br /&gt;
&lt;br /&gt;
= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag(player.Level, 18);&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
&lt;br /&gt;
== Automatic Open Bags from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
 openGiftbag( [player.Level [, maxslot] );&lt;br /&gt;
&lt;br /&gt;
That function knows the giftbags from 1 - 10, opens them and equipt the armor from within. Just enter that function within your onLevelup event into your profile.&lt;br /&gt;
&lt;br /&gt;
== Open Bags with the bot inventory functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem( itemid | itemname );&lt;br /&gt;
&lt;br /&gt;
To be sure, your inventory knows all items. You should do a full inventory update after levelup&lt;br /&gt;
&lt;br /&gt;
 inventory:update();&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=267</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=267"/>
				<updated>2009-09-12T21:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* General Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
 levelupSkill(_skillname [, _times] )&lt;br /&gt;
&lt;br /&gt;
Levelup a Single Skill by Name. For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way. &lt;br /&gt;
&lt;br /&gt;
 levelupSkills1To10( [&amp;quot;loadonly&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event: &lt;br /&gt;
&lt;br /&gt;
 openGiftbag( [[_player_level] , _maxslot] );&lt;br /&gt;
open giftbag (at the moment level 1-10) and equipt the items&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
 example:&lt;br /&gt;
 local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest();&lt;br /&gt;
Scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
      __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can sumbit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=266</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=266"/>
				<updated>2009-09-12T21:27:13Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Example Files from 1 - 10 =&lt;br /&gt;
&lt;br /&gt;
There are example files for leveling from 1 - 10 in the profile folder. Just start the bot with&lt;br /&gt;
 rom/bot.lua profile:l1-10&lt;br /&gt;
After doing that select the waypointfile 'l1_goto_2.xml' from the list.&lt;br /&gt;
&lt;br /&gt;
It is recommented that you copy that files and change the paths. Simply because of running to much people the same path will look very bottish and could result into an accout ban.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag(player.Level, 18);&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
&lt;br /&gt;
== Automatic Open Bags from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
 openGiftbag( [player.Level [, maxslot] );&lt;br /&gt;
&lt;br /&gt;
That function knows the giftbags from 1 - 10, opens them and equipt the armor from within. Just enter that function within your onLevelup event into your profile.&lt;br /&gt;
&lt;br /&gt;
== Open Bags with the bot inventory functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem( itemid | itemname );&lt;br /&gt;
&lt;br /&gt;
To be sure, your inventory knows all items. You should do a full inventory update after levelup&lt;br /&gt;
&lt;br /&gt;
 inventory:update();&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=265</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=265"/>
				<updated>2009-09-12T21:13:03Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Automatic Open Bags from 1 - 10 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag(player.Level, 18);&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
&lt;br /&gt;
== Automatic Open Bags from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
 openGiftbag( [player.Level [, maxslot] );&lt;br /&gt;
&lt;br /&gt;
That function knows the giftbags from 1 - 10, opens them and equipt the armor from within. Just enter that function within your onLevelup event into your profile.&lt;br /&gt;
&lt;br /&gt;
== Open Bags with the bot inventory functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem( itemid | itemname );&lt;br /&gt;
&lt;br /&gt;
To be sure, your inventory knows all items. You should do a full inventory update after levelup&lt;br /&gt;
&lt;br /&gt;
 inventory:update();&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=264</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=264"/>
				<updated>2009-09-12T21:12:16Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Open Bags And Equipt Armor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag(player.Level, 18);&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
&lt;br /&gt;
== Automatic Open Bags from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
 openGiftbag(player.Level, 18);&lt;br /&gt;
&lt;br /&gt;
That function knows the giftbags from 1 - 10, opens them and equipt the armor from within. Just enter that function within your onLevelup event into your profile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Open Bags with the bot inventory functions ==&lt;br /&gt;
&lt;br /&gt;
 inventory:useItem( itemid | itemname );&lt;br /&gt;
&lt;br /&gt;
To be sure, your inventory knows all items. You should do a full inventory update after levelup&lt;br /&gt;
&lt;br /&gt;
 inventory:update();&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=263</id>
		<title>RoM Leveling</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Leveling&amp;diff=263"/>
				<updated>2009-09-12T21:03:09Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Automatic Skill Leveling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Connecting waypoint files =&lt;br /&gt;
&lt;br /&gt;
For automatic leveling, you have to connect different waypoint files. Starting from one waypoint file, you change to the next, if you reach a given level.&lt;br /&gt;
&lt;br /&gt;
You start at the spawn point in Pionier Village and walk to your first botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;waypoints type=&amp;quot;TRAVEL&amp;quot; &amp;gt;&lt;br /&gt;
   &amp;lt;!-- # 3 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3779&amp;quot; z=&amp;quot;-8480&amp;quot;&amp;gt;&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
   ...&lt;br /&gt;
   &amp;lt;!-- # 8 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-3034&amp;quot; z=&amp;quot;-9034&amp;quot;&amp;gt;load_paths(&amp;quot;l2-3.xml&amp;quot;);&amp;lt;/waypoint&amp;gt;&lt;br /&gt;
&amp;lt;/waypoints&amp;gt;&amp;lt;/source&amp;gt;If you reach your first botting place, you load the waypoint file for that place with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;load_paths( [waypointfile] | [returnpath] );&amp;lt;/source&amp;gt;&lt;br /&gt;
You can do that also if you reach a given level, to go to the next botting place:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;	&amp;lt;!-- #14 --&amp;gt;&amp;lt;waypoint x=&amp;quot;-1931&amp;quot; z=&amp;quot;-9750&amp;quot;&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; 4) then&lt;br /&gt;
		load_paths(&amp;quot;l5-6.xml&amp;quot;);&lt;br /&gt;
  	end	&lt;br /&gt;
	&amp;lt;/waypoint&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Automatic Skill Leveling =&lt;br /&gt;
Use the &amp;lt;onLevelup&amp;gt; event in your profile to automatic level up your skills&lt;br /&gt;
&lt;br /&gt;
== Automatic Level of Skills from 1 - 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
	 levelupSkills1To10();&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That function will levelup a internal given selection of useful skills on your way from 1-10. The selection of the skills is hard coded within functions.lua. That function will also load the skill into your profile skill list and use that skill via the MACRO function. If you restart the bot and want also want to use that skills and don't want to enter them manual into the profile skill list, then just use that function with the parameter 'loadonly' within the onLoad event:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;	&amp;lt;onLoad&amp;gt;&lt;br /&gt;
		-- Additional Lua code to execute after loading the profile&lt;br /&gt;
		-- and before the bot starts. e.g. You could overwrite profile settings here&lt;br /&gt;
		-- like: changeProfileOption(&amp;quot;HP_REST&amp;quot;, 60);&lt;br /&gt;
&lt;br /&gt;
		if(player.Level == 1) then&lt;br /&gt;
			openGiftbag(player.Level, 18);&lt;br /&gt;
		else&lt;br /&gt;
			levelupSkills1To10(&amp;quot;loadonly&amp;quot;);&lt;br /&gt;
		end;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Name ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
levelupSkill(_skillname [, _times] )	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the skillname look into the file /database/skills.xml. You can use that function only for skill, which have maintent the skilltab and skillnum values within the skills.xml entry. If the don't have that values, please look yourself for them and use the manual way.&lt;br /&gt;
&lt;br /&gt;
== Levelup a Single Skill by Skill Parameters ==&lt;br /&gt;
For doing it that way, you have to determine the skill tab and skill number by yourself. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLevelup&amp;gt;&lt;br /&gt;
		if( player.Level == 26 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	  	end	&lt;br /&gt;
&amp;lt;/onLevelup&amp;gt;&amp;lt;/source&amp;gt;If you want to test the skill numbers you need, you can enter the following script into the ingame chat. It will print the skill name for the selected skill number into the chat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName = GetSkillDetail(4,2); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;&lt;br /&gt;
The first number means the tab from the skill book. Numer 4 addresses the third tab. :-) The second number is the number of the skill on that page.&lt;br /&gt;
&lt;br /&gt;
= Open Bags And Equipt Armor =&lt;br /&gt;
You can automaticly open the present bags and equipt armor from the bags. &lt;br /&gt;
&lt;br /&gt;
'''That's an example what you can do now. That funtionality will change within the bot in the next time.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
if( player.Level &amp;gt; player.free_counter1 and&lt;br /&gt;
    player.Level == 2 ) then yrest(2000);&lt;br /&gt;
    	yrest(1000);&lt;br /&gt;
	send_macro(&amp;quot;UseBagItem( CheckForItem('Abenteurer-Geschenkbeutel') )&amp;quot;); &lt;br /&gt;
	yrest(3000);&lt;br /&gt;
	send_macro(&amp;quot;UseBagItem( CheckForItem('Stoffg\195\188rtel (Geschenk des Pionierdorfs)') )&amp;quot;);&lt;br /&gt;
	player.free_counter1 = player.Level;&lt;br /&gt;
	send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
	yrest(1000);&lt;br /&gt;
	send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
elseif( player.Level &amp;gt; player.free_counter1 and&lt;br /&gt;
    player.Level == 3 ) then yrest(2000);&lt;br /&gt;
	send_macro(&amp;quot;UseBagItem( CheckForItem('Pionier-Geschenkbeutel') )&amp;quot;);&lt;br /&gt;
	yrest(2000);&lt;br /&gt;
	send_macro(&amp;quot;UseBagItem( CheckForItem('Ohrringe (Geschenk des Pionierdorfs)') )&amp;quot;);&lt;br /&gt;
	player.free_counter1 = player.Level;&lt;br /&gt;
	send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/onLeaveCombat&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
In that example we use a new ingame macro function [http://forum.runesofmagic.com/showthread.php?t=62431&amp;amp;page=2 CheckForItem] for selecting an ingame item by name. You have to download that small lua file and install it within your addon folder.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=262</id>
		<title>RoM Getting started</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=262"/>
				<updated>2009-09-11T18:48:27Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
MicroMacro 1.0, which you can get [http://www.solarstrike.net/phpBB3/viewtopic.php?f=6&amp;amp;t=177 here]&lt;br /&gt;
&lt;br /&gt;
You will need rom scripts and put them in micromacro/scripts folder. here is how you get them:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 1: Downloading rom bot from SVN (recommended but harder) ==&lt;br /&gt;
Advanced:&lt;br /&gt;
&lt;br /&gt;
For those of you who already have some working knowledge of SVN, you can use this command to checkout:&lt;br /&gt;
      svn checkout http://rom-bot.googlecode.com/svn/trunk/ rom-bot-read-only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple:&lt;br /&gt;
&lt;br /&gt;
First, I suggest you install Tortoise SVN. Once installed, you may need to reboot your machine. Now, locate your 'rom' folder (should be inside micromacro/scripts/) and right-click it. Select 'SVN Checkout'.&lt;br /&gt;
&lt;br /&gt;
Now, a window should open. Inside &amp;quot;URL of repository:&amp;quot;, enter this url:&lt;br /&gt;
      http://rom-bot.googlecode.com/svn/trunk/rom&lt;br /&gt;
&lt;br /&gt;
Everything else can be left at default. Click OK and it should begin downloading and updating all of your files. Now that you've got it all setup, you can simply right click the 'rom' folder again and select SVN update. Typically, a red icon over the folder should indicate that there are updates to download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Problems with file conflicts?&lt;br /&gt;
&lt;br /&gt;
This typically happens if you've made any modifications to the scripts. To fix it, you should delete any files that have conflicts, and try to SVN update again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 2: Downloading rom bot from forums ==&lt;br /&gt;
Download [http://www.solarstrike.net/phpBB3/viewtopic.php?f=21&amp;amp;t=163 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Make a path ==&lt;br /&gt;
Now you'll need to make a waypoint script. Start MicroMacro and execute the rom/createpath.lua script when prompted. You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Configure RoM bot ==&lt;br /&gt;
Next you must make a profile. Go to the profile directory and make a copy of Default.xml, but rename it to whatever your character name is. It must be exact, but capitalization shouldn't mater. For the waypoint script option, you will apply the '.xml' extension this time.&lt;br /&gt;
&lt;br /&gt;
To see how to configure your bot, go to [[RoM_Configuration|configuration]]&lt;br /&gt;
&lt;br /&gt;
Heres a video tutorial on configuring your bot. [http://www.youtube.com/watch?v=mUe8g4Eplj4 YouTube link]&lt;br /&gt;
&lt;br /&gt;
== Configure RoM in game ==&lt;br /&gt;
In rom, click esc and click interface options, and be sure to have set Turn on Self Cast, Click to move and Auto loot&lt;br /&gt;
&lt;br /&gt;
== Configure the macro ==&lt;br /&gt;
Set MACRO key to default 0 key&lt;br /&gt;
&lt;br /&gt;
[[Image:macroslot.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Run ==&lt;br /&gt;
Run by starting mircomacro and typing &lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To see the bot at full work, create a new character (at best a mage or a priest) at the pioneer village and start the bot with&lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua profile:l1-10&lt;br /&gt;
&lt;br /&gt;
Then choose path 'l1_goto_2.xml' from the list. That will level you the character from level 1 to 10 and after doing that run to Varanas class hall. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this helps! If you see anything i forgot to tell you about, please add it to this wiki page.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=261</id>
		<title>RoM Getting started</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=261"/>
				<updated>2009-09-11T18:48:10Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
MicroMacro 1.0, which you can get [http://www.solarstrike.net/phpBB3/viewtopic.php?f=6&amp;amp;t=177 here]&lt;br /&gt;
&lt;br /&gt;
You will need rom scripts and put them in micromacro/scripts folder. here is how you get them:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 1: Downloading rom bot from SVN (recommended but harder) ==&lt;br /&gt;
Advanced:&lt;br /&gt;
&lt;br /&gt;
For those of you who already have some working knowledge of SVN, you can use this command to checkout:&lt;br /&gt;
      svn checkout http://rom-bot.googlecode.com/svn/trunk/ rom-bot-read-only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple:&lt;br /&gt;
&lt;br /&gt;
First, I suggest you install Tortoise SVN. Once installed, you may need to reboot your machine. Now, locate your 'rom' folder (should be inside micromacro/scripts/) and right-click it. Select 'SVN Checkout'.&lt;br /&gt;
&lt;br /&gt;
Now, a window should open. Inside &amp;quot;URL of repository:&amp;quot;, enter this url:&lt;br /&gt;
      http://rom-bot.googlecode.com/svn/trunk/rom&lt;br /&gt;
&lt;br /&gt;
Everything else can be left at default. Click OK and it should begin downloading and updating all of your files. Now that you've got it all setup, you can simply right click the 'rom' folder again and select SVN update. Typically, a red icon over the folder should indicate that there are updates to download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Problems with file conflicts?&lt;br /&gt;
&lt;br /&gt;
This typically happens if you've made any modifications to the scripts. To fix it, you should delete any files that have conflicts, and try to SVN update again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 2: Downloading rom bot from forums ==&lt;br /&gt;
Download [http://www.solarstrike.net/phpBB3/viewtopic.php?f=21&amp;amp;t=163 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Make a path ==&lt;br /&gt;
Now you'll need to make a waypoint script. Start MicroMacro and execute the rom/createpath.lua script when prompted. You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Configure RoM bot ==&lt;br /&gt;
Next you must make a profile. Go to the profile directory and make a copy of Default.xml, but rename it to whatever your character name is. It must be exact, but capitalization shouldn't mater. For the waypoint script option, you will apply the '.xml' extension this time.&lt;br /&gt;
&lt;br /&gt;
To see how to configure your bot, go to [[RoM_Configuration|configuration]]&lt;br /&gt;
&lt;br /&gt;
Heres a video tutorial on configuring your bot. [http://www.youtube.com/watch?v=mUe8g4Eplj4 YouTube link]&lt;br /&gt;
&lt;br /&gt;
== Configure RoM in game ==&lt;br /&gt;
In rom, click esc and click interface options, and be sure to have set Turn on Self Cast, Click to move and Auto loot&lt;br /&gt;
&lt;br /&gt;
== Configure the macro ==&lt;br /&gt;
Set MACRO key to default 0 key&lt;br /&gt;
&lt;br /&gt;
[[Image:macroslot.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Run ==&lt;br /&gt;
Run by starting mircomacro and typing &lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To see the bot at full work, create a new character (at best a mage or ariest) at the pioneer village and start the bot with&lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua profile:l1-10&lt;br /&gt;
&lt;br /&gt;
Then choose path 'l1_goto_2.xml' from the list. That will level you the character from level 1 to 10 and after doing that run to Varanas class hall. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this helps! If you see anything i forgot to tell you about, please add it to this wiki page.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=260</id>
		<title>RoM Getting started</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Getting_started&amp;diff=260"/>
				<updated>2009-09-10T16:42:19Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
MicroMacro 1.0, which you can get [http://www.solarstrike.net/phpBB3/viewtopic.php?f=6&amp;amp;t=177 here]&lt;br /&gt;
&lt;br /&gt;
You will need rom scripts and put them in micromacro/scripts folder. here is how you get them:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 1: Downloading rom bot from SVN (recommended but harder) ==&lt;br /&gt;
Advanced:&lt;br /&gt;
&lt;br /&gt;
For those of you who already have some working knowledge of SVN, you can use this command to checkout:&lt;br /&gt;
      svn checkout http://rom-bot.googlecode.com/svn/trunk/ rom-bot-read-only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple:&lt;br /&gt;
&lt;br /&gt;
First, I suggest you install Tortoise SVN. Once installed, you may need to reboot your machine. Now, locate your 'rom' folder (should be inside micromacro/scripts/) and right-click it. Select 'SVN Checkout'.&lt;br /&gt;
&lt;br /&gt;
Now, a window should open. Inside &amp;quot;URL of repository:&amp;quot;, enter this url:&lt;br /&gt;
      http://rom-bot.googlecode.com/svn/trunk/rom&lt;br /&gt;
&lt;br /&gt;
Everything else can be left at default. Click OK and it should begin downloading and updating all of your files. Now that you've got it all setup, you can simply right click the 'rom' folder again and select SVN update. Typically, a red icon over the folder should indicate that there are updates to download.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Problems with file conflicts?&lt;br /&gt;
&lt;br /&gt;
This typically happens if you've made any modifications to the scripts. To fix it, you should delete any files that have conflicts, and try to SVN update again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type 2: Downloading rom bot from forums ==&lt;br /&gt;
Download [http://www.solarstrike.net/phpBB3/viewtopic.php?f=21&amp;amp;t=163 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Make a path ==&lt;br /&gt;
Now you'll need to make a waypoint script. Start MicroMacro and execute the rom/createpath.lua script when prompted. You just walk to each point you want in your waypoint list (try to avoid walking near any trees, fences, steep hills, etc.), and press NUMPAD 1. Once you've made your round (the waypoints should loop back and bring you near the start), press NUMPAD 3. Now type in the name you want to save it as (example: 'boars' would be good enough. Don't include any slashes, and the .xml extension is automatically applied).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Configure RoM bot ==&lt;br /&gt;
Next you must make a profile. Go to the profile directory and make a copy of Default.xml, but rename it to whatever your character name is. It must be exact, but capitalization shouldn't mater. For the waypoint script option, you will apply the '.xml' extension this time.&lt;br /&gt;
&lt;br /&gt;
To see how to configure your bot, go to [[RoM_Configuration|configuration]]&lt;br /&gt;
&lt;br /&gt;
Heres a video tutorial on configuring your bot. [http://www.youtube.com/watch?v=mUe8g4Eplj4 YouTube link]&lt;br /&gt;
&lt;br /&gt;
== Configure RoM in game ==&lt;br /&gt;
In rom, click esc and click interface options, and be sure to have set Turn on Self Cast, Click to move and Auto loot&lt;br /&gt;
&lt;br /&gt;
== Configure the macro ==&lt;br /&gt;
Set MACRO key to default 0 key&lt;br /&gt;
&lt;br /&gt;
[[Image:macroslot.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Run ==&lt;br /&gt;
Run by starting mircomacro and typing &lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To see the bot at full work, create a new character (at best a mage) at the pioneer village and start the bot with&lt;br /&gt;
&lt;br /&gt;
      rom/bot.lua profile:l1-10&lt;br /&gt;
&lt;br /&gt;
Then choose path 'l1_goto_2.xml' from the list. That will level you the character from level 1 to 10 and after doing that run to Varanas class hall. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope this helps! If you see anything i forgot to tell you about, please add it to this wiki page.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=256</id>
		<title>RoM Configuration</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=256"/>
				<updated>2009-09-10T08:51:25Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Character Profiles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two main settings files for RoM bot: settings.xml and your profile.&lt;br /&gt;
Profiles contain character-specific settings, while settings.xml contains hotkey settings and general preferences.&lt;br /&gt;
&lt;br /&gt;
== Settings.xml ==&lt;br /&gt;
Here is an example settings file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
	&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Cannot use modifiers --&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_FORWARD&amp;quot; key=&amp;quot;VK_W&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_BACKWARD&amp;quot; key=&amp;quot;VK_S&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_LEFT&amp;quot; key=&amp;quot;VK_A&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_RIGHT&amp;quot; key=&amp;quot;VK_D&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_LEFT&amp;quot; key=&amp;quot;VK_Q&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_RIGHT&amp;quot; key=&amp;quot;VK_E&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;JUMP&amp;quot; key=&amp;quot;VK_SPACE&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET&amp;quot; key=&amp;quot;VK_TAB&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET_FRIEND&amp;quot; key=&amp;quot;VK_J&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/hotkeys&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;options&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;ENABLE_FIGHT_SLOW_TURN&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;MELEE_DISTANCE&amp;quot; value=&amp;quot;45&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;LANGUAGE&amp;quot; value=&amp;quot;english&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;DEBUG_ASSERT&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/options&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Settings - Hotkeys===&lt;br /&gt;
The hotkey settings are mostly self-explanatory. MOVE_FORWARD, obviously, coresponds to the key that makes your character walk forward. This is &amp;quot;W&amp;quot; by default. Note that '''all''' keys must preceeded by 'VK_'.&lt;br /&gt;
&lt;br /&gt;
You may also notice the 'modifier'. Modifiers are keys such as CONTROL, SHIFT, or ALT. However, be aware that modifiers currently '''do not work'''. You should not set modifiers or you may run into problems. Instead, just leave the modifier set to an empty string(&amp;quot;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If your Runes of Magic bindings file (By default, is located at 'My Documents/Runes of Magic/bindings.txt') can be found and loaded, the RoM bot will instead use these settings so that you will not need to manually change your hotkey settings.&lt;br /&gt;
&lt;br /&gt;
===Settings - Options===&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ENABLE_FIGHT_SLOW_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable &amp;quot;slow turning&amp;quot; in combat. If you have click-to-move on, you should not need this. It should be set to either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. The default is &amp;quot;false&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | MELEE_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance at which to conduct melee combat. A value of 45 is good and should not be changed unless you have problems with being either too close or too far away for melee combat. Default: &amp;quot;45&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | LANGUAGE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to set your prefered language. Acceptable values are &amp;quot;english&amp;quot;, &amp;quot;deutsch&amp;quot;, and &amp;quot;french&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | DEBUG_ASSERT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | This is a debugging option. When set to true, it will instantly exit on memory read errors and provide better debugging information. Default: &amp;quot;false&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Character Profiles ==&lt;br /&gt;
There are a few things you should know about character profiles first:&lt;br /&gt;
* They typically are named after the character that will use them&lt;br /&gt;
* They must be inside the 'rom/profiles' folder&lt;br /&gt;
* They must follow proper XML formatting&lt;br /&gt;
* They may contain custom Lua code&lt;br /&gt;
&lt;br /&gt;
There are many profile options that can be set so it is highly recommended you make a copy of the default profile (Default.xml) and modify that to your character's needs instead of starting from scratch.&lt;br /&gt;
&lt;br /&gt;
'''If you have extension hiding turned off,''' the .xml extension will not show on any of your files. If this is the case, '''do not''' add the .xml extension or you will end up with a file named something like Default.xml.xml. This may cause the profile to not be found and you may get errors. However, if you are able to see extensions, you should of course include the .xml extension when naming your profile.&lt;br /&gt;
&lt;br /&gt;
===Profile - Options===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&amp;lt;options&amp;gt;&lt;br /&gt;
	&amp;lt;option name=&amp;quot;HP_LOW&amp;quot;        value=&amp;quot;85&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;option name=&amp;quot;MP_LOW_POTION&amp;quot; value=&amp;quot;50&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;option name=&amp;quot;HP_LOW_POTION&amp;quot; value=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
	...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Healing and Potions'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use heal skills at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use potions at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of mana to use mana potions at&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Combat Options'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either &amp;quot;melee&amp;quot; or &amp;quot;ranged&amp;quot;. Whichever best fits your character. Default: empty string (&amp;quot;&amp;quot;). When unset (default), it will determine this automatically based on your class. There is no need to change this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_RANGED_PULL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to attempt to &amp;quot;pull&amp;quot; enemies towards you with ranged skills while you are a melee-based class&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance to remain at when fighting. This only affects your character when COMBAT_TYPE is &amp;quot;ranged&amp;quot; or when you use COMBAT_RANGED_PULL as melee.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MAX_FIGHT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you stop damaging a target within this amount of time, you will skip this target (prevents getting stuck).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | DOT_PERCENT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Only use DOTs on this target if it has more than this percentage of HP.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ANTI_KS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to avoid stealing other players' kills. true or false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Waypoint and Movement'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINTS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RETURNPATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use for returning after death. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | PATH_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The type of movement to use. Should be either 'waypoints' or 'wander'. See path types for more information.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WANDER_RADIUS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance that your character is allowed to &amp;quot;wander&amp;quot; freely when using wander mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINT_DEVIATION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A 'random' offset applied to each waypoint in your path giving it less of a bot-like appearance; suggested value of 50. Lower value means you stick closer to your normal path; 0 means no deviation.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | QUICK_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to use quick turn mode. Quick turn mode emulates a click-to-move type movement style. This means your character does not stop to slowly turn around.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Level Difference'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_ABOVE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy above your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels above your own.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_BELOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy below your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels below your own.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Looting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether you want to loot enemies or not. True or false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_IN_COMBAT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not you want to pick up loot when other enemies are still attacking you.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The max distance away a corpse can be that you will attempt to loot.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_PAUSE_AFTER&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A percentage probability to attempt a short &amp;quot;rest&amp;quot; (to look more human) after looting an enemy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Resting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_REST&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If health falls below this percentage, then rest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If mana falls below this percentage, then rest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Log out &amp;amp; Resurrection Settings'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Log out after this amount of time (in minutes). A value of 0 means you will not use this setting. Default: 0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_WHEN_STUCK&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If your character gets stuck and cannot unstuck himself, you can use this option to have him log off. Default: true&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RES_AUTOMATIC_AFTER_DEATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not your character should attempt resurrecting when he dies. Default: true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Friends===&lt;br /&gt;
The &amp;quot;Friends&amp;quot; list can be used to mark targets that you do not want to attack. This can be other players that may be marked for PVP, or targets that you want to ignore (ie. &amp;quot;Ystra Ferret&amp;quot;). You may also add players to your friend list to get the bot to assist them when it notices they are fighting something.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;friends&amp;gt;&lt;br /&gt;
		&amp;lt;!-- names of friends we help fighting or enemys we don't want to attack --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jack&amp;quot; /&amp;gt; &amp;lt;!-- A player, lets assist him --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jill&amp;quot; /&amp;gt; &amp;lt;!-- A player, do not attack her --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Ambas&amp;quot; /&amp;gt; &amp;lt;!-- Elite, avoid him --&amp;gt;&lt;br /&gt;
	&amp;lt;/friends&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to use umlauts in your friends list, you have to use the escape character with the proper ascii code, since LUA can't handle umlauts (ü=\129, ä=\132, ö=\148, ...). For a mob named 'Kuhkäfer' if would look like &lt;br /&gt;
 &amp;lt;friend name=&amp;quot;Kuhk\132fer&amp;quot; /&amp;gt;&lt;br /&gt;
For more ASCII character look at the [http://www.cdrummond.qc.ca/cegep/informat/Professeurs/Alain/files/ascii.htm extended ASCII table].&lt;br /&gt;
&lt;br /&gt;
===Profile - Hotkeys===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
	&amp;lt;!-- to communicate with the RoM API / define ingame dummy macro at place 1 --&amp;gt;&lt;br /&gt;
	&amp;lt;hotkey name=&amp;quot;MACRO&amp;quot;        key=&amp;quot;VK_0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/hotkeys&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although your main hotkeys are configured either through settings.xml or your bindings.txt files, hotkeys for action bars are character or profile specific. &lt;br /&gt;
&lt;br /&gt;
We need only the hotkey to your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MACRO&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The hotkey that we use to communicate with the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro]. We will call RoM API functions that way&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you used a former bot version before: You now can delete your 'old' hotkeys like RES_MACRO, LOGOUT_MACRO, ...) We don't need them anymore.&lt;br /&gt;
&lt;br /&gt;
===Profile - Skills===&lt;br /&gt;
The bot will only attempt to use skills that are noted in your profile. There are two different ways to set skills up: using the 'skills' tag (does not depend on class) or using 'skills_class' (where class is an actual in-game class) tags.&lt;br /&gt;
&lt;br /&gt;
When using the 'skills' tag, it does not mater which main class your character currently is. This works pretty well for non-class specific skills that you wish to use for either class combination. For example, MAGE_FIREBALL is usable as both a mage/priest and priest/mage. Placing MAGE_FIREBALL into this tag will allow it to be used as either mage or priest primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FIREBALL&amp;quot; hotkey=&amp;quot;VK_7&amp;quot; priority=&amp;quot;110&amp;quot; hpper=&amp;quot;30&amp;quot; inbattle=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may often use different sets of skills for your two classes. This is when a class-specific skill tag is strongly suggested (that way you don't need to re-confgiure your profile every time you change classes). Skills placed inside this tag will only be used when it matches your primary class. For example, 'skills_mage' skiills will only be used when mage is your primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills_mage&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FLAME&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_mage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;skills_priest&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;PRIEST_RISING_TIDE&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_priest&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Skill over-rides:'''&lt;br /&gt;
You can over-ride a few options to your skills. Particularly, those skills you want to limit to only use in battle, or set to use at a certain health percent (such as heals).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 100px; border-bottom:1px dotted #000000;&amp;quot; | priority&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Higher priority means it will use it before other skills. Use 100+ for your opening attacks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | hpper&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Percentage of HP to use the skill at. This will over-ride HP_LOW for heals!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | inbattle&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either true or false. True means it only can be used in battle; false means if only can be used out of battle.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | pullonly&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Can only be used in the pull phase at the begin of a fight. They will not be used during the rest of the fight (only for melee classes if option 'COMBAT_RANGED_PULL' is set to 'true').&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | maxuse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with that option will only be used 'maxuse'-times within a fight.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | autouse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with autouse=false will not be automaticly casted from the Bot. Thats usefull if you want to cast a skill only in a event like '&amp;lt;onSkillCast&amp;gt;' .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Events===&lt;br /&gt;
While botting, several events may be triggered. When these events are triggered, you may have custom Lua code executed. This code is placed directly in the event-specific tags inside your profile.&lt;br /&gt;
&lt;br /&gt;
Events include:&lt;br /&gt;
* onLoad : When the profile is loaded&lt;br /&gt;
* onDeath: When your character dies&lt;br /&gt;
* onLeaveCombat: When leaving combat&lt;br /&gt;
* onSkillCast: Triggered after your character uses a skill&lt;br /&gt;
&lt;br /&gt;
onSkillCast will, additionally, receive a Lua table ('arg1') that is a copy of the skill being cast. You can use this to query information about the skill. This can be useful in &amp;quot;skill chaining.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;onLoad&amp;gt;&lt;br /&gt;
        -- Load a waypoint path based on level&lt;br /&gt;
        if( player.Level &amp;gt; 10 ) then&lt;br /&gt;
            load_paths(&amp;quot;some_path&amp;quot;);&lt;br /&gt;
        else&lt;br /&gt;
            load_paths(&amp;quot;some_other_path&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onDeath&amp;gt;&lt;br /&gt;
        printf(&amp;quot;\a\a\a&amp;quot;); -- BEEP BEEP BEEP!&lt;br /&gt;
        pauseOnDeath();   -- Wait for me. Do not continue script execution&lt;br /&gt;
    &amp;lt;/onDeath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; player.free_counter1) then&lt;br /&gt;
		player.free_counter1 = player.Level;&lt;br /&gt;
&lt;br /&gt;
		-- levelup skills&lt;br /&gt;
		-- 4 = third skill tab, 2 = mage flame&lt;br /&gt;
		if( player.Level == 2 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
			yrest(1000);&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		else&lt;br /&gt;
			player.free_counter1 = player.Level;&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- open giftbag and equipt content&lt;br /&gt;
		-- updates first 18 bag slots / update all if empty&lt;br /&gt;
		open_giftbag(player.Level, 18);&lt;br /&gt;
	end&lt;br /&gt;
    &amp;lt;/onLeaveCombat&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onSkillCast&amp;gt;&lt;br /&gt;
        if( arg1.Name == &amp;quot;PRIEST_HOLY_AURA&amp;quot; ) then&lt;br /&gt;
            yrest(1000);&lt;br /&gt;
            player:cast(&amp;quot;PRIEST_URGENT_HEAL&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onSkillCast&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In-Game Settings ==&lt;br /&gt;
In order for the bot to fully work, you will need to modify a few in-game settings. You should start with the Interface Settings and then set up your macro hotkey.&lt;br /&gt;
&lt;br /&gt;
===Interface Settings===&lt;br /&gt;
Bring up your interface settings under the System menu. Under control, make sure that '''Click-to-move''' and '''Self Cast''' are checked. Under Miscellaneous, also check '''Auto loot'''.&lt;br /&gt;
&lt;br /&gt;
===Settings up a Macro===&lt;br /&gt;
This macro is how the bot will interface with RoM's API. You should type ''/macro'' into the game's chat to bring up the macro window. Select the top-left most box and click '''New''', and in the new window that pops open click '''Save'''.&lt;br /&gt;
&lt;br /&gt;
It should now look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:rom_macro_screen.png]]&lt;br /&gt;
&lt;br /&gt;
Now, all you need to do is click and drag this new icon in your macro window into your hotkey bar and set your MACRO hotkey in [[RoM_Configuration#Profile_-_Hotkeys|profile hotkeys]] to reflect this change.&lt;br /&gt;
&lt;br /&gt;
Note that the macro slot directly to the right of the one you just created will also be used internally. Do not keep macros you intend to use there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expert Settings ==&lt;br /&gt;
&lt;br /&gt;
===Expert Profile - Options===&lt;br /&gt;
&lt;br /&gt;
 WAYPOINTS_REVERSE = false,	-- use the waypoint file in reverse order&lt;br /&gt;
 MAX_DEATHS = 10,		-- maximal death if automatic resurrect befor logout&lt;br /&gt;
 WAIT_TIME_AFTER_RES = 8000,	-- time to wait after resurrection, needs more on slow PCs&lt;br /&gt;
 RETURNPATH_SUFFIX = &amp;quot;_return&amp;quot;,	-- suffix for default naming of returnpath&lt;br /&gt;
 HARVEST_SCAN_WIDTH = 10,	-- steps horizontal&lt;br /&gt;
 HARVEST_SCAN_HEIGHT = 8,	-- steps vertical&lt;br /&gt;
 HARVEST_SCAN_STEPSIZE = 35,	-- wide of every step&lt;br /&gt;
 HARVEST_SCAN_TOPDOWN = false,	-- true = top-&amp;gt;down  false = botton-&amp;gt;up&lt;br /&gt;
 HARVEST_SCAN_XMULTIPLIER = 1.0,	-- multiplier for scan width&lt;br /&gt;
 HARVEST_SCAN_YMULTIPLIER = 1.1,	-- multiplier for scan line height&lt;br /&gt;
 HARVEST_SCAN_YREST = 10,	-- scanspeed&lt;br /&gt;
 HARVEST_SCAN_YMOVE = 1.1,	-- move scan area top/down ( 1=middle of screen )&lt;br /&gt;
 USE_SLEEP_AFTER_RESUME = false, -- enter sleep mode after pressing pause/resume key&lt;br /&gt;
 IGNORE_MACRO_ERROR = false, 	-- ignore missing MACRO hotkey error (only temporary option while beta)&lt;br /&gt;
 DEBUG_INV = false,	 	-- to help to find the item use error (only temporary option  while beta)&lt;br /&gt;
 INV_MAX_SLOTS = 60,	 	-- maximal slots to update in the inventory:update()&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=255</id>
		<title>RoM Configuration</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=255"/>
				<updated>2009-09-10T08:42:05Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Profile - Hotkeys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two main settings files for RoM bot: settings.xml and your profile.&lt;br /&gt;
Profiles contain character-specific settings, while settings.xml contains hotkey settings and general preferences.&lt;br /&gt;
&lt;br /&gt;
== Settings.xml ==&lt;br /&gt;
Here is an example settings file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
	&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Cannot use modifiers --&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_FORWARD&amp;quot; key=&amp;quot;VK_W&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_BACKWARD&amp;quot; key=&amp;quot;VK_S&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_LEFT&amp;quot; key=&amp;quot;VK_A&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_RIGHT&amp;quot; key=&amp;quot;VK_D&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_LEFT&amp;quot; key=&amp;quot;VK_Q&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_RIGHT&amp;quot; key=&amp;quot;VK_E&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;JUMP&amp;quot; key=&amp;quot;VK_SPACE&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET&amp;quot; key=&amp;quot;VK_TAB&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET_FRIEND&amp;quot; key=&amp;quot;VK_J&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/hotkeys&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;options&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;ENABLE_FIGHT_SLOW_TURN&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;MELEE_DISTANCE&amp;quot; value=&amp;quot;45&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;LANGUAGE&amp;quot; value=&amp;quot;english&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;DEBUG_ASSERT&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/options&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Settings - Hotkeys===&lt;br /&gt;
The hotkey settings are mostly self-explanatory. MOVE_FORWARD, obviously, coresponds to the key that makes your character walk forward. This is &amp;quot;W&amp;quot; by default. Note that '''all''' keys must preceeded by 'VK_'.&lt;br /&gt;
&lt;br /&gt;
You may also notice the 'modifier'. Modifiers are keys such as CONTROL, SHIFT, or ALT. However, be aware that modifiers currently '''do not work'''. You should not set modifiers or you may run into problems. Instead, just leave the modifier set to an empty string(&amp;quot;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If your Runes of Magic bindings file (By default, is located at 'My Documents/Runes of Magic/bindings.txt') can be found and loaded, the RoM bot will instead use these settings so that you will not need to manually change your hotkey settings.&lt;br /&gt;
&lt;br /&gt;
===Settings - Options===&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ENABLE_FIGHT_SLOW_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable &amp;quot;slow turning&amp;quot; in combat. If you have click-to-move on, you should not need this. It should be set to either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. The default is &amp;quot;false&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | MELEE_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance at which to conduct melee combat. A value of 45 is good and should not be changed unless you have problems with being either too close or too far away for melee combat. Default: &amp;quot;45&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | LANGUAGE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to set your prefered language. Acceptable values are &amp;quot;english&amp;quot;, &amp;quot;deutsch&amp;quot;, and &amp;quot;french&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | DEBUG_ASSERT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | This is a debugging option. When set to true, it will instantly exit on memory read errors and provide better debugging information. Default: &amp;quot;false&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Character Profiles ==&lt;br /&gt;
There are a few things you should know about character profiles first:&lt;br /&gt;
* They typically are named after the character that will use them&lt;br /&gt;
* They must be inside the 'rom/profiles' folder&lt;br /&gt;
* They must follow proper XML formatting&lt;br /&gt;
* They may contain custom Lua code&lt;br /&gt;
&lt;br /&gt;
There are many profile options that can be set so it is highly recommended you make a copy of the default profile (Default.xml) and modify that to your character's needs instead of starting from scratch.&lt;br /&gt;
&lt;br /&gt;
'''If you have extension hiding turned off,''' the .xml extension will not show on any of your files. If this is the case, '''do not''' add the .xml extension or you will end up with a file named something like Default.xml.xml. This may cause the profile to not be found and you may get errors. However, if you are able to see extensions, you should of course include the .xml extension when naming your profile.&lt;br /&gt;
&lt;br /&gt;
===Profile - Options===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Healing and Potions'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use heal skills at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use potions at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of mana to use mana potions at&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Combat Options'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either &amp;quot;melee&amp;quot; or &amp;quot;ranged&amp;quot;. Whichever best fits your character. Default: empty string (&amp;quot;&amp;quot;). When unset (default), it will determine this automatically based on your class. There is no need to change this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_RANGED_PULL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to attempt to &amp;quot;pull&amp;quot; enemies towards you with ranged skills while you are a melee-based class&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance to remain at when fighting. This only affects your character when COMBAT_TYPE is &amp;quot;ranged&amp;quot; or when you use COMBAT_RANGED_PULL as melee.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MAX_FIGHT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you stop damaging a target within this amount of time, you will skip this target (prevents getting stuck).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | DOT_PERCENT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Only use DOTs on this target if it has more than this percentage of HP.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ANTI_KS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to avoid stealing other players' kills. true or false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Waypoint and Movement'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINTS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RETURNPATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use for returning after death. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | PATH_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The type of movement to use. Should be either 'waypoints' or 'wander'. See path types for more information.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WANDER_RADIUS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance that your character is allowed to &amp;quot;wander&amp;quot; freely when using wander mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINT_DEVIATION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A 'random' offset applied to each waypoint in your path giving it less of a bot-like appearance; suggested value of 50. Lower value means you stick closer to your normal path; 0 means no deviation.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | QUICK_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to use quick turn mode. Quick turn mode emulates a click-to-move type movement style. This means your character does not stop to slowly turn around.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Level Difference'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_ABOVE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy above your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels above your own.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_BELOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy below your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels below your own.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Looting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether you want to loot enemies or not. True or false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_IN_COMBAT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not you want to pick up loot when other enemies are still attacking you.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The max distance away a corpse can be that you will attempt to loot.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_PAUSE_AFTER&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A percentage probability to attempt a short &amp;quot;rest&amp;quot; (to look more human) after looting an enemy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Resting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_REST&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If health falls below this percentage, then rest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If mana falls below this percentage, then rest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Log out &amp;amp; Resurrection Settings'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Log out after this amount of time (in minutes). A value of 0 means you will not use this setting. Default: 0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_WHEN_STUCK&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If your character gets stuck and cannot unstuck himself, you can use this option to have him log off. Default: true&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RES_AUTOMATIC_AFTER_DEATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not your character should attempt resurrecting when he dies. Default: true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Friends===&lt;br /&gt;
The &amp;quot;Friends&amp;quot; list can be used to mark targets that you do not want to attack. This can be other players that may be marked for PVP, or targets that you want to ignore (ie. &amp;quot;Ystra Ferret&amp;quot;). You may also add players to your friend list to get the bot to assist them when it notices they are fighting something.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;friends&amp;gt;&lt;br /&gt;
		&amp;lt;!-- names of friends we help fighting or enemys we don't want to attack --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jack&amp;quot; /&amp;gt; &amp;lt;!-- A player, lets assist him --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jill&amp;quot; /&amp;gt; &amp;lt;!-- A player, do not attack her --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Ambas&amp;quot; /&amp;gt; &amp;lt;!-- Elite, avoid him --&amp;gt;&lt;br /&gt;
	&amp;lt;/friends&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Profile - Hotkeys===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
	&amp;lt;!-- to communicate with the RoM API / define ingame dummy macro at place 1 --&amp;gt;&lt;br /&gt;
	&amp;lt;hotkey name=&amp;quot;MACRO&amp;quot;        key=&amp;quot;VK_0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/hotkeys&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although your main hotkeys are configured either through settings.xml or your bindings.txt files, hotkeys for action bars are character or profile specific. &lt;br /&gt;
&lt;br /&gt;
We need only the hotkey to your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MACRO&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The hotkey that we use to communicate with the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro]. We will call RoM API functions that way&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you used a former bot version before: You now can delete your 'old' hotkeys like RES_MACRO, LOGOUT_MACRO, ...) We don't need them anymore.&lt;br /&gt;
&lt;br /&gt;
===Profile - Skills===&lt;br /&gt;
The bot will only attempt to use skills that are noted in your profile. There are two different ways to set skills up: using the 'skills' tag (does not depend on class) or using 'skills_class' (where class is an actual in-game class) tags.&lt;br /&gt;
&lt;br /&gt;
When using the 'skills' tag, it does not mater which main class your character currently is. This works pretty well for non-class specific skills that you wish to use for either class combination. For example, MAGE_FIREBALL is usable as both a mage/priest and priest/mage. Placing MAGE_FIREBALL into this tag will allow it to be used as either mage or priest primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FIREBALL&amp;quot; hotkey=&amp;quot;VK_7&amp;quot; priority=&amp;quot;110&amp;quot; hpper=&amp;quot;30&amp;quot; inbattle=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may often use different sets of skills for your two classes. This is when a class-specific skill tag is strongly suggested (that way you don't need to re-confgiure your profile every time you change classes). Skills placed inside this tag will only be used when it matches your primary class. For example, 'skills_mage' skiills will only be used when mage is your primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills_mage&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FLAME&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_mage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;skills_priest&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;PRIEST_RISING_TIDE&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_priest&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Skill over-rides:'''&lt;br /&gt;
You can over-ride a few options to your skills. Particularly, those skills you want to limit to only use in battle, or set to use at a certain health percent (such as heals).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 100px; border-bottom:1px dotted #000000;&amp;quot; | priority&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Higher priority means it will use it before other skills. Use 100+ for your opening attacks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | hpper&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Percentage of HP to use the skill at. This will over-ride HP_LOW for heals!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | inbattle&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either true or false. True means it only can be used in battle; false means if only can be used out of battle.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | pullonly&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Can only be used in the pull phase at the begin of a fight. They will not be used during the rest of the fight (only for melee classes if option 'COMBAT_RANGED_PULL' is set to 'true').&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | maxuse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with that option will only be used 'maxuse'-times within a fight.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | autouse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with autouse=false will not be automaticly casted from the Bot. Thats usefull if you want to cast a skill only in a event like '&amp;lt;onSkillCast&amp;gt;' .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Events===&lt;br /&gt;
While botting, several events may be triggered. When these events are triggered, you may have custom Lua code executed. This code is placed directly in the event-specific tags inside your profile.&lt;br /&gt;
&lt;br /&gt;
Events include:&lt;br /&gt;
* onLoad : When the profile is loaded&lt;br /&gt;
* onDeath: When your character dies&lt;br /&gt;
* onLeaveCombat: When leaving combat&lt;br /&gt;
* onSkillCast: Triggered after your character uses a skill&lt;br /&gt;
&lt;br /&gt;
onSkillCast will, additionally, receive a Lua table ('arg1') that is a copy of the skill being cast. You can use this to query information about the skill. This can be useful in &amp;quot;skill chaining.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;onLoad&amp;gt;&lt;br /&gt;
        -- Load a waypoint path based on level&lt;br /&gt;
        if( player.Level &amp;gt; 10 ) then&lt;br /&gt;
            load_paths(&amp;quot;some_path&amp;quot;);&lt;br /&gt;
        else&lt;br /&gt;
            load_paths(&amp;quot;some_other_path&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onDeath&amp;gt;&lt;br /&gt;
        printf(&amp;quot;\a\a\a&amp;quot;); -- BEEP BEEP BEEP!&lt;br /&gt;
        pauseOnDeath();   -- Wait for me. Do not continue script execution&lt;br /&gt;
    &amp;lt;/onDeath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; player.free_counter1) then&lt;br /&gt;
		player.free_counter1 = player.Level;&lt;br /&gt;
&lt;br /&gt;
		-- levelup skills&lt;br /&gt;
		-- 4 = third skill tab, 2 = mage flame&lt;br /&gt;
		if( player.Level == 2 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
			yrest(1000);&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		else&lt;br /&gt;
			player.free_counter1 = player.Level;&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- open giftbag and equipt content&lt;br /&gt;
		-- updates first 18 bag slots / update all if empty&lt;br /&gt;
		open_giftbag(player.Level, 18);&lt;br /&gt;
	end&lt;br /&gt;
    &amp;lt;/onLeaveCombat&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onSkillCast&amp;gt;&lt;br /&gt;
        if( arg1.Name == &amp;quot;PRIEST_HOLY_AURA&amp;quot; ) then&lt;br /&gt;
            yrest(1000);&lt;br /&gt;
            player:cast(&amp;quot;PRIEST_URGENT_HEAL&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onSkillCast&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In-Game Settings ==&lt;br /&gt;
In order for the bot to fully work, you will need to modify a few in-game settings. You should start with the Interface Settings and then set up your macro hotkey.&lt;br /&gt;
&lt;br /&gt;
===Interface Settings===&lt;br /&gt;
Bring up your interface settings under the System menu. Under control, make sure that '''Click-to-move''' and '''Self Cast''' are checked. Under Miscellaneous, also check '''Auto loot'''.&lt;br /&gt;
&lt;br /&gt;
===Settings up a Macro===&lt;br /&gt;
This macro is how the bot will interface with RoM's API. You should type ''/macro'' into the game's chat to bring up the macro window. Select the top-left most box and click '''New''', and in the new window that pops open click '''Save'''.&lt;br /&gt;
&lt;br /&gt;
It should now look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:rom_macro_screen.png]]&lt;br /&gt;
&lt;br /&gt;
Now, all you need to do is click and drag this new icon in your macro window into your hotkey bar and set your MACRO hotkey in [[RoM_Configuration#Profile_-_Hotkeys|profile hotkeys]] to reflect this change.&lt;br /&gt;
&lt;br /&gt;
Note that the macro slot directly to the right of the one you just created will also be used internally. Do not keep macros you intend to use there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expert Settings ==&lt;br /&gt;
&lt;br /&gt;
===Expert Profile - Options===&lt;br /&gt;
&lt;br /&gt;
 WAYPOINTS_REVERSE = false,	-- use the waypoint file in reverse order&lt;br /&gt;
 MAX_DEATHS = 10,		-- maximal death if automatic resurrect befor logout&lt;br /&gt;
 WAIT_TIME_AFTER_RES = 8000,	-- time to wait after resurrection, needs more on slow PCs&lt;br /&gt;
 RETURNPATH_SUFFIX = &amp;quot;_return&amp;quot;,	-- suffix for default naming of returnpath&lt;br /&gt;
 HARVEST_SCAN_WIDTH = 10,	-- steps horizontal&lt;br /&gt;
 HARVEST_SCAN_HEIGHT = 8,	-- steps vertical&lt;br /&gt;
 HARVEST_SCAN_STEPSIZE = 35,	-- wide of every step&lt;br /&gt;
 HARVEST_SCAN_TOPDOWN = false,	-- true = top-&amp;gt;down  false = botton-&amp;gt;up&lt;br /&gt;
 HARVEST_SCAN_XMULTIPLIER = 1.0,	-- multiplier for scan width&lt;br /&gt;
 HARVEST_SCAN_YMULTIPLIER = 1.1,	-- multiplier for scan line height&lt;br /&gt;
 HARVEST_SCAN_YREST = 10,	-- scanspeed&lt;br /&gt;
 HARVEST_SCAN_YMOVE = 1.1,	-- move scan area top/down ( 1=middle of screen )&lt;br /&gt;
 USE_SLEEP_AFTER_RESUME = false, -- enter sleep mode after pressing pause/resume key&lt;br /&gt;
 IGNORE_MACRO_ERROR = false, 	-- ignore missing MACRO hotkey error (only temporary option while beta)&lt;br /&gt;
 DEBUG_INV = false,	 	-- to help to find the item use error (only temporary option  while beta)&lt;br /&gt;
 INV_MAX_SLOTS = 60,	 	-- maximal slots to update in the inventory:update()&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=254</id>
		<title>RoM Configuration</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=254"/>
				<updated>2009-09-10T08:39:18Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two main settings files for RoM bot: settings.xml and your profile.&lt;br /&gt;
Profiles contain character-specific settings, while settings.xml contains hotkey settings and general preferences.&lt;br /&gt;
&lt;br /&gt;
== Settings.xml ==&lt;br /&gt;
Here is an example settings file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
	&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Cannot use modifiers --&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_FORWARD&amp;quot; key=&amp;quot;VK_W&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_BACKWARD&amp;quot; key=&amp;quot;VK_S&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_LEFT&amp;quot; key=&amp;quot;VK_A&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_RIGHT&amp;quot; key=&amp;quot;VK_D&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_LEFT&amp;quot; key=&amp;quot;VK_Q&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_RIGHT&amp;quot; key=&amp;quot;VK_E&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;JUMP&amp;quot; key=&amp;quot;VK_SPACE&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET&amp;quot; key=&amp;quot;VK_TAB&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET_FRIEND&amp;quot; key=&amp;quot;VK_J&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/hotkeys&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;options&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;ENABLE_FIGHT_SLOW_TURN&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;MELEE_DISTANCE&amp;quot; value=&amp;quot;45&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;LANGUAGE&amp;quot; value=&amp;quot;english&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;DEBUG_ASSERT&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/options&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Settings - Hotkeys===&lt;br /&gt;
The hotkey settings are mostly self-explanatory. MOVE_FORWARD, obviously, coresponds to the key that makes your character walk forward. This is &amp;quot;W&amp;quot; by default. Note that '''all''' keys must preceeded by 'VK_'.&lt;br /&gt;
&lt;br /&gt;
You may also notice the 'modifier'. Modifiers are keys such as CONTROL, SHIFT, or ALT. However, be aware that modifiers currently '''do not work'''. You should not set modifiers or you may run into problems. Instead, just leave the modifier set to an empty string(&amp;quot;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If your Runes of Magic bindings file (By default, is located at 'My Documents/Runes of Magic/bindings.txt') can be found and loaded, the RoM bot will instead use these settings so that you will not need to manually change your hotkey settings.&lt;br /&gt;
&lt;br /&gt;
===Settings - Options===&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ENABLE_FIGHT_SLOW_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable &amp;quot;slow turning&amp;quot; in combat. If you have click-to-move on, you should not need this. It should be set to either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. The default is &amp;quot;false&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | MELEE_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance at which to conduct melee combat. A value of 45 is good and should not be changed unless you have problems with being either too close or too far away for melee combat. Default: &amp;quot;45&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | LANGUAGE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to set your prefered language. Acceptable values are &amp;quot;english&amp;quot;, &amp;quot;deutsch&amp;quot;, and &amp;quot;french&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | DEBUG_ASSERT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | This is a debugging option. When set to true, it will instantly exit on memory read errors and provide better debugging information. Default: &amp;quot;false&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Character Profiles ==&lt;br /&gt;
There are a few things you should know about character profiles first:&lt;br /&gt;
* They typically are named after the character that will use them&lt;br /&gt;
* They must be inside the 'rom/profiles' folder&lt;br /&gt;
* They must follow proper XML formatting&lt;br /&gt;
* They may contain custom Lua code&lt;br /&gt;
&lt;br /&gt;
There are many profile options that can be set so it is highly recommended you make a copy of the default profile (Default.xml) and modify that to your character's needs instead of starting from scratch.&lt;br /&gt;
&lt;br /&gt;
'''If you have extension hiding turned off,''' the .xml extension will not show on any of your files. If this is the case, '''do not''' add the .xml extension or you will end up with a file named something like Default.xml.xml. This may cause the profile to not be found and you may get errors. However, if you are able to see extensions, you should of course include the .xml extension when naming your profile.&lt;br /&gt;
&lt;br /&gt;
===Profile - Options===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Healing and Potions'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use heal skills at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use potions at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of mana to use mana potions at&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Combat Options'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either &amp;quot;melee&amp;quot; or &amp;quot;ranged&amp;quot;. Whichever best fits your character. Default: empty string (&amp;quot;&amp;quot;). When unset (default), it will determine this automatically based on your class. There is no need to change this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_RANGED_PULL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to attempt to &amp;quot;pull&amp;quot; enemies towards you with ranged skills while you are a melee-based class&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance to remain at when fighting. This only affects your character when COMBAT_TYPE is &amp;quot;ranged&amp;quot; or when you use COMBAT_RANGED_PULL as melee.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MAX_FIGHT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you stop damaging a target within this amount of time, you will skip this target (prevents getting stuck).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | DOT_PERCENT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Only use DOTs on this target if it has more than this percentage of HP.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ANTI_KS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to avoid stealing other players' kills. true or false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Waypoint and Movement'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINTS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RETURNPATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use for returning after death. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | PATH_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The type of movement to use. Should be either 'waypoints' or 'wander'. See path types for more information.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WANDER_RADIUS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance that your character is allowed to &amp;quot;wander&amp;quot; freely when using wander mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINT_DEVIATION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A 'random' offset applied to each waypoint in your path giving it less of a bot-like appearance; suggested value of 50. Lower value means you stick closer to your normal path; 0 means no deviation.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | QUICK_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to use quick turn mode. Quick turn mode emulates a click-to-move type movement style. This means your character does not stop to slowly turn around.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Level Difference'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_ABOVE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy above your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels above your own.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_BELOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy below your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels below your own.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Looting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether you want to loot enemies or not. True or false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_IN_COMBAT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not you want to pick up loot when other enemies are still attacking you.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The max distance away a corpse can be that you will attempt to loot.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_PAUSE_AFTER&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A percentage probability to attempt a short &amp;quot;rest&amp;quot; (to look more human) after looting an enemy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Resting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_REST&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If health falls below this percentage, then rest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If mana falls below this percentage, then rest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Log out &amp;amp; Resurrection Settings'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Log out after this amount of time (in minutes). A value of 0 means you will not use this setting. Default: 0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_WHEN_STUCK&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If your character gets stuck and cannot unstuck himself, you can use this option to have him log off. Default: true&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RES_AUTOMATIC_AFTER_DEATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not your character should attempt resurrecting when he dies. Default: true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Friends===&lt;br /&gt;
The &amp;quot;Friends&amp;quot; list can be used to mark targets that you do not want to attack. This can be other players that may be marked for PVP, or targets that you want to ignore (ie. &amp;quot;Ystra Ferret&amp;quot;). You may also add players to your friend list to get the bot to assist them when it notices they are fighting something.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;friends&amp;gt;&lt;br /&gt;
		&amp;lt;!-- names of friends we help fighting or enemys we don't want to attack --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jack&amp;quot; /&amp;gt; &amp;lt;!-- A player, lets assist him --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jill&amp;quot; /&amp;gt; &amp;lt;!-- A player, do not attack her --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Ambas&amp;quot; /&amp;gt; &amp;lt;!-- Elite, avoid him --&amp;gt;&lt;br /&gt;
	&amp;lt;/friends&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Profile - Hotkeys===&lt;br /&gt;
Although your main hotkeys are configured either through settings.xml or your bindings.txt files, hotkeys for action bars are character or profile specific. &lt;br /&gt;
&lt;br /&gt;
We need only the hotkey to your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MACRO&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The hotkey that we use to communicate with the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro]. We will call RoM API functions that way&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you used a former bot version before: You now can delete your 'old' hotkeys like RES_MACRO, LOGOUT_MACRO, ...) We don't need them anymore.&lt;br /&gt;
&lt;br /&gt;
===Profile - Skills===&lt;br /&gt;
The bot will only attempt to use skills that are noted in your profile. There are two different ways to set skills up: using the 'skills' tag (does not depend on class) or using 'skills_class' (where class is an actual in-game class) tags.&lt;br /&gt;
&lt;br /&gt;
When using the 'skills' tag, it does not mater which main class your character currently is. This works pretty well for non-class specific skills that you wish to use for either class combination. For example, MAGE_FIREBALL is usable as both a mage/priest and priest/mage. Placing MAGE_FIREBALL into this tag will allow it to be used as either mage or priest primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FIREBALL&amp;quot; hotkey=&amp;quot;VK_7&amp;quot; priority=&amp;quot;110&amp;quot; hpper=&amp;quot;30&amp;quot; inbattle=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may often use different sets of skills for your two classes. This is when a class-specific skill tag is strongly suggested (that way you don't need to re-confgiure your profile every time you change classes). Skills placed inside this tag will only be used when it matches your primary class. For example, 'skills_mage' skiills will only be used when mage is your primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills_mage&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FLAME&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_mage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;skills_priest&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;PRIEST_RISING_TIDE&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_priest&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Skill over-rides:'''&lt;br /&gt;
You can over-ride a few options to your skills. Particularly, those skills you want to limit to only use in battle, or set to use at a certain health percent (such as heals).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 100px; border-bottom:1px dotted #000000;&amp;quot; | priority&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Higher priority means it will use it before other skills. Use 100+ for your opening attacks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | hpper&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Percentage of HP to use the skill at. This will over-ride HP_LOW for heals!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | inbattle&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either true or false. True means it only can be used in battle; false means if only can be used out of battle.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | pullonly&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Can only be used in the pull phase at the begin of a fight. They will not be used during the rest of the fight (only for melee classes if option 'COMBAT_RANGED_PULL' is set to 'true').&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | maxuse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with that option will only be used 'maxuse'-times within a fight.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | autouse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with autouse=false will not be automaticly casted from the Bot. Thats usefull if you want to cast a skill only in a event like '&amp;lt;onSkillCast&amp;gt;' .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Events===&lt;br /&gt;
While botting, several events may be triggered. When these events are triggered, you may have custom Lua code executed. This code is placed directly in the event-specific tags inside your profile.&lt;br /&gt;
&lt;br /&gt;
Events include:&lt;br /&gt;
* onLoad : When the profile is loaded&lt;br /&gt;
* onDeath: When your character dies&lt;br /&gt;
* onLeaveCombat: When leaving combat&lt;br /&gt;
* onSkillCast: Triggered after your character uses a skill&lt;br /&gt;
&lt;br /&gt;
onSkillCast will, additionally, receive a Lua table ('arg1') that is a copy of the skill being cast. You can use this to query information about the skill. This can be useful in &amp;quot;skill chaining.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;onLoad&amp;gt;&lt;br /&gt;
        -- Load a waypoint path based on level&lt;br /&gt;
        if( player.Level &amp;gt; 10 ) then&lt;br /&gt;
            load_paths(&amp;quot;some_path&amp;quot;);&lt;br /&gt;
        else&lt;br /&gt;
            load_paths(&amp;quot;some_other_path&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onDeath&amp;gt;&lt;br /&gt;
        printf(&amp;quot;\a\a\a&amp;quot;); -- BEEP BEEP BEEP!&lt;br /&gt;
        pauseOnDeath();   -- Wait for me. Do not continue script execution&lt;br /&gt;
    &amp;lt;/onDeath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; player.free_counter1) then&lt;br /&gt;
		player.free_counter1 = player.Level;&lt;br /&gt;
&lt;br /&gt;
		-- levelup skills&lt;br /&gt;
		-- 4 = third skill tab, 2 = mage flame&lt;br /&gt;
		if( player.Level == 2 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
			yrest(1000);&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		else&lt;br /&gt;
			player.free_counter1 = player.Level;&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- open giftbag and equipt content&lt;br /&gt;
		-- updates first 18 bag slots / update all if empty&lt;br /&gt;
		open_giftbag(player.Level, 18);&lt;br /&gt;
	end&lt;br /&gt;
    &amp;lt;/onLeaveCombat&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onSkillCast&amp;gt;&lt;br /&gt;
        if( arg1.Name == &amp;quot;PRIEST_HOLY_AURA&amp;quot; ) then&lt;br /&gt;
            yrest(1000);&lt;br /&gt;
            player:cast(&amp;quot;PRIEST_URGENT_HEAL&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onSkillCast&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In-Game Settings ==&lt;br /&gt;
In order for the bot to fully work, you will need to modify a few in-game settings. You should start with the Interface Settings and then set up your macro hotkey.&lt;br /&gt;
&lt;br /&gt;
===Interface Settings===&lt;br /&gt;
Bring up your interface settings under the System menu. Under control, make sure that '''Click-to-move''' and '''Self Cast''' are checked. Under Miscellaneous, also check '''Auto loot'''.&lt;br /&gt;
&lt;br /&gt;
===Settings up a Macro===&lt;br /&gt;
This macro is how the bot will interface with RoM's API. You should type ''/macro'' into the game's chat to bring up the macro window. Select the top-left most box and click '''New''', and in the new window that pops open click '''Save'''.&lt;br /&gt;
&lt;br /&gt;
It should now look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:rom_macro_screen.png]]&lt;br /&gt;
&lt;br /&gt;
Now, all you need to do is click and drag this new icon in your macro window into your hotkey bar and set your MACRO hotkey in [[RoM_Configuration#Profile_-_Hotkeys|profile hotkeys]] to reflect this change.&lt;br /&gt;
&lt;br /&gt;
Note that the macro slot directly to the right of the one you just created will also be used internally. Do not keep macros you intend to use there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Expert Settings ==&lt;br /&gt;
&lt;br /&gt;
===Expert Profile - Options===&lt;br /&gt;
&lt;br /&gt;
 WAYPOINTS_REVERSE = false,	-- use the waypoint file in reverse order&lt;br /&gt;
 MAX_DEATHS = 10,		-- maximal death if automatic resurrect befor logout&lt;br /&gt;
 WAIT_TIME_AFTER_RES = 8000,	-- time to wait after resurrection, needs more on slow PCs&lt;br /&gt;
 RETURNPATH_SUFFIX = &amp;quot;_return&amp;quot;,	-- suffix for default naming of returnpath&lt;br /&gt;
 HARVEST_SCAN_WIDTH = 10,	-- steps horizontal&lt;br /&gt;
 HARVEST_SCAN_HEIGHT = 8,	-- steps vertical&lt;br /&gt;
 HARVEST_SCAN_STEPSIZE = 35,	-- wide of every step&lt;br /&gt;
 HARVEST_SCAN_TOPDOWN = false,	-- true = top-&amp;gt;down  false = botton-&amp;gt;up&lt;br /&gt;
 HARVEST_SCAN_XMULTIPLIER = 1.0,	-- multiplier for scan width&lt;br /&gt;
 HARVEST_SCAN_YMULTIPLIER = 1.1,	-- multiplier for scan line height&lt;br /&gt;
 HARVEST_SCAN_YREST = 10,	-- scanspeed&lt;br /&gt;
 HARVEST_SCAN_YMOVE = 1.1,	-- move scan area top/down ( 1=middle of screen )&lt;br /&gt;
 USE_SLEEP_AFTER_RESUME = false, -- enter sleep mode after pressing pause/resume key&lt;br /&gt;
 IGNORE_MACRO_ERROR = false, 	-- ignore missing MACRO hotkey error (only temporary option while beta)&lt;br /&gt;
 DEBUG_INV = false,	 	-- to help to find the item use error (only temporary option  while beta)&lt;br /&gt;
 INV_MAX_SLOTS = 60,	 	-- maximal slots to update in the inventory:update()&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=253</id>
		<title>RoM Configuration</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Configuration&amp;diff=253"/>
				<updated>2009-09-10T08:34:13Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Profile - Hotkeys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two main settings files for RoM bot: settings.xml and your profile.&lt;br /&gt;
Profiles contain character-specific settings, while settings.xml contains hotkey settings and general preferences.&lt;br /&gt;
&lt;br /&gt;
== Settings.xml ==&lt;br /&gt;
Here is an example settings file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;settings&amp;gt;&lt;br /&gt;
	&amp;lt;hotkeys&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Cannot use modifiers --&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_FORWARD&amp;quot; key=&amp;quot;VK_W&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;MOVE_BACKWARD&amp;quot; key=&amp;quot;VK_S&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_LEFT&amp;quot; key=&amp;quot;VK_A&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;ROTATE_RIGHT&amp;quot; key=&amp;quot;VK_D&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_LEFT&amp;quot; key=&amp;quot;VK_Q&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;STRAFF_RIGHT&amp;quot; key=&amp;quot;VK_E&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;JUMP&amp;quot; key=&amp;quot;VK_SPACE&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET&amp;quot; key=&amp;quot;VK_TAB&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;hotkey description=&amp;quot;TARGET_FRIEND&amp;quot; key=&amp;quot;VK_J&amp;quot; modifier=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/hotkeys&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;options&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;ENABLE_FIGHT_SLOW_TURN&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;MELEE_DISTANCE&amp;quot; value=&amp;quot;45&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;LANGUAGE&amp;quot; value=&amp;quot;english&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;option name=&amp;quot;DEBUG_ASSERT&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/options&amp;gt;&lt;br /&gt;
&amp;lt;/settings&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Settings - Hotkeys===&lt;br /&gt;
The hotkey settings are mostly self-explanatory. MOVE_FORWARD, obviously, coresponds to the key that makes your character walk forward. This is &amp;quot;W&amp;quot; by default. Note that '''all''' keys must preceeded by 'VK_'.&lt;br /&gt;
&lt;br /&gt;
You may also notice the 'modifier'. Modifiers are keys such as CONTROL, SHIFT, or ALT. However, be aware that modifiers currently '''do not work'''. You should not set modifiers or you may run into problems. Instead, just leave the modifier set to an empty string(&amp;quot;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
If your Runes of Magic bindings file (By default, is located at 'My Documents/Runes of Magic/bindings.txt') can be found and loaded, the RoM bot will instead use these settings so that you will not need to manually change your hotkey settings.&lt;br /&gt;
&lt;br /&gt;
===Settings - Options===&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ENABLE_FIGHT_SLOW_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to enable or disable &amp;quot;slow turning&amp;quot; in combat. If you have click-to-move on, you should not need this. It should be set to either &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;. The default is &amp;quot;false&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | MELEE_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance at which to conduct melee combat. A value of 45 is good and should not be changed unless you have problems with being either too close or too far away for melee combat. Default: &amp;quot;45&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | LANGUAGE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Allows you to set your prefered language. Acceptable values are &amp;quot;english&amp;quot;, &amp;quot;deutsch&amp;quot;, and &amp;quot;french&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | DEBUG_ASSERT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | This is a debugging option. When set to true, it will instantly exit on memory read errors and provide better debugging information. Default: &amp;quot;false&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Character Profiles ==&lt;br /&gt;
There are a few things you should know about character profiles first:&lt;br /&gt;
* They typically are named after the character that will use them&lt;br /&gt;
* They must be inside the 'rom/profiles' folder&lt;br /&gt;
* They must follow proper XML formatting&lt;br /&gt;
* They may contain custom Lua code&lt;br /&gt;
&lt;br /&gt;
There are many profile options that can be set so it is highly recommended you make a copy of the default profile (Default.xml) and modify that to your character's needs instead of starting from scratch.&lt;br /&gt;
&lt;br /&gt;
'''If you have extension hiding turned off,''' the .xml extension will not show on any of your files. If this is the case, '''do not''' add the .xml extension or you will end up with a file named something like Default.xml.xml. This may cause the profile to not be found and you may get errors. However, if you are able to see extensions, you should of course include the .xml extension when naming your profile.&lt;br /&gt;
&lt;br /&gt;
===Profile - Options===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Healing and Potions'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use heal skills at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of health to use potions at&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW_POTION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The percentage of mana to use mana potions at&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Combat Options'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either &amp;quot;melee&amp;quot; or &amp;quot;ranged&amp;quot;. Whichever best fits your character. Default: empty string (&amp;quot;&amp;quot;). When unset (default), it will determine this automatically based on your class. There is no need to change this.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_RANGED_PULL&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to attempt to &amp;quot;pull&amp;quot; enemies towards you with ranged skills while you are a melee-based class&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | COMBAT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance to remain at when fighting. This only affects your character when COMBAT_TYPE is &amp;quot;ranged&amp;quot; or when you use COMBAT_RANGED_PULL as melee.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MAX_FIGHT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you stop damaging a target within this amount of time, you will skip this target (prevents getting stuck).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | DOT_PERCENT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Only use DOTs on this target if it has more than this percentage of HP.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | ANTI_KS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to avoid stealing other players' kills. true or false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Waypoint and Movement'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINTS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RETURNPATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The filename (including .xml extension) of the waypoint script to use for returning after death. Must reside in the 'waypoints' folder!&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | PATH_TYPE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The type of movement to use. Should be either 'waypoints' or 'wander'. See path types for more information.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WANDER_RADIUS&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The distance that your character is allowed to &amp;quot;wander&amp;quot; freely when using wander mode.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | WAYPOINT_DEVIATION&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A 'random' offset applied to each waypoint in your path giving it less of a bot-like appearance; suggested value of 50. Lower value means you stick closer to your normal path; 0 means no deviation.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | QUICK_TURN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not to use quick turn mode. Quick turn mode emulates a click-to-move type movement style. This means your character does not stop to slowly turn around.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Level Difference'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_ABOVE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy above your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels above your own.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | TARGET_LEVELDIF_BELOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The maximum level of enemy below your own to engage in combat. i.e. a value of 5 means you will attack monsters up to 5 levels below your own.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Looting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether you want to loot enemies or not. True or false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_IN_COMBAT&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not you want to pick up loot when other enemies are still attacking you.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_DISTANCE&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The max distance away a corpse can be that you will attempt to loot.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOOT_PAUSE_AFTER&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | A percentage probability to attempt a short &amp;quot;rest&amp;quot; (to look more human) after looting an enemy.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Resting'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | HP_REST&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If health falls below this percentage, then rest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MP_LOW&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If mana falls below this percentage, then rest.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #C0C0FF; text-align: center;&amp;quot; | '''Log out &amp;amp; Resurrection Settings'''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_TIME&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Log out after this amount of time (in minutes). A value of 0 means you will not use this setting. Default: 0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_WHEN_STUCK&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If your character gets stuck and cannot unstuck himself, you can use this option to have him log off. Default: true&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | LOGOUT_SHUTDOWN&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | If you want to have the computer automatically shutdown after automatically logging out. Default: false.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | RES_AUTOMATIC_AFTER_DEATH&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Whether or not your character should attempt resurrecting when he dies. Default: true&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Friends===&lt;br /&gt;
The &amp;quot;Friends&amp;quot; list can be used to mark targets that you do not want to attack. This can be other players that may be marked for PVP, or targets that you want to ignore (ie. &amp;quot;Ystra Ferret&amp;quot;). You may also add players to your friend list to get the bot to assist them when it notices they are fighting something.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;friends&amp;gt;&lt;br /&gt;
		&amp;lt;!-- names of friends we help fighting or enemys we don't want to attack --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jack&amp;quot; /&amp;gt; &amp;lt;!-- A player, lets assist him --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Jill&amp;quot; /&amp;gt; &amp;lt;!-- A player, do not attack her --&amp;gt;&lt;br /&gt;
		&amp;lt;friend name=&amp;quot;Ambas&amp;quot; /&amp;gt; &amp;lt;!-- Elite, avoid him --&amp;gt;&lt;br /&gt;
	&amp;lt;/friends&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Profile - Hotkeys===&lt;br /&gt;
Although your main hotkeys are configured either through settings.xml or your bindings.txt files, hotkeys for action bars are character or profile specific. &lt;br /&gt;
&lt;br /&gt;
We need only the hotkey to your [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 200px; border-bottom:1px dotted #000000;&amp;quot; | MACRO&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | The hotkey that we use to communicate with the [http://www.solarstrike.net/wiki/index.php5?title=RoM_Configuration#Settings_up_a_Macro ingame dummy macro]. We will call RoM API functions that way&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you used a former bot version before: You now can delete your 'old' hotkeys like RES_MACRO, LOGOUT_MACRO, ...) We don't need them anymore.&lt;br /&gt;
&lt;br /&gt;
===Profile - Skills===&lt;br /&gt;
The bot will only attempt to use skills that are noted in your profile. There are two different ways to set skills up: using the 'skills' tag (does not depend on class) or using 'skills_class' (where class is an actual in-game class) tags.&lt;br /&gt;
&lt;br /&gt;
When using the 'skills' tag, it does not mater which main class your character currently is. This works pretty well for non-class specific skills that you wish to use for either class combination. For example, MAGE_FIREBALL is usable as both a mage/priest and priest/mage. Placing MAGE_FIREBALL into this tag will allow it to be used as either mage or priest primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FIREBALL&amp;quot; hotkey=&amp;quot;VK_7&amp;quot; priority=&amp;quot;110&amp;quot; hpper=&amp;quot;30&amp;quot; inbattle=&amp;quot;true&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may often use different sets of skills for your two classes. This is when a class-specific skill tag is strongly suggested (that way you don't need to re-confgiure your profile every time you change classes). Skills placed inside this tag will only be used when it matches your primary class. For example, 'skills_mage' skiills will only be used when mage is your primary class.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;skills_mage&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;MAGE_FLAME&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_mage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;skills_priest&amp;gt;&lt;br /&gt;
    &amp;lt;skill name=&amp;quot;PRIEST_RISING_TIDE&amp;quot; hotkey=&amp;quot;VK_3&amp;quot; priority=&amp;quot;80&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/skills_priest&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Skill over-rides:'''&lt;br /&gt;
You can over-ride a few options to your skills. Particularly, those skills you want to limit to only use in battle, or set to use at a certain health percent (such as heals).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- style=&amp;quot;padding: 8px;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 100px; border-bottom:1px dotted #000000;&amp;quot; | priority&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Higher priority means it will use it before other skills. Use 100+ for your opening attacks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | hpper&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Percentage of HP to use the skill at. This will over-ride HP_LOW for heals!&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | inbattle&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Either true or false. True means it only can be used in battle; false means if only can be used out of battle.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | pullonly&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Can only be used in the pull phase at the begin of a fight. They will not be used during the rest of the fight (only for melee classes if option 'COMBAT_RANGED_PULL' is set to 'true').&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | maxuse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with that option will only be used 'maxuse'-times within a fight.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | autouse&lt;br /&gt;
| style=&amp;quot;border-bottom:1px dotted #000000;&amp;quot; | Skills with autouse=false will not be automaticly casted from the Bot. Thats usefull if you want to cast a skill only in a event like '&amp;lt;onSkillCast&amp;gt;' .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Profile - Events===&lt;br /&gt;
While botting, several events may be triggered. When these events are triggered, you may have custom Lua code executed. This code is placed directly in the event-specific tags inside your profile.&lt;br /&gt;
&lt;br /&gt;
Events include:&lt;br /&gt;
* onLoad : When the profile is loaded&lt;br /&gt;
* onDeath: When your character dies&lt;br /&gt;
* onLeaveCombat: When leaving combat&lt;br /&gt;
* onSkillCast: Triggered after your character uses a skill&lt;br /&gt;
&lt;br /&gt;
onSkillCast will, additionally, receive a Lua table ('arg1') that is a copy of the skill being cast. You can use this to query information about the skill. This can be useful in &amp;quot;skill chaining.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;onLoad&amp;gt;&lt;br /&gt;
        -- Load a waypoint path based on level&lt;br /&gt;
        if( player.Level &amp;gt; 10 ) then&lt;br /&gt;
            load_paths(&amp;quot;some_path&amp;quot;);&lt;br /&gt;
        else&lt;br /&gt;
            load_paths(&amp;quot;some_other_path&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onLoad&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onDeath&amp;gt;&lt;br /&gt;
        printf(&amp;quot;\a\a\a&amp;quot;); -- BEEP BEEP BEEP!&lt;br /&gt;
        pauseOnDeath();   -- Wait for me. Do not continue script execution&lt;br /&gt;
    &amp;lt;/onDeath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onLeaveCombat&amp;gt;&lt;br /&gt;
	if( player.Level &amp;gt; player.free_counter1) then&lt;br /&gt;
		player.free_counter1 = player.Level;&lt;br /&gt;
&lt;br /&gt;
		-- levelup skills&lt;br /&gt;
		-- 4 = third skill tab, 2 = mage flame&lt;br /&gt;
		if( player.Level == 2 ) then&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
			yrest(1000);&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		else&lt;br /&gt;
			player.free_counter1 = player.Level;&lt;br /&gt;
			send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- open giftbag and equipt content&lt;br /&gt;
		-- updates first 18 bag slots / update all if empty&lt;br /&gt;
		open_giftbag(player.Level, 18);&lt;br /&gt;
	end&lt;br /&gt;
    &amp;lt;/onLeaveCombat&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;onSkillCast&amp;gt;&lt;br /&gt;
        if( arg1.Name == &amp;quot;PRIEST_HOLY_AURA&amp;quot; ) then&lt;br /&gt;
            yrest(1000);&lt;br /&gt;
            player:cast(&amp;quot;PRIEST_URGENT_HEAL&amp;quot;);&lt;br /&gt;
        end&lt;br /&gt;
    &amp;lt;/onSkillCast&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In-Game Settings ==&lt;br /&gt;
In order for the bot to fully work, you will need to modify a few in-game settings. You should start with the Interface Settings and then set up your macro hotkey.&lt;br /&gt;
&lt;br /&gt;
===Interface Settings===&lt;br /&gt;
Bring up your interface settings under the System menu. Under control, make sure that '''Click-to-move''' and '''Self Cast''' are checked. Under Miscellaneous, also check '''Auto loot'''.&lt;br /&gt;
&lt;br /&gt;
===Settings up a Macro===&lt;br /&gt;
This macro is how the bot will interface with RoM's API. You should type ''/macro'' into the game's chat to bring up the macro window. Select the top-left most box and click '''New''', and in the new window that pops open click '''Save'''.&lt;br /&gt;
&lt;br /&gt;
It should now look like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:rom_macro_screen.png]]&lt;br /&gt;
&lt;br /&gt;
Now, all you need to do is click and drag this new icon in your macro window into your hotkey bar and set your MACRO hotkey in [[RoM_Configuration#Profile_-_Hotkeys|profile hotkeys]] to reflect this change.&lt;br /&gt;
&lt;br /&gt;
Note that the macro slot directly to the right of the one you just created will also be used internally. Do not keep macros you intend to use there.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=252</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=252"/>
				<updated>2009-09-10T08:28:25Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: /* Using of RoM API Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      openGiftbag( [[_player_level] , _maxslot] );&lt;br /&gt;
open giftbag (at the moment level 1-10), items for mage and priest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
      example:&lt;br /&gt;
      local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest();&lt;br /&gt;
Scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
      __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can sumbit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 sendMacro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	<entry>
		<id>https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=251</id>
		<title>RoM Functions</title>
		<link rel="alternate" type="text/html" href="https://solarstrike.net/wiki/index.php?title=RoM_Functions&amp;diff=251"/>
				<updated>2009-09-10T08:28:03Z</updated>
		
		<summary type="html">&lt;p&gt;D003232: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General Functions ==&lt;br /&gt;
      loadPaths( [path] [,returnpath] );&lt;br /&gt;
Load a new waypoint file and if available the default return path to that file. e.g. 'loadPaths(&amp;quot;l7-9&amp;quot;);' will load the waypoint path 'l7-9.xml' and if available the return path 'l7-9_return.xml'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      changeProfileOption(_option, _value);&lt;br /&gt;
change profile options and print values in MM protocol&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      openGiftbag( [[_player_level] , _maxslot] );&lt;br /&gt;
open giftbag (at the moment level 1-10), items for mage and priest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      addMessage( message );&lt;br /&gt;
Send a message to the ingame system chat channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;RoMScript( _script );&lt;br /&gt;
&lt;br /&gt;
      example:&lt;br /&gt;
      local ret1, ret2 = RoMScript( &amp;quot;GetPlayerWorldMapPos();&amp;quot; );&amp;lt;/source&amp;gt;&lt;br /&gt;
Send a macro to the client and execute it ingame by pressing the MACRO hotkey. There are up to 10 return       values possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      sendMacro( _script );&lt;br /&gt;
Same as &amp;quot;RoMScript. Additionally you will see a message in the MM window.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Player Functions ==&lt;br /&gt;
      player:harvest();&lt;br /&gt;
Scan that waypoint for a harverst node and harvest that (at the moment only working if the RoM window is in foreground).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:restrnd([probability [, minrest [, maxrest]]]);&lt;br /&gt;
e.g. 'player:restrnd(30, 3, 10);' Rest with a probability from 30% at that waypoint for between 3 and 10 seconds. The bot will fight back if attacked while resting and continue after that. Similar functions are 'stopPE()' and 'player:sleep()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:rest( minrest [, maxrest[, time|full[, restaddrnd]]]);&lt;br /&gt;
&lt;br /&gt;
minrest ( min time to rest in sec)&lt;br /&gt;
maxrest ( max time to in sec)&lt;br /&gt;
resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time&lt;br /&gt;
restaddrnd ( max random addition after being full in sec)&lt;br /&gt;
&lt;br /&gt;
If using type 'full', the bot will only rest if HP or MP is below a defined level. You define that level in your profile with the options:&lt;br /&gt;
Code:&lt;br /&gt;
      &amp;lt;option name=&amp;quot;HP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;option name=&amp;quot;MP_REST&amp;quot; value=&amp;quot;15&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default value if not defined is 15% each.&lt;br /&gt;
&lt;br /&gt;
      examples:&lt;br /&gt;
      player:rest(20) will rest for 20 seconds.&lt;br /&gt;
      player:rest(60, 20) will rest between 60 and 80 seconds.&lt;br /&gt;
      player:rest(90, 40, &amp;quot;full&amp;quot;) will rest up to between 90 and 130 seconds, and stop resting if being full&lt;br /&gt;
      player:rest(90, 40, &amp;quot;time&amp;quot;) will rest up to between 90 and 130 seconds, and not stop resting if being full&lt;br /&gt;
      player:rest(20, 40, &amp;quot;full, 20&amp;quot;) will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:sleep();&lt;br /&gt;
Pause the bot at that waypoint in a sleep mode. The bot will still fight back attackers and sleep again after doing that. Press DEL if you want to continue. Similar functions are 'player.restrnd()' and 'stopPE()'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:logout([true]);&lt;br /&gt;
Logout from RoM. With 'player:logout(true)' you will also shutdown your pc after loging out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      player:mouseclickL(x, y [RoM window wide, RoM window high]);&lt;br /&gt;
Left click a screen point and by that, interact with a NPC. x, y is relative to the RoM window. So it is your fiddly task to find the right values to click the right buttons. Remember the RoM windows size for that click positions. By doing that, we can later recalculate the mouse click points if we run the bot in a different RoM windows size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Inventory and Item Functions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Waypoint File Functions ==&lt;br /&gt;
&lt;br /&gt;
      __WPL:reverse();&lt;br /&gt;
Resort the waypoints. Means after running from 1 to 20 you can now run from 20 - 1. It is usefull to put that at the first and at the last waypoint if you want to run between two places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __WPL:setForcedWaypointType( [[&amp;quot;NORMAL&amp;quot;] | [&amp;quot;TRAVEL&amp;quot;] | [&amp;quot;RUN&amp;quot;]]);&lt;br /&gt;
Set a forced waypoint type. The waypoint type overwrites the type settings within the waypoint file. The forced waypoint type is valid until you load a new waypoint file or you call the function '__WPL:setForcedWaypointType();' without argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using of RoM API Functions ==&lt;br /&gt;
With the function sendMacro() or RoMScript() we can sumbit macros to the RoM API. Here some important API functions you can use:&lt;br /&gt;
&lt;br /&gt;
 send_macro(&amp;quot;SetSpellPoint( 4, 2 );&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Levelup a skill. First number is the tab (1=general, 2=general class skills, 4=only primary class skills). Second number is the number of the skill at the tab. You can test the numbers by entering following macro ingame:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;/script _SkillName=GetSkillDetail(4,3); SendSystemChat(_SkillName);&amp;lt;/source&amp;gt;That will print you the name of the given skill into the ingame system chat.&lt;/div&gt;</summary>
		<author><name>D003232</name></author>	</entry>

	</feed>