<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Forums - Macros]]></title>
		<link>https://uaro.kiev.ua/forum/</link>
		<description><![CDATA[Forums - https://uaro.kiev.ua/forum]]></description>
		<pubDate>Fri, 10 Apr 2026 12:45:47 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Guild Storage users]]></title>
			<link>https://uaro.kiev.ua/forum/showthread.php?tid=52</link>
			<pubDate>Fri, 10 May 2024 18:55:13 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://uaro.kiev.ua/forum/member.php?action=profile&uid=3">Sergio</a>]]></dc:creator>
			<guid isPermaLink="false">https://uaro.kiev.ua/forum/showthread.php?tid=52</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color">Carefully! Use all the recommendations from the main thread</span></span><br />
<a href="https://uaro.kiev.ua/forum/showthread.php?tid=51" target="_blank" rel="noopener" class="mycode_url">Swarm of OpenKore bots (Рой ботов)</a><br />
<span style="color: #c10300;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Got it! I'll review all the posts to ensure I capture the complete configuration.</span></span><br />
<br />
<br />
On our server, there are commands @storage and @gstorage. These commands allow you to access storages anywhere without using NPCs.<br />
<br />
@storage - opens the regular storage for the account.<br />
@gstorage - opens the guild storage - this allows organizing a bot swarm using OpenKore, where they continuously exchange loot.<br />
<br />
So, one bot can check for consumables and restock as needed, another can use loot for production, and all others, like ants, gather everything dropped for them.<br />
<br />
However, there's a significant problem in this scheme: the Guild Storage is a single-user box. When one bot opens it, others start waiting for the transaction to finish, creating competition. To minimize possible delays, I adjust OpenKore parameters. If you see different values for a parameter in different messages, trust the later one!<br />
<br />
I've placed macros for the swarm in our code repository:<br />
<br />
<a href="https://github.com/uaOpenKore/uOKfiles/tree/main/macros/GSuser" target="_blank" rel="noopener" class="mycode_url">https://github.com/uaOpenKore/uOKfiles/t...ros/GSuser</a><br />
<br />
Here's an explanation of some macros:<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/macro-gstorage.txt </span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro _GStorage {<br />
  timeout 2<br />
  inventory "Meat" &lt; 11, "Butterfly Wing" &lt; 2, "Fly Wing" &lt; 3, "Awakening Potion" &lt; 2, "White Potion" &lt; 3, "Blue Potion" &lt; 3<br />
  call {<br />
    do autostorage<br />
   }<br />
 }</code></div></div>This macro ensures inventory restocking of necessary consumables. Example is redundant; only Meat, White Potions, and Blue Potions are necessary. Adapt others as needed.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro _GS_close {<br />
  timeout 60<br />
  call {<br />
   do storage close<br />
  }<br />
 }</code></div></div> This macro is necessary in case OpenKore fails to close the storage! Lag can occur, causing other bots to hang and unable to continue working. <br />
