<?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/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>WoW JP</title>
		<link>https://wjp.clan.su/</link>
		<description>Форум</description>
		<lastBuildDate>Fri, 08 Feb 2013 15:29:35 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://wjp.clan.su/forum/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Как запустить скомпилённый сервер wow 4.x.x?</title>
			<link>https://wjp.clan.su/forum/246-231563-1</link>
			<pubDate>Fri, 08 Feb 2013 15:29:35 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: Помогите запустить сервер&lt;br /&gt;Автор темы: nvidiaaa&lt;br /&gt;Автор последнего сообщения: torturesru&lt;br /&gt;Количество ответов: 4</description>
			<content:encoded>Я в первый раз смог скомплить сам сервер но вот проблема, я его скомплил но а запустить незнаю как, мапы и дбц есть всё настроил но нету dewnera или хотябы mysql.bat, подскажите позжалуйста как прикрутить denwer или хотябы mysql.bat и какую надо ставить начальную базу для skyfire?</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>nvidiaaa</dc:creator>
			<guid>https://wjp.clan.su/forum/246-231563-1</guid>
		</item>
		<item>
			<title>Компиляция ядра, Сборки SkyFire</title>
			<link>https://wjp.clan.su/forum/246-185348-1</link>
			<pubDate>Sat, 12 Jan 2013 22:37:04 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: EpIlEpT&lt;br /&gt;Автор последнего сообщения: EpIlEpT&lt;br /&gt;Количество ответов: 8</description>
			<content:encoded>&lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.microsoft.com/downloads/ru-ru/details.aspx?familyid=F3FBB04E-92C2-4701-B4BA-92E26E408569&amp;displaylang=ru&quot; title=&quot;http://www.microsoft.com/downloads/ru-ru/details.aspx?familyid=F3FBB04E-92C2-4701-B4BA-92E26E408569&amp;displaylang=ru&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Visual C++ 2008 Express &lt;/a&gt; или &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express#2010-Visual-CPP&quot; title=&quot;http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express#2010-Visual-CPP&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Visual C++ 2010. Express&lt;/a&gt; издания не поддерживают компиляцию на системах с 64 битной архитектурой Для х64 - Visual Studio 2010 (или 2008) Professional Edition &lt;br /&gt;&lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.mysql.ru/download/&quot; title=&quot;http://www.mysql.ru/download/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt; MySQL&lt;/a&gt; - сервер баз данных, рекомендуется использовать версии 5.1.х. &lt;br /&gt;&lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://git-scm.com/download&quot; title=&quot;http://git-scm.com/download&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Git&lt;/a&gt; - распределённая система управления версиями файлов. &lt;br /&gt;&lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.cmake.org/cmake/resources/software.html&quot; title=&quot;http://www.cmake.org/cmake/resources/software.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;CMake &lt;/a&gt;- программа для построения проекта и подготовки исходного кода непосредственно к процессу компиляции. &lt;br /&gt;&lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.slproweb.com/products/Win32OpenSSL.html&quot; title=&quot;http://www.slproweb.com/products/Win32OpenSSL.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;OpenSSL&lt;/a&gt; - система безопасных сокетов позволяющая создавать ключи RSA, DH, DSA и сертификаты. &lt;br /&gt;&lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://filebeam.com/61377b9c8134540a3f63a47309ad342c&quot; title=&quot;http://filebeam.com/61377b9c8134540a3f63a47309ad342c&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SQLyog &lt;/a&gt;- приложение для графического управления сервером MySQL, рекомендуется использовать Ultimate_v8.5.0.6 версию программы. &lt;br /&gt;&lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.navicat.com/download/download.html&quot; title=&quot;http://www.navicat.com/download/download.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Navicat &lt;/a&gt;- приложение для графического управления сервером MySQL, рекомендуется использовать Lite версию программы. &lt;br /&gt;&lt;br /&gt; После того как мы скачали и установили весь необходимый софт, идём дальше по плану, который состоит из следующих пунктов: &lt;br /&gt;&lt;br /&gt; 1. Скачивание исходников. &lt;br /&gt; 2. &quot;Накатывание&quot; патчей на ядро. &lt;br /&gt; 3. Сборка компилятора. &lt;br /&gt; 4. Компиляция ядра. &lt;br /&gt; 5. Настройка ядра. &lt;br /&gt; 6. Работа с базами. &lt;br /&gt; 6.1. Создание баз. &lt;br /&gt; 6.2. Заполнение баз. &lt;br /&gt; 6.3. Настройки баз. &lt;br /&gt; 7. Запуск сервера. &lt;br /&gt;&lt;br /&gt; Начинаем. &lt;br /&gt; 1. Скачивание исходников. &lt;br /&gt; Создаем рабочий папку в &quot;корне&quot; диска, например: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;C:&amp;#92;SkyFire&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; В контекстном меню созданной нами папки выбираем git Bash Here &lt;br /&gt; &lt;img src=&quot;http://s001.radikal.ru/i195/1112/75/7a02f36f051c.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; В появившемся окне пишем git clone git://github.com/ProjectSkyfire/SkyFireEMU.git &lt;br /&gt; &lt;img src=&quot;http://s015.radikal.ru/i331/1112/b4/58c91d338f77.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; Скачивание исходников завершено. &lt;br /&gt; &lt;img src=&quot;http://s011.radikal.ru/i318/1112/7e/1494c620b0d7.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; 2. &quot;Накатывание&quot; патчей на ядро. &lt;br /&gt; Патч - это некая модификация для ядра, написанная на CPP &lt;br /&gt; Примерный патч : &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;From 1a96a0b99394f47fb464c28e05968edbf6c67fd2 Mon Sep 17 00:00:00 2001 &lt;br /&gt; From: LordPsyan &lt;uppp@juno.com&gt; &lt;br /&gt; Date: Sat, 11 Jun 2011 15:48:11 -0400 &lt;br /&gt; Subject: &amp;#91;PATCH] 1645-Fatigue &lt;br /&gt;&lt;br /&gt; --- &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;src/server/game/Entities/Player/Player.cpp&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9 ++++++++- &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;src/server/worldserver/worldserver.conf.dist |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7 +++++++ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2 files changed, 15 insertions(+&amp;#41;, 1 deletions(-&amp;#41; &lt;br /&gt;&lt;br /&gt; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp &lt;br /&gt; index e5c91c1..58fd18f 100644 &lt;br /&gt; --- a/src/server/game/Entities/Player/Player.cpp &lt;br /&gt; +++ b/src/server/game/Entities/Player/Player.cpp &lt;br /&gt; @@ -78,6 +78,7 @@ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#include &quot;CharacterDatabaseCleaner.h&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#include &quot;InstanceScript.h&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#include &lt;cmath&gt; &lt;br /&gt; +#include &quot;Config.h&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#define ZONE_UPDATE_INTERVAL (1*IN_MILLISECONDS&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; @@ -1085,8 +1086,11 @@ int32 Player::getMaxTimer(MirrorTimerType timer&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch (timer&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt; +&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(sConfig-&gt;GetBoolDefault(&quot;fatigue.enabled&quot;, true&amp;#41;&amp;#41; // If &quot;fatigue.enabled&quot; is enabled &lt;br /&gt; +&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case FATIGUE_TIMER: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return MINUTE*IN_MILLISECONDS; &lt;br /&gt; +&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case BREATH_TIMER: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!isAlive(&amp;#41; || HasAuraType(SPELL_AURA_WATER_BREATHING&amp;#41; || GetSession(&amp;#41;-&gt;GetSecurity(&amp;#41; &gt;= AccountTypes(sWorld-&gt;getIntConfig(CONFIG_DISABLE_BREATHING&amp;#41;&amp;#41;&amp;#41; &lt;br /&gt; @@ -1160,6 +1164,9 @@ void Player::HandleDrowning(uint32 time_diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// In dark water &lt;br /&gt; +if(sConfig-&gt;GetBoolDefault(&quot;fatigue.enabled&quot;, true&amp;#41;&amp;#41; // If &quot;fatigue.enabled&quot; is enabled &lt;br /&gt; +{ &lt;br /&gt; + &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (m_MirrorTimerFlags &amp; UNDERWARER_INDARKWATER&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (m_zoneUpdateId == 5144&amp;#41; return; &lt;br /&gt; @@ -1199,7 +1206,7 @@ void Player::HandleDrowning(uint32 time_diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else if (m_MirrorTimerFlagsLast &amp; UNDERWARER_INDARKWATER&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SendMirrorTimer(FATIGUE_TIMER, DarkWaterTime, m_MirrorTimer&amp;#91;FATIGUE_TIMER], 10&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; - &lt;br /&gt; +} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (m_MirrorTimerFlags &amp; (UNDERWATER_INLAVA|UNDERWATER_INSLIME&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Breath timer not activated - activate it &lt;br /&gt; diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist &lt;br /&gt; index a6e1dc1..9709213 100644 &lt;br /&gt; --- a/src/server/worldserver/worldserver.conf.dist &lt;br /&gt; +++ b/src/server/worldserver/worldserver.conf.dist &lt;br /&gt; @@ -828,6 +828,13 @@ ChatLogTimestamp = 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Disable/enable waterbreathing for security level (0..4&amp;#41; or higher &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Default: 4 (None&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# &lt;br /&gt; +#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Enable or Disable &quot;Fatigue&quot; timer &lt;br /&gt; +#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default = 1 (enabled&amp;#41; &lt;br /&gt; +#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 0 (disabled&amp;#41; &lt;br /&gt; + &lt;br /&gt; +fatigue.enabled = 1 &lt;br /&gt; + &lt;br /&gt; +# &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AllFlightPaths &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Players will start with all flight paths &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(Note: ALL flight paths, not only player&apos;s team&amp;#41; &lt;br /&gt; --&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; 1.7.2.3 &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Копируем всё это содержимое, сохраняем в файл с расширением .patch, например: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;City-Conquest.patch&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Кидаем патч в папку с ядром, &lt;br /&gt; Так следует поступать с любым устанавливаемым патчем. &lt;br /&gt;&lt;br /&gt; После того как мы перенесли наш патч, жмем ПКМ по папке с исходниками, а точнее: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;C:&amp;#92;SkyFire&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; И выбераем Git Bash Here: &lt;br /&gt; &lt;img src=&quot;http://s017.radikal.ru/i411/1112/5b/34587c09ad4f.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; Жмем Enter. &lt;br /&gt; Если после завершения вы видите: &lt;br /&gt; Значит всё в порядке, можно продолжать. &lt;br /&gt; Вы можете продолжить установку других патчей (если они у вас имеются), но у нас он один, так что мы продолжим. Закрываем Git. &lt;br /&gt; 3. Сборка компилятора. &lt;br /&gt; Создаем новую папку в нашей рабочей директории, например: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;D:&amp;#92;SkyFire&amp;#92;win - в этой папке будет хранится готовый к компиляции проект.&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; После того как мы подготовили директорию, запускаем ранее нами установленный CMake. &lt;br /&gt;&lt;br /&gt; Where is the source code - папка с исходниками, у нас это: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;D:&amp;#92;SkyFire&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Where to build the binaries - папка для готового проекта : &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;D:&amp;#92;SkyFire&amp;#92;win&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Указываем эти данные в программе: &lt;br /&gt; &lt;img src=&quot;http://s017.radikal.ru/i444/1112/2e/23399971aa8b.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; После жмем : &lt;br /&gt; &lt;img src=&quot;http://s39.radikal.ru/i084/1112/a5/b27ba9004a53.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; Если все прошло успешно: &lt;br /&gt; &lt;img src=&quot;http://s54.radikal.ru/i143/1112/b5/547dc966dea4.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; Можно закрывать CMake. &lt;br /&gt; 4. Компиляция ядра. &lt;br /&gt; Наш проект теперь хранится в: &lt;br /&gt; D:&amp;#92;SkyFire&amp;#92;win &lt;br /&gt; Запускаем файл с расширением .sln: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;SkyFire.sln &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Меняете Debug на Release : &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;========== Построение: успешно 19, с ошибками 0, без изменений 0,пропущено: 1 ==========&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Если после компиляции мы видим результат без ошибок, значит, компиляция прошла успешно. &lt;br /&gt; Все, наше ядро скомпилировано, но оно ещё не работоспособно. &lt;br /&gt;&lt;br /&gt; 5. Настройка ядра. &lt;br /&gt; Наше скомпилированное ядро хранится в папке: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;D:&amp;#92;SkyFire&amp;#92;win&amp;#92;bin&amp;#92;Release &lt;br /&gt; и копируем такие файлы:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; &amp;#91;code]ace.dll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; authserver.conf.dist&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; authserver.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; libmysql.dll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; worldserver.conf.dist&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; worldserver.exe &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Переименовываем : &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;worldserver.conf.dist - worldserver.conf &lt;br /&gt; authserver.conf.dist - authserver.conf&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; 6. Работа с базами. &lt;br /&gt; SkyFire имеет три базы: &lt;br /&gt; auth - база аккаунтов. &lt;br /&gt; characters - база персонажей. &lt;br /&gt; world - база мира, игрового &lt;br /&gt; Сейчас мы займемся созданием этих трех баз. &lt;br /&gt; 6. Создание баз. &lt;br /&gt; Открываем скаченный нами ранее SQLyog, жмем на Conntection, заполняем: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;User name: логин MySQL сервера&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; Password: пароль MySQL сервера&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Жмем ок: &lt;br /&gt; и Делаем как на скрине : &lt;br /&gt; &lt;img src=&quot;http://s55.radikal.ru/i150/1112/85/34d81801e43a.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; &lt;img src=&quot;http://s010.radikal.ru/i312/1112/be/89c82f2f8bbf.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; Жмем ОК, теперь мы создали одну из трех баз. &lt;br /&gt; Дальше мы заливаем базу её можно взять от сюда &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;https://github.com/ProjectSkyfire/SkyFireDB&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; скачиваем с исходники бд. &lt;br /&gt; Так приступаем к заливки Базы : &lt;br /&gt; 1. &lt;br /&gt; &lt;img src=&quot;http://s017.radikal.ru/i421/1112/11/72829c5b4e98.png&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; 2. &lt;br /&gt; &lt;img src=&quot;http://s56.radikal.ru/i153/1112/54/6b57514a2e07.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; 3. &lt;br /&gt; &lt;img src=&quot;http://s017.radikal.ru/i431/1112/75/3b1740adcb9a.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; База готова.</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>EpIlEpT</dc:creator>
			<guid>https://wjp.clan.su/forum/246-185348-1</guid>
		</item>
		<item>
			<title>[Видео-мануал] По накатыванию патчей руками</title>
			<link>https://wjp.clan.su/forum/246-185422-1</link>
			<pubDate>Sat, 12 Jan 2013 22:35:49 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: EpIlEpT&lt;br /&gt;Автор последнего сообщения: EpIlEpT&lt;br /&gt;Количество ответов: 2</description>
			<content:encoded>&lt;!--BBvideo--&gt;&lt;span id=&quot;scr06N91rxxQj&quot;&gt;&lt;/span&gt;&lt;script type=&quot;text/javascript&quot;&gt;_uVideoPlayer({&apos;url&apos;:&apos;http://youtu.be/rTpfOGOd4Hw&apos;,&apos;width&apos;:&apos;425&apos;,&apos;height&apos;:&apos;355&apos;},&apos;scr06N91rxxQj&apos;);&lt;/script&gt;&lt;!--/BBvideo--&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>EpIlEpT</dc:creator>
			<guid>https://wjp.clan.su/forum/246-185422-1</guid>
		</item>
		<item>
			<title>[Мануал] Настройка Cmake Skyfire</title>
			<link>https://wjp.clan.su/forum/246-193753-1</link>
			<pubDate>Sat, 10 Nov 2012 10:42:06 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: ph3n&lt;br /&gt;Автор последнего сообщения: _Wolweraine_&lt;br /&gt;Количество ответов: 3</description>
			<content:encoded>Необходимый софт: &lt;br /&gt; Cmake - &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe&quot; title=&quot;http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Скачать&lt;/a&gt; &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; В строчке Where is the source core вводим путь до папки с исходниками. &lt;br /&gt; В строчке Where to build the binaries вводим путь куда ходим чтобы у нас скомпилировались бинарники. &lt;br /&gt; У меня это выглядит вот так: &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/03bd62d16be894c506db8f34b9623433.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; Далее нажимаем &lt;b&gt;Configure&lt;/b&gt; потом &lt;b&gt;Yes&lt;/b&gt;; И указываем MVS который у вас установлен; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/8e9226c22ca6e033c8e1cee0a6124c2a.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; Далее нажимаем Finish затем Configure; и ждем до этого момента: &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/d704c74c21f5c3a434a44e8c791253cb.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; Затем жмем&lt;b&gt; Generate &lt;/b&gt;и всё готово!</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>ph3n</dc:creator>
			<guid>https://wjp.clan.su/forum/246-193753-1</guid>
		</item>
		<item>
			<title>Вознаграждение за статьи</title>
			<link>https://wjp.clan.su/forum/246-233637-1</link>
			<pubDate>Wed, 10 Oct 2012 14:09:59 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: ph3n&lt;br /&gt;Автор последнего сообщения: ph3n&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>&lt;i&gt;У Вас выполнены все условия &lt;a class=&quot;link&quot; href=&quot;http://wowjp.net/forum/246-198975-1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Вознаграждение за мануалы&lt;/a&gt; и Вы хотите получить свою награду?&lt;/i&gt; &lt;br /&gt; &lt;b&gt;Тогда Вам нужно заполнить заявку и оставить её в данной теме.&lt;/b&gt; &lt;br /&gt; &lt;i&gt;Форма заявки:&lt;/i&gt; &lt;br /&gt; &lt;b&gt;1.&lt;/b&gt; Ссылки на темы. &lt;br /&gt; &lt;b&gt;2.&lt;/b&gt; Желаемый приз.</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>ph3n</dc:creator>
			<guid>https://wjp.clan.su/forum/246-233637-1</guid>
		</item>
		<item>
			<title>Не большой Видео мануал</title>
			<link>https://wjp.clan.su/forum/246-214177-1</link>
			<pubDate>Wed, 25 Jul 2012 07:30:40 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: по компиляции ЯДРА&lt;br /&gt;Автор темы: Cactus&lt;br /&gt;Автор последнего сообщения: yqiotafv&lt;br /&gt;Количество ответов: 6</description>
			<content:encoded>Не большой видео манул по компиляции ядра SKYFIRE. &lt;br /&gt; нам понадобиться программы. &lt;br /&gt; Visual C++ 2008 Express или Visual C++ 2010. Express издания не поддерживают компиляцию на системах с 64 битной архитектурой Для х64 - Visual Studio 2010 (или 2008) Professional Edition &lt;br /&gt;&lt;br /&gt; MySQL - сервер баз данных, рекомендуется использовать версии 5.1.х. &lt;br /&gt;&lt;br /&gt; Git - распределённая система управления версиями файлов. &lt;br /&gt;&lt;br /&gt; CMake - программа для построения проекта и подготовки исходного кода непосредственно к процессу компиляции. &lt;br /&gt;&lt;br /&gt; OpenSSL - система безопасных сокетов позволяющая создавать ключи RSA, DH, DSA и сертификаты. &lt;br /&gt;&lt;br /&gt; SQLyog - приложение для графического управления сервером MySQL, рекомендуется использовать Ultimate_v8.5.0.6 версию программы. &lt;br /&gt;&lt;br /&gt; Navicat - приложение для графического управления сервером MySQL, рекомендуется использовать Lite версию программы. &lt;br /&gt; Качаем видео . &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://fbe.am/6Fr&quot; title=&quot;http://fbe.am/6Fr&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;ВИДЕО&lt;/a&gt; &lt;br /&gt; Видео в EXE формате для удобного скачивания ,и качественного просмотра</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>Cactus</dc:creator>
			<guid>https://wjp.clan.su/forum/246-214177-1</guid>
		</item>
		<item>
			<title>Компиляция</title>
			<link>https://wjp.clan.su/forum/246-184699-1</link>
			<pubDate>Sun, 17 Jun 2012 18:47:59 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: Windows&lt;br /&gt;Автор темы: LOrdas&lt;br /&gt;Автор последнего сообщения: RockTee&lt;br /&gt;Количество ответов: 1</description>
			<content:encoded>Необходимое ПО: &lt;br /&gt; 1) &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://git-scm.com/download&quot; title=&quot;http://git-scm.com/download&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;GIT for Windows&lt;/a&gt; / &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://code.google.com/p/tortoisegit/&quot; title=&quot;http://code.google.com/p/tortoisegit/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;TortoiseGit&lt;/a&gt; &lt;br /&gt; 2) C++/C# Компилятор: Visual Studio 2008 Express / Visual Studio 2010 Express. (Ссылка будет позже) &lt;br /&gt; 3) &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.slproweb.com/products/Win32OpenSSL.html&quot; title=&quot;http://www.slproweb.com/products/Win32OpenSSL.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;OpenSSL&lt;/a&gt; &lt;br /&gt; Внимание! Не используйте Light версию. &lt;br /&gt; 4) &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.cmake.org/cmake/resources/software.html&quot; title=&quot;http://www.cmake.org/cmake/resources/software.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Cmake&lt;/a&gt; &lt;br /&gt; 5) MySQL Server (Ссылка будет в конце) &lt;br /&gt; 6) .NET Framework 3.5 (Скачать с сайта Microsoft) &lt;br /&gt; 7) SQL Клиент: HeidiSQL / MySQL GUI Tools. &lt;br /&gt; Разработчики не советуют вам использовать Navicat. &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Шаг 1&lt;/b&gt;&lt;/div&gt; &lt;br /&gt;&lt;br /&gt; Устанавливаем все необходимые программы, далее создаем папку, например C:/server/. &lt;br /&gt;&lt;br /&gt; 1 способ) ПКМ (правым кликом мыши) щелкаем по папке и жмем Git GUI Here. &lt;br /&gt; Затем кликните на Clone Existing Repository. &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://filebeam.com/de346b8aa5420cf5d98e52e2e4792e8f.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;/div&gt; &lt;br /&gt; После этого появится окно, в поле Source Location пишем: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;https://github.com/ProjectSkyFire/SkyFireEMU&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; а поле Target Directory заполним, например так: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;C:/server/Core/&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Далее жмем clone. &lt;br /&gt;&lt;br /&gt; 2 способ) Жмем Git Bash Here. &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://filebeam.com/7f55cd0a9e68ba0d33e2d3d21384b43a.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;/div&gt; &lt;br /&gt; вводим команду: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;git clone git://github.com/ProjectSkyFire/SkyFireEMU.git&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Ждем пару минут и исходные файлы уже в папке. &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Шаг 2&lt;/b&gt;&lt;/div&gt; &lt;br /&gt;&lt;br /&gt; Создаем папку Build в папке C:/server/. &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://filebeam.com/c4bd9ef5009433423fae226e328f1bd7.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;/div&gt; &lt;br /&gt; Открываем Cmake, заполняем поля так: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Where the the source code: C:/server/Core/ &lt;br /&gt; Where to build the binaries: C:/server/Build/&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Жмем Configure. Если после этого он спросит нужно ли создать папку - нажмите Да. &lt;br /&gt; Выберите используемый компилятор. &lt;br /&gt; CheckBox можно не трогать, оставляем все по умолчанию. &lt;br /&gt; Жмем опять Configure. &lt;br /&gt; Далее жмем Generate. &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Шаг 3&lt;/b&gt;&lt;/div&gt; &lt;br /&gt;&lt;br /&gt; Открываем SkyFire.sln в папке Build. &lt;br /&gt; В верхнем меню выберем Build (Построить), потом Configuration Manager (Менеджер конфигураций/настроек). &lt;br /&gt; Меняете Debug на Release, и выберите Win32 (Для x86) или x64 (Для x64). &lt;br /&gt; Visual Studio 2008/2010 Express не поддерживают x64. &lt;br /&gt; Далее опять в меню жмем Build и выбираем пункт Clean Solution. &lt;br /&gt;&lt;br /&gt; Далее начинаем компиляцию, скорость ее зависит от хар-ик компьютера. После вы должны увидеть такое: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;========== Build: 19 completed, 0 failed, 0 up-to-date, 1 skipped ==========&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Далее переходим в папку: C:/server/Build/Bin/Release/ &lt;br /&gt; и копируем такие файлы: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; ace.dll &lt;br /&gt; authserver.conf.dist &lt;br /&gt; authserver.exe &lt;br /&gt; libmysql.dll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; worldserver.conf.dist &lt;br /&gt; worldserver.exe &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; и копируем из папки C:/OpenSSL два файла: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;libeay32.dll &amp; ssleay32.dll&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Далее переименовываем worldserver.conf.dist в worldserver.conf и authserver.conf.dist в authserver.conf. &lt;br /&gt;&lt;br /&gt; Настраиваем config-файлы и приступаем к тестированию скомпилированного сервера. &lt;br /&gt; Но перед тестированием - нужно установить сервер MySQL и залить базу данных. Про это в следующей статье. &lt;br /&gt; [blizz]Скачать[/blizz] &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://dev.mysql.com/downloads/mysql/&quot; title=&quot;http://dev.mysql.com/downloads/mysql/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;MySQL Server&lt;/a&gt; &lt;br /&gt; Связки: &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.apachefriends.org/en/xampp-windows.html&quot; title=&quot;http://www.apachefriends.org/en/xampp-windows.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Xampp&lt;/a&gt; &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.denwer.ru/&quot; title=&quot;http://www.denwer.ru/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Denwer&lt;/a&gt; &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://vertrigo.sourceforge.net/?lang=ru&quot; title=&quot;http://vertrigo.sourceforge.net/?lang=ru&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Vertrigo&lt;/a&gt; &lt;br /&gt; и прочие... &lt;br /&gt;&lt;br /&gt; Про установку данных серверов/связок я расскажу вам в следующей статье. &lt;br /&gt;&lt;br /&gt; Позже могу выложить все с скриншотами. &lt;br /&gt; P.S Писал и переводил сам с &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://wiki.projectskyfire.org/index.php&quot; title=&quot;http://wiki.projectskyfire.org/index.php&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Официальной Wikipedia проекта SkyFire&lt;/a&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>LOrdas</dc:creator>
			<guid>https://wjp.clan.su/forum/246-184699-1</guid>
		</item>
		<item>
			<title>[Мануал] Связь Гейм Объектов, мобов между собой (АИ)</title>
			<link>https://wjp.clan.su/forum/246-199061-1</link>
			<pubDate>Sun, 17 Jun 2012 18:47:35 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: Автор: Кирилл Н. (Stormrage, Unregistered)&lt;br /&gt;Автор темы: Unregistered&lt;br /&gt;Автор последнего сообщения: RockTee&lt;br /&gt;Количество ответов: 3</description>
			<content:encoded>Итак. приступим к достаточно трудному материалу. &lt;br /&gt; Как связать ГО(игровой объект), например стул, с мобом? &lt;br /&gt; Пример 1: игрок использует ГО и в моба летит спелл. &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoiler0VaJdI&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoiler0VaJdI&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler0VaJdI&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler0VaJdI&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler0VaJdI&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoiler0VaJdI&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler0VaJdI&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler0VaJdI&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoiler0VaJdI&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; class go_test_object : public GameObjectScript &lt;br /&gt; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;go_test_object(&amp;#41; : GameObjectScript(&quot;go_test_object&quot;&amp;#41; { } &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint64 mobGUID; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* mob = GetClosestCreatureWithEntry(*go, MOB_ID, 1000.0f&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mobGUID = mob-&gt;GetGUID(&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bool OnGossipHello(Player* player, GameObject* go&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* testMob = Unit::GetCreature(*go, mobGUID&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (testMob-&gt;isAlive(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player-&gt;CastSpell(testMob, SPELL_LAUNCH_HARPOON, true&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; }; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Пример написания скрипта. При использовании ГО в &quot;testMob&quot; (существо) кастуется спелл. &lt;br /&gt; Рассмотрим: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; uint64 mobGUID; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* mob = GetClosestCreatureWithEntry(*go, MOB_ID, 1000.0f&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mobGUID = mob-&gt;GetGUID(&amp;#41;; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; uint64 mobGUID; - ввод переменной. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;if (Creature* mob = GetClosestCreatureWithEntry(*go, MOB_ID, 1000.0f&amp;#41;&amp;#41;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; поиск моба. (объект, от которого ищется, ИД моба, расстояние) &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;mobGUID = mob-&gt;GetGUID(&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; присвоение гуида. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bool OnGossipHello(Player* player, GameObject* go&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* testMob = Unit::GetCreature(*go, mobGUID&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (testMob-&gt;isAlive(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;player-&gt;CastSpell(testMob, SPELL_LAUNCH_HARPOON, true&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Булевая ф-ция. Такие ф-ции должны возвращать какое-либо значение.(true, false, 0 и пр) &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;if (Creature* testMob = Unit::GetCreature(*go, mobGUID&amp;#41;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Поиск моба. Отличается от предыдущего тем, что в этмо случае мы ищем по ГУИДу &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;if (testMob-&gt;isAlive(&amp;#41;&amp;#41;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; - проверка: жив ли моб &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;player-&gt;CastSpell(testMob, SPELL_LAUNCH_HARPOON, true&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; кастуем от лица игрока, который использовал ГО спелл в моба &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Пример 2: используем ГО и запускаем АИ моба. &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerYsaWE4&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerYsaWE4&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerYsaWE4&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerYsaWE4&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerYsaWE4&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerYsaWE4&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerYsaWE4&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerYsaWE4&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerYsaWE4&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; class boss_test_mob : public CreatureScript&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; public:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_mob(&amp;#41; : CreatureScript(&quot;boss_test_mob&quot;&amp;#41; { }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreatureAI* GetAI(Creature* creature&amp;#41; const&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return new boss_test_mobAI (creature&amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;struct boss_test_mobAI : public ScriptedAI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_mobAI(Creature* creature&amp;#41; : ScriptedAI(creature&amp;#41;&amp;nbsp;&amp;nbsp;{ } &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Reset(&amp;#41; {} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void hasUseGO(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;me-&gt;MonsterSay(&quot;player has used Game Object&quot;, LANG_UNIVERSAL, NULL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void UpdateAI(cinst uint32 diff&amp;#41; {} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}; &lt;br /&gt; }; &lt;br /&gt;&lt;br /&gt; class go_test_object : public GameObjectScript &lt;br /&gt; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;go_test_object(&amp;#41; : GameObjectScript(&quot;go_test_object&quot;&amp;#41; { } &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint64 mobGUID; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* mob = GetClosestCreatureWithEntry(*go, MOB_ID, 1000.0f&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mobGUID = mob-&gt;GetGUID(&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bool OnGossipHello(Player* player, GameObject* go&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* testMob = Unit::GetCreature(*go, mobGUID&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (testMob-&gt;isAlive(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (boss_test_mob::boss_test_mobAI* mobAI = dynamic_cast&lt;boss_test_mob::boss_test_mobAI*&gt;(testMob-&gt;AI(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mobAI-&gt;hasUseGO(&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; };&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Частое применение у программистов имеет каст(dynamic_cast, static_cast, const_cast и пр). Об этом рассказывать не буду, т.к. мало кому будет понятно да и вообще нужно -) &lt;br /&gt;&lt;br /&gt; Сначала инициализируем АИ моба(об этом писалось в другом мануале) &lt;br /&gt; В ней можно сделать что угодно, но главное - воидная ф-ция &quot;hasUseGO()&quot; &lt;br /&gt; В ней опишем действие: сказать &quot;Игрок использовал Игровой Объект&quot; &lt;br /&gt; На этом моб закончен. &lt;br /&gt;&lt;br /&gt; Теперь расскажу о ГО: &lt;br /&gt; Во-первых он должен инициализировать ПОСЛЕ моба, иначе компилятор выдаст вам уйму ошибок и будет ругаться на то, что &quot;boss_test_mobAI - неопознанный идентификатор&quot;... &lt;br /&gt;&lt;br /&gt; Пишем структуру ГО. Она схожа с АИ структурой мобов. &lt;br /&gt; Так же, как и в первом варианте ищем моба. Делаем те же првоерки. &lt;br /&gt; И теперь добавляем еще проверку: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; if (boss_test_mob::boss_test_mobAI* mobAI = dynamic_cast&lt;boss_test_mob::boss_test_mobAI*&gt;(testMob-&gt;AI(&amp;#41;&amp;#41;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Проверка: имеет ли моб АИ структуру. &lt;br /&gt; Так как АИ у нас явно не вынесена, то придется ее найти путем класса &lt;br /&gt; Поэтому пишем так: boss_test_mob::boss_test_mobAI &lt;br /&gt; И из этого делаем ссылку на переменную mobAI &lt;br /&gt; mobAI-&gt;hasUseGO(); &lt;br /&gt; Выполняем уже от лица моба воидную функцию. В итоге моб говорит о том, что игрок использовал ГО. &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Данный материал достаточно сложный, но достаточно часто нужный. &lt;br /&gt; Однако, в виду сложности, новичкам придется попотеть. &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;right&quot;&gt;Копировать данный материал можно лишь с согласия автора&lt;/div&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>Unregistered</dc:creator>
			<guid>https://wjp.clan.su/forum/246-199061-1</guid>
		</item>
		<item>
			<title>[Мануал] Реализация многих достижений, связанных с кастами</title>
			<link>https://wjp.clan.su/forum/246-199295-1</link>
			<pubDate>Sun, 17 Jun 2012 18:47:09 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: Автор: Кирилл Н. (Stormrage, Unregistered)&lt;br /&gt;Автор темы: Unregistered&lt;br /&gt;Автор последнего сообщения: RockTee&lt;br /&gt;Количество ответов: 2</description>
			<content:encoded>Решил написать еще один мануал: &lt;br /&gt; Существует довольно много достижений, требующих пережить сколько-то кастов или же наоборот: сделать так, чтобы каст не был совершен ни разу. &lt;br /&gt; Расскажу об этом поподробнее. &lt;br /&gt;&lt;br /&gt; Во-первых, нам понабодится умение пользоваться кастом(dynamic_cast). Один пример я уже привел в предыдущем мануале. &lt;br /&gt;&lt;br /&gt; Как обычно приведу пример самописного кода и разберу его: &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerbsSYez&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerbsSYez&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerbsSYez&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerbsSYez&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerbsSYez&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerbsSYez&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerbsSYez&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerbsSYez&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerbsSYez&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; enum &lt;br /&gt; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ACHIEVEMENT_ID = 100000, &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CAST_SPELL = 1000, &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOB_ID = 999999, &lt;br /&gt; }; &lt;br /&gt;&lt;br /&gt; class boss_test_mob2 : public CreatureScript&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_mob2(&amp;#41; : CreatureScript(&quot;boss_test_mob2&quot;&amp;#41; { }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreatureAI* GetAI(Creature* creature&amp;#41; const&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return new boss_test_mob2AI (creature&amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;struct boss_test_mob2AI : public ScriptedAI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_mob2AI(Creature* creature&amp;#41; : ScriptedAI(creature&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;instance = creature-&gt;GetInstanceScript(&amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bool AchievCheck; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InstanceScript* instance;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Reset(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AchievCheck = false; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void VoidCheck(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AchievCheck = true; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void JustDied(Unit* /*killer*/&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!AchievCheck&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;instance-&gt;DoCompleteAchievement(ACHIEVEMENT_ID&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void UpdateAI(cinst uint32 diff&amp;#41; {} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }; &lt;br /&gt;&lt;br /&gt; class boss_test_mob1 : public CreatureScript&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_mob1(&amp;#41; : CreatureScript(&quot;boss_test_mob1&quot;&amp;#41; { }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreatureAI* GetAI(Creature* creature&amp;#41; const&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return new boss_test_mob1AI (creature&amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;struct boss_test_mob1AI : public ScriptedAI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_mob1AI(Creature* creature&amp;#41; : ScriptedAI(creature&amp;#41;&amp;nbsp;&amp;nbsp;{ } &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint64 mobGUID; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32 CastTimer; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Reset(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CastTimer = 10000; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* mob = GetClosestCreatureWithEntry(*me, MOB_ID, 1000.0f&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mobGUID = mob-&gt;GetGUID(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void UpdateAI(cinst uint32 diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (CastTimer &lt;= diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CastTimer = 10000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoCast(me-&gt;getVicte(&amp;#41;, CAST_SPELL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* testMob = Unit::GetCreature(*me, mobGUID&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (testMob-&gt;isAlive(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (boss_test_mob2::boss_test_mob2AI* mobAI = dynamic_cast&lt;boss_test_mob2::boss_test_mob2AI*&gt;(testMob-&gt;AI(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mobAI-&gt;VoidCheck(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else CastTimer -= diff; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; 1 - энум(перечисление значений) &lt;br /&gt; Записываем ИД достижения, ИД спелла для каста и ИД моба &lt;br /&gt;&lt;br /&gt; 2 - Инициализируем АИ второго моба. Все мы уже проходили(если читатель изучил все предыдущие материалы) &lt;br /&gt; Но в этом случае вводим обязательные переменные: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bool AchievCheck; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InstanceScript* instance; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Без них не получится ничего. &lt;br /&gt; Инициализируем их: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;instance = creature-&gt;GetInstanceScript(&amp;#41;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Reset(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AchievCheck = false; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Без инициализации первой (instance) не будет работать ф-ция &quot;DoCompleteAchievement&quot; &lt;br /&gt; Вторая - булевая переменная. Она может иметь два значения: true(логическая истина) и false(логическая ложь) &lt;br /&gt; Присваиваем ей &quot;ложь&quot;. &lt;br /&gt;&lt;br /&gt; Дальше создаем воидную функцию &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void VoidCheck(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AchievCheck = true; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; В которой, в случае действия этой ф-ции, меняем значение переменное на истинное. &lt;br /&gt;&lt;br /&gt; Тут мы проходили в первом мануале: ф-ции, вызываемая при смерти моба и в ней ф-ция заверщения достижения. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void JustDied(Unit* /*killer*/&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!AchievCheck&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;instance-&gt;DoCompleteAchievement(ACHIEVEMENT_ID&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Первый моб разобран. &lt;br /&gt; Идем ко второму, у которого все и делается -) &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint64 mobGUID; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32 CastTimer;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Не буду объяснять еще раз что это такое и для чего. &lt;br /&gt; Что такое UpdateAI я уже тоже объяснял. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (CastTimer &lt;= diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CastTimer = 10000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoCast(me-&gt;getVictim(&amp;#41;, CAST_SPELL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* testMob = Unit::GetCreature(*me, mobGUID&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (testMob-&gt;isAlive(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (boss_test_mob2::boss_test_mob2AI* mobAI = dynamic_cast&lt;boss_test_mob2::boss_test_mob2AI*&gt;(testMob-&gt;AI(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mobAI-&gt;VoidCheck(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else CastTimer -= diff; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Все это мы разбирали. Но вкратце еще раз по-быстрому разберем. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (CastTimer &lt;= diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CastTimer = 10000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoCast(me-&gt;getVictim(&amp;#41;, CAST_SPELL&amp;#41;; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; проверка на окончание таймера, в ней обновление таймера и каст спелла на выбранную мобом цель(танка) &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Creature* testMob = Unit::GetCreature(*me, mobGUID&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (testMob-&gt;isAlive(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (boss_test_mob2::boss_test_mob2AI* mobAI = dynamic_cast&lt;boss_test_mob2::boss_test_mob2AI*&gt;(testMob-&gt;AI(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mobAI-&gt;VoidCheck(&amp;#41;; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; проверки на существование моба вообще, на &quot;жив ли моб&quot; и на &quot;есть ли у моба АИ&quot;. &lt;br /&gt; После чего от лица моба (mobAI-&gt;) применяем ф-цию VoidCheck(); (значит меняем значение нашей переменной (AchievCheck) на истинное. &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Вот такой вот нехитрый способ. &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;right&quot;&gt;Копировать данный материал можно лишь с разрешения автора&lt;/div&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>Unregistered</dc:creator>
			<guid>https://wjp.clan.su/forum/246-199295-1</guid>
		</item>
		<item>
			<title>[Мануал] Как залить сет в торговца за 1 минуту</title>
			<link>https://wjp.clan.su/forum/246-197040-1</link>
			<pubDate>Sun, 17 Jun 2012 18:45:33 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: Djumhоrdе&lt;br /&gt;Автор последнего сообщения: RockTee&lt;br /&gt;Количество ответов: 1</description>
			<content:encoded>&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://filebeam.com/3395e6e0f912a14444aa26f23b46bad1.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;/div&gt; &lt;br /&gt; &lt;u&gt;&lt;b&gt;И снова здравствуйте пользователи и не только портала WoWJP.net &lt;br /&gt; Сегодня, я хотел бы вам рассказать, как заполнить НПС торговца вещами(для примера буду использовать сеты), не мучаясь ища ID и тд.&lt;/b&gt;&lt;/u&gt; &lt;br /&gt;&lt;br /&gt; &lt;span style=&quot;font-size:14pt;&quot;&gt;&lt;b&gt;Как создать вендора см &lt;a class=&quot;link&quot; href=&quot;http://wowjp.net/forum/120-195472-1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;ЗДЕСЬ(!)&lt;/a&gt;.&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Что нам понадобится:&lt;/b&gt; &lt;br /&gt; &lt;i&gt;&lt;li&gt; Любая программа для работы в БД &lt;br /&gt; &lt;li&gt; Чуточку времени&lt;/i&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Основа&lt;/b&gt; &lt;br /&gt; &lt;i&gt;Как я и писал выше, мы будем делать торговца, не заморочиваясь о ID. Для примера возьмем, как заполнить вендора вещами &lt;b&gt;А8&lt;/b&gt;.&lt;/i&gt; &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;replace into npc_vendor (entry, item&amp;#41; select 9999999, entry from item_template where itemlevel=270 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Разберем запрос&lt;/b&gt; &lt;br /&gt; &lt;!--uzquote--&gt;&lt;div class=&quot;bbQuoteBlock&quot;&gt;&lt;div class=&quot;bbQuoteName&quot; style=&quot;padding-left:5px;font-size:7pt&quot;&gt;&lt;b&gt;Quote&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;quoteMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzq--&gt;9999999 - ID вендора &lt;br /&gt; itemlevel=280 - думаю всё ясно. Итемлевел брать с &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://ru.wowhead.com/&quot; title=&quot;http://ru.wowhead.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;вовхеда&lt;/a&gt; &lt;br /&gt; class=4 - Класс Armore; Подробнее см &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://www.trinitycore.info/Item_template_tc2#class&quot; title=&quot;http://www.trinitycore.info/Item_template_tc2#class&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;здесь&lt;/a&gt;. &lt;br /&gt; itemset&gt;0 - Это означает то, что будут заливаться только те вещи, которые имеют итеи левел &lt;br /&gt; stat_type1-10 = 35 - Означает то, что будут заливаться только те вещи, в которых есть характеристика 35(устойчивость)&lt;!--/uzq--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzquote--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Запросы на разные сеты&lt;/b&gt; &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerK6gRtV&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerK6gRtV&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerK6gRtV&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerK6gRtV&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerK6gRtV&apos;)).val(&apos;[&amp;#92;&amp;#8211;] Arena Season 1-9&apos;);$(&apos;#uSpoilerK6gRtV&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerK6gRtV&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerK6gRtV&apos;)).val(&apos;[+] Arena Season 1-9&apos;);$(&apos;#uSpoilerK6gRtV&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;[+] Arena Season 1-9&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;Arena Season 1 &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Replace into npc_vendor (entry, item&amp;#41; select 500033, entry from item_template where itemlevel=123 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Arena Season 2 &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Replace into npc_vendor (entry, item&amp;#41; select 9999999, entry from item_template where itemlevel=136 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Arena Season 3 &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Replace into npc_vendor (entry, item&amp;#41; select 9999999, entry from item_template where itemlevel=146 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Arena Season 4 &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Replace into npc_vendor (entry, item&amp;#41; select 9999999, entry from item_template where itemlevel=159 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Arena Season 5 &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Replace into npc_vendor (entry, item&amp;#41; select 9999999, entry from item_template where itemlevel=213 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Arena Season 6 &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Replace into npc_vendor (entry, item&amp;#41; select 9999999, entry from item_template where itemlevel=232 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Arena Season 7 &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Replace into npc_vendor (entry, item&amp;#41; select 9999999, entry from item_template where itemlevel=251 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Arena Season 8 &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Replace into npc_vendor (entry, item&amp;#41; select 9999999, entry from item_template where itemlevel=270 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Arena Season 9 &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Replace into npc_vendor (entry, item&amp;#41; select 9999999, entry from item_template where itemlevel=365 and class=4 and itemset&gt;0 and (stat_type1 = 35 or stat_type2 = 35 or stat_type3 = 35 or stat_type4 = 35 or stat_type5 = 35 or stat_type6 = 35 or stat_type7 = 35 or stat_type8 = 35 or stat_type9 = 35 or stat_type10 = 35&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;!--/ust--&gt;&lt;!--usn(=Arena Season 1-9)--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>Djumhоrdе</dc:creator>
			<guid>https://wjp.clan.su/forum/246-197040-1</guid>
		</item>
		<item>
			<title>[Мануал] создание воидной ф-ции для каста на всех игроков</title>
			<link>https://wjp.clan.su/forum/246-199043-1</link>
			<pubDate>Sun, 19 Feb 2012 09:26:56 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: Автор: Кирилл Н. (Stormrage, Unregistered)&lt;br /&gt;Автор темы: Unregistered&lt;br /&gt;Автор последнего сообщения: ph3n&lt;br /&gt;Количество ответов: 1</description>
			<content:encoded>Итак. Допустим, мы хотим, чтобы босс кастанул какой-либо спелл на всех игроков в инсте. &lt;br /&gt; Или чтобы все игроки инста что-либо сделали. &lt;br /&gt;&lt;br /&gt; В АИ структуре моба(я описал что это такое в предыдущем мануале) создаем функцию void &lt;br /&gt; и пишем в ней &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerYU9xNC&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerYU9xNC&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerYU9xNC&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerYU9xNC&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerYU9xNC&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerYU9xNC&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerYU9xNC&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerYU9xNC&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerYU9xNC&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt; &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void TeleportAndFly(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Map *pMap = me-&gt;GetMap(&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Map::PlayerList const &amp;PlayerList = pMap-&gt;GetPlayers(&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (PlayerList.isEmpty(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (Map::PlayerList::const_iterator i = PlayerList.begin(&amp;#41;; i != PlayerList.end(&amp;#41;; ++i&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Player* plr = i-&gt;getSource(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (plr-&gt;isAlive(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plr-&gt;TeleportTo(plr-&gt;GetMap(&amp;#41;, plr-&gt;GetPositionX(&amp;#41;, plr-&gt;GetPositionY(&amp;#41;, plr-&gt;GetPositionZ(&amp;#41;+50.0f, plr-&gt;GetOrientation(&amp;#41;&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plr-&gt;CastSpell(plr, SPELL_EYE_OFTHE_STORM, false&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Теперь разберем все: &lt;br /&gt; Map *pMap = me-&gt;GetMap(); &lt;br /&gt; Класс (Map) с ссылкой на действующий элемент (pMap) и определение его. (me-&gt;GetMap()) &lt;br /&gt; Теперь у нас pMap означает карту, на которой в данный момент находится босс. &lt;br /&gt;&lt;br /&gt; Map::PlayerList const &amp;PlayerList = pMap-&gt;GetPlayers(); &lt;br /&gt; трудная для понимания новичков строка. Если кратко, то значит, мы вводим переменную с ссылкой на значения от мап и приравниваем ее к выбору игроков на карте. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; if (PlayerList.isEmpty(&amp;#41;&amp;#41; &lt;br /&gt; return; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Это необходимая проверка. В противном случае будет краш сервера. Означает, что в случае, если ни одного игрока не найдено - возврат ф-ции. &lt;br /&gt;&lt;br /&gt; Дальше объемная строка, но если ее разобрать, то она в полне простая &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;for (Map::PlayerList::const_iterator i = PlayerList.begin(&amp;#41;; i != PlayerList.end(&amp;#41;; ++i&amp;#41;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; начало цикла для игроков. итератор(переменная для подсчета) вводим тут же и приравниваем к первому же игроку, которого мы нашли через (pMap-&gt;GetPlayers()) и считаем игроков до тех пор, пока на карте не останется ни одного неподсчитанного &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Player* plr = i-&gt;getSource(&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; это для простоты. Можно и не использовать, но вместо последующих &quot;plr&quot; нужно будет писать везде &quot;i-&gt;getSource();-&gt;&quot; &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;if (plr-&gt;isAlive(&amp;#41;&amp;#41;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; - проверка на то, жив ли игрок. (если мертв, то в цикле идет сл. игрок) &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;plr-&gt;TeleportTo(plr-&gt;GetMap(&amp;#41;, plr-&gt;GetPositionX(&amp;#41;, plr-&gt;GetPositionY(&amp;#41;, plr-&gt;GetPositionZ(&amp;#41;+50.0f, plr-&gt;GetOrientation(&amp;#41;&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; каждого игрока(plr-&gt;) насильно (т.е. нет больше никаких проверок, и, пусть игрок кастует или что-то еще делает - он все равно будет телепортирован) телепортируем игрока в следующие позиции: &lt;br /&gt; plr-&gt;GetMap(), - в ту же карту, где находится игрок &lt;br /&gt; plr-&gt;GetPositionX(), plr-&gt;GetPositionY(), - на те же позиции X и Y, что использует игрок(т.е. остается на месте, ни вправо, ни влево он не сместится) &lt;br /&gt; plr-&gt;GetPositionZ()+50.0f к исходной высоте игрока добавляем значение и телепортируем его туда. (т.е. игрок очутиться на 50 ярдов выше, чем был) &lt;br /&gt; plr-&gt;GetOrientation() - ориентация игрока. Не меняем.(поворот и &quot;взгляд&quot; камеры будет прежним) &lt;br /&gt;&lt;br /&gt; plr-&gt;CastSpell(plr, SPELL_EYE_OFTHE_STORM, false); &lt;br /&gt; заставляем игрока самого на себя кастануть спелл. &lt;br /&gt; CastSpell(plr, SPELL_EYE_OFTHE_STORM, false); &lt;br /&gt; -(цель, спелл, булевая переменная (true / false), означающая триггерность каста(с визуал - без визуального эффекта) &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt; Все, мы расписали ф-wb. телепорта и каста на себя спелла. Чтобы использовать ее в АИ моба(его поведении) запишем: &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoiler6s08GD&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoiler6s08GD&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler6s08GD&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler6s08GD&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler6s08GD&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoiler6s08GD&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler6s08GD&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler6s08GD&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoiler6s08GD&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt; &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void EnterCombat(Unit* /*who*/&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TeleportAndFly(&amp;#41;: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; при начале боя все игроки будут телепортированы на 50 ярдов выше своего месторасположения и кастанут на себя спелл. &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;right&quot;&gt; Копирование материала разрешено только с согласия автора(меня)&lt;/div&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>Unregistered</dc:creator>
			<guid>https://wjp.clan.su/forum/246-199043-1</guid>
		</item>
		<item>
			<title>[Мануал] Создание моба/босса в ядре</title>
			<link>https://wjp.clan.su/forum/246-199033-1</link>
			<pubDate>Sun, 19 Feb 2012 08:46:30 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: Автор: Кирилл Н. (Stormrage, Unregistered)&lt;br /&gt;Автор темы: Unregistered&lt;br /&gt;Автор последнего сообщения: ph3n&lt;br /&gt;Количество ответов: 1</description>
			<content:encoded>Итак, чтобы привязать к боссу АИ, нужно написать его класс и выбрать, какую структуру он использует. Структур две: BossAI и ScriptedAI &lt;br /&gt; Разберем вторую. &lt;br /&gt;&lt;br /&gt; Для нормального оформления в начале кода используется перечислитель значений Enum &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerU03yOj&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerU03yOj&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerU03yOj&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerU03yOj&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerU03yOj&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerU03yOj&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerU03yOj&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerU03yOj&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerU03yOj&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; enum BossSpells &lt;br /&gt; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPELL_BERSERK = 26297, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPELL_SKULLCRACKER = 75543, &lt;br /&gt; }; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;&lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Дальше шапка АИ босса: &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoiler44ZdOd&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoiler44ZdOd&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler44ZdOd&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler44ZdOd&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler44ZdOd&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoiler44ZdOd&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler44ZdOd&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler44ZdOd&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoiler44ZdOd&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; class boss_test_boss : public CreatureScript &lt;br /&gt; { &lt;br /&gt; public: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_boss(&amp;#41; : CreatureScript(&quot;boss_test_boss&quot;&amp;#41; { } &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreatureAI* GetAI(Creature* creature&amp;#41; const &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return new boss_test_bossAI (creature&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;struct boss_test_bossAI : public ScriptedAI &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_bossAI(Creature* creature&amp;#41; : ScriptedAI(creature&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;instance = creature-&gt;GetInstanceScript(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Reset(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InstanceScript* instance; &lt;br /&gt;&lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Создаем отдельный класс, называем его именем нашего босса. Присваиваем АИ и сразу же регистрируем ее. &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Дальше идет ввод переменных. &lt;br /&gt; Создадим, например, таймеры для кастов босса и сразу же присвоим им значение.. &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerAWGjVk&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerAWGjVk&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerAWGjVk&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerAWGjVk&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerAWGjVk&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerAWGjVk&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerAWGjVk&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerAWGjVk&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerAWGjVk&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32 BerserkTimer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32 SkullcrackerTimer; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Reset(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BerserkTimer = 40000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SkullcrackerTimer = 20000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; В программировании время измеряется в миллисекундах. Поэтому 40000 милисек = 40 сек. (1000 миллисекунд = 1 секунда) &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Дальше можно ввести воидные ф-ции, которые будут инициализировать код при смерти босса.. Рассмотрим примеры &quot;босс умер и сказал что-либо&quot; и &quot;босс агрится и говорит&quot; &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoiler8LfAmx&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoiler8LfAmx&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler8LfAmx&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler8LfAmx&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler8LfAmx&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoiler8LfAmx&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoiler8LfAmx&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoiler8LfAmx&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoiler8LfAmx&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt; &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void EnterCombat(Unit* /*who*/&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;me-&gt;MonsterYell(&quot;i kill you!&quot;, LANG_UNIVERSAL, NULL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void JustDied(Unit* /*pKiller*/&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;me-&gt;MonsterYell(&quot;i&apos;m is dead&quot;, LANG_UNIVERSAL, NULL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; вместо текста в кавычках можно использовать текст из БД, который можно так же предопределить, как и спеллы, либо написать цифрами &quot;(-111111, LANG_UNIVERSAL, NULL); &lt;br /&gt; LANG_UNIVERSAL - язык, который понятен всем рассам. &lt;br /&gt; Все языки: &lt;br /&gt; [spoiler] &lt;br /&gt; LANG_UNIVERSAL &lt;br /&gt; LANG_ORCISH &lt;br /&gt; LANG_DARNASSIAN &lt;br /&gt; LANG_TAURAHE &lt;br /&gt; LANG_DWARVISH &lt;br /&gt; LANG_COMMON &lt;br /&gt; LANG_DEMONIC &lt;br /&gt; LANG_TITAN &lt;br /&gt; LANG_THALASSIAN &lt;br /&gt; LANG_DRACONIC &lt;br /&gt; LANG_KALIMAG &lt;br /&gt; LANG_GNOMISH &lt;br /&gt; LANG_TROLL &lt;br /&gt; LANG_GUTTERSPEAK &lt;br /&gt; LANG_DRAENEI &lt;br /&gt; LANG_ZOMBIE &lt;br /&gt; LANG_GNOMISH_BINARY &lt;br /&gt; LANG_GOBLIN_BINARY &lt;br /&gt; LANG_WORGEN &lt;br /&gt; LANG_GOBLIN &lt;br /&gt; }; &lt;br /&gt;&lt;br /&gt; так же существуют ф-ции для вывода сообщения в игру: &lt;br /&gt; MonsterSay(текст, язык, цель) &lt;br /&gt; MonsterTextEmote(текст, цель, булевая переменная(true, false) Если true, то сообщение будет выводиться на центр экрана(как предупреждение Рла в рейде) &lt;br /&gt; MonsterWhisper(текст, цель, булевая переменная(true, false) &lt;br /&gt; MonsterYellToZone(текст, язык, цель) &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Дальше обновление АИ. То, что босс делает постоянно. Напишем небольшой код на наши спеллы(&quot;берсерк&quot; и &quot;крушитель черепов&quot;) &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerXd3shF&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerXd3shF&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerXd3shF&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerXd3shF&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerXd3shF&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerXd3shF&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerXd3shF&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerXd3shF&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerXd3shF&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void UpdateAI(const uint32 diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!UpdateVictim(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (SkullcrackerTimer &lt;= diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Unit* target = me-&gt;getVictim(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoCast(target, SPELL_SKULLCRACKER&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SkullcrackerTimer = 20000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else SkullcrackerTimer -= diff; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (BerserkTimer &lt;= diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoCast(me, SPELL_ELECTROCUE&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BerserkTimer = 40000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else BerserkTimer -= diff; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoMeleeAttackIfReady(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Принцип: Если таймер меньше или равен нулю, то кастуем и обновляем таймер. Иначе отсчитываем таймер в меньшую сторону. &lt;br /&gt;&lt;br /&gt; DoMeleeAttackIfReady(); - дает возможность боссу драться обыкновенными атаками. Если этой ф-ции не будет, босс будет просто бегать за целью, но не будет ее бить. Только кастовать. &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Полный код: &lt;br /&gt; &lt;!--uSpoiler--&gt;&lt;div class=&quot;uSpoilerClosed&quot; id=&quot;uSpoilerVDnTdS&quot;&gt;&lt;div class=&quot;uSpoilerButBl&quot;&gt;&lt;input type=&quot;button&quot; class=&quot;uSpoilerButton&quot; onclick=&quot;if($(&apos;#uSpoilerVDnTdS&apos;)[0]){if ($(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerVDnTdS&apos;))[0].style.display==&apos;none&apos;){$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerVDnTdS&apos;))[0].style.display=&apos;&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerVDnTdS&apos;)).val(&apos;Закрыть спойлер&apos;);$(&apos;#uSpoilerVDnTdS&apos;).attr(&apos;class&apos;,&apos;uSpoilerOpened&apos;);}else {$(&apos;.uSpoilerText&apos;,$(&apos;#uSpoilerVDnTdS&apos;))[0].style.display=&apos;none&apos;;$(&apos;.uSpoilerButton&apos;,$(&apos;#uSpoilerVDnTdS&apos;)).val(&apos;Открыть спойлер&apos;);$(&apos;#uSpoilerVDnTdS&apos;).attr(&apos;class&apos;,&apos;uSpoilerClosed&apos;);}}&quot; value=&quot;Открыть спойлер&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;uSpoilerText&quot; style=&quot;display:none;&quot;&gt;&lt;!--ust--&gt;&lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; enum BossSpells &lt;br /&gt; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPELL_BERSERK = 26297, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPELL_SKULLCRACKER = 75543, &lt;br /&gt; }; &lt;br /&gt;&lt;br /&gt; class boss_test_boss : public CreatureScript &lt;br /&gt; { &lt;br /&gt; public: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_boss(&amp;#41; : CreatureScript(&quot;boss_test_boss&quot;&amp;#41; { } &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreatureAI* GetAI(Creature* creature&amp;#41; const &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return new boss_test_bossAI (creature&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;struct boss_test_bossAI : public ScriptedAI &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;boss_test_bossAI(Creature* creature&amp;#41; : ScriptedAI(creature&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;instance = creature-&gt;GetInstanceScript(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InstanceScript* instance; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32 BerserkTimer; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32 SkullcrackerTimer; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Reset(&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BerserkTimer = 40000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SkullcrackerTimer = 20000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void EnterCombat(Unit* /*who*/&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;me-&gt;MonsterYell(&quot;i kill you!&quot;, LANG_UNIVERSAL, NULL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void JustDied(Unit* /*pKiller*/&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;me-&gt;MonsterYell(&quot;i&apos;m is dead&quot;, LANG_UNIVERSAL, NULL&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void UpdateAI(const uint32 diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!UpdateVictim(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (SkullcrackerTimer &lt;= diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (Unit* target = me-&gt;getVictim(&amp;#41;&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoCast(target, SPELL_SKULLCRACKER&amp;#41;; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SkullcrackerTimer = 20000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else SkullcrackerTimer -= diff; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (BerserkTimer &lt;= diff&amp;#41; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoCast(me, SPELL_ELECTROCUE&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BerserkTimer = 40000; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else BerserkTimer -= diff; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoMeleeAttackIfReady(&amp;#41;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}; &lt;br /&gt; }; &lt;br /&gt;&lt;br /&gt; void AddSC_test_boss(&amp;#41; &lt;br /&gt; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new test_boss(&amp;#41;; &lt;br /&gt; } &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; AddSC_test_boss() - добавление загрузки скрипта в ядро. &lt;br /&gt; Нужно добавить в: ...&amp;#92;src&amp;#92;server&amp;#92;game&amp;#92;Scripting&amp;#92;ScriptLoader.cpp &lt;br /&gt;&lt;br /&gt; Цель можно выбрать сл образом: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM&amp;#41; &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Возмоности: &lt;br /&gt;&lt;br /&gt; SELECT_TARGET_RANDOM &lt;br /&gt; SELECT_TARGET_TOPAGGRO &lt;br /&gt; SELECT_TARGET_BOTTOMAGGRO &lt;br /&gt; SELECT_TARGET_NEAREST &lt;br /&gt; SELECT_TARGET_FARTHEST &lt;br /&gt; &lt;!--/ust--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uSpoiler--&gt; &lt;br /&gt;&lt;br /&gt; Итак, суть босса: &lt;br /&gt; При агре кричит &quot;I kill you&quot;, при смерти: &quot;I&apos;m dead&quot; &lt;br /&gt; Каждые 20 секунд бьет танка &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://ru.wowhead.com/spell=75543&quot; title=&quot;http://ru.wowhead.com/spell=75543&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Крушителем церепов&lt;/a&gt;, а каждые 40 секунд впадает в легкий берсерк. &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;right&quot;&gt;Копирование материала разрешается только с разрешения автора. (т.е. меня)&lt;/div&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>Unregistered</dc:creator>
			<guid>https://wjp.clan.su/forum/246-199033-1</guid>
		</item>
		<item>
			<title>Вознаграждение за статьи</title>
			<link>https://wjp.clan.su/forum/246-198975-1</link>
			<pubDate>Sun, 19 Feb 2012 07:19:18 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: ph3n&lt;br /&gt;Автор последнего сообщения: ph3n&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Хотите&lt;b&gt; -20%&lt;/b&gt;, &lt;b&gt;награду&lt;/b&gt;, &lt;b&gt;честь&lt;/b&gt;, &lt;b&gt;купон WoWShop на 20$&lt;/b&gt; или же &lt;b&gt;репутацию&lt;/b&gt;? Тогда вам, просто, нужно написать 5 мануалов; но, мануал должен придерживаться данных критерий: &lt;br /&gt; &lt;ul&gt; &lt;br /&gt; &lt;i&gt;&lt;b&gt;1&lt;/b&gt;.Тема материала должна относиться к SkyFire; &lt;br /&gt; &lt;b&gt;2&lt;/b&gt;.Мануал должен быть востребован и не повторяться; &lt;br /&gt; &lt;b&gt;3&lt;/b&gt;.Мануал должен быть понятен;&lt;/i&gt; &lt;br /&gt; &lt;/ul&gt; &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt;&lt;br /&gt; Критерии оценки: &lt;br /&gt; &lt;i&gt;1. Новизна - 4 балла. &lt;br /&gt; 2. Востребованность - 6 баллов. &lt;br /&gt; 3. Качество речи - 5 баллов. &lt;br /&gt; 4. Понятность - 5 баллов. &lt;/i&gt; &lt;br /&gt; Максимальное количество баллов - 20. &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Награды:&lt;/b&gt; &lt;br /&gt; 1. Что бы получить -20% нужно написать 3 статьи и набрать, минимум, 15 баллов в каждой; &lt;br /&gt; 2. +20 - +30 репутации - оценка до 15; &lt;br /&gt; 2.1 +40 - +50 - оценка до 18 баллов; &lt;br /&gt; 2.2 +60 - +70 оценка от 18 баллов и выше.; &lt;br /&gt; 3. За каждый балл статьи автор получает 100 чести. &lt;br /&gt; 4. Если суммарное количество баллов по статьям больше или равно 45, то вы получаете награду за развитие раздела. &lt;br /&gt;&lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;u&gt;&lt;b&gt;Примечание:&lt;/b&gt; &lt;/u&gt; &lt;br /&gt; &lt;span style=&quot;font-size:9pt;&quot;&gt;1. &lt;b&gt;После того как вы написали мануал, Вам необходимо написать мне в ЛС.(если не напишите, не буду оценивать)&lt;/b&gt; &lt;br /&gt; 1.1. Если вы хотите пополнить список тем, пишем ваши предложения в ЛС. &lt;br /&gt; 2. Если пользователь в качестве вознаграждения выбрал -20%, то статьи, за которые была выдана данная награда, не могут быть рассмотрены в других номинациях.&lt;/span&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>ph3n</dc:creator>
			<guid>https://wjp.clan.su/forum/246-198975-1</guid>
		</item>
		<item>
			<title>[Мануал]GDB: отладчик проекта GNU.</title>
			<link>https://wjp.clan.su/forum/246-196287-1</link>
			<pubDate>Sun, 05 Feb 2012 20:13:16 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: Перевод. Только для Linux&lt;br /&gt;Автор темы: keonji&lt;br /&gt;Автор последнего сообщения: keonji&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>&lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://wiki.projectskyfire.org/index.php?title=Linux_GDB_Debugging&quot; title=&quot;http://wiki.projectskyfire.org/index.php?title=Linux_GDB_Debugging&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Переводился этот материал&lt;/a&gt; &lt;br /&gt;&lt;br /&gt; Автором оригинала является Derex из проекта MaNGOS. &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://getmangos.com/community/topic/4579/howto-gdb-debugging/&quot; title=&quot;http://getmangos.com/community/topic/4579/howto-gdb-debugging/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://getmangos.com/community/topic/4579/howto-gdb-debugging/&lt;/a&gt; &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; Привет, этот простой урок показывает, что такое GDB и как его использовать. &lt;br /&gt;&lt;br /&gt; Это руководство предполагает, что вы можете включить свой WorldServer, набрав: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;worldserver&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; в консоли. &lt;br /&gt;&lt;br /&gt; 1. Перед тем, как начать отладку Skyfire вам нужно скомпилировать сервер с отладочной информацией. Чтобы скомпилировать Skyfire с отладочной информацией нужно добавить: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;--with-debug-info&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; когда запускаете &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;.. / configure&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Затем скомпилируйте и установите Skyfire, как обычно. &lt;br /&gt;&lt;br /&gt; 2. Теперь вы можете запустить Skyfire с GDB, введя это: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;gdb worldserver&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Тогда вы, скорее всего, увидите что-то вроде этого: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;derex@*:~/workspace/SkyFire/build$ gdb worldserver GNU gdb 6.8-debian Copyright (C&amp;#41; 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later &lt;http&amp;#58;//gnu.org/licenses/gpl.html&gt; This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type &quot;show copying&quot; and &quot;show warranty&quot; for details. This GDB was configured as &quot;x86_64-linux-gnu&quot;... (gdb&amp;#41; &lt;br /&gt;&lt;br /&gt; (gdb&amp;#41; - is the GDB command prompt smile , here you can type some commands, almost like in normal shell.&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Теперь после того, как у вас работает GDB, вы можете приказать ему, включить Skyfire: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;run&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Просто введите это, и если вам повезет, вы увидите загрузку Skyfire. &lt;br /&gt;&lt;br /&gt; Хорошо... Вы сделали это, теперь Skyfire работает. Подождите, пока не наступит краш. &lt;br /&gt;&lt;br /&gt; 3. Когда Skyfire крашнётся вы, скорее всего, увидите это сообщение, или любое аналогичное. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;Program received signal SIGSEGV, Segmentation fault. &amp;#91;Switching to Thread 0x42c5c950 (LWP 9283&amp;#41;] Player (this=0x42c598e0, session=0x0&amp;#41; at ../../../src/game/Player.cpp:265 265 ../../../src/game/Player.cpp: No such file or directory. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;in ../../../src/game/Player.cpp &lt;br /&gt;&lt;br /&gt; (gdb&amp;#41; &lt;br /&gt;&lt;br /&gt; Now you can type some commands to get information about the crash, and possibly give it to some dev to fix the problem. &lt;br /&gt;&lt;br /&gt; Here are the commands that are best to be typed ( or at least I find the most useful for crash report &amp;#41; &lt;br /&gt;&lt;br /&gt; shell echo -e &quot;&amp;#92;nCRASH ON&quot; `date` info program shell echo -e &quot;&amp;#92;nBACKTRACE&amp;#92;n&quot; bt shell echo -e &quot;&amp;#92;nBACKTRACE FULL&amp;#92;n&quot; bt full shell echo -e &quot;&amp;#92;nTHREADS&amp;#92;n&quot; info threads shell echo -e &quot;&amp;#92;nTHREADS BACKTRACE&amp;#92;n&quot; thread apply all bt full &lt;br /&gt;&lt;br /&gt; Just type them one after another and give the output in your bug report ... &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; ОК. Это то, что нужно, теперь мы можем думать о том, чтобы автоматизировать весь этот процесс. GDB имеет 2 очень хороших функции: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;--batch Exit after processing options. &lt;br /&gt; --command=FILE, -x Execute GDB commands from FILE.&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; 4. Таким образом, вы можете поместить все команды в один файл и дать GDB выполнить его. Допустим, мы засунули это в один файл и назвали его gdb-commands. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;run shell echo -e &quot;&amp;#92;nCRASH ON&quot; `date` info program shell echo -e &quot;&amp;#92;nBACKTRACE&amp;#92;n&quot; bt shell echo -e &quot;&amp;#92;nBACKTRACE FULL&amp;#92;n&quot; bt full shell echo -e &quot;&amp;#92;nTHREADS&amp;#92;n&quot; info threads thread apply all bt full&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Теперь вы можете начать все с отладчиком: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;gdb worldserver --batch -x /path/to/gdb-commands&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;СОВЕТ!&lt;/b&gt; &lt;br /&gt; Вы можете перенаправить стандартный вывод в лог-файл. Я имею в виду следующее: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;gdb worldserver --batch -x /path/to/gdb-commands &gt; /some/log/file&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>keonji</dc:creator>
			<guid>https://wjp.clan.su/forum/246-196287-1</guid>
		</item>
		<item>
			<title>[Мануал]Компиляция Skyfire</title>
			<link>https://wjp.clan.su/forum/246-194661-1</link>
			<pubDate>Sat, 28 Jan 2012 18:38:27 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: ph3n&lt;br /&gt;Автор последнего сообщения: ph3n&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Итак, после всех тех действий - &lt;a class=&quot;link&quot; href=&quot;http://wowjp.net/forum/246-192699-1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;1&lt;/a&gt;, &lt;a class=&quot;link&quot; href=&quot;http://wowjp.net/forum/246-193753-1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;2&lt;/a&gt;; у нас получились бинарники для MVS(в моём случае для 2010). &lt;br /&gt; Что же делать дальше? &lt;b&gt;Я вам отвечу в данном мануале.&lt;/b&gt; &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; 1)Заходим в папку, куда мы с помощью Cmake собрали бинарники. В моем случае это B:&amp;#92;WJP&amp;#92;Core&amp;#92;SkyFireEMU&amp;#92;&lt;b&gt;win&lt;/b&gt;. &lt;br /&gt; И открываем SkyFireEMU.sln &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/14736dae2197cff90b3d6056d58b6af7.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; У нас должен открыться MVS. &lt;br /&gt; 2)Далее в верхней панели выбираем &lt;b&gt;Release&lt;/b&gt;; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/f7272867f7a63cd14047b793c0fe45fb.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; И нажимаем на заленый значек &quot;&lt;b&gt;Start&lt;/b&gt;&quot; с лева. &lt;br /&gt; После этого у нас пойдет компиляция исходников(займет это 15-30 минут). &lt;br /&gt; По окончанию компиляции у нас появится надпись: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;========== Build: 20 completed, 0 failed, 0 up-to-date, 0 skipped ==========&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Вот и всё. &lt;img src=&quot;http://s8.ucoz.net/sm/1/bag.gif&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; alt=&quot;bag&quot; /&gt; &lt;br /&gt; Видите как легко всё делается.</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>ph3n</dc:creator>
			<guid>https://wjp.clan.su/forum/246-194661-1</guid>
		</item>
		<item>
			<title>[Манул] Скачиваем исходники скайфаера</title>
			<link>https://wjp.clan.su/forum/246-192699-1</link>
			<pubDate>Tue, 17 Jan 2012 11:31:36 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: ph3n&lt;br /&gt;Автор последнего сообщения: ph3n&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Необходимый софт: &lt;br /&gt; 1. &lt;b&gt;Git&lt;/b&gt; - &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://msysgit.googlecode.com/files/Git-1.7.8-preview20111206.exe&quot; title=&quot;http://msysgit.googlecode.com/files/Git-1.7.8-preview20111206.exe&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Git-1.7.8&lt;/a&gt; &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; 1. Заходим в папку где будут наши исходники, у меня это B:&amp;#92;WJP &lt;br /&gt; 2. Нажимаем и выбираем &lt;b&gt;Git Bash&lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/a2204835661bf7cbbb96d7c1abc3c73c.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; 3. В открывшемся окне вводим: &lt;b&gt;git clone git://github.com/ProjectSkyfire/SkyFireEMU.git &lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/ce6b70a8046a4d818be87f361066d754.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; 4.клацаем &lt;b&gt;Enter&lt;/b&gt; :crazy:, после завершения загрузки должно быть вот так: &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/f7aee7cfc8fe44957790eb7755d53534.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt; Вот и всё&lt;/b&gt;&lt;/div&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>ph3n</dc:creator>
			<guid>https://wjp.clan.su/forum/246-192699-1</guid>
		</item>
		<item>
			<title>Разбор структуры баз SkyFire[auth]</title>
			<link>https://wjp.clan.su/forum/246-191273-1</link>
			<pubDate>Mon, 09 Jan 2012 08:58:44 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: ph3n&lt;br /&gt;Автор последнего сообщения: ph3n&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Ну что ж, начнем! Сегодня буду описывать вам &lt;u&gt;самую простую&lt;/u&gt; из баз данных для SkyFire, а именно &lt;b&gt;auth&lt;/b&gt;. &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;b&gt;В базе auth 8 таблиц:&lt;/b&gt; &lt;br /&gt; 1. &lt;b&gt;account&lt;/b&gt; - по названию всё понятно, данная таблица содержит информацию об учетных записях пользователей/игроков. &lt;br /&gt; 2. &lt;b&gt;account_access&lt;/b&gt; - данная таблица отвечает за доступ на сервере. &lt;br /&gt; 3.&lt;b&gt; account_banned&lt;/b&gt; - по названию понятно, что данная таблица отвечает за информацию о заблокированных учетных записях. &lt;br /&gt; 4.&lt;b&gt; ip_banned&lt;/b&gt; - таблица отвечающая за информацию о заблокированных IP-адресах. &lt;br /&gt; 5. &lt;b&gt;realmcharacters&lt;/b&gt; - данная таблица содержит информацию о количестве персонажей каждого аккаунта на каждом реалме. &lt;br /&gt; 6.&lt;b&gt; logs&lt;/b&gt; - в данной таблице содержаться логи сервера, если EnableLogDB в конфигах(authserver.conf) включен. &lt;br /&gt; 7. &lt;b&gt;realmlist&lt;/b&gt; - в данной таблице содержится вся необходимая информация о реалмах. &lt;br /&gt; 8. &lt;b&gt;uptime&lt;/b&gt; - данная таблица содержит время работы всех реалмов. &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;account&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; &lt;b&gt;Структура&lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/bad49fddc034c1fa4bfd988bd7832505.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; &lt;b&gt;Описание полей&lt;/b&gt;: &lt;br /&gt; &lt;b&gt;id&lt;/b&gt; &lt;br /&gt; Уникальный идентификатор аккаунта. &lt;br /&gt; &lt;b&gt;username&lt;/b&gt; &lt;br /&gt; Название аккаунта. &lt;br /&gt; &lt;b&gt;sha_pass_hash&lt;/b&gt; &lt;br /&gt; Это поле содержит зашифрованную методом SHA1 пару «логин, пароль». Хеш создается методом &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%BA%D0%B0%D1%82%D0%B5%D0%BD%D0%B0%D1%86%D0%B8%D1%8F&quot; title=&quot;http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%BA%D0%B0%D1%82%D0%B5%D0%BD%D0%B0%D1%86%D0%B8%D1%8F&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;конкатенации&lt;/a&gt; логина и пароля в верхнем регистре, используя двоеточие как разделитель.. Запрос, создающий логин и пароль: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;SELECT SHA1(CONCAT(UPPER(`username`&amp;#41;, &apos;:&apos;, UPPER(&lt;pass&gt;&amp;#41;&amp;#41;&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; &lt;b&gt;v&lt;/b&gt; &lt;br /&gt; Это серверный верификатор пароля, используемый в &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://ru.wikipedia.org/wiki/SRP&quot; title=&quot;http://ru.wikipedia.org/wiki/SRP&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SRP&lt;/a&gt; во время авторизации клиента. Если вы хотите сменить пароль аккаунта, вы должны установить пустое значение или ноль в это поле. &lt;br /&gt; &lt;b&gt;s&lt;/b&gt; &lt;br /&gt; Это серверная «соль» пароля, используемая в &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://ru.wikipedia.org/wiki/SRP&quot; title=&quot;http://ru.wikipedia.org/wiki/SRP&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SRP&lt;/a&gt; во время авторизации клиента. Если вы хотите сменить пароль аккаунта, вы должны установить пустое значение или ноль в это поле. &lt;br /&gt; &lt;b&gt;email&lt;/b&gt; &lt;br /&gt; e-mail, присвоеный учетной записи при регистрации. &lt;br /&gt; &lt;b&gt;joindate&lt;/b&gt; &lt;br /&gt; Дата регистрации (создания аккаунта). &lt;br /&gt; &lt;b&gt;last_ip&lt;/b&gt; &lt;br /&gt; IP адрес, с которого последний раз заходили на данный аккаунт &lt;br /&gt; &lt;b&gt;failed_logins&lt;/b&gt; &lt;br /&gt; Количество неверных попыток ввода аккаунта. &lt;br /&gt; &lt;b&gt;locked&lt;/b&gt; &lt;br /&gt; Логическое значение 0 или 1 устанавливающее или снимающее блокировку аккаунта. (.account lock on&amp;#92;off в игре). &lt;br /&gt; &lt;b&gt;last_login&lt;/b&gt; &lt;br /&gt; Дата последнего входа. &lt;br /&gt; &lt;b&gt;online&lt;/b&gt; &lt;br /&gt; Логическое значение 0 или 1 которое показывает, находятся ли персонажи на данном аккаунте в игре. &lt;br /&gt; &lt;b&gt;expansion&lt;/b&gt; &lt;br /&gt; Логическое значение 0 или 0 показывающее тип дополнения (для Skyfire значение должно быть 3) &lt;br /&gt; &lt;b&gt;mutetime&lt;/b&gt; &lt;br /&gt; Время, в Unix-формате, когда с аккаунта будет снят mute (лишение всех персонажей на аккаунте возможности печатать сообщения и клиентские команды во всех чатах, активируется через .mute в игре). Чтобы посмотреть, сколько осталось времени до снятия блокировки чата выполните запрос: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;SELECT FROM_UNIXTIME(`mutetime`&amp;#41;;&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; &lt;b&gt;locale&lt;/b&gt; &lt;br /&gt; Язык игрового клиента, используемого при входе на этот Аккаунт. Если указано несколько языков, будет выбираться язык клиента. &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;account_access&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; &lt;b&gt;Структура&lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/ed8168325a6b39a8696c6f5c68488faf.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; &lt;b&gt;Описание полей&lt;/b&gt; &lt;br /&gt; &lt;b&gt;id&lt;/b&gt; &lt;br /&gt; Идентификатор аккаунта из таблице account поле ID. &lt;br /&gt; &lt;b&gt;gmlevel&lt;/b&gt; &lt;br /&gt; Уровень доступа учетной записи. Различные уровни имеют доступ к различным командам. Уровни для команд задаются в таблице &lt;b&gt;command&lt;/b&gt;(описание будет чуть позже), которая для каждого реалма отдельная. &lt;br /&gt; &lt;b&gt;RealmID&lt;/b&gt; &lt;br /&gt; Номер реалма, на котором будет действовать данный уровень доступа(если -1 то для всех). Смотрите в таблице realmlist поле ID. &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;account_banned&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; &lt;b&gt;Структура&lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/a6b5f6cdf145e18a6b72f09176e827d5.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; &lt;b&gt;Описание полей&lt;/b&gt; &lt;br /&gt; &lt;b&gt;id&lt;/b&gt; &lt;br /&gt; Идентификатор аккаунта. Смотрите в таблице account поле id. &lt;br /&gt; &lt;b&gt;bandate&lt;/b&gt; &lt;br /&gt; Дата выдачи бана аккаунту, в Unix-формате. &lt;br /&gt; &lt;b&gt;unbandate&lt;/b&gt; &lt;br /&gt; ата снятия бана с аккаунта в Unix-формате. Если в этом поле значение меньше даты выдачи - бан выдается перманентно(навсегда). &lt;br /&gt; &lt;b&gt;bannedby&lt;/b&gt; &lt;br /&gt; Ник забанившего аккаунт. Персонаж должен иметь аккаунт с правами на команду .ban в игре. &lt;br /&gt; &lt;b&gt;banreason&lt;/b&gt; &lt;br /&gt; Причина, по которой забанен аккаунт. &lt;br /&gt; &lt;b&gt;active&lt;/b&gt; &lt;br /&gt; Логическое значение 0 или 1 устанавливающее активен бан или нет. &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;ip_banned&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; Структура &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/aec360dcab6baa6915c031357b541bf8.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; &lt;b&gt;Описание полей &lt;br /&gt; ip&lt;/b&gt; &lt;br /&gt; Забаненный IP адрес. &lt;br /&gt; &lt;b&gt;bandate&lt;/b&gt; &lt;br /&gt; Дата выдачи бана IP адресу, в Unix-формате. &lt;br /&gt; &lt;b&gt;unbandate&lt;/b&gt; &lt;br /&gt; Дата снятия бана с IP адреса в Unix-формате. Если в этом поле значение меньше даты выдачи - бан выдается перманентно(навсегда). &lt;br /&gt; &lt;b&gt;bannedby&lt;/b&gt; &lt;br /&gt; ик забанившего IP адрес. Персонаж должен иметь аккаунт с правами на комманду .ban в игре. &lt;br /&gt; &lt;b&gt;banreason&lt;/b&gt; &lt;br /&gt; Причина, по которой забанен IP адрес. &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;logs&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; &lt;b&gt;Структура&lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/5e4a7b43d59c353ac3ed12ac53dd098a.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; &lt;b&gt;Описание полей &lt;br /&gt; time&lt;/b&gt; &lt;br /&gt; Дата в Unix-формате, когда произошла запись в базу данных. &lt;br /&gt; &lt;b&gt;realm&lt;/b&gt; &lt;br /&gt; Номер реалма, для которого будут сохранятся логи. Смотрите в таблице Realmlist поле ID. &lt;br /&gt; &lt;b&gt;type&lt;/b&gt; &lt;br /&gt; Тип логов выглядит так: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;LOG_TYPE_STRING = 0 --- нормальные информативные строки &lt;br /&gt; LOG_TYPE_ERROR&amp;nbsp;&amp;nbsp;= 1 --- какая-то ошибка &lt;br /&gt; LOG_TYPE_BASIC&amp;nbsp;&amp;nbsp;= 2 --- основная информация &lt;br /&gt; LOG_TYPE_DETAIL = 3 --- подробная информация &lt;br /&gt; LOG_TYPE_DEBUG&amp;nbsp;&amp;nbsp;= 4 --- отладочная информация &lt;br /&gt; LOG_TYPE_CHAR&amp;nbsp;&amp;nbsp;&amp;nbsp;= 5 --- информация о персонаже &lt;br /&gt; LOG_TYPE_WORLD&amp;nbsp;&amp;nbsp;= 6 --- дамп пакетов &lt;br /&gt; LOG_TYPE_RA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 7 --- удаленный доступ к логам &lt;br /&gt; LOG_TYPE_GM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 8 --- логи Гм команд &lt;br /&gt; LOG_TYPE_CRASH&amp;nbsp;&amp;nbsp;= 9 --- логи крашей &lt;br /&gt; LOG_TYPE_CHAT&amp;nbsp;&amp;nbsp;&amp;nbsp;= 10 -- логи чата&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;realmcharacters&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; &lt;b&gt;Структура&lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/b653b70bd3593597400311b194a0ed86.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; &lt;b&gt;realmid&lt;/b&gt; &lt;br /&gt; Идентификатор реалма. Смотрите в таблице realmlist поле id &lt;br /&gt; &lt;b&gt;acctid&lt;/b&gt; &lt;br /&gt; Идентификатор аккаунта. Смотрите в таблице account поле id &lt;br /&gt; &lt;b&gt;numchars&lt;/b&gt; &lt;br /&gt; Количество персонажей данного аккаунта на данном реалме. &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;realmlist&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; &lt;b&gt;Структура&lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/57faa97aaf4e57713cf43aeaf2f5a6f0.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; Description of the fields &lt;br /&gt; &lt;b&gt;id&lt;/b&gt; &lt;br /&gt; Идентификатор реалма. Этот номер является уникальным для каждого реалма и он должен соотноситься со значением RealmID в worldserver.conf. &lt;br /&gt; &lt;b&gt;name&lt;/b&gt; &lt;br /&gt; Название реалма. Это название появится в списке выбора миров, а также в окне выбора персонажа. &lt;br /&gt; &lt;b&gt;address&lt;/b&gt; &lt;br /&gt; IP адрес для подключения клиентов из сети. Значение 127.0.0.1 по-умолчанию делает доступным сервер только локально (с той же машины). &lt;br /&gt; &lt;b&gt;port&lt;/b&gt; &lt;br /&gt; Порт для подключения к серверу. Если все сервера(будь то Fun&amp;#92;High Rate&amp;#92;Blizzlike или же сервера для различных версий клиента) находятся на одной машине, они должны иметь разные порты. &lt;br /&gt; &lt;b&gt;icon&lt;/b&gt; &lt;br /&gt; Иконка реалма. Значение: &lt;br /&gt; 0 - Normal; 1 - PvP; 4 - Normal; 6 - RP; 8 - RP PvP &lt;br /&gt; &lt;b&gt;color&lt;/b&gt; &lt;br /&gt; Цвет обозначает как &quot;полный&quot;, который будет отображаться при выборе реалма. &lt;br /&gt; &lt;b&gt;timezone&lt;/b&gt; &lt;br /&gt; Часовой пояс реалма. Если в реалмлисте присутствуют реалмы с различными timezone, они будут отображаться в разных вкладках, а при первом входе на сервер клиенту будет предложена выбрать один из доступных часовых поясов. &lt;br /&gt; &lt;b&gt;allowedSecurityLevel&lt;/b&gt; &lt;br /&gt; Минимальный gmlevel необходимый для вход в мир. &lt;br /&gt; &lt;b&gt;population&lt;/b&gt; &lt;br /&gt; Нынешняя населенность мира, обновляется автоматически. Формула для вычисления значения в этой области: &quot;КоличествоИгроков&quot; / &quot;МаксимальноеКоличествоИгроков&quot; * 2. &lt;br /&gt; &lt;b&gt;gamebuild&lt;/b&gt; &lt;br /&gt; Позволяет отображать реалмы различных версий клиента в одном реалмлисте. Для SkyFire все билды катаклизма. &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;uptime&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; &lt;b&gt;Структура&lt;/b&gt; &lt;br /&gt; &lt;img src=&quot;http://filebeam.com/3694e9c387e7d589dad2a6094f67c124.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt; &lt;br /&gt; &lt;b&gt;Описание полей &lt;br /&gt; realmid&lt;/b&gt; &lt;br /&gt; Идентификатор реалма. Смотрите в таблице realmlist поле id &lt;br /&gt; &lt;b&gt;starttime&lt;/b&gt; &lt;br /&gt; ремя, когда сервер был запущен: в Unix формате. &lt;br /&gt; &lt;b&gt;startstring&lt;/b&gt; &lt;br /&gt; Время, когда сервер был запущен: в формате читаемой строки. &lt;br /&gt; &lt;b&gt;uptime&lt;/b&gt; &lt;br /&gt; Время работы сервера, в секундах. &lt;br /&gt; &lt;b&gt;maxplayers&lt;/b&gt; &lt;br /&gt; Максимальный онлайн. &lt;br /&gt; &lt;b&gt;revision&lt;/b&gt; &lt;br /&gt; Ревизия ядра. &lt;br /&gt; &lt;hr /&gt; &lt;br /&gt; Благодарю за помощь и предоставленную информацию: &lt;b&gt;Dimitro&lt;/b&gt; &lt;br /&gt; Обсуждение данного вики &lt;a class=&quot;link&quot; href=&quot;http://wowjp.net/forum/251-191275-1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SkyFire[DB]&lt;/a&gt;</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>ph3n</dc:creator>
			<guid>https://wjp.clan.su/forum/246-191273-1</guid>
		</item>
		<item>
			<title>Компиляция</title>
			<link>https://wjp.clan.su/forum/246-185389-1</link>
			<pubDate>Mon, 05 Dec 2011 05:54:35 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: *NIX&lt;br /&gt;Автор темы: LOrdas&lt;br /&gt;Автор последнего сообщения: LOrdas&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Для начала установим необходимые компоненты. &lt;br /&gt;&lt;br /&gt; Для Ubuntu (Debian) дистрибутивов: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;sudo apt-get install build-essential autoconf libtool gcc g++ make cmake subversion git patch wget links zip unzip unrar openssl libssl-dev mysql-server mysql-client libmysqlclient15-dev libmysql++-dev libreadline5-dev zlib1g-dev libbz2-dev git-core libace-dev&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; либо под root просто: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;apt-get install build-essential autoconf libtool gcc g++ make cmake subversion git patch wget links zip unzip unrar openssl libssl-dev mysql-server mysql-client libmysqlclient15-dev libmysql++-dev libreadline5-dev zlib1g-dev libbz2-dev git-core libace-dev&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; В RatHat/Fedora: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; yum groupinstall &quot;development tools&quot; &quot;development libraries&quot; &lt;br /&gt; yum install gcc-c++ git wget links zip unzip unrar mysql-server mysql-client mysql-devel openssl cmake &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Компиляция ACE&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; Загружаем исходники ACE &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;wget http&amp;#58;//download.dre.vanderbilt.edu/previous_versions/ACE-5.7.8.tar.gz&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Распаковываем архив &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;tar xvzf ACE-5.7.8.tar.gz&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; переходим в папку исходников ACE &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;cd ~/ACE_wrappers/&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Далее перейдем к компиляции ACE. &lt;br /&gt; Создаем каталог: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;mkdir build&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; переходим в папку &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;cd build&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; производим конфигурацию: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; ../configure --prefix=/home/`echo $USER`/.sys/ &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Компилируем (цифра 5 значит 4 ядерный, то есть кол-во ядер+1) &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; make -j5 &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; После завершения устанавливаем: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; make install &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Устанавливаем OpenSSL&lt;/b&gt;&lt;/div&gt; &lt;br /&gt; Скачиваем и устанавливаем. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; Для x32 (Debian&amp;#41; &lt;br /&gt; wget ftp://ftp.debian.org/debian/pool/main/o/openssl/libssl-dev_0.9.8o-5_i386.deb &lt;br /&gt; wget ftp://ftp.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-5_i386.deb &lt;br /&gt; wget ftp://ftp.debian.org/debian/pool/main/o/openssl/openssl_0.9.8o-5_i386.deb &lt;br /&gt; sudo dpkg -i libssl0.9.8_0.9.8o-5_i386.deb &lt;br /&gt; sudo dpkg -i openssl_0.9.8o-5_i386.deb &lt;br /&gt; sudo dpkg -i libssl-dev_0.9.8o-5_i386.deb &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; Для x64 (Debian&amp;#41; &lt;br /&gt; wget ftp://ftp.debian.org/debian/pool/main/o/openssl/libssl-dev_0.9.8o-1_amd64.deb &lt;br /&gt; wget ftp://ftp.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-1_amd64.deb &lt;br /&gt; wget ftp://ftp.debian.org/debian/pool/main/o/openssl/openssl_0.9.8o-1_amd64.deb &lt;br /&gt; sudo dpkg -i libssl0.9.8_0.9.8o-1_amd64.deb &lt;br /&gt; sudo dpkg -i openssl_0.9.8o-1_amd64.deb &lt;br /&gt; sudo dpkg -i libssl-dev_0.9.8o-1_amd64.deb &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Для других дистрибутивов (компилируем): &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt; &lt;br /&gt; wget http&amp;#58;//openssl.org/source/openssl-0.9.8o.tar.gz &lt;br /&gt; tar -xvf openssl-0.9.8o.tar.gz &lt;br /&gt; cd openssl-0.9.8o &lt;br /&gt; ../config --prefix=/home/`echo $USER`/.sys shared &lt;br /&gt; make &lt;br /&gt; make install &lt;br /&gt; &lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;div align=&quot;center&quot;&gt;&lt;b&gt;Компиляция сервера&lt;/b&gt;&lt;/div&gt; &lt;br /&gt;&lt;br /&gt; Скачиваем свежие исходники &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;git clone git://github.com/ProjectSkyfire/SkyFireEMU.git&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; или ветвь 4.2.*. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;git clone git://github.com/ProjectSkyfire/SkyFireEMU_420.git&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Переходим в папку SkyFireEMU &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;cd SkyFireEMU&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Создаем там и переходим в папку Build &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;mkdir build &lt;br /&gt; cd build&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Подготавливаем исходники Cmake &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;cmake ../ -DPREFIX=/home/`echo $USER`/skyfire -DTOOLS=1&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Компилируем (опять же 5 - кол-во ядер + 1, то есть используем 4 ядра) &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;make -j5&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; Выполняем: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;make install&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Параметры конфигурации &lt;br /&gt;&lt;br /&gt; &lt;!--uzquote--&gt;&lt;div class=&quot;bbQuoteBlock&quot;&gt;&lt;div class=&quot;bbQuoteName&quot; style=&quot;padding-left:5px;font-size:7pt&quot;&gt;&lt;b&gt;Quote&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;quoteMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzq--&gt; &lt;br /&gt; -DACE_LIBRARY=&lt;path to ACE library&gt; (full path to your libACE.so file INCLUDING the filename - do not use if you have ACE installed systemwide) &lt;br /&gt; -DACE_INCLUDE_DIR=&lt;path to ACE includes/headers&gt; (path to the libACE include directory - do not use if you have ACE installed systemwide) &lt;br /&gt; -DOPENSSL_LIBRARIES=&lt;path to OpenSSL library&gt; (path to your OpenSSL library - do not use if you have OpenSSL installed systemwide) &lt;br /&gt; -DOPENSSL_INCLUDE_DIR=&lt;path to OpenSSL includes&gt; (path to your OpenSSL includes directory - do not use if you have OpenSSL installed systemwide) &lt;br /&gt;&lt;br /&gt; -DSERVERS Build worldserver and authserver &lt;br /&gt; -DSCRIPTS Build core with scripts included &lt;br /&gt; -DTOOLS Build map/vmap extraction/assembler tools &lt;br /&gt; -DUSE_SCRIPTPCH Use precompiled headers when compiling scripts &lt;br /&gt; -DUSE_COREPCH Use precompiled headers when compiling servers &lt;br /&gt; -DUSE_SFMT Use SFMT as random numbergenerator &lt;br /&gt; -DWITH_WARNINGS Show all warnings during compile &lt;br /&gt; -DWITH_COREDEBUG Include additional debug-code in core &lt;br /&gt; -DWITH_SQL Copy SQL files during installation &lt;br /&gt; -DPREFIX Set installation directory &lt;br /&gt; -DCONF_DIR Set configuration directory &lt;br /&gt; -DLIBSDIR Set library directory &lt;br /&gt; -DCMAKE_C_FLAGS Set C_FLAGS for compile (advanced users only) &lt;br /&gt; -DCMAKE_CXX_FLAGS Set CXX_FLAGS for compile (advanced users only) &lt;br /&gt; &lt;!--/uzq--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzquote--&gt; &lt;br /&gt;&lt;br /&gt; Далее все готово, необходимо перенести и переименовать conf файлы, выполним: &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;mv ~/skyfire/etc/worldserver.conf.dist ~/skyfire/etc/worldserver.conf &lt;br /&gt; mv&amp;nbsp;&amp;nbsp;~/skyfire/etc/authserver.conf.dist&amp;nbsp;&amp;nbsp;~/skyfire/etc/authserver.conf&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; Готово. Сервер скомпилирован.</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>LOrdas</dc:creator>
			<guid>https://wjp.clan.su/forum/246-185389-1</guid>
		</item>
		<item>
			<title>&quot;Парсер&quot; PacketViewer</title>
			<link>https://wjp.clan.su/forum/246-184842-1</link>
			<pubDate>Fri, 02 Dec 2011 01:16:28 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Описание темы: by TomRus&lt;br /&gt;Автор темы: LOrdas&lt;br /&gt;Автор последнего сообщения: LOrdas&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Необходимое ПО: &lt;br /&gt; 1) Visual C# 2008/2010 &lt;br /&gt; 2) Microsoft .Net Framework 3.0+ &lt;br /&gt;&lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?https://github.com/ProjectSkyfire/PacketViewer&quot; title=&quot;https://github.com/ProjectSkyfire/PacketViewer&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Репозиторий&lt;/a&gt; &lt;br /&gt; 1. Скачиваем. &lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Code&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;git clone git://github.com/ProjectSkyfire/PacketViewer.git&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt; 2. Компилируем. &lt;br /&gt; 3. Запускаем, тестируем. &lt;br /&gt;&lt;br /&gt; WoW Packet Viewer &lt;br /&gt; Поддерживаемая версия - 4.2.0. &lt;br /&gt; Осуществлена поддержка форматов включающих в себя PKT и Izidor. &lt;br /&gt; Опкод загружается из БД MySQL. &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?https://github.com/ProjectSkyfire/SkyFireEMU_420/blob/master/sql/opcodes/emuopcodes.sql&quot; title=&quot;https://github.com/ProjectSkyfire/SkyFireEMU_420/blob/master/sql/opcodes/emuopcodes.sql&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Структура базы&lt;/a&gt; &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?https://github.com/ProjectSkyfire/SkyFireEMU_420/blob/master/sql/OpcodesUpdates4.2.0.sql&quot; title=&quot;https://github.com/ProjectSkyfire/SkyFireEMU_420/blob/master/sql/OpcodesUpdates4.2.0.sql&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Обновление&lt;/a&gt; &lt;br /&gt;&lt;br /&gt; UpdatePacketParser не обновлен до 4.2. &lt;br /&gt;&lt;br /&gt; Проект написан &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?https://github.com/tomrus88/WoWTools&quot; title=&quot;https://github.com/tomrus88/WoWTools&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;TOM_RUS&lt;/a&gt; и это &quot;форк&quot;. &lt;br /&gt; Проект включает в себя обновления от Chameleon и Singlem, выражаем благодарность: &lt;br /&gt; * SilinoronParser (https://github.com/silinoron/SilinoronParser) &lt;br /&gt; * Kaelima&apos;s parser (https://github.com/kaelima/WowPacketParser) &lt;br /&gt; * Zor&apos;s parser (https://bitbucket.org/XTZGZoReX/wowpacketparser) &lt;br /&gt; * LordJZ &lt;br /&gt; * и другим. &lt;br /&gt;&lt;br /&gt; Так же еще один &quot;&lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?https://github.com/ProjectSkyfire/SilinoronParser&quot; title=&quot;https://github.com/ProjectSkyfire/SilinoronParser&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;парсер&lt;/a&gt;&quot;, обновляет: Chameleo. &lt;br /&gt; &lt;a class=&quot;link&quot; href=&quot;https://wjp.clan.su/go?http://filebeam.com/6aaca6c5bdc524bffdee91eb683eab07&quot; title=&quot;http://filebeam.com/6aaca6c5bdc524bffdee91eb683eab07&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Sniffer Strawberry&lt;/a&gt; - поддержка 4.3.0 (15005)</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>LOrdas</dc:creator>
			<guid>https://wjp.clan.su/forum/246-184842-1</guid>
		</item>
		<item>
			<title>Удалять собрались?</title>
			<link>https://wjp.clan.su/forum/246-252257-1</link>
			<pubDate>Thu, 01 Jan 1970 00:00:00 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://wjp.clan.su/forum/246&quot;&gt;Установка / Настройка Skyfire&lt;/a&gt;&lt;br /&gt;Автор темы: Присяжный&lt;br /&gt;Автор последнего сообщения: Anelion&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Чегойта мимо корзины?</content:encoded>
			<category>Установка / Настройка Skyfire</category>
			<dc:creator>Присяжный</dc:creator>
			<guid>https://wjp.clan.su/forum/246-252257-1</guid>
		</item>
	</channel>
</rss>