<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wiki.legnes.com/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B4%D0%BE%D0%B1%D1%8B%D1%87%D0%B8_%D1%80%D1%83%D0%B4%D1%8B_%28Mining_script%29</id>
	<title>Скрипт для добычи руды (Mining script) - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.legnes.com/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B4%D0%BE%D0%B1%D1%8B%D1%87%D0%B8_%D1%80%D1%83%D0%B4%D1%8B_%28Mining_script%29"/>
	<link rel="alternate" type="text/html" href="http://wiki.legnes.com/index.php?title=%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B4%D0%BE%D0%B1%D1%8B%D1%87%D0%B8_%D1%80%D1%83%D0%B4%D1%8B_(Mining_script)&amp;action=history"/>
	<updated>2026-08-25T21:17:53Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://wiki.legnes.com/index.php?title=%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B4%D0%BE%D0%B1%D1%8B%D1%87%D0%B8_%D1%80%D1%83%D0%B4%D1%8B_(Mining_script)&amp;diff=3040&amp;oldid=prev</id>
		<title>Support в 04:58, 19 марта 2025</title>
		<link rel="alternate" type="text/html" href="http://wiki.legnes.com/index.php?title=%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B4%D0%BE%D0%B1%D1%8B%D1%87%D0%B8_%D1%80%D1%83%D0%B4%D1%8B_(Mining_script)&amp;diff=3040&amp;oldid=prev"/>
		<updated>2025-03-19T04:58:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 07:58, 19 марта 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l229&quot;&gt;Строка 229:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 229:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		var timeout = Orion.Now() + 10000;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		var timeout = Orion.Now() + 10000;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		var mr = Orion.Count(&amp;#039;mr&amp;#039;);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		var mr = Orion.Count(&amp;#039;mr&amp;#039;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		Orion.Cast(&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Recall&lt;/del&gt;&#039;, rune);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		Orion.Cast(&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;32&lt;/ins&gt;&#039;, rune);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		while (mr == Orion.Count(&amp;#039;mr&amp;#039;) &amp;amp;&amp;amp; timeout &amp;gt; Orion.Now())&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		while (mr == Orion.Count(&amp;#039;mr&amp;#039;) &amp;amp;&amp;amp; timeout &amp;gt; Orion.Now())&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l279&quot;&gt;Строка 279:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 279:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		var timeout = Orion.Now() + 10000;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		var timeout = Orion.Now() + 10000;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		var mr = Orion.Count(&amp;#039;mr&amp;#039;);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		var mr = Orion.Count(&amp;#039;mr&amp;#039;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		Orion.Cast(&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mark&lt;/del&gt;&#039;, rune);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		Orion.Cast(&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;45&lt;/ins&gt;&#039;, rune);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		while (mr == Orion.Count(&amp;#039;mr&amp;#039;) &amp;amp;&amp;amp; timeout &amp;gt; Orion.Now())&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		while (mr == Orion.Count(&amp;#039;mr&amp;#039;) &amp;amp;&amp;amp; timeout &amp;gt; Orion.Now())&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l418&quot;&gt;Строка 418:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 418:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				if (count &amp;gt; 0 &amp;amp;&amp;amp; Orion.Count(&amp;#039;ga&amp;#039;) &amp;gt; 0 &amp;amp;&amp;amp; Orion.Count(&amp;#039;sa&amp;#039;) &amp;gt; 0)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				if (count &amp;gt; 0 &amp;amp;&amp;amp; Orion.Count(&amp;#039;ga&amp;#039;) &amp;gt; 0 &amp;amp;&amp;amp; Orion.Count(&amp;#039;sa&amp;#039;) &amp;gt; 0)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					Orion.Cast(&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dispel&lt;/del&gt;&#039;, summon.Serial());&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					Orion.Cast(&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;41&lt;/ins&gt;&#039;, summon.Serial());&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				else&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				else&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					return false;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					return false;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Support</name></author>
	</entry>
	<entry>
		<id>http://wiki.legnes.com/index.php?title=%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B4%D0%BE%D0%B1%D1%8B%D1%87%D0%B8_%D1%80%D1%83%D0%B4%D1%8B_(Mining_script)&amp;diff=2794&amp;oldid=prev</id>
		<title>Support: Новая страница: «Скрипт для Legnes/Orion Assist. Вариант с возвратом (Recall) по руне в банке. Отстреливает &quot;слабых&quot; стражей &#039;&#039;(Ore Guardian)&#039;&#039; из лука с примитивным отбеганием, использует магию Рассеивание &#039;&#039;(Dispel)&#039;&#039; на призванных стражем существ.  &lt;p&gt;Автор скрипта: &#039;&#039;&#039;[https://legnes.com/user/Hotride Hotride ]&#039;&#039;&#039;&lt;/p&gt; &lt;...»</title>
		<link rel="alternate" type="text/html" href="http://wiki.legnes.com/index.php?title=%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%B4%D0%BB%D1%8F_%D0%B4%D0%BE%D0%B1%D1%8B%D1%87%D0%B8_%D1%80%D1%83%D0%B4%D1%8B_(Mining_script)&amp;diff=2794&amp;oldid=prev"/>
		<updated>2024-12-09T09:31:03Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Скрипт для Legnes/Orion Assist. Вариант с возвратом (Recall) по руне в банке. Отстреливает &amp;quot;слабых&amp;quot; стражей &amp;#039;&amp;#039;(Ore Guardian)&amp;#039;&amp;#039; из лука с примитивным отбеганием, использует магию Рассеивание &amp;#039;&amp;#039;(Dispel)&amp;#039;&amp;#039; на призванных стражем существ.  &amp;lt;p&amp;gt;Автор скрипта: &amp;#039;&amp;#039;&amp;#039;[https://legnes.com/user/Hotride Hotride ]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt; &amp;lt;...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Скрипт для Legnes/Orion Assist.&lt;br /&gt;
Вариант с возвратом (Recall) по руне в банке.&lt;br /&gt;
Отстреливает &amp;quot;слабых&amp;quot; стражей &amp;#039;&amp;#039;(Ore Guardian)&amp;#039;&amp;#039; из лука с примитивным отбеганием, использует магию Рассеивание &amp;#039;&amp;#039;(Dispel)&amp;#039;&amp;#039; на призванных стражем существ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Автор скрипта: &amp;#039;&amp;#039;&amp;#039;[https://legnes.com/user/Hotride Hotride ]&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// В ToolsBag должны лежать расходники:&lt;br /&gt;
// Реги на реколл и диспел, свитки диспела, бинты, стрелы для лука, кирки&lt;br /&gt;
// Руны в пещеры должны лежать в банке&lt;br /&gt;
&lt;br /&gt;
// Использовать фильтр руды, 0 - не использовать, 1 - использовать&lt;br /&gt;
var UseOreNameFilter = 1;&lt;br /&gt;
&lt;br /&gt;
// Названия руды для игнорирования жилы (не продолжать копать)&lt;br /&gt;
var IgnoreOreNames = &amp;#039;Iron ore|Железная руда&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Использовать хайд, 0 - не использовать, 1 - использовать&lt;br /&gt;
var UseHidding = 0;&lt;br /&gt;
&lt;br /&gt;
// Выгружать руду с переплавкой, 0 - не плавить, 1 - плавить&lt;br /&gt;
var UnloadWithSmelt = 1;&lt;br /&gt;
&lt;br /&gt;
// Звук при появлении элементаля&lt;br /&gt;
var SoundForGuard = &amp;#039;C:/a.wav&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Количество повтора звука&lt;br /&gt;
var SoundRepeatCount = 5;&lt;br /&gt;
&lt;br /&gt;
// Серийник сундука, в котором находятся мешки (может быть пустым)&lt;br /&gt;
var TopChest = &amp;#039;0x401EFC28&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Серийник мешка с инструментами, регами и едой&lt;br /&gt;
var ToolsBag = &amp;#039;0x402D405A&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Серийник мешка для руды&lt;br /&gt;
var OresBag = &amp;#039;0x401C01A2&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Типы еды&lt;br /&gt;
var FoodType = &amp;#039;0x09B7|0x09F2|0x097B&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Серийник оружия, который использовать при появлении гварда&lt;br /&gt;
var UseWeaponForGuard = &amp;#039;guard_weapon&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Серийник руны домой&lt;br /&gt;
var RuneHome = &amp;#039;0x40325C4C&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// Серийники рун в пещеры&lt;br /&gt;
var RunesToCave =&lt;br /&gt;
[&lt;br /&gt;
	// Trinsic secret cave&lt;br /&gt;
	&amp;#039;0x40299CC3&amp;#039;,&lt;br /&gt;
	// Trinsic cave&lt;br /&gt;
	&amp;#039;0x40299CBB&amp;#039;,&lt;br /&gt;
	// Hytloth 1&lt;br /&gt;
	&amp;#039;0x402D1461&amp;#039;,&lt;br /&gt;
	// Hytloth 2&lt;br /&gt;
	&amp;#039;0x402D145A&amp;#039;,&lt;br /&gt;
	// Cave 3&lt;br /&gt;
	&amp;#039;0x40299CB6&amp;#039;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
// Точки обкопки в пещерах&lt;br /&gt;
var CaveSpots =&lt;br /&gt;
[&lt;br /&gt;
	// Trinsic secret cave&lt;br /&gt;
	[&lt;br /&gt;
		[ 1662, 2935 ],&lt;br /&gt;
		[ 1661, 2934 ],&lt;br /&gt;
		[ 1659, 2932 ],&lt;br /&gt;
		[ 1655, 2932 ],&lt;br /&gt;
		[ 1655, 2927 ],&lt;br /&gt;
		[ 1653, 2926 ],&lt;br /&gt;
		[ 1653, 2922 ],&lt;br /&gt;
		[ 1652, 2917 ],&lt;br /&gt;
		[ 1650, 2915 ],&lt;br /&gt;
		[ 1649, 2912 ],&lt;br /&gt;
		[ 1648, 2908 ],&lt;br /&gt;
		[ 1647, 2903 ],&lt;br /&gt;
		[ 1647, 2898 ],&lt;br /&gt;
		[ 1648, 2894 ],&lt;br /&gt;
	],&lt;br /&gt;
	// Trinsic cave&lt;br /&gt;
	[&lt;br /&gt;
		[ 1490, 2852 ],&lt;br /&gt;
		[ 1494, 2852 ],&lt;br /&gt;
		[ 1491, 2847 ],&lt;br /&gt;
		[ 1495, 2848 ],&lt;br /&gt;
		[ 1495, 2843 ],&lt;br /&gt;
		[ 1494, 2839 ],&lt;br /&gt;
		[ 1495, 2834 ],&lt;br /&gt;
		[ 1491, 2834 ],&lt;br /&gt;
		[ 1489, 2837 ],&lt;br /&gt;
		[ 1484, 2837 ],&lt;br /&gt;
		[ 1481, 2840 ],&lt;br /&gt;
		[ 1478, 2842 ],&lt;br /&gt;
		[ 1488, 2834 ],&lt;br /&gt;
		[ 1492, 2829 ],&lt;br /&gt;
		[ 1488, 2825 ],&lt;br /&gt;
		[ 1489, 2821 ],&lt;br /&gt;
		[ 1492, 2824 ],&lt;br /&gt;
		[ 1496, 2828 ],&lt;br /&gt;
		[ 1498, 2830 ],&lt;br /&gt;
	],&lt;br /&gt;
	// Hytloth 1&lt;br /&gt;
	[&lt;br /&gt;
		[ 4605, 3821 ],&lt;br /&gt;
		[ 4602, 3819 ],&lt;br /&gt;
		[ 4600, 3815 ],&lt;br /&gt;
		[ 4598, 3813 ],&lt;br /&gt;
		[ 4600, 3811 ],&lt;br /&gt;
		[ 4604, 3813 ],&lt;br /&gt;
		[ 4605, 3816 ],&lt;br /&gt;
		[ 4609, 3817 ],&lt;br /&gt;
		[ 4612, 3817 ],&lt;br /&gt;
		[ 4610, 3820 ]&lt;br /&gt;
	],&lt;br /&gt;
	// Hytloth 2&lt;br /&gt;
	[&lt;br /&gt;
		[ 4552, 3172 ],&lt;br /&gt;
		[ 4551, 3175 ],&lt;br /&gt;
		[ 4548, 3175 ],&lt;br /&gt;
		[ 4547, 3172 ],&lt;br /&gt;
		[ 4547, 3167 ],&lt;br /&gt;
		[ 4551, 3167 ]&lt;br /&gt;
	],&lt;br /&gt;
	// Cave 3&lt;br /&gt;
	[&lt;br /&gt;
		[ 996, 1600 ],&lt;br /&gt;
		[ 998, 1600 ],&lt;br /&gt;
		[ 996, 1595 ],&lt;br /&gt;
		[ 996, 1590 ],&lt;br /&gt;
		[ 991, 1593 ],&lt;br /&gt;
		[ 989, 1589 ],&lt;br /&gt;
		[ 992, 1588 ],&lt;br /&gt;
		[ 990, 1584 ],&lt;br /&gt;
		[ 995, 1585 ],&lt;br /&gt;
		[ 994, 1580 ],&lt;br /&gt;
		[ 998, 1581 ],&lt;br /&gt;
		[ 996, 1576 ],&lt;br /&gt;
		[ 1000, 1576 ],&lt;br /&gt;
		[ 1003, 1579 ],&lt;br /&gt;
		[ 1003, 1584 ],&lt;br /&gt;
		[ 1000, 1586 ],&lt;br /&gt;
		[ 1004, 1589 ],&lt;br /&gt;
		[ 1001, 1591 ],&lt;br /&gt;
		[ 1001, 1596 ],&lt;br /&gt;
		[ 1005, 1594 ],&lt;br /&gt;
		[ 1008, 1595 ],&lt;br /&gt;
		[ 1010, 1592 ],&lt;br /&gt;
		[ 1008, 1589 ],&lt;br /&gt;
		[ 1007, 1586 ]&lt;br /&gt;
	]&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
// Не трогать!!!&lt;br /&gt;
var FakeId = 0;&lt;br /&gt;
&lt;br /&gt;
function UsePickaxe(_private)&lt;br /&gt;
{&lt;br /&gt;
	if (!Orion.UseType(&amp;#039;0x0E85&amp;#039;, &amp;#039;any&amp;#039;, self, false))&lt;br /&gt;
	{&lt;br /&gt;
		if (!Orion.UseType(&amp;#039;0x0E85&amp;#039;))&lt;br /&gt;
		{&lt;br /&gt;
			Orion.Print(&amp;#039;0x0021&amp;#039;, &amp;#039;Your tool is gone!&amp;#039;);&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function WalkHangChecker(_private)&lt;br /&gt;
{&lt;br /&gt;
	var x = Player.X();&lt;br /&gt;
	var y = Player.Y();&lt;br /&gt;
	var count = 0;&lt;br /&gt;
&lt;br /&gt;
	while (true)&lt;br /&gt;
	{&lt;br /&gt;
		if (x == Player.X() &amp;amp;&amp;amp; y == Player.Y())&lt;br /&gt;
			count++;&lt;br /&gt;
		else&lt;br /&gt;
			count = 0;&lt;br /&gt;
&lt;br /&gt;
		if (count &amp;gt;= 15)&lt;br /&gt;
		{&lt;br /&gt;
			Orion.StopWalking();&lt;br /&gt;
			count = 0;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		x = Player.X();&lt;br /&gt;
		y = Player.Y();&lt;br /&gt;
&lt;br /&gt;
		Orion.Wait(1000);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function WalkToWrapper(x, y, distance, run)&lt;br /&gt;
{&lt;br /&gt;
	Orion.Exec(&amp;#039;WalkHangChecker&amp;#039;);&lt;br /&gt;
	Orion.Wait(20);&lt;br /&gt;
	// Потому что на пути следования могут быть динамические препятствия&lt;br /&gt;
	for (var i = 0; i &amp;lt; 3; i++)&lt;br /&gt;
	{&lt;br /&gt;
		if (Orion.WalkTo(x, y, 0, distance, 255, run))&lt;br /&gt;
		{&lt;br /&gt;
			Orion.Terminate(&amp;#039;WalkHangChecker&amp;#039;);&lt;br /&gt;
			Orion.Wait(20);&lt;br /&gt;
			return true;&lt;br /&gt;
			}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	Orion.Terminate(&amp;#039;WalkHangChecker&amp;#039;);&lt;br /&gt;
	Orion.Wait(20);&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function RecallTo(rune)&lt;br /&gt;
{&lt;br /&gt;
	var x = Player.X();&lt;br /&gt;
	var y = Player.Y();&lt;br /&gt;
	var successCount = 0;&lt;br /&gt;
&lt;br /&gt;
	while (x == Player.X() &amp;amp;&amp;amp; y == Player.Y() &amp;amp;&amp;amp; successCount &amp;lt; 5)&lt;br /&gt;
	{&lt;br /&gt;
		Orion.WarMode(0);&lt;br /&gt;
		Orion.Wait(100);&lt;br /&gt;
		Orion.ClearJournal();&lt;br /&gt;
		var timeout = Orion.Now() + 10000;&lt;br /&gt;
		var mr = Orion.Count(&amp;#039;mr&amp;#039;);&lt;br /&gt;
		Orion.Cast(&amp;#039;Recall&amp;#039;, rune);&lt;br /&gt;
&lt;br /&gt;
		while (mr == Orion.Count(&amp;#039;mr&amp;#039;) &amp;amp;&amp;amp; timeout &amp;gt; Orion.Now())&lt;br /&gt;
			Orion.Wait(100);&lt;br /&gt;
&lt;br /&gt;
		if (Orion.InJournal(&amp;#039;The spell fizzles&amp;#039;, &amp;#039;my|sys&amp;#039;) == null)&lt;br /&gt;
			successCount++;&lt;br /&gt;
&lt;br /&gt;
		var msgUses = Orion.InJournal(&amp;#039;uses left&amp;#039;, &amp;#039;my|sys&amp;#039;);&lt;br /&gt;
	&lt;br /&gt;
		if (msgUses != null)&lt;br /&gt;
		{&lt;br /&gt;
			for (var i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
			{&lt;br /&gt;
				if (Orion.Contains(msgUses.Text(), &amp;#039;has &amp;#039; + i + &amp;#039; uses left&amp;#039;))&lt;br /&gt;
				{&lt;br /&gt;
					MarkRune(rune);&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (Player.Mana(&amp;#039;%&amp;#039;) &amp;lt; 99)&lt;br /&gt;
	{&lt;br /&gt;
		Orion.WarMode(false);&lt;br /&gt;
		Orion.Exec(&amp;#039;AutoMeditation&amp;#039;, true);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function MarkRune(rune)&lt;br /&gt;
{&lt;br /&gt;
	while (true)&lt;br /&gt;
	{&lt;br /&gt;
		if (Player.Mana(&amp;#039;%&amp;#039;) &amp;lt; 40)&lt;br /&gt;
		{&lt;br /&gt;
			while (Player.Mana(&amp;#039;%&amp;#039;) &amp;lt; 100)&lt;br /&gt;
			{&lt;br /&gt;
				Orion.UseSkill(&amp;#039;46&amp;#039;);&lt;br /&gt;
				Orion.Wait(500);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		Orion.WarMode(0);&lt;br /&gt;
		Orion.Wait(100);&lt;br /&gt;
		Orion.ClearJournal();&lt;br /&gt;
		var timeout = Orion.Now() + 10000;&lt;br /&gt;
		var mr = Orion.Count(&amp;#039;mr&amp;#039;);&lt;br /&gt;
		Orion.Cast(&amp;#039;Mark&amp;#039;, rune);&lt;br /&gt;
&lt;br /&gt;
		while (mr == Orion.Count(&amp;#039;mr&amp;#039;) &amp;amp;&amp;amp; timeout &amp;gt; Orion.Now())&lt;br /&gt;
			Orion.Wait(100);&lt;br /&gt;
&lt;br /&gt;
		if (Orion.InJournal(&amp;#039;The spell fizzles&amp;#039;, &amp;#039;my|sys&amp;#039;) == null)&lt;br /&gt;
			break;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function Restock(graphic, count)&lt;br /&gt;
{&lt;br /&gt;
	var val = Orion.Count(graphic);&lt;br /&gt;
	&lt;br /&gt;
	while (val &amp;lt; count)&lt;br /&gt;
	{&lt;br /&gt;
		if (!Orion.MoveItemType(graphic, &amp;#039;any&amp;#039;, ToolsBag, count - val))&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		Orion.Wait(400);&lt;br /&gt;
		val = Orion.Count(graphic);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function CheckOverweight(forced, runeCave)&lt;br /&gt;
{&lt;br /&gt;
	if (forced || Player.Weight(&amp;#039;%&amp;#039;) &amp;gt;= 97)&lt;br /&gt;
	{&lt;br /&gt;
		var oldX = Player.X();&lt;br /&gt;
		var oldY = Player.Y();&lt;br /&gt;
&lt;br /&gt;
		if (!forced)&lt;br /&gt;
			Orion.Print(&amp;#039;0x0021&amp;#039;, &amp;#039;Weight limit reached!!!&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		RecallTo(RuneHome);&lt;br /&gt;
&lt;br /&gt;
		if (UnloadWithSmelt)&lt;br /&gt;
		{&lt;br /&gt;
			while (Orion.UseType(&amp;#039;0x19B7|0x19BA|0x19B8|0x19B9&amp;#039;))&lt;br /&gt;
				Orion.Wait(100);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (TopChest != &amp;#039;&amp;#039;)&lt;br /&gt;
			Orion.UseObject(TopChest);&lt;br /&gt;
&lt;br /&gt;
		Orion.UseObject(ToolsBag);&lt;br /&gt;
		Orion.UseObject(OresBag);&lt;br /&gt;
		Orion.Wait(200);&lt;br /&gt;
&lt;br /&gt;
		UnloadIngots();&lt;br /&gt;
		UnloadOres();&lt;br /&gt;
&lt;br /&gt;
		// Bloody bandages&lt;br /&gt;
		if (Orion.MoveItemType(&amp;#039;0x0E20&amp;#039;, &amp;#039;0&amp;#039;, backpack, 0, ToolsBag))&lt;br /&gt;
			Orion.Wait(400);&lt;br /&gt;
&lt;br /&gt;
		if (Orion.Count(FoodType, &amp;#039;0&amp;#039;) &amp;gt; 0 || Orion.MoveItemType(FoodType, &amp;#039;0&amp;#039;, ToolsBag, 1))&lt;br /&gt;
		{&lt;br /&gt;
			Orion.UseType(FoodType, &amp;#039;0&amp;#039;);&lt;br /&gt;
			Orion.Wait(100);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		Restock(&amp;#039;0x0E85&amp;#039;, 4); // Pickaxe&lt;br /&gt;
		Restock(&amp;#039;0x0F3F&amp;#039;, 100); // Arrows&lt;br /&gt;
		Restock(&amp;#039;0x1F55&amp;#039;, 20); // Dispel scrolls&lt;br /&gt;
		//Restock(&amp;#039;0x1F62&amp;#039;, 10); // Mass dispel scrolls&lt;br /&gt;
		Restock(&amp;#039;bandage&amp;#039;, 100);&lt;br /&gt;
		Restock(&amp;#039;mr&amp;#039;, 50);&lt;br /&gt;
		Restock(&amp;#039;bp&amp;#039;, 20);&lt;br /&gt;
		Restock(&amp;#039;bm&amp;#039;, 20);&lt;br /&gt;
		Restock(&amp;#039;ga&amp;#039;, 30);&lt;br /&gt;
		Restock(&amp;#039;sa&amp;#039;, 30);&lt;br /&gt;
&lt;br /&gt;
		if (Orion.Count(&amp;#039;0x0E85&amp;#039;) == 0)&lt;br /&gt;
		{&lt;br /&gt;
			Orion.Print(&amp;#039;0x0021&amp;#039;, &amp;#039;No pickaxes!!!&amp;#039;);&lt;br /&gt;
			Orion.PauseScript();&lt;br /&gt;
		}&lt;br /&gt;
		else if (Orion.Count(&amp;#039;0x0F3F&amp;#039;) &amp;lt; 30)&lt;br /&gt;
		{&lt;br /&gt;
			Orion.Print(&amp;#039;0x0021&amp;#039;, &amp;#039;No arrows!!!&amp;#039;);&lt;br /&gt;
			Orion.PauseScript();&lt;br /&gt;
		}&lt;br /&gt;
		else if (Orion.Count(&amp;#039;mr&amp;#039;) &amp;lt; 5 || Orion.Count(&amp;#039;bp&amp;#039;) &amp;lt; 5 || Orion.Count(&amp;#039;bm&amp;#039;) &amp;lt; 5)&lt;br /&gt;
		{&lt;br /&gt;
			Orion.Print(&amp;#039;0x0021&amp;#039;, &amp;#039;No reagents to recalls!!!&amp;#039;);&lt;br /&gt;
			Orion.PauseScript();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (runeCave != &amp;#039;&amp;#039;)&lt;br /&gt;
			RecallTo(runeCave);&lt;br /&gt;
&lt;br /&gt;
		if (!forced)&lt;br /&gt;
			WalkToWrapper(oldX, oldY, 0,  (UseHidding == 0 || !Player.Hidden()));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function PlayGuardAlarm(_private)&lt;br /&gt;
{&lt;br /&gt;
	for (var i = 0; i &amp;lt; SoundRepeatCount; i++)&lt;br /&gt;
	{&lt;br /&gt;
		Orion.PlayWav(SoundForGuard);&lt;br /&gt;
		Orion.Wait(1000);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function DispelSummons(guard)&lt;br /&gt;
{&lt;br /&gt;
	var summon = null;&lt;br /&gt;
&lt;br /&gt;
	if (guard != null &amp;amp;&amp;amp; guard.Color() == &amp;#039;0x0000&amp;#039;)&lt;br /&gt;
		summon = guard;&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		var summons = Orion.FindTypeEx(&amp;#039;0x000E|0x000F|0x0009|0x023E&amp;#039;, &amp;#039;0&amp;#039;, ground, &amp;#039;mobile|near&amp;#039;, 10);&lt;br /&gt;
&lt;br /&gt;
		if (summons.length &amp;gt; 0)&lt;br /&gt;
			summon = summons[0];&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if (summon != null)&lt;br /&gt;
	{&lt;br /&gt;
		while (summon.Exists() &amp;amp;&amp;amp; Player.Hits(&amp;#039;%&amp;#039;) &amp;gt;= 50 &amp;amp;&amp;amp; Player.Mana() &amp;gt;= 20)&lt;br /&gt;
		{&lt;br /&gt;
			var timeout = Orion.Now() + 6000;&lt;br /&gt;
			var type = &amp;#039;0x1F55&amp;#039;;&lt;br /&gt;
			var count = Orion.Count(type);&lt;br /&gt;
&lt;br /&gt;
			if (count &amp;gt; 0)&lt;br /&gt;
			{&lt;br /&gt;
				Orion.WaitTargetObject(summon.Serial());&lt;br /&gt;
				Orion.UseType(type);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				type = &amp;#039;mr&amp;#039;;&lt;br /&gt;
				count = Orion.Count(type);&lt;br /&gt;
&lt;br /&gt;
				if (count &amp;gt; 0 &amp;amp;&amp;amp; Orion.Count(&amp;#039;ga&amp;#039;) &amp;gt; 0 &amp;amp;&amp;amp; Orion.Count(&amp;#039;sa&amp;#039;) &amp;gt; 0)&lt;br /&gt;
					Orion.Cast(&amp;#039;Dispel&amp;#039;, summon.Serial());&lt;br /&gt;
				else&lt;br /&gt;
					return false;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			while (count == Orion.Count(type) &amp;amp;&amp;amp; timeout &amp;gt; Orion.Now())&lt;br /&gt;
				Orion.Wait(100);&lt;br /&gt;
&lt;br /&gt;
			Orion.Wait(100);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return !summon.Exists();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function GetDirectionToFlee(target, mirrored, inversedXY)&lt;br /&gt;
{&lt;br /&gt;
	var targetX = target.X();&lt;br /&gt;
	var targetY = target.Y();&lt;br /&gt;
	var x = Player.X();&lt;br /&gt;
	var y = Player.Y();&lt;br /&gt;
&lt;br /&gt;
	if (mirrored)&lt;br /&gt;
	{&lt;br /&gt;
		targetX = Player.X();&lt;br /&gt;
		targetY = Player.Y();&lt;br /&gt;
		x = target.X();&lt;br /&gt;
		y = target.Y();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if (inversedXY)&lt;br /&gt;
	{&lt;br /&gt;
		var temp = targetX;&lt;br /&gt;
		targetX = targetY;&lt;br /&gt;
		targetY = temp;&lt;br /&gt;
&lt;br /&gt;
		temp = x;&lt;br /&gt;
		x = y;&lt;br /&gt;
		y = temp;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if (x == targetX)&lt;br /&gt;
	{&lt;br /&gt;
		if (y &amp;lt; targetY)&lt;br /&gt;
			return 0;&lt;br /&gt;
		else //if (y &amp;gt;= targetY)&lt;br /&gt;
			return 4;&lt;br /&gt;
	}&lt;br /&gt;
	else if (y == targetY)&lt;br /&gt;
	{&lt;br /&gt;
		if (x &amp;lt; targetX)&lt;br /&gt;
			return 6;&lt;br /&gt;
		else //if (x &amp;gt; targetX)&lt;br /&gt;
			return 2;&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		if (x &amp;gt; targetX)&lt;br /&gt;
		{&lt;br /&gt;
			if (y &amp;lt; targetY)&lt;br /&gt;
				return 1;&lt;br /&gt;
			else //if (y &amp;gt; targetY)&lt;br /&gt;
				return 3;&lt;br /&gt;
		}&lt;br /&gt;
		else //if (x &amp;lt; targetX)&lt;br /&gt;
		{&lt;br /&gt;
			if (y &amp;gt; targetY)&lt;br /&gt;
				return 5;&lt;br /&gt;
			else //if (y &amp;lt; targetY)&lt;br /&gt;
				return 7;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function Flee(target, direction, distance)&lt;br /&gt;
{&lt;br /&gt;
	switch (direction)&lt;br /&gt;
	{&lt;br /&gt;
		case 0:&lt;br /&gt;
			return Orion.WalkTo(target.X(), target.Y() - distance, 0, 0, 255, true);&lt;br /&gt;
		case 1:&lt;br /&gt;
			return Orion.WalkTo(target.X() + distance, target.Y() - distance, 0, 0, 255, true);&lt;br /&gt;
		case 2:&lt;br /&gt;
			return Orion.WalkTo(target.X() + distance, target.Y(), 0, 0, 255, true);&lt;br /&gt;
		case 3:&lt;br /&gt;
			return Orion.WalkTo(target.X() + distance, target.Y() + distance, 0, 0, 255, true);&lt;br /&gt;
		case 4:&lt;br /&gt;
			return Orion.WalkTo(target.X(), target.Y() + distance, 0, 0, 255, true);&lt;br /&gt;
		case 5:&lt;br /&gt;
			return Orion.WalkTo(target.X() - distance, target.Y() + distance, 0, 0, 255, true);&lt;br /&gt;
		case 6:&lt;br /&gt;
			return Orion.WalkTo(target.X() - distance, target.Y(), 0, 0, 255, true);&lt;br /&gt;
		case 7:&lt;br /&gt;
			return Orion.WalkTo(target.X() - distance, target.Y() - distance, 0, 0, 255, true);&lt;br /&gt;
		default:&lt;br /&gt;
			break;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function CheckGuards(_private)&lt;br /&gt;
{&lt;br /&gt;
	var guards = Orion.FindTypeEx(&amp;#039;0x000E&amp;#039;, &amp;#039;any&amp;#039;, ground, &amp;#039;mobile|near&amp;#039;, 10);&lt;br /&gt;
&lt;br /&gt;
	if (guards.length &amp;gt; 0)&lt;br /&gt;
	{&lt;br /&gt;
		var oldX = Player.X();&lt;br /&gt;
		var oldY = Player.Y();&lt;br /&gt;
&lt;br /&gt;
		if (UseWeaponForGuard != &amp;#039;&amp;#039;)&lt;br /&gt;
			Orion.UseObject(UseWeaponForGuard);&lt;br /&gt;
&lt;br /&gt;
		var guard = guards[0];&lt;br /&gt;
&lt;br /&gt;
		if (Orion.Contains(&amp;#039;0x07D1|0x0253|0x052D|0x0455|0x0486|0x0487&amp;#039;, guard.Color()))&lt;br /&gt;
		{&lt;br /&gt;
			Orion.Exec(&amp;#039;PlayGuardAlarm&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			if (!Player.Hidden())&lt;br /&gt;
			{&lt;br /&gt;
				Orion.WarMode(false);&lt;br /&gt;
				Orion.Wait(100);&lt;br /&gt;
				Orion.UseSkill(&amp;#039;21&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			Orion.PauseScript();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		Orion.WarMode(true);&lt;br /&gt;
		Orion.Ignore(guard.Serial());&lt;br /&gt;
&lt;br /&gt;
		while (guard.Exists() &amp;amp;&amp;amp; Player.Hits(&amp;#039;%&amp;#039;) &amp;gt;= 50)&lt;br /&gt;
		{&lt;br /&gt;
			if (guard.Distance() &amp;gt; 6)&lt;br /&gt;
			{&lt;br /&gt;
				Orion.WalkTo(guard.X(), guard.Y(), 0, 4, 255, true);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				var distance = 4;&lt;br /&gt;
&lt;br /&gt;
				if (guard.Distance() &amp;lt; distance)&lt;br /&gt;
				{&lt;br /&gt;
					var direction = GetDirectionToFlee(guard, false, false);&lt;br /&gt;
&lt;br /&gt;
					if (!Flee(guard, direction, distance))&lt;br /&gt;
					{&lt;br /&gt;
						direction = GetDirectionToFlee(guard, false, true);&lt;br /&gt;
&lt;br /&gt;
						if (!Flee(guard, direction, distance))&lt;br /&gt;
						{&lt;br /&gt;
							direction = GetDirectionToFlee(guard, true, true);&lt;br /&gt;
&lt;br /&gt;
							if (!Flee(guard, direction, distance))&lt;br /&gt;
							{&lt;br /&gt;
								direction = GetDirectionToFlee(guard, true, false);&lt;br /&gt;
								Flee(guard, direction, distance);&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			Orion.Attack(guard.Serial());&lt;br /&gt;
			Orion.Wait(500);&lt;br /&gt;
			&lt;br /&gt;
			if (!DispelSummons(guard))&lt;br /&gt;
				break;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (guard.Exists())&lt;br /&gt;
		{&lt;br /&gt;
			Orion.Exec(&amp;#039;PlayGuardAlarm&amp;#039;);&lt;br /&gt;
			Orion.PauseScript();&lt;br /&gt;
		}&lt;br /&gt;
		else&lt;br /&gt;
		{&lt;br /&gt;
			DispelSummons(null);&lt;br /&gt;
&lt;br /&gt;
			// Blade spirits&lt;br /&gt;
			while (Player.Hits(&amp;#039;%&amp;#039;) &amp;gt;= 50)&lt;br /&gt;
			{&lt;br /&gt;
				var summons = Orion.FindTypeEx(&amp;#039;0x023E&amp;#039;, &amp;#039;any&amp;#039;, ground, &amp;#039;mobile|near&amp;#039;, 10);&lt;br /&gt;
&lt;br /&gt;
				if (summons.length == 0)&lt;br /&gt;
					break;&lt;br /&gt;
&lt;br /&gt;
				guard = summons[0];&lt;br /&gt;
				Orion.Ignore(guard.Serial());&lt;br /&gt;
&lt;br /&gt;
				while (guard.Exists() &amp;amp;&amp;amp; Player.Hits(&amp;#039;%&amp;#039;) &amp;gt;= 50)&lt;br /&gt;
				{&lt;br /&gt;
					Orion.Attack(guard.Serial());&lt;br /&gt;
					Orion.Wait(500);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (Player.Mana(&amp;#039;%&amp;#039;) &amp;lt; 99)&lt;br /&gt;
		{&lt;br /&gt;
			Orion.WarMode(false);&lt;br /&gt;
			Orion.Exec(&amp;#039;AutoMeditation&amp;#039;, true);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var corpses = Orion.FindTypeEx(&amp;#039;0x2006&amp;#039;, &amp;#039;any&amp;#039;, ground, &amp;#039;&amp;#039;, 10);&lt;br /&gt;
&lt;br /&gt;
		if (corpses.length &amp;gt; 0)&lt;br /&gt;
		{&lt;br /&gt;
			for (var c = 0; c &amp;lt; corpses.length; c++)&lt;br /&gt;
			{&lt;br /&gt;
				var corpse = corpses[c];&lt;br /&gt;
				WalkToWrapper(corpse.X(), corpse.Y(), 1, true);&lt;br /&gt;
				Orion.Wait(1000);&lt;br /&gt;
				Orion.UseObject(corpse.Serial());&lt;br /&gt;
				Orion.Ignore(corpse.Serial());&lt;br /&gt;
				Orion.Wait(2500);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		else&lt;br /&gt;
		{&lt;br /&gt;
			Orion.Print(&amp;#039;0x0021&amp;#039;, &amp;#039;Corpse not found!&amp;#039;);&lt;br /&gt;
			Orion.Exec(&amp;#039;PlayGuardAlarm&amp;#039;);&lt;br /&gt;
			Orion.PauseScript();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		Orion.WarMode(false);&lt;br /&gt;
		WalkToWrapper(oldX, oldY, 0,  (UseHidding == 0 || !Player.Hidden()));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function AutoMeditation(_private)&lt;br /&gt;
{&lt;br /&gt;
	while (Player.Hits(&amp;#039;%&amp;#039;) &amp;gt; 50 &amp;amp;&amp;amp; Player.Mana(&amp;#039;%&amp;#039;) &amp;lt; 99)&lt;br /&gt;
	{&lt;br /&gt;
		Orion.UseSkill(&amp;#039;46&amp;#039;);&lt;br /&gt;
		Orion.Wait(500);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function MiningDig(runeCave)&lt;br /&gt;
{&lt;br /&gt;
	var text = &amp;#039;в свой рюкзак|in your pack|Вы расшатываете несколько камней, но не можете найти|You loosen some rocks but fail to find|Это слишком далеко|That is too far away|Цель находится вне прямой видимости|Target is not in line of sight|Здесь нет руды, которую можно было бы добывать|There is no ore here to mine&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	for (var x = -2; x &amp;lt;= 2; x++)&lt;br /&gt;
	{&lt;br /&gt;
		for (var y = -2; y &amp;lt;= 2; y++)&lt;br /&gt;
		{&lt;br /&gt;
			var tryingCount = 0;&lt;br /&gt;
&lt;br /&gt;
			while (true)&lt;br /&gt;
			{&lt;br /&gt;
				if (Player.Hits(&amp;#039;%&amp;#039;) &amp;lt; 50)&lt;br /&gt;
				{&lt;br /&gt;
					Orion.Exec(&amp;#039;PlayGuardAlarm&amp;#039;);&lt;br /&gt;
					Orion.PauseScript();&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				CheckGuards(0);&lt;br /&gt;
				DispelSummons(null);&lt;br /&gt;
&lt;br /&gt;
				var hits = Player.Hits(&amp;#039;%&amp;#039;);&lt;br /&gt;
				var needHeal = (hits &amp;gt; 50 &amp;amp;&amp;amp; hits &amp;lt; 99 &amp;amp;&amp;amp;  Orion.Count(&amp;#039;bandage&amp;#039;) &amp;gt; 0);&lt;br /&gt;
&lt;br /&gt;
				if (needHeal)&lt;br /&gt;
				{&lt;br /&gt;
					Orion.PauseScript(&amp;#039;AutoMeditation&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
					while (needHeal)&lt;br /&gt;
					{&lt;br /&gt;
						Orion.BandageSelf();&lt;br /&gt;
						Orion.Wait(2000);&lt;br /&gt;
						hits = Player.Hits(&amp;#039;%&amp;#039;);&lt;br /&gt;
						needHeal = (hits &amp;gt; 50 &amp;amp;&amp;amp; hits &amp;lt; 99 &amp;amp;&amp;amp;  Orion.Count(&amp;#039;bandage&amp;#039;) &amp;gt; 0);&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					Orion.ResumeScript(&amp;#039;AutoMeditation&amp;#039;);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				while (Orion.ScriptRunning(&amp;#039;AutoMeditation&amp;#039;))&lt;br /&gt;
					Orion.Wait(500);&lt;br /&gt;
&lt;br /&gt;
				while (UseHidding &amp;amp;&amp;amp; !Player.Hidden())&lt;br /&gt;
				{&lt;br /&gt;
					Orion.WarMode(false);&lt;br /&gt;
					Orion.Wait(100);&lt;br /&gt;
					Orion.UseSkill(&amp;#039;21&amp;#039;);&lt;br /&gt;
					Orion.WaitJournal(&amp;#039;Вы хорошо спрятались|You have hidden yourself well|Кажется, ты не можешь здесь спрятаться|t seem to hide here&amp;#039;, Orion.Now(), Orion.Now() + 3000);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				CheckOverweight(false, runeCave);&lt;br /&gt;
&lt;br /&gt;
				if (!Orion.ValidateTargetTileRelative(&amp;#039;mine&amp;#039;, x, y, 0))&lt;br /&gt;
					break;&lt;br /&gt;
&lt;br /&gt;
				var now = Orion.Now();&lt;br /&gt;
				Orion.WaitTargetTileRelative(&amp;#039;mine&amp;#039;, x, y, 0);&lt;br /&gt;
&lt;br /&gt;
				if (!UsePickaxe(0))&lt;br /&gt;
				{&lt;br /&gt;
					CheckOverweight(true, runeCave);&lt;br /&gt;
&lt;br /&gt;
					Orion.WaitTargetTileRelative(&amp;#039;mine&amp;#039;, x, y, 0);&lt;br /&gt;
					UsePickaxe(0);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var msg = Orion.WaitJournal(text, now, now + 5000, &amp;#039;my|sys&amp;#039;);&lt;br /&gt;
				&lt;br /&gt;
				if (msg != null)&lt;br /&gt;
				{&lt;br /&gt;
					if (msg.FindTextID() &amp;gt; 3)&lt;br /&gt;
						break;&lt;br /&gt;
&lt;br /&gt;
					tryingCount++;&lt;br /&gt;
&lt;br /&gt;
					if (tryingCount &amp;gt;= 10)&lt;br /&gt;
						break;&lt;br /&gt;
&lt;br /&gt;
					if (UseOreNameFilter &amp;amp;&amp;amp; Orion.Contains(msg.Text(), IgnoreOreNames))&lt;br /&gt;
						break;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				Orion.WarMode(false);&lt;br /&gt;
				Orion.Wait(50);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function Mining()&lt;br /&gt;
{&lt;br /&gt;
	for (var cave = 0; cave &amp;lt; CaveSpots.length; cave++)&lt;br /&gt;
	{&lt;br /&gt;
		RecallTo(RunesToCave[cave]);&lt;br /&gt;
		var spot = CaveSpots[cave];&lt;br /&gt;
&lt;br /&gt;
		//for (var c = 0; c &amp;lt; 2; c++) // Потому что на первом проходе, почему-то, бывают пропуски тайлов и недокопы&lt;br /&gt;
		{&lt;br /&gt;
			for (var i = 0; i &amp;lt; spot.length; i++)&lt;br /&gt;
			{&lt;br /&gt;
				WalkToWrapper(spot[i][0], spot[i][1], 0,  (UseHidding == 0 || !Player.Hidden()));&lt;br /&gt;
				MiningDig(RunesToCave[cave]);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (Player.Weight(&amp;#039;%&amp;#039;) &amp;gt;= 65)&lt;br /&gt;
			CheckOverweight(true, &amp;#039;&amp;#039;);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	Orion.Print(0x0044, &amp;#039;Caves cycle done, restarting in &amp;#039; + SoundRepeatCount + &amp;#039; seconds...&amp;#039;);&lt;br /&gt;
	PlayGuardAlarm(0);&lt;br /&gt;
	Orion.Wait(5000);&lt;br /&gt;
&lt;br /&gt;
	// Exec а не while (true) чтобы перезагружались константы (если ломается лук или какие-то правки кода)&lt;br /&gt;
	// Чтоб вручную не ловить конец цикла/стопать на полпути и не перезапускать заново&lt;br /&gt;
	Orion.Exec(&amp;#039;Mining&amp;#039;);&lt;br /&gt;
	Orion.Wait(500);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function UnloadIngots()&lt;br /&gt;
{&lt;br /&gt;
	while (Orion.MoveItemType(&amp;#039;0x1BEF|0x1BF2|0x1BE3|0x1BE9|0x1BF5|0x0F02&amp;#039;, &amp;#039;any&amp;#039;, backpack, 0, OresBag))&lt;br /&gt;
		Orion.Wait(400);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function UnloadOres()&lt;br /&gt;
{&lt;br /&gt;
	while (Orion.MoveItemType(&amp;#039;0x19B7|0x19BA|0x19B8|0x19B9|gp&amp;#039;, &amp;#039;any&amp;#039;, backpack, 0, OresBag))&lt;br /&gt;
		Orion.Wait(400);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function SmeltIronOres()&lt;br /&gt;
{&lt;br /&gt;
	while (true)&lt;br /&gt;
	{&lt;br /&gt;
		var list = Orion.FindTypeEx(&amp;#039;0x19B7|0x19BA|0x19B8|0x19B9&amp;#039;, &amp;#039;0&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		for (var i = 0; i &amp;lt; list.length; i++)&lt;br /&gt;
		{&lt;br /&gt;
			if (list[i].Count() == 1)&lt;br /&gt;
			{&lt;br /&gt;
				Orion.UseObject(list[i].Serial());&lt;br /&gt;
				Orion.Wait(100);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				Orion.MoveItem(list[i].Serial(), 1, backpack, 50, 50);&lt;br /&gt;
				Orion.Wait(400);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (list.length == 0)&lt;br /&gt;
			return;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function TestHarvestingZones(rune)&lt;br /&gt;
{&lt;br /&gt;
	Orion.ClearFakeMapObjects();&lt;br /&gt;
&lt;br /&gt;
	if (rune &amp;lt; 0 || rune &amp;gt;= CaveSpots.length)&lt;br /&gt;
	{&lt;br /&gt;
		Orion.Print(&amp;#039;0x0021&amp;#039;, &amp;#039;Invalid rune index: &amp;#039; + rune);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	FakeId = 1;&lt;br /&gt;
	var spots = CaveSpots[rune];&lt;br /&gt;
&lt;br /&gt;
	for (var spot = 0; spot &amp;lt; spots.length; spot++)&lt;br /&gt;
	{&lt;br /&gt;
		TestHarvestingZone(spots[spot][0], spots[spot][1], 2);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function TestHarvestingZone(centerX, centerY, distance)&lt;br /&gt;
{&lt;br /&gt;
	for (var x = -distance; x &amp;lt;= distance; x++)&lt;br /&gt;
	{&lt;br /&gt;
		for (var y = -distance; y &amp;lt;= distance; y++)&lt;br /&gt;
		{&lt;br /&gt;
			Orion.AddFakeMapObject(FakeId++, &amp;#039;0x051A&amp;#039;, &amp;#039;0x0044&amp;#039;, centerX + x, centerY + y, Player.Z());&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:LegnesAssistScripts]]&lt;/div&gt;</summary>
		<author><name>Support</name></author>
	</entry>
</feed>