<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/macro-allToTown.txt </span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro _allToTown {<br />
 hp &lt; 33%<br />
 timeout 60<br />
 call {<br />
   do bus all tele 2<br />
   pause 3<br />
   do bus all tele 2<br />
  }</code></div></div>This macro sends all party members back to town when HP is below 33%, protecting characters from losing experience.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/macro-idied.txt</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#macro work only with busCommand plugin!<br />
automacro _GSidied {<br />
  timeout 60<br />
  status dead<br />
  call {<br />
    do bus all tele 2<br />
   }<br />
 }</code></div></div>This macro, requiring the busCommand plugin, teleports all party members to town if a character dies.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/macro-aLoot.txt</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro autoLoot {<br />
  console /You are now in the game/<br />
  timeout 600<br />
  delay 4<br />
  call {<br />
    do c @autoloot<br />
   }<br />
 }</code></div></div>This macro turns on @autoloot for the bot.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/example-oneStep.txt</span><br />
This is a complex macro that forces the bot to step if its coordinates don't change within a specified time. It serves as protection against unexplained glitches.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>doCommand macro _oneStep {<br />
  notOnAction attack, sitAuto, move, mapRoute, follow<br />
#  notInTown 1<br />
  notWhileSitting 1<br />
  whenFollowing 0<br />
  timeout 60<br />
 }</code></div></div>This code should be placed in config.txt, where the conditions for launching the "stepping" macro are described.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro _var_oldStp {<br />
 var oldStp unset<br />
 timeout 500<br />
 call {<br />
  &#36;oldStp = 0<br />
 }<br />
}</code></div></div>This automacro only triggers when OpenKore starts to set the stepping parameter.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>macro _oneStep {<br />
   if ( &#36;oldPos == &#36;.pos ) {<br />
     if (&#36;oldStp == 0 ) {<br />
       do north<br />
       do north<br />
       &#36;oldStp = 1<br />
      }<br />
   if (&#36;oldStp == 1 ) {<br />
       do west<br />
       do west<br />
       &#36;oldStp = 2<br />
      }<br />
   if (&#36;oldStp == 2 ) {<br />
       do south<br />
       do south<br />
       &#36;oldStp = 3<br />
      }<br />
    if (&#36;oldStp == 3 ) {<br />
       do east<br />
       do east<br />
       &#36;oldStp = 0<br />
      }<br />
    }<br />
   &#36;oldPos = &#36;.pos<br />
}</code></div></div>This macro makes the bot walk in a square pattern. If the path is restricted, the bot should exit in some direction.]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="color: #c10300;" class="mycode_color">Carefully! Use all the recommendations from the main thread</span></span><br />
<a href="https://uaro.kiev.ua/forum/showthread.php?tid=51" target="_blank" rel="noopener" class="mycode_url">Swarm of OpenKore bots (Рой ботов)</a><br />
<span style="color: #c10300;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Got it! I'll review all the posts to ensure I capture the complete configuration.</span></span><br />
<br />
<br />
On our server, there are commands @storage and @gstorage. These commands allow you to access storages anywhere without using NPCs.<br />
<br />
@storage - opens the regular storage for the account.<br />
@gstorage - opens the guild storage - this allows organizing a bot swarm using OpenKore, where they continuously exchange loot.<br />
<br />
So, one bot can check for consumables and restock as needed, another can use loot for production, and all others, like ants, gather everything dropped for them.<br />
<br />
However, there's a significant problem in this scheme: the Guild Storage is a single-user box. When one bot opens it, others start waiting for the transaction to finish, creating competition. To minimize possible delays, I adjust OpenKore parameters. If you see different values for a parameter in different messages, trust the later one!<br />
<br />
I've placed macros for the swarm in our code repository:<br />
<br />
<a href="https://github.com/uaOpenKore/uOKfiles/tree/main/macros/GSuser" target="_blank" rel="noopener" class="mycode_url">https://github.com/uaOpenKore/uOKfiles/t...ros/GSuser</a><br />
<br />
Here's an explanation of some macros:<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/macro-gstorage.txt </span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro _GStorage {<br />
  timeout 2<br />
  inventory "Meat" &lt; 11, "Butterfly Wing" &lt; 2, "Fly Wing" &lt; 3, "Awakening Potion" &lt; 2, "White Potion" &lt; 3, "Blue Potion" &lt; 3<br />
  call {<br />
    do autostorage<br />
   }<br />
 }</code></div></div>This macro ensures inventory restocking of necessary consumables. Example is redundant; only Meat, White Potions, and Blue Potions are necessary. Adapt others as needed.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro _GS_close {<br />
  timeout 60<br />
  call {<br />
   do storage close<br />
  }<br />
 }</code></div></div> This macro is necessary in case OpenKore fails to close the storage! Lag can occur, causing other bots to hang and unable to continue working. <br />
