Мда, вот это реально большая потеря для человека
Но у него 300к побед, это явный перебор.
701 2011-01-22 19:49:59
Re: блоки (129 ответов, оставленных в Флейм)
702 2011-01-22 19:39:10
Re: Приемы в Combots 8+ (347 ответов, оставленных в Настройки / Плагины)
Блин, писал целую поэму хода своих мыслей, потом всетаки до меня доперло, что ты имел ввиду
Условие на самом деле хорошее, и будет очень помогать против самых сильных мобов санда. Чтобы перс минимальное количество ходов был без защиты.
Вобщем, как всегда, спасибо, буду тестить.
И появилось новое условие, которое не хочет юзать:
if((Vinos > 20) &&
(top.Battle.oBattle.sEnemyLogin.indexOf("Страж") < 0 &&
top.Battle.oBattle.sEnemyLogin.indexOf("(зверь") < 0) &&
(typeof(top.Battle.oBattle.oMySlot.arrEffects["spirit_12_prot_100"]) != "object") &&
(typeof(top.Battle.oBattle.oMySlot.arrEffects["spirit_11_prot_100"]) != "object") &&
(typeof(top.Battle.oBattle.oMySlot.arrEffects["spirit_13_prot_100"]) != "object") &&
(typeof(top.Battle.oBattle.oMySlot.arrEffects["spirit_14_prot_100"]) != "object") &&
(typeof(top.Battle.oBattle.oMySlot.arrEffects["block_activeshield"]) != "object") &&
(typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object") && (typeof(top.Battle.oBattle.oMySlot.arrEffects["hit_empower"]) == "object"))
_name = "counter_winddance";
Если напротив не страж, не маг, не висят спириты и висит поступь с усиленными ударами- юзать counter_winddance. Раньше было это же условие, но без учета вимящих усиленных ударов и все работало. Добавил условие на усилки, и бот перестал юзать counter_winddance, когда на мне была поступь с усилками
703 2011-01-22 15:13:39
Re: А давайте начнем собирать инфу для плагина, чтоб молиться ? (51 ответов, оставленных в Настройки / Плагины)
Сомневаюсь, что будет прям все разным. Скорее всего введена рандомная функция настроения ангела. Захотел- ответил, не захотел- не ответил, вне зависимости от варианта. Подтверждается это тем, что у меня ОДИН перс получил РАЗНЫЕ варианты ответа на ОДИН вопрос. Так что все реально.
704 2011-01-22 14:40:49
Re: Приемы в Combots 8+ (347 ответов, оставленных в Настройки / Плагины)
Конечно один Если такие мелочи в разные слоты сувать, мне их не хватит попросту
Не думаю, что это проблема, у меня есть приемы в 4 раза больше занимающие места и нормально функционирующие. Тем более, что в этом коде 1м стоит спирит, и если уж на то пошло, то должен был он работать, а counter_winddance не работать И самое главное, что в чат шлет сообщение..
705 2011-01-22 14:33:20
Re: Вопрос про бота! (6 ответов, оставленных в Общий)
До десятки с нуля 4 месяца ???
Друг на 9ке дерется ща, 1400 не по зверям набил 4500 опыта отгреб в будни. А все изза танков. Сомневаюсь, что за 4 месяца можно качнуться, еще и не 24/7.
706 2011-01-22 13:57:26
Re: Приемы в Combots 8+ (347 ответов, оставленных в Настройки / Плагины)
Мистика!
if(top.Battle.oBattle.sEnemyLogin.indexOf("Рабочий") > -1)
{
if(top.Battle.oBattle.arrUsers[top.Battle.oBattle.sEnemy].nLevel == 9)
{
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["spirit_13_prot_100"]) != "object")
{
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_winddance"]) != "object")
{
top.Chat.Self.AddMessage("спирит работает");
_name = "spirit_block25";
}
}
}
}
if(top.Battle.oBattle.sEnemyLogin.indexOf("Рабочий") > -1)
{
if(top.Battle.oBattle.arrUsers[top.Battle.oBattle.sEnemy].nLevel == 9)
{
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["spirit_13_prot_100"]) != "object")
{
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["spirit_block25"]) != "object")
{
_name = "counter_winddance";
}
}
}
}
В чат сообщение, что спирит работает приходит, а прием не юзается, когда активный, идентификатор скопировал правильно. Какие у кого будут мысли по этому поводу ?
Причем counter_winddance юзает без проблем
707 2011-01-22 12:51:32
Re: А давайте начнем собирать инфу для плагина, чтоб молиться ? (51 ответов, оставленных в Настройки / Плагины)
Все со временем будет преобразовано. Мне ж надо людям объяснить, в каком виде мне материал присылать, не все ж код понимают. Правильные ответы у меня жирным выделены, но вариант с цветами мне больше нравится Буду переделывать.
Какие-то странные эти ангелы
Хорошо, я подумаю над твоими словами.
• Подумай.. я подожду.
• Быть может, стоит дать мне задание?
Первый раз нажал Подумай.. я подожду., он меня послал, второй раз нажал Быть может, стоит дать мне задание?, еще чуть повыпендривался и тоже послал, в третий раз нажал Быть может, стоит дать мне задание?, послал сразу. Получается что вообще нет правильного ответа ?
708 2011-01-22 12:33:02
Re: Outpost Firewall Pro...Хелп (12 ответов, оставленных в Проблемы / Баги / Неполадки)
У меня стоял комодо файрвол, незнаю сильно ли он отличается, так там была файловая защита, проактивная защита, контроль сетевого трафика и т.д. Вот везде нужно добавить в исключения.
709 2011-01-22 12:02:41
Re: Outpost Firewall Pro...Хелп (12 ответов, оставленных в Проблемы / Баги / Неполадки)
Если мне память не изменяет, там в нескольких разделах нужно добавить combots в исключения, а лучше во всех существующих.
Интернет хоть не через прокси ?
710 2011-01-22 10:53:36
Re: А давайте начнем собирать инфу для плагина, чтоб молиться ? (51 ответов, оставленных в Настройки / Плагины)
Конечно не работают. Я же город вначале стер. Вообще для плагина даже ссылка не нужна, а нужна часть ссылки, в которой номер указывается.
Пример: combats.com/main.pl?move_dialog=0&0.1573446993945
Так что, кто будет за Повелителя снов, можете присылать под строкой ответа только эту часть.
711 2011-01-22 00:13:49
Тема: А давайте начнем собирать инфу для плагина, чтоб молиться ? (51 ответов, оставленных в Настройки / Плагины)
Вобщем я решил молиться Повелителю снов, т.к. он покровитель диггеров, собственно что нужно- это вопросы ангела, ответы на них и url-ссылка на каждый ответ. Правильный ответ выделяйте +++, неправильный ---, если сомневаетесь, что ответ хорошо повлиял- ставьте ???
Для конспирации, рекомендую всем с url-ссылки тереть город, и писать сюда инфу не сразу же после мольбы, а немного подождав, а еще лучше накопив несколько ответов.
Огромная просьба БЕЗ ФЛУДА, только по существу, в противном случае буду просить модеров, чтоб НАКАЗЫВАЛИ!
Вот что есть у меня, покаместь:
Жирный шрифт- текст ангела
красный- правильный ответ
зеленый- неправильный ответ
-----------------------------------------------------------------------------------------------------------------------------------------------------
В ваших руках лежит икона с изображенным на ней Повелителем Снов. Вы можете обратиться к нему с призывом.
• Владыка мира грез и фантазий, покровитель искателей приключений, ответь хоть что-нибудь!
()
• Поставить икону на место. (завершить разговор)
()
-----------------------------------------------------------------------------------------------------------------------------------------------------
Видимо, в этот раз вы были недостаточно усердны, или же у Ангела слишом много дел, чтобы прислушиваться к молитвам смертных..
• В следующий раз все будет хорошо. (завершить разговор)
()
-----------------------------------------------------------------------------------------------------------------------------------------------------
Слушаю тебя, чего хочешь?
Встать на твой путь.
()
-----------------------------------------------------------------------------------------------------------------------------------------------------
Искатели приключений в наши дни - большая редкость.. А все, кто есть, рано или поздно стекаются под мое покровительство. Хочешь быть одним из них?
Ты читаешь мои мысли....
()
Хочу конечно!
()
• Так трудно найти единомышленников в наши дни..
()
Видимо, ты и впрямь веришь в то, что говоришь. Хорошо, будь по-твоему. Ты еще на один шаг ближе к тому, чтобы стать моим последователем.
• Уррааа! (завершить разговор)
()
------------------------------------------------------------------------------------------------------------------------------------------------------
Не.. Придумай что-нибудь поинтереснее.
• Как же убедить тебя... я люблю приключения!
()
• Мне доставляет удовольствие поиск тактики в сражениях с монстрами!
()
• Исследователь мира - вот мое второе имя!
()
Великолепно, мне нравятся твои слова. Очень нравятся.
• Так каков будет твой ответ?
()
Видимо, ты и впрямь веришь в то, что говоришь. Хорошо, будь по-твоему. Ты еще на один шаг ближе к тому, чтобы стать моим последователем.
• Уррааа! (завершить разговор)
()
------------------------------------------------------------------------------------------------------------------------------------------------------
Хорошо, я подумаю над твоими словами.
• Подумай.. я подожду.
()
Быть может, стоит дать мне задание?
()
• (прервать мысленную связь)
()
------------------------------------------------------------------------------------------------------------------------------------------------------
Я бы посоветовал еще несколько раз подумать, прежде чем делать такие вот просьбы.
• Все уже обдумано и решено..
()
• Ты - наиболее подходящий мне Ангел!
()
• Возможно, и так.
()
------------------------------------------------------------------------------------------------------------------------------------------------------
• Обидно... (завершить разговор)
()
------------------------------------------------------------------------------------------------------------------------------------------------------
Возможно, стоит проверить твою уверенность несложным заданием..
• Отличное решение!
()
• Можно и без него обойтись, если честно...
()
Посмотрим, что с тобой сделать можно. Пока что перспектив особенных не вижу.
• Не оставляй меня без своей поддержки!
()
• Позволь мне доказать свою веру!
()
• Очень жаль.
()
Сомнительно мне что-то.. В наше время мало очень людей, которые действительно предпочитают монстров сражениям с обычными людьми..
• Стоило таких трудов достучаться до тебя...
()
• Пещеры - мой второй дом!
()
• Убивать монстров - лучшее занятие!
()
• Нам не по пути, извини. (завершить разговор)
()
В другой раз.
• Нууу! (завершить разговор)
()
------------------------------------------------------------------------------------------------------------------------------------------------------
Как забавно. Если все, что ты говоришь - действительно так - то тебе и впрямь самое место в рядах моих последователей.
• Копать подземелья - любимое занятие.
city.combats.com/main.pl?move_dialog=0&0.547347617868684
• Меня влекут приключения...
city.combats.com/main.pl?move_dialog=1&0.757711138485675
• Ты совершенно прав.
city.combats.com/main.pl?move_dialog=2&0.756974769623977
• Забудь. (завершить разговор)
city.combats.com/main.pl?move_dialog=3&0.661779795063687
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------
А вот и первое ведро бетона в фундаменте плагина:
function DreamMaster()
{
if(get_mainframe().document.all[0].innerHTML.match(/В ваших руках лежит икона с изображенным на ней Повелителем Снов. Вы можете обратиться к нему с призывом/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Владыка мира грез и фантазий, покровитель искателей приключений, ответь хоть что-нибудь/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Видимо, в этот раз вы были недостаточно усердны, или же у Ангела слишом много дел, чтобы прислушиваться к молитвам смертных/))
{
if(get_mainframe().document.all[0].innerHTML.match(/В следующий раз все будет хорошо. (завершить разговор)/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Слушаю тебя, чего хочешь?/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Встать на твой путь/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Искатели приключений в наши дни - большая редкость.. А все, кто есть, рано или поздно стекаются под мое покровительство. Хочешь быть одним из них/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Ты читаешь мои мысли/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Видимо, ты и впрямь веришь в то, что говоришь. Хорошо, будь по-твоему. Ты еще на один шаг ближе к тому, чтобы стать моим последователем/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Уррааа! (завершить разговор)/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Не.. Придумай что-нибудь поинтереснее/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Исследователь мира - вот мое второе имя/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=2&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Великолепно, мне нравятся твои слова. Очень нравятся/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Так каков будет твой ответ/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Хорошо, я подумаю над твоими словами/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Быть может, стоит дать мне задание/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=1&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Я бы посоветовал еще несколько раз подумать, прежде чем делать такие вот просьбы/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Все уже обдумано и решено/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Возможно, стоит проверить твою уверенность несложным заданием/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Отличное решение/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Посмотрим, что с тобой сделать можно. Пока что перспектив особенных не вижу/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Не оставляй меня без своей поддержки/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
else
if(get_mainframe().document.all[0].innerHTML.match(/В другой раз/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Нууу! (завершить разговор)/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
if(get_mainframe().document.all[0].innerHTML.match(/Неа/))
{
if(get_mainframe().document.all[0].innerHTML.match(/Но почему?! (завершить разговор)/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
}
}
712 2011-01-21 21:25:21
Re: некоторые вопросы, которые у меня возникли перед покупкой бота (52 ответов, оставленных в Помойка)
а golfrus и gorlum случаем не боты
?
713 2011-01-21 20:48:37
Re: 7й лвл (13 ответов, оставленных в Качалка)
На 7м левеле действительно делать нечего. Сейчас в БК вообще полноценная, комфортная жизнь игрока начинается с 10го левела.До этого, без екр, идет убивание нервов. Но если так хочется разнообразия- закинь пол екр на перса, и лети в sandcity, там подземка с 7го левела.
714 2011-01-21 14:10:12
Re: некоторые вопросы, которые у меня возникли перед покупкой бота (52 ответов, оставленных в Помойка)
Кстати, а в помойке то счетчик сообщений не отключен. Надо бы исправить этот недочет.
715 2011-01-20 19:10:22
Re: некоторые вопросы, которые у меня возникли перед покупкой бота (52 ответов, оставленных в Помойка)
Эмм...незнаю как объяснить...почитай в инете про организацию труда и про русскую лень
Никакой уважающий себя человек не будет вручную переносить тонну мешков с цементом по 50 кг каждый, если рядом стоит грузовик, которому нужно, скажем, заменить колесо, и он все сделает сам
716 2011-01-20 19:08:25
Re: Ангелы (16 ответов, оставленных в Общий)
Со временем, как люди разберутся какой ангел более выгодный, все будет сделано, не переживай
717 2011-01-20 18:55:39
Re: Ангелы (16 ответов, оставленных в Общий)
Даже если сейчас соберется человек 10 энтузиастов, то бета-версия плагина будет готова как минимум через месяц.
718 2011-01-20 18:53:36
Re: некоторые вопросы, которые у меня возникли перед покупкой бота (52 ответов, оставленных в Помойка)
golfrus, вот ты веришь, что админы сидят и анализируют все ники и анкеты, которых на сервере тысячи (!!!) ?
719 2011-01-20 16:02:31
Re: Ангелы (16 ответов, оставленных в Общий)
Оно то реально, но нужен задрот-энтузиаст, на каждого ангела, который вобъет все правильные диалоги в плагин
Или, как вариант, можно в эту тему скидывать все правильные варианты диалога с их url-адресом, а потом собрать все в плагин.
720 2011-01-20 12:58:52
Re: Перестал работать плагин "Морковка" (18 ответов, оставленных в Проблемы / Баги / Неполадки)
() в 1м посте уже обновленный плагин выложен.
721 2011-01-20 12:56:45
Re: Продам СЕТ для крито-силовика[9] [ОБНОВЛЕНО] (19 ответов, оставленных в Торговля / Коммерческие дела)
9лвл гос фул уворот без бонуса 125 ловки сам роет бездну с БТМ, и Гарлом, а если шокер настроить то и СБ валить будет. Сам роет 1-2 этажи грибницы без щупа и грибоножки, сам роет санд без Краппта и 2х рабов марочных (на них вероятность выиграть 60%, что я считаю мало).
И кстати крит роет быстро, в городах где эли падают, но на 9м левеле его почти все мобы уворотчики сливают.
722 2011-01-19 13:45:00
Re: Плагин диалог (11 ответов, оставленных в Настройки / Плагины)
О, мой бото-сенсей отписался
Ну во 1х поздравляю с 2000м сообщением
Привязал я к обновлнеию фрейма, а потом интервал поставил, т.к. без него бот сильно быстро по диалогам клацает, и бывает сервер не успевает отзывы давать, а сменить сам принцип работы плагина чет в голову не пришло
Логику программы специально отделял от выполнения, как по мне, так удобнее и красивее
723 2011-01-19 01:17:08
Re: Плагин диалог (11 ответов, оставленных в Настройки / Плагины)
Да, бот затягивает. У самого скоро защита диплома, а все оторваться никак не могу
724 2011-01-18 22:42:12
Re: Плагин диалог (11 ответов, оставленных в Настройки / Плагины)
Смотри, как мне Анахроник объяснял:
1) Макет пустого плагина выглядит вот так
function PluginName(enabled)
{
if(enabled)
{
//должна быть одна из двух строк
PluginsOnLoad["PluginName"] = "PluginNameHandler"; // работать по обновлению верхнего фрейма
PluginNameTimer = setInterval("PluginNameHandler()", 2000); // работать по таймеру(2секунды)
}
else
{
//должна быть одна из двух строк
PluginsOnLoad["PluginName"] = ""; // выключить обработку по обновлению верхнего фрейма
clearInterval(PluginNameTimer); // выключить таймер
}
}
function PluginNameHandler(){
try{
*сюда код*
}
catch(err)
{
alert(err.description); // выводит сообщение, если в результате выполнения кода была получена ошибка. Если сообщения не нужна - удалить эту строку, оставив конструкцию try{}catch(err){}
}
}
Зеленым там все предельно просто откомментировано, разберешься. PluginName - название плагина, если название плагина будет другое, то и в коде нужно PluginName заменить на соответствующее название. Причем менять нужно и PluginNameHandler и PluginNameTimer.
Пример:
Плагин называется XXXXX.js, значит в коде меняем все PluginName на XXXXX. А PluginNameHandler будет выглядеть как XXXXXXHandler и тд.
2) Когда находишься в диалоге, записываешь себе интернет адреса нужных диалогов (по нужному ответу правой кнопкой--свойства---адрес url)
Пример:
строка: какие вещи ты обмениваешь?
адрес: http://mooncity.combats.com/main.pl?move_dialog=0&0.8546485275
3) Переделываешь строку адреса под бота:
пример
адрес: http://mooncity.combats.com/main.pl?move_dialog=0&0.8546485275
строка в боте: top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
Для облегчения задачи скажу, что меняется в строке только вот эта часть main.pl?move_dialog=0&
4) Создаешь функцию ответа по диалогам dialog вида:
function dialog()
{
if(get_mainframe().document.all[0].innerHTML.match(/какие вещи ты обмениваешь/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
else
if(get_mainframe().document.all[0].innerHTML.match(/Я лучше пойду(завершить диалог)/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=4&" + Math.random();
}
Обязательно все условия должны идти через else, иначе в бк будет писать "это невозможно"
5) Вставляешь функцию в плагин и, чтоб она начала работать, делаешь строку ее вызова в плагине.
Пример готового плагина по вышесказанному:
я выбрал работу плагина по обновлению фрейма, т.к. так уже делал себе плагин:
function PluginName(enabled)
{
if(enabled)
{
//должна быть одна из двух строк
PluginsOnLoad["PluginName"] = "PluginNameHandler"; // работать по обновлению верхнего фрейма
}
else
{
//должна быть одна из двух строк
PluginsOnLoad["PluginName"] = ""; // выключить обработку по обновлению верхнего фрейма
}
}
function dialog()
{
if(get_mainframe().document.all[0].innerHTML.match(/какие вещи ты обмениваешь/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=0&" + Math.random();
else
if(get_mainframe().document.all[0].innerHTML.match(/Я лучше пойду(завершить диалог)/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=4&" + Math.random();
}
function PluginNameHandler(){
try{
setTimeout("dialog()", 1500); // вызов нашей функции с задержкой в полторы секунды
}
catch(err)
{
alert(err.description); // выводит сообщение, если в результате выполнения кода была получена ошибка. Если сообщения не нужна - удалить эту строку, оставив конструкцию try{}catch(err){}
}
}
725 2011-01-18 17:10:22
Re: Сан 1-2-3 (19 ответов, оставленных в Подземелье / Маршруты)
Update: хайд убрал, чтоб людей не пугать.
фигня...как обычно рандом оказался.