Difference between revisions of "RoM Working with waypoint files"
(→List of functions: added function __WPL:setDirection(..)) |
m (Reverted edits by 91.121.27.33 (Talk) to last revision by Pumbatoo) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 70: | Line 70: | ||
<source lang="lua">player:mouseclickL(x, y [RoM window wide, RoM window high]);</source>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. | <source lang="lua">player:mouseclickL(x, y [RoM window wide, RoM window high]);</source>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. | ||
+ | |||
+ | <source lang="lua">__WPL:getFileName();</source>Returns the name of the waypoint file as string (e.g. "l1t_start.xml"). The string will not contain any information about the path of the file. | ||
== How to use the bot for running between the and NPC <-> blackboard for delivering of daily quests == | == How to use the bot for running between the and NPC <-> blackboard for delivering of daily quests == | ||
Line 75: | Line 77: | ||
The waypoints are from the blackbard in Harf up to the camp. After each end of the waypoint file is a PAUSE. So you can handle with the NPC/blackboard and after that press 'DEL' to reverse the waypoints and run back.<source lang="xml"><waypoints type="RUN"> | The waypoints are from the blackbard in Harf up to the camp. After each end of the waypoint file is a PAUSE. So you can handle with the NPC/blackboard and after that press 'DEL' to reverse the waypoints and run back.<source lang="xml"><waypoints type="RUN"> | ||
− | <!-- # 1 --><waypoint x="-14389" z="-380" type="TRAVEL">__WPL: | + | <!-- # 1 --><waypoint x="-14389" z="-380" type="TRAVEL">__WPL:setDirection( WPT_FORWARD ); |
player:sleep();</waypoint> | player:sleep();</waypoint> | ||
<!-- # 2 --><waypoint x="-14531" z="-253"></waypoint> | <!-- # 2 --><waypoint x="-14531" z="-253"></waypoint> | ||
... | ... | ||
− | <!-- #21 --><waypoint x="-18500" z="-2516 type="TRAVEL" >__WPL: | + | <!-- #21 --><waypoint x="-18500" z="-2516 type="TRAVEL" >__WPL:setDirection( WPT_BACKWARD ); |
player:sleep(); | player:sleep(); | ||
</waypoint> | </waypoint> | ||
Line 86: | Line 88: | ||
Some hints: If you deliver the quest with a low level char, than set your loot option (<option name="LOOT" value="true" />) in your profile to 'false'. That will prevent from coming closer to mob groups while looting. It also could be helpful, to reduce your option 'WAYPOINT_DEVIATION' or set it to 0 (and set back to a higher value for normal botting). | Some hints: If you deliver the quest with a low level char, than set your loot option (<option name="LOOT" value="true" />) in your profile to 'false'. That will prevent from coming closer to mob groups while looting. It also could be helpful, to reduce your option 'WAYPOINT_DEVIATION' or set it to 0 (and set back to a higher value for normal botting). | ||
− | |||
== Automatic leveling with the Bot == | == Automatic leveling with the Bot == |
Latest revision as of 02:52, 4 July 2012
Here some examples how to work with waypoint files. It shows examples for different types of waypoint files and some special solutions.
Contents
LUA code within a waypoint file
You can use you own lua code within the <waypoint></waypoint> tags. By doing that you can do nearly everything. And there are some prefabricated functions:
To use some of that functions, simply put them into the waypoint tag:<!-- #20 --><waypoint x="799" z="-426">player:restrnd(20, 1, 10);</waypoint>
Caution!!! You must place the codes within the '<waypoint></waypoint>' tag. Not before and not after.
This is wrong:
<waypoints type="TRAVEL" >player:harvest();
<!-- # 1 --><waypoint x="-2060" z="-8216"></waypoint>
</waypoints>
List of functions
player:harvest();
load_paths( [path] [,returnpath] );
if( player.Level > 9 ) then
printf("do some other coding stuff");
end;
__WPL:reverse();
__WPL:setDirection( [WPT_FORWARD | WPT_BACKWARD] );
__WPL:setForcedWaypointType( [["NORMAL"] | ["TRAVEL"] | ["RUN"]]);
player:restrnd([probability [, minrest [, maxrest]]]);
player:rest( minrest [, maxrest[, time|full[, restaddrnd]]])
minrest ( min time to rest in sec) maxrest ( max time to in sec) _resttype ( time | full ) time = rest the given time | full = stop resting after being full / default = time _restaddrnd ( max random addition after being full in sec)
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:<option name="HP_REST" value="15" />
<option name="MP_REST" value="15" />
Default value if not defined is 15% each.
e.g. player:rest(20) will rest for 20 seconds. player:rest(60, 20) will rest between 60 and 80 seconds. player:rest(90, 40, "full") will rest up to between 90 and 130 seconds, and stop resting if being full player:rest(90, 40, "time") will rest up to between 90 and 130 seconds, and not stop resting if being full player:rest(20, 40, "full, 20") will rest up to between 20 and 60 seconds, and stop resting if being full, and wait after that between 1-20 seconds
stopPE();
player:sleep();
player:logout([true])
if( os.difftime(os.time(), player.BotStartTime) > 3600 ) then
printf("do some other coding stuff");
end;
player:target_NPC( [npc_name] );
player:mouseclickL(x, y [RoM window wide, RoM window high]);
__WPL:getFileName();
How to use the bot for running between the and NPC <-> blackboard for delivering of daily quests
It starts in Harf. There you have the quest 'Winterspinnenarten' from the blackboard where you deliver 10 winter spider body liquids to the 'Lager im Winternachttal'.
The waypoints are from the blackbard in Harf up to the camp. After each end of the waypoint file is a PAUSE. So you can handle with the NPC/blackboard and after that press 'DEL' to reverse the waypoints and run back.<waypoints type="RUN">
<!-- # 1 --><waypoint x="-14389" z="-380" type="TRAVEL">__WPL:setDirection( WPT_FORWARD );
player:sleep();</waypoint>
<!-- # 2 --><waypoint x="-14531" z="-253"></waypoint>
...
<!-- #21 --><waypoint x="-18500" z="-2516 type="TRAVEL" >__WPL:setDirection( WPT_BACKWARD );
player:sleep();
</waypoint>
</waypoints>
The type of the waypoints is 'RUN' so the bot will not stop and not fight back, if getting aggro. Only the first an the last WP has type TRAVEL to fight back still sticking mobs.
Some hints: If you deliver the quest with a low level char, than set your loot option (<option name="LOOT" value="true" />) in your profile to 'false'. That will prevent from coming closer to mob groups while looting. It also could be helpful, to reduce your option 'WAYPOINT_DEVIATION' or set it to 0 (and set back to a higher value for normal botting).
Automatic leveling with the Bot
Thats an example how to start with level 1 and change the botting place depending from your level.
We start at the spawn point:<waypoints type="TRAVEL" >
<!-- # 3 --><waypoint x="-3779" z="-8480"></waypoint>
...
<!-- # 8 --><waypoint x="-3034" z="-9034">load_paths("l2-3.xml");</waypoint>
</waypoints>
Now we are at that place:
<waypoints type="NORMAL" >
<!-- # 1 --><waypoint x="-2206" z="-9648"></waypoint>
<!-- # 2 --><waypoint x="-2133" z="-9796">player:restrnd(20, 1, 10);</waypoint>
<!-- # 3 --><waypoint x="-2224" z="-9882">player:restrnd(20, 1, 10);</waypoint>
...
<!-- # 7 --><waypoint x="-2391" z="-9639">
if( player.Level > 4 ) then
load_paths("l5_goto_6.xml");
end;
</waypoint>
</waypoints>
If we reach level 5, we load the next waypoint file. Read here for more Informations about automatic leveling
Read here for further informations about autorepair.