<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/macro-allToTown.txt </span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro _allToTown {<br />
 hp &lt; 33%<br />
 timeout 60<br />
 call {<br />
   do bus all tele 2<br />
   pause 3<br />
   do bus all tele 2<br />
  }</code></div></div>This macro sends all party members back to town when HP is below 33%, protecting characters from losing experience.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/macro-idied.txt</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#macro work only with busCommand plugin!<br />
automacro _GSidied {<br />
  timeout 60<br />
  status dead<br />
  call {<br />
    do bus all tele 2<br />
   }<br />
 }</code></div></div>This macro, requiring the busCommand plugin, teleports all party members to town if a character dies.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/macro-aLoot.txt</span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro autoLoot {<br />
  console /You are now in the game/<br />
  timeout 600<br />
  delay 4<br />
  call {<br />
    do c @autoloot<br />
   }<br />
 }</code></div></div>This macro turns on @autoloot for the bot.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">macros/GSuser/example-oneStep.txt</span><br />
This is a complex macro that forces the bot to step if its coordinates don't change within a specified time. It serves as protection against unexplained glitches.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>doCommand macro _oneStep {<br />
  notOnAction attack, sitAuto, move, mapRoute, follow<br />
#  notInTown 1<br />
  notWhileSitting 1<br />
  whenFollowing 0<br />
  timeout 60<br />
 }</code></div></div>This code should be placed in config.txt, where the conditions for launching the "stepping" macro are described.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro _var_oldStp {<br />
 var oldStp unset<br />
 timeout 500<br />
 call {<br />
  &#36;oldStp = 0<br />
 }<br />
}</code></div></div>This automacro only triggers when OpenKore starts to set the stepping parameter.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>macro _oneStep {<br />
   if ( &#36;oldPos == &#36;.pos ) {<br />
     if (&#36;oldStp == 0 ) {<br />
       do north<br />
       do north<br />
       &#36;oldStp = 1<br />
      }<br />
   if (&#36;oldStp == 1 ) {<br />
       do west<br />
       do west<br />
       &#36;oldStp = 2<br />
      }<br />
   if (&#36;oldStp == 2 ) {<br />
       do south<br />
       do south<br />
       &#36;oldStp = 3<br />
      }<br />
    if (&#36;oldStp == 3 ) {<br />
       do east<br />
       do east<br />
       &#36;oldStp = 0<br />
      }<br />
    }<br />
   &#36;oldPos = &#36;.pos<br />
}</code></div></div>This macro makes the bot walk in a square pattern. If the path is restricted, the bot should exit in some direction.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Master/Slave warp portal macro]]></title>
			<link>https://uaro.kiev.ua/forum/showthread.php?tid=41</link>
			<pubDate>Tue, 30 Apr 2024 02:42:10 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://uaro.kiev.ua/forum/member.php?action=profile&uid=0">Pachacacha</a>]]></dc:creator>
			<guid isPermaLink="false">https://uaro.kiev.ua/forum/showthread.php?tid=41</guid>
			<description><![CDATA[Hi guys, i made a little macro for a master/slave party to warp to a destination<br />
<br />
In slave macros.txt write as below<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro warp {<br />
 &nbsp;&nbsp;console /&#92;(From: (.*)&#92;) : (warp 1|warp 2|warp 3|warp 4)/<br />
 &nbsp;&nbsp;call {<br />
&#36;x = @arg ("&#36;.pos", 1)<br />
&#36;y = @arg ("&#36;.pos", 2)<br />
&#36;xx = @eval (&#36;x + @random ("-3", "3"))<br />
&#36;yy = @eval (&#36;y + @random ("-3", "3"))<br />
&#36;loc = &#36;.lastMatch2<br />
 &nbsp;&nbsp;do sl 27 &#36;xx &#36;yy<br />
pause 2<br />
 &nbsp;&nbsp;if (&#36;loc = warp 1) goto warp1<br />
 &nbsp;&nbsp;if (&#36;loc = warp 2) goto warp2<br />
 &nbsp;&nbsp;if (&#36;loc = warp 3) goto warp3<br />
 &nbsp;&nbsp;if (&#36;loc = warp 4) goto warp4<br />
stop<br />
###########################<br />
:warp1<br />
 &nbsp;&nbsp;do warp 0<br />
stop<br />
###########################<br />
:warp2<br />
 &nbsp;&nbsp;do warp 1<br />
stop<br />
###########################<br />
:warp3<br />
 &nbsp;&nbsp;do warp 2<br />
stop<br />
###########################<br />
:warp4<br />
 &nbsp;&nbsp;do warp 3<br />
stop<br />
}<br />
}<br />
<br />
automacro portalOpened {<br />
 &nbsp;&nbsp;console /You opened Warp Portal on &#92;((.*), (.*)&#92;)/i<br />
 &nbsp;&nbsp;exclusive 1<br />
 &nbsp;&nbsp;call {<br />
 &nbsp;&nbsp;pause 1<br />
 &nbsp;&nbsp;do pm "Master" w &#36;.lastMatch1 &#36;.lastMatch2<br />
 &nbsp;&nbsp;pause 5<br />
 &nbsp;&nbsp;do move &#36;.lastMatch1 &#36;.lastMatch2<br />
 &nbsp;&nbsp;}<br />
}</code></div></div><br />
In master's macros.txt<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro timetohunt {<br />
 &nbsp;&nbsp;location map<br />
 &nbsp;&nbsp;inventory "Mastela Fruit" &gt; 5<br />
 &nbsp;&nbsp;inventory "Awakening Potion" &gt; 1<br />
 &nbsp;&nbsp;inventory "Fly Wing" &gt; 1<br />
 &nbsp;&nbsp;inventory "Butterfly Wing" &gt; 0<br />
 &nbsp;&nbsp;weight &lt; 47%<br />
 &nbsp;&nbsp;timeout 30<br />
 &nbsp;&nbsp;call {<br />
      pause 5 &nbsp;&nbsp;<br />
      do pm Slave warp 1 | warp 2 | warp 3 | warp 4<br />
 &nbsp;&nbsp;}<br />
}<br />
<br />
automacro warpmove {<br />
 &nbsp;&nbsp;pm /w (.*) (.*)/<br />
 &nbsp;&nbsp;exclusive 1<br />
 &nbsp;&nbsp;call {<br />
      do move &#36;.lastMatch1 &#36;.lastMatch2<br />
      pause 20<br />
 &nbsp;&nbsp;}<br />
}</code></div></div><br />
In example above, master will request a warp when it is in the specified map, has those items in inventory and is below 47% by sending a PM to the slave with warp 1 or warp 2 or warp 3 or warp 4 (choose the desired warp destination). The slave will then open a warp at a near location and instruct the master to move into the warp with a private message.<br />
<br />
Both should auth 1 each other.<br />
<br />
Change the map, inventory items, etc at you convenience!]]></description>
			<content:encoded><![CDATA[Hi guys, i made a little macro for a master/slave party to warp to a destination<br />
<br />
In slave macros.txt write as below<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro warp {<br />
 &nbsp;&nbsp;console /&#92;(From: (.*)&#92;) : (warp 1|warp 2|warp 3|warp 4)/<br />
 &nbsp;&nbsp;call {<br />
&#36;x = @arg ("&#36;.pos", 1)<br />
&#36;y = @arg ("&#36;.pos", 2)<br />
&#36;xx = @eval (&#36;x + @random ("-3", "3"))<br />
&#36;yy = @eval (&#36;y + @random ("-3", "3"))<br />
&#36;loc = &#36;.lastMatch2<br />
 &nbsp;&nbsp;do sl 27 &#36;xx &#36;yy<br />
pause 2<br />
 &nbsp;&nbsp;if (&#36;loc = warp 1) goto warp1<br />
 &nbsp;&nbsp;if (&#36;loc = warp 2) goto warp2<br />
 &nbsp;&nbsp;if (&#36;loc = warp 3) goto warp3<br />
 &nbsp;&nbsp;if (&#36;loc = warp 4) goto warp4<br />
stop<br />
###########################<br />
:warp1<br />
 &nbsp;&nbsp;do warp 0<br />
stop<br />
###########################<br />
:warp2<br />
 &nbsp;&nbsp;do warp 1<br />
stop<br />
###########################<br />
:warp3<br />
 &nbsp;&nbsp;do warp 2<br />
stop<br />
###########################<br />
:warp4<br />
 &nbsp;&nbsp;do warp 3<br />
stop<br />
}<br />
}<br />
<br />
automacro portalOpened {<br />
 &nbsp;&nbsp;console /You opened Warp Portal on &#92;((.*), (.*)&#92;)/i<br />
 &nbsp;&nbsp;exclusive 1<br />
 &nbsp;&nbsp;call {<br />
 &nbsp;&nbsp;pause 1<br />
 &nbsp;&nbsp;do pm "Master" w &#36;.lastMatch1 &#36;.lastMatch2<br />
 &nbsp;&nbsp;pause 5<br />
 &nbsp;&nbsp;do move &#36;.lastMatch1 &#36;.lastMatch2<br />
 &nbsp;&nbsp;}<br />
}</code></div></div><br />
In master's macros.txt<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro timetohunt {<br />
 &nbsp;&nbsp;location map<br />
 &nbsp;&nbsp;inventory "Mastela Fruit" &gt; 5<br />
 &nbsp;&nbsp;inventory "Awakening Potion" &gt; 1<br />
 &nbsp;&nbsp;inventory "Fly Wing" &gt; 1<br />
 &nbsp;&nbsp;inventory "Butterfly Wing" &gt; 0<br />
 &nbsp;&nbsp;weight &lt; 47%<br />
 &nbsp;&nbsp;timeout 30<br />
 &nbsp;&nbsp;call {<br />
      pause 5 &nbsp;&nbsp;<br />
      do pm Slave warp 1 | warp 2 | warp 3 | warp 4<br />
 &nbsp;&nbsp;}<br />
}<br />
<br />
automacro warpmove {<br />
 &nbsp;&nbsp;pm /w (.*) (.*)/<br />
 &nbsp;&nbsp;exclusive 1<br />
 &nbsp;&nbsp;call {<br />
      do move &#36;.lastMatch1 &#36;.lastMatch2<br />
      pause 20<br />
 &nbsp;&nbsp;}<br />
}</code></div></div><br />
In example above, master will request a warp when it is in the specified map, has those items in inventory and is below 47% by sending a PM to the slave with warp 1 or warp 2 or warp 3 or warp 4 (choose the desired warp destination). The slave will then open a warp at a near location and instruct the master to move into the warp with a private message.<br />
<br />
Both should auth 1 each other.<br />
<br />
Change the map, inventory items, etc at you convenience!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[GStrader for service @gstorage]]></title>
			<link>https://uaro.kiev.ua/forum/showthread.php?tid=37</link>
			<pubDate>Sun, 21 Apr 2024 14:31:12 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://uaro.kiev.ua/forum/member.php?action=profile&uid=3">Sergio</a>]]></dc:creator>
			<guid isPermaLink="false">https://uaro.kiev.ua/forum/showthread.php?tid=37</guid>
			<description><![CDATA[Currently I have completed the first stage of a large macro. You can download from the main repository: <br />
<a href="https://github.com/uaOpenKore/uOKfiles/tree/main/macros/GStrader" target="_blank" rel="noopener" class="mycode_url">https://github.com/uaOpenKore/uOKfiles/t...s/GStrader</a><br />
Below I will describe in more detail the logic of the macro to make it easier for beginners to understand. <br />
<br />
Macros available:<br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/macro-GStrader-pay_arche.txt" target="_blank" rel="noopener" class="mycode_url">macro-GStrader-pay_arche.txt</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/macro-GSbrewer-pay_arche.txt" target="_blank" rel="noopener" class="mycode_url">macro-GSbrewer-pay_arche.txt</a><br />
<br />
The files-lists are available:<br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/equipsFselling.txt" target="_blank" rel="noopener" class="mycode_url">equipsFselling.txt</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/itemsFholding.txt" target="_blank" rel="noopener" class="mycode_url">itemsFholding.txt</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/itemsFselling.txt" target="_blank" rel="noopener" class="mycode_url">itemsFselling.txt</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/potionsFcreating.txt" target="_blank" rel="noopener" class="mycode_url">potionsFcreating.txt</a><br />
<br />
additional files:<br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/sortGStrader.sh" target="_blank" rel="noopener" class="mycode_url">sortGStrader.sh</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/itemsFexcluding.txt" target="_blank" rel="noopener" class="mycode_url">itemsFexcluding.txt</a>]]></description>
			<content:encoded><![CDATA[Currently I have completed the first stage of a large macro. You can download from the main repository: <br />
<a href="https://github.com/uaOpenKore/uOKfiles/tree/main/macros/GStrader" target="_blank" rel="noopener" class="mycode_url">https://github.com/uaOpenKore/uOKfiles/t...s/GStrader</a><br />
Below I will describe in more detail the logic of the macro to make it easier for beginners to understand. <br />
<br />
Macros available:<br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/macro-GStrader-pay_arche.txt" target="_blank" rel="noopener" class="mycode_url">macro-GStrader-pay_arche.txt</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/macro-GSbrewer-pay_arche.txt" target="_blank" rel="noopener" class="mycode_url">macro-GSbrewer-pay_arche.txt</a><br />
<br />
The files-lists are available:<br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/equipsFselling.txt" target="_blank" rel="noopener" class="mycode_url">equipsFselling.txt</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/itemsFholding.txt" target="_blank" rel="noopener" class="mycode_url">itemsFholding.txt</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/itemsFselling.txt" target="_blank" rel="noopener" class="mycode_url">itemsFselling.txt</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/potionsFcreating.txt" target="_blank" rel="noopener" class="mycode_url">potionsFcreating.txt</a><br />
<br />
additional files:<br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/sortGStrader.sh" target="_blank" rel="noopener" class="mycode_url">sortGStrader.sh</a><br />
<a href="https://github.com/uaOpenKore/uOKfiles/blob/main/macros/GStrader/itemsFexcluding.txt" target="_blank" rel="noopener" class="mycode_url">itemsFexcluding.txt</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[buy Meat to Guild Storage]]></title>
			<link>https://uaro.kiev.ua/forum/showthread.php?tid=35</link>
			<pubDate>Fri, 19 Apr 2024 12:56:43 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://uaro.kiev.ua/forum/member.php?action=profile&uid=3">Sergio</a>]]></dc:creator>
			<guid isPermaLink="false">https://uaro.kiev.ua/forum/showthread.php?tid=35</guid>
			<description><![CDATA[Macro for manually replenishing a guild storage with meat<br />
The bot buys 300 meat and puts it in the @gstorage. Repeats 20 times. Link to Payon locations <br />
running a macro with the command "macro mtogs" <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>macro mtogs {<br />
  set exclusive 1<br />
  do conf lockMap pay_arche<br />
  do tele 2<br />
  do move pay_arche 137 124<br />
  call BuyMeat<br />
  do conf lockMap pay_dun00<br />
  do move pay_dun00<br />
}<br />
<br />
macro BuyMeat {<br />
  set exclusive 1<br />
 &#36;c = 20<br />
 while (&#36;c &gt; 0) as loop<br />
  do talknpc 140 124 b b0,300 e<br />
  do c @gstorage<br />
  do storage add Meat<br />
  do storage close<br />
  pause 3<br />
  do c @storage<br />
  do storage close<br />
  pause 3<br />
  &#36;c--<br />
 end loop<br />
}</code></div></div>]]></description>
			<content:encoded><![CDATA[Macro for manually replenishing a guild storage with meat<br />
The bot buys 300 meat and puts it in the @gstorage. Repeats 20 times. Link to Payon locations <br />
running a macro with the command "macro mtogs" <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>macro mtogs {<br />
  set exclusive 1<br />
  do conf lockMap pay_arche<br />
  do tele 2<br />
  do move pay_arche 137 124<br />
  call BuyMeat<br />
  do conf lockMap pay_dun00<br />
  do move pay_dun00<br />
}<br />
<br />
macro BuyMeat {<br />
  set exclusive 1<br />
 &#36;c = 20<br />
 while (&#36;c &gt; 0) as loop<br />
  do talknpc 140 124 b b0,300 e<br />
  do c @gstorage<br />
  do storage add Meat<br />
  do storage close<br />
  pause 3<br />
  do c @storage<br />
  do storage close<br />
  pause 3<br />
  &#36;c--<br />
 end loop<br />
}</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Refine items macro]]></title>
			<link>https://uaro.kiev.ua/forum/showthread.php?tid=34</link>
			<pubDate>Fri, 19 Apr 2024 00:02:02 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://uaro.kiev.ua/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://uaro.kiev.ua/forum/showthread.php?tid=34</guid>
			<description><![CDATA[You need stand in prt_in 58 66 to macros work.<br />
1. Should put into your inventory items for example Battle Axe[4]<br />
2. Also put Phracon's into storage<br />
3. Run Openkore and wait until you get lots of +10 Battle Axe[4]  <img src="https://uaro.kiev.ua/forum/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_5" />  <br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro refine1 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 1<br />
    call {<br />
        do eq Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +1 Battle Axe [4]<br />
    }<br />
}<br />
automacro refine2 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+1 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 2<br />
    call {<br />
        do eq +1 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +2 Battle Axe [4]<br />
    }<br />
}<br />
automacro refine3 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+2 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 3<br />
    call {<br />
        do eq +2 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +3 Battle Axe [4]<br />
    }<br />
}<br />
automacro refine4 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+3 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 4<br />
    call {<br />
        do eq +3 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +4 Battle Axe [4]<br />
    }<br />
}<br />
<br />
<br />
automacro refine5 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+4 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 5<br />
    call {<br />
        do eq +4 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +5 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine6 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+5 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 6<br />
    call {<br />
        do eq +5 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +6 Battle Axe [4]<br />
    }<br />
}<br />
automacro refine7 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+6 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 7<br />
    call {<br />
        do eq +6 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +7 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine8 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+7 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 8<br />
    call {<br />
        do eq +7 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +8 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine9 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+8 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 9<br />
    call {<br />
        do eq +8 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +9 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine10 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+9 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 10<br />
    call {<br />
        do eq +9 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +10 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine_get_from_storage {<br />
    inventory Phracon = 0<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    call {<br />
        do c @storage<br />
        do storage get Phracon 50<br />
        do storage close<br />
    }<br />
}</code></div></div>]]></description>
			<content:encoded><![CDATA[You need stand in prt_in 58 66 to macros work.<br />
1. Should put into your inventory items for example Battle Axe[4]<br />
2. Also put Phracon's into storage<br />
3. Run Openkore and wait until you get lots of +10 Battle Axe[4]  <img src="https://uaro.kiev.ua/forum/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_5" />  <br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>automacro refine1 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 1<br />
    call {<br />
        do eq Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +1 Battle Axe [4]<br />
    }<br />
}<br />
automacro refine2 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+1 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 2<br />
    call {<br />
        do eq +1 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +2 Battle Axe [4]<br />
    }<br />
}<br />
automacro refine3 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+2 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 3<br />
    call {<br />
        do eq +2 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +3 Battle Axe [4]<br />
    }<br />
}<br />
automacro refine4 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+3 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 4<br />
    call {<br />
        do eq +3 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +4 Battle Axe [4]<br />
    }<br />
}<br />
<br />
<br />
automacro refine5 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+4 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 5<br />
    call {<br />
        do eq +4 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +5 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine6 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+5 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 6<br />
    call {<br />
        do eq +5 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +6 Battle Axe [4]<br />
    }<br />
}<br />
automacro refine7 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+6 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 7<br />
    call {<br />
        do eq +6 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +7 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine8 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+7 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 8<br />
    call {<br />
        do eq +7 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +8 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine9 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+8 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 9<br />
    call {<br />
        do eq +8 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +9 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine10 {<br />
    inventory Phracon &gt;= 1<br />
    inventory "+9 Battle Axe [4]" &gt;= 1<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    priority 10<br />
    call {<br />
        do eq +9 Battle Axe [4]<br />
        do talknpc 63 60 c r2 c r0 c w1 c w1 r0 w1 c c n<br />
        do uneq +10 Battle Axe [4]<br />
    }<br />
}<br />
<br />
automacro refine_get_from_storage {<br />
    inventory Phracon = 0<br />
    timeout 0<br />
    disabled 0<br />
    exclusive 1<br />
    call {<br />
        do c @storage<br />
        do storage get Phracon 50<br />
        do storage close<br />
    }<br />
}</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Party in town if I died]]></title>
			<link>https://uaro.kiev.ua/forum/showthread.php?tid=31</link>
			<pubDate>Wed, 17 Apr 2024 17:32:22 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://uaro.kiev.ua/forum/member.php?action=profile&uid=3">Sergio</a>]]></dc:creator>
			<guid isPermaLink="false">https://uaro.kiev.ua/forum/showthread.php?tid=31</guid>
			<description><![CDATA[example for uOK210 (openkore 2.1.x)<br />
<br />
automacro allToTown {<br />
    hp &lt; 20%<br />
    call {<br />
        do bus all tele 2<br />
    }<br />
    timeout 60<br />
}<br />
<br />
automacro allToTown2 {<br />
    console /You are now: Dead/<br />
    call {<br />
        do bus all tele 2<br />
    }<br />
    timeout 60<br />
}]]></description>
			<content:encoded><![CDATA[example for uOK210 (openkore 2.1.x)<br />
<br />
automacro allToTown {<br />
    hp &lt; 20%<br />
    call {<br />
        do bus all tele 2<br />
    }<br />
    timeout 60<br />
}<br />
<br />
automacro allToTown2 {<br />
    console /You are now: Dead/<br />
    call {<br />
        do bus all tele 2<br />
    }<br />
    timeout 60<br />
}]]></content:encoded>
		</item>
	</channel>
</rss>