coding.xa0c.net: deMiner2

coding.xa0c.net: deMiner2

0.2.3
Дата: 04.07.2009, 10:35:37
Господа. Время для небольшой рекламки. Быть может, вам будет интересен ещё один мой проект (бесплатный), который находится тут: http://notify.su. Тыкните, поглядите. :)
1. Введение

Итак... Однако, здравствуйте, дорогие любители сапёра. Продукт, описаный и находящийся на этой странице есть следущая (вторая) версия того, что было тут. Для тех, кто на странице первый раз, КРАЙНЕ СОВЕТУЮ ПРОЧИТАТЬ ТО, ЧТО ПО ЭТОЙ ССЫЛКЕ, актуального текста там не много, но вы хотябы будете иметь представление о том, что это за программа, для чего и как разрабатывалась, а так же, если интересно — узнаете историю её развития.




Итак, deMiner2.
Несколько слов о том, почему я решил написАть эту версию.
Я всегда говорил, говорю, и, наверное, буду говорить — пишу я только то, что мне интересно и только тогда, когда мне интересно. Первая версия изжила себя, вносить заплатки, приделывать костыли после каждого миниатюрного апдейта какого-нибудь из игровых сайтов мне надоело и на деминера я забил. Чуть позже, было принято решение выпустить версию-плагин для FF, которая, однако, прижилась всего лишь у единиц, что меня, в принципе, не особо волновало, ибо свой интерес и любопытство (написание первого плагина для FireFox) я утолил. Программа тихо умирала и вот... В один прекрасный летний солнечный день настроение моё было хорошим, время свободное в наличии имелось и решил я воплотить в жизнь другую свою задумку: программу с плагинами. Забавно, но за всю свою программерсую жизнь такого я не писАл. Было, правда, несколько попыток (см. irchat.ru), но до конца не довёл.
Другая причина (и я о ней уже упомянул выше) возникновения данной версии — дать вам, господа пользователи, возможность самим фиксить новые детекты-антидеминеры, изменения дизайна и полей, и всякие прочие "осложнения жизни", кои придумывают админы порталов с сапёром. Сие действие практически снимает с меня всю ответственность за дальнейшие фиксы и/или развитие программы. Вам интересно - дописывайте и фиксите сами. :)
Итак, deMiner2 — ещё один продукт, целиком и полностью построенный на моём интересе к плагинам. Интерес свой я, как и следовало ожидать, утолил. Результат перед вами. :)

Написано на C#, Framework 2.0.

2. Отличия от первой версии

На самом деле, все отличия сводятся к "что в новой версии отсутствует", ибо в основном я убирал, а не добавлял функционал. :)
За всё время жизни первой версии код превратился в жуткую помойку: тут дописка для свипминес, там кусок для игруна, в итоге в коде чёрт ногу сломит. При написании новой версии большинство участков я даже не пытался поправить или как-то причесать (себе дороже: ещё сломается нафиг :))

1) Убрана возможность выбирать тип поля (простой/не простой), теперь поле всегда простое. Думаю, мало кто другим вариантом пользовался.
2) Убран режим паранои. Аналогично первому пункту: не думаю, что он на что-то влиял.
3) Убран полный автоматический режим. Насовсем. Впрочем, если вам сильно нужно — можете дописАть свой модуль, который бы позволял полный автомат.
4) Убрана возможность использовать прокси. Не хотелось с ней заморачиваться, да и прокси живых для тестов под рукой не было.
5) Убрана всякая дополнительная информация, что отображалась в заголовке программы: количество игр, процент успешных и прочий мусор.
6) Произведена попытка оптимизировать некоторые куски кода. Например, сейчас менее тормознуто отрисовывается рамка под текущей клеткой, проценты с вероятностями (которые, кстати, теперь отключаемые) теперь не мерцают при перемещении мышки, ну и т.д.

7) Программа стала модульной, что означает: в exe только ядро, алгоритм разгадывания, в модулях (dll, плагины) вся логика по общению с сервером игры, юзером и чем там угодно, в ядро посылаются только номера клеток и сведения о бомбах в этих клетках, а ядро в свою очередь считает и отрисовывает вероятности. Исходный код модулей открыт, можете изменять/дописывать/создавать новые как вам будет угодно. Ещё раз напомню: приэто основная причина появления данной версии, интерес к самой архитектуре модульности, а никак не к развитию deMiner'a как такового.
8) Так как полей теперь может быть несколько, то теперь их можно закрывать (правой кнопкой на заголовке)

3. Настройки

Окно настроек значительно отличается от того, что было в предыдущей версии. Количество пунктов заметно порядело, теперь разделов всего два: первый, основной, настройки ядра, всё, что осталось "не отрезанным", второй — настройки модулей, то, что модули решат сделать доступным для редактирования пользователем. В принципе, у всех опций названия говорящие, плюс, к каждой опции есть пояснение, посему проблем с настройкой возникунть не должно.
Небольшое дополнение касательно куков aka "Seepmines ID" (уж очень много вопросов мне про них задавали). Если вы не знаете что это, не знаете где взять, идите по ссылке вверху страницы и читайте про старую версию.

4. Программа

Сама программа теперь выглядит так:

Она лишилась главного окна с полем (теперь это поле создаётся только по запросу из модуля), и выглядит как значок в трее с контекстным меню. Кроме, собственно, доступа к модулям, настройкам, пункта выхода и about'a есть переключатель полуавтоматического режима, знакомый многим по старой версии. К слову, клавиша-хоткей "x" никуда не делась и по прежнему работает. (кажется :))

5. Модули...

Ну чтож... Давайте разберём те модули, на написание коих меня хватило. :)

[ SweepMines Standard ] (слева)

Ну, это классика. :)
Модуль — полная копия (я говорю буквально: выделил старый код и скопировал в новое место) основной части первой версии deMiner'a: игра без браузера на сайте sweepmines.com (подробнее на старой странице), то, что сыскало наибольшую популярность у народа и то, что мне постоянно приходилось фиксить. Наслаждайтесь, теперь открыто, фикисть будете сами. :)
Из настроек требуется только UserID, ну и, опционально, "Автополучение бонуса".




[ SweepMines Clicker ] (справа)

Сей модуль — желание показать вам то, как выглядел плагин для FireFox. Модуль НЕ использует интернет, вся игра происходит в вашем любимом браузере, модуль сканирует его окно, находит поле, определяет открытые клетки, высчитывает вероятности, перемещает курсор мыши на определённую позицию и эмулирует "клик мышкой". Детект практически нереален, а вот сломать — раз плюнуть.
Из настроек требует кусок заголовка окна (постоянный для всех окон данного браузера текст) в котором ведётся игра. По дефолту это "mozilla firefox", можете поменять на "google chrome" или что там вам удобней.

[ SweepMines Refresh ]

Идея модуля возникла после прочтения мной комментариев к первой версии. Судя по этим самым комментам, даже после того, как появились новые детекты и анти-деминеры часть программы, отвечающая за восстановление уже начатой игры оставалась рабочей. Иными словами, пользователи делали финт ушами: сначала ход, затем перезапуск программы. При перезапуске деминер заново считывал поле и отображал вероятности соответственно текущему случаю. Работало. Но, согласитесь, частые перезапуски программы — отстой. Посему, было принято решение вынести "восстановление игры" в отдельный модуль, теперь программу перезапускать не нужно, всё, что вам требуется — нажать на кнопку deMiner'a начала новой игры в таком поле.
Другой момент, касаемый данного модуля — его простота. Сам по себе модуль необычайно живуч, и, думаю, проживёт подольше первых двух, а когда-таки и его сломают, внести фикс (ввиду крайне небольшого исходного кода) сможет любой мало-мальски грамотный пользователь. А при наличии хорошего логического мышления — даже не обязательно программист.

[ Ingrun.com: 7x7 && 16x30 ]


Опять же, классика. Модуль — полный (пофиксеный) копипаст куска кода, отвечающего за игру на Igrun.com.
Скриншот выше — поле, открытое этим модулем менее, чем за минуту, в полуавтоматическом режиме после двух кликов мышкой по случайным клеткам. Естественно, не всем будет так везти, но даже так, я не зря в описании первой версии говорил, что ориентируюсь на Igrun.com: там господа хотя бы не заморачиваются по поводу того чем и как играют пользователи и особо сильно над осложнением жизни простому народу не думают, да и ситуации 50/50 достаточно редки.
P.S. По причине отсутствия WMZ, тестирование с данной валютой на игруне не проводилось.

[ Calculator ]

Хе-хе. Модуль — мой привет автору saper helper'a. "Сапёр-хелпер" был первой программой, которую я обнаружил в процессе поиска аналогов-решателей сапёра. Программа, в принципе, отличная, но пока забъёшь всё поле — поседеть можно, уж очень долго мышкой тыкать нужно. Здесь, в принципе, тоже, однако один существенный плюс, всё же, есть: хоткеи. После клика на клетке не обязательно мышкой же выбирать количество бомб в этой клетке.
Хоткеи: 1, 2, 3, 4, 5, 6, 7, 8 по количеству бомб, "ё" или "`" для сброса значения клетки, "0" или пробел для установки пустой клетки.
Имхо, так открывать поле получается заметно быстрее. Кроме того, модуль универсален, а так же ничтожно мал в плане исходного кода (там его практически нет). И этот модуль уж точно не зависит от того где играть и о того, какие ещё фичи придумают администраторы ресурсов.
Однако, есть один момент: для работы этого модуля мне слегка пришлось изменить алгоритм отгадывания aka "решения", не знаю к чему это приведёт.
Принцип юзания: при старте задаём размеры поля и кол-во бомб на нём, появляется поле, тыкаем по клеткам, вводим значения. Чёрные клетки означают ошибку, необходимость дополнить поле в этих клетках значениями иначе решения не будет (в принципе, посмотрев на скриншот станет ясна подобная ситуация и это, я считаю, нормально)
И, кстати, не нужно насиловать программу всякими извратами типа поле 1х1, а бомб 100, либо вводить абсурдные значения в клетках (всё равно не прокатит :))


Итак, это все модули, на написание которых хватило моего энтузиазма. В принципе, по аналогии с кликером можно сделать модуль для виндового сапёра, по аналогии с рефрешером можно сделать модуль-рефрешер для игруна. Можно вообще забить на сапёров и сделать модуль для, скажем, "сейфа" на игруне (впрочем, для этого даже ядро не понадобится, ибо модуль будет самодостаточен и вполне себе живуч ввиде stand alone exe application).

6. Исходный код модулей

Все общие интерфейсы, структуры и классы находятся в файле Modules.dll, ссылку на который вам нужно будет прописАть при создании своего модуля. В принципе, код ниже - просто копипаст оттуда, но пусть уж будет, на всякий случай.

[ Интерфейсы ]
То, что должен имплементировать каждый модуль: Методы ядра, доступные плагинам: Методы формы поля, aka "Игры", доступные после создания экземпляра объекта (ICore.NewGame()): Блин, кривая подсветка... %) В принципе, это всё, что нужно для написания своего плагина.

[ Плагин "Calculator" ]
А тут практически полный исходник самого маленького модуля, калькулятора. Итак...
Module.cs: Класс, в котором описано "ядро" каждого модуля (по кр. мере у меня так, вы можете делать как вам угодно): Core.cs: Класс-обёртка для методов ICore. Присутствует в каждом моём модуле, хотя и не обязателен. Game.cs: Класс-обёртка для методов IGame. "Игровое" ядро каждого (моего) модуля, отвечает за процесс обработки ходов (кликов) польтзователя и отсылает значения клеток в ядро, дабы последнее, в свою очередь, рассчитало и отрисовало вероятности. Итак, эти 3 (три) класса исключая код форм (в которых нет ни строчки кода, относящегося хоть сколько-нибудь к деминеру, либо зависимых от текущих интерфейсов) и есть модуль "калькулятор". Просто, не правда ли? :)

[ Пара слов о "SweepMines.com Standard" ]
На то, чтобы запостить весь исходник целиком (как и на то, чтобы добавить вовнутрь комментарии :)) меня, простите, не хватит. Посему, рассмотрю лишь некоторые моменты.
Первый и самый интересный детект deMiner'a был побеждён в классе с говорящим названием AntiDetect.
Честно говоря, я уже даже не совсем помню в чём состояла суть детекта, но во время игры случайным образом приходило сообщение "top10", на которое необходимо было ответить POST-запросом с двумя параметрами получаемыми (мной) при старте каждой игры: timeStart и timeStop (кажется) Кусок кода из функции ParseXMLReply, дабы было понятно о чём я: Это был интересный детект. Найти его и придумать способ обхода заняло у меня достаточно много времени (около 1-2 часов).

Последущие же "детекты" (впрочем, это уже не детекты, как таковые, а анти-деМинеры) основывались на том, что вместо посылки хода как "http://url/click?c=(колонка,строка)&time=время" координаты клетки шифровались и отсылались как "http://url/click?c=$№Fg33%53*&time=время".
Алгоритм шифрования был написан на javascript, за-escape'ен и обфусцирован. Если кто смотрел в исходник страницы с игрой на seepminec.com, то я говорю о немеряно гигантской строчке вида "v24805 = unescape('%40%05%00%06%03 ... ');".
Вся суть фикса сводилась к тому, чтобы расшифровать этот JavaScript и портировать алгоритм шифровки на C#.
Не думаю, что админ продолжит практиковать такой тип защиты, но, на всякий случай, для тех, кто захочет фиксить модуль, расскажу процесс расшифровки:

1) То, чего должны пугаться все: огромное количество непонятных символов (escape: %40%05%00%06%03 ... ) или же "расшифровка javascript" :)
  а) Скачиваем Malzilla.
  б) Копируем со страницы sweepmines.com текст, похожий на этот (он может чуть отличаться от того, что будет на момент открытия вами страницы, но границы копирования должны быть ясны):
  в) Вставляем этот текст в Malzilla, в верхнее окно закладки Decoder'a:


  г) Тыкаем по любой из кнопок: "Debug", "Run script" или "Show eval() results", вам покажется окошко со списком получившихся файлов, выбираем последний, он будет содержать более-менее человеческий код шифрования:
2) Всё, что осталось — перевести этот алгоритм на C#. Вот, например, последний на сегодняшний день (находится в классе Crypt модуля): [ Для разработчиков ]
Честное слово, не верю, что кто-то кроме меня решит написАть или пофиксить модуль, а если и решит, то после такового действия нападёт на него альтруизм и щедрость неслыханная и захочет он поделиться продуктом своим...
Короче, товарищи девелоперы. Если вы что-либо напишете, что-либо пофиксите (и прочее и прочее), и захотите изделие своё народу презентовать — отправляйте мне исходниками, я их просмотрю, скомпилирую и выложу бинарники здесь, на странице, с указанием вашего авторства, естественно. Если хотите - могу опубликовать БЕЗ выкладывания исходников, однако МНЕ исходники обязательны (на проверку, чтоб ничего деструктивного не вставили). Если даже вы сделаете просто небольшой фикс, можете затереть нафиг моё авторство у модуля, я не против, а то, чесслово, от своего ника в окне "about" уже в глазах рябит %)
Ежели же кто активное участие в девелопинге модулей принят захочет, да часто апдейты клепать будет — по желанию могу поднять тут SVN и дать доступ таковому человеку, дабы он прямо туда все свои изменения заливал, а люди скачивали и сами проверяли, если что.
Так же, если вам вдруг будет не хватать чего-то в интерфейсах, будет нужна какая-то информация из ядра, которую в текущий момент времени получить нельзя и требуется расширение ICore/IGame, а так же полный ступор и отсутствие идей почему ваш модуль работает не так, как полагается — можете попробовать спросить тут в комментах, надеюсь, вместе решим проблему. :)

Ну что, господа писАвшие мне в аську с просьбой поделиться исходниками, клятвенно обещавшим работать на благо народа, фиксить и выкладывать новые версии нуждающимся, вы ещё живы? Правдивы ли слова ваши были?.. Посмотрим... :)

ВНИМАНИЕ ПОЛЬЗОВАТЕЛЯМ: Скачивание модулей со всяких рапидшар, ифолдеров, депозитов и прочих сайтов, которые НЕ xa0c.net вы производите на свой страх и риск, я за вашу жопу в таком случае ответственности не несу. (В принципе, я в любом случае её не несу, но в этом — особо :))

[ Тренировка ]
Хотите попробовать написАть свой модуль?.. Легко. Специально для этого (а так же по причине своей великой лени) я не стал делать модуль "Igrun.com Refresh". Можете попробовать вы.
Данный модуль получится практически 1 в 1 копией модуля "SweepMines.com Refresh", всё, что вам нужно будет сделать - вырезать из "Igrun.com" класс "Recovery", ответственный за восстановление игры и вставить заместо "Recovery" у "SweepMines.com Refresh" попутно дописав кусочек кода авторизации на сайте (который, к слову, так же можно вырезать из модуля "Igrun.com"). Дерзайте.

[ Скачать ]
:P
Interfaces , SweepMines Standard , SweepMines Clicker , SweepMines Refresh , Igrun , Calculator

7. Разработка

Тут я просто скопирую этот пункт целиком со страницы старой версии:

Ммм... Вы, конечно, можете написАть мне пожелания по усовершенствованию программы; ссылку на еще какого-нибудь онлайн-сапёра с просьбой добавить его (алгоритм "решения" универсальный, от размеров поля и количества бомб не зависит); либо прислать какой-нибудь баг-репорт, но, скажу сразу — мне эта программа более не интересна и заниматься её разработкой влом. Изначально писАл только для себя. После, когда решил выложить в инет, весь запал кончился на сделанном окне настроек %) Ну да, ленивый я, что ж тут поделать... Еще было бы неплохо добавить все критические участки в try..catch, но и этого пока что нет. Я для себя сделал вывод, что на онлайн сапёре денег не сделать.
В вопросах написания программ "для души", aka "интересно" я редко возвращаюсь к тем проектам, к которым не прикасался более двух недель.
Для тех, кто не понял, поясняю: развивать я deMiner'a НЕ хочу.
Если хотите — пишите свои модули, не хотите — не пишите. Понадобится фикс — пофиксите, поделитесь с народом, ежли не жадные. Лично я этих модулей (да и вообще деМинера) касаться более не планирую.

Пункты №8, №9, №9.5 я просто и банально в силу своей лени скопировал со старой страницы. :)

8. Выведение

Перед самым-самым линком на скачку я не могу не написАть предупреждения, ибо, средний юзер текст на странице не читает, а просто пробегает глазами цепляясь за "выделенные" куски в поисках ссылки на архив.
Если вы — юзер хороший и адекватный, то вам этот текст без надобности, для всех остальных же, внимайте:

Программа БЕСПЛАТНАЯ!

Если какая-то сука вздумает продавать её на digiseller.ru, plati.ru или где-то еще — смело посылайте его на хуй, делайте возврат денег за товар (если-таки купили) ссылаясь на данную страницу, плюс просите заблокировать аккунт продавца, а при особом желании — влепите отзыв через арбитраж вебманей.
Барыг — давить.
Такое же предупреждение написано в about-окне программы.

[ О благодарностях... ]
P.S. Если вдруг на вас великая радость нападёт и программа понравится, то посоветуйте другу зарегистрироваться по моей реф-ссылке на игруне: http://igrun.com/?19488 или, если решите играть на реальные деньги, на sweepmines.com: http://www.sweepmines.com/?p=yOFhkkhX (либо потыкать на них же в верхней части страницы). Почему "другу"? Потому что, после регистрации уже неважно по чьей реф-ссылке ходить — рефералы не засчитываются, а без регистрации вы вряд ли "заранее" оцените прогу :)

К слову, деньги на тестирование модуля игруна в данной версии я насобирал именно с этих рефских отчислений.

9 НЕ НУЖНО МНЕ ПИСаТЬ В АСЬКУ.

Классное название пунктика, да?.. Надеюсь, заметите. Мне абсолютно не интересно помогать вам установить/запустить/декомпилировать эту программу, помогать что-либо взломать, помогать написАть что-то мегакрутое, что будет зарабатывать деньги, так же объяснять вам как пользоваться гуглом, где найти/скачать/украсть денег в инете, а так же вообще "флудить о жизни". Ну чесслово. Я вам для флуда комментарии ниже сделал, пишите сколько влезет.
Ближайший и приоритетный мой проект сейчас - один из сайтов на главной странице (http://xa0c.net). Ещё одна бесплатная программа, только на этот раз, я думаю, она будет более востребована и оценена. Впрочем, даже на неё времени почти нет, так что, как обычно, не особо надейтесь на след. обновление деминера. :)

9.5 НЕ НУЖНО МНЕ ПИСаТЬ В АСЬКУ.

...просто уехало уже далеко вверх, могут не заметить :)

Скачать
Господа. Время для небольшой рекламки. Быть может, вам будет интересен ещё один мой проект (бесплатный), который находится тут: http://notify.su. Тыкните, поглядите. :)

Комментарии (220)

 xa0c 04.07.2009, 09:45:22
 panda 04.07.2009, 10:17:35
 xa0c 04.07.2009, 10:20:33
 panda 04.07.2009, 10:31:50
 Seed 04.07.2009, 15:12:35
 Razum 05.07.2009, 10:13:57
 xa0c 05.07.2009, 10:18:04
 panda 05.07.2009, 14:35:00
 xa0c 05.07.2009, 16:06:10
 panda 05.07.2009, 16:41:39
  05.07.2009, 17:23:29
 xa0c 05.07.2009, 20:10:50
 Z|G 05.07.2009, 20:52:58
 panda 05.07.2009, 21:13:42
 xa0c 05.07.2009, 21:38:02
 roman 06.07.2009, 05:21:51
 panda 06.07.2009, 08:21:54
 xa0c 06.07.2009, 09:35:13
 roman 06.07.2009, 18:38:37
 xa0c 06.07.2009, 22:45:44
 exolon 07.07.2009, 02:26:37
 Urka 07.07.2009, 12:48:57
 Maydie 07.07.2009, 16:19:27
 Urka 07.07.2009, 16:52:42
 xa0c 07.07.2009, 22:37:19
 exolon 08.07.2009, 08:19:31
 Seed 09.07.2009, 15:48:56
 CyberNoise 09.07.2009, 18:10:25
 xa0c 11.07.2009, 01:09:29
 roman 12.07.2009, 10:42:44
 Linux 12.07.2009, 10:51:33
 exolon 12.07.2009, 11:48:11
 z00mER 12.07.2009, 22:11:13
 z00mER 13.07.2009, 16:14:44
 z00mER 13.07.2009, 16:45:14
 z00mER 13.07.2009, 23:18:33
 z00mER 14.07.2009, 00:14:49
 roman 14.07.2009, 05:45:24
 roman 14.07.2009, 08:02:05
 roman 14.07.2009, 09:05:38
 z00mER 14.07.2009, 12:09:28
 exolon 14.07.2009, 15:30:13
 exolon 14.07.2009, 15:34:48
 roman 14.07.2009, 15:52:13
 sbrf 14.07.2009, 19:23:21
 z00mER 14.07.2009, 21:37:13
 exolon 15.07.2009, 05:47:54
 roman 15.07.2009, 09:37:13
 roman 15.07.2009, 09:59:38
 exolon 15.07.2009, 10:35:03
 z00mER 15.07.2009, 13:22:17
  15.07.2009, 14:37:55
 z00mER 15.07.2009, 18:44:50
  15.07.2009, 19:02:51
  17.07.2009, 01:10:46
 roman 19.07.2009, 07:14:59
 SilenS 25.07.2009, 19:09:19
  30.07.2009, 23:21:41
 xa0c 01.08.2009, 00:10:56
  01.08.2009, 13:03:22
 xa0c 01.08.2009, 14:05:52
  01.08.2009, 15:36:27
 xa0c 01.08.2009, 15:51:19
  01.08.2009, 16:02:24
 xa0c 01.08.2009, 16:11:24
 barmen 01.08.2009, 18:09:37
  01.08.2009, 20:46:25
  01.08.2009, 22:13:22
 Delta 04.08.2009, 03:07:41
  04.08.2009, 11:31:00
  04.08.2009, 11:41:26
 exolon 04.08.2009, 21:55:44
 xa0c 04.08.2009, 22:23:30
  04.08.2009, 23:48:04
  05.08.2009, 00:05:14
  05.08.2009, 11:24:48
 xa0c 05.08.2009, 11:29:55
  05.08.2009, 12:14:45
 Romik 05.08.2009, 19:51:17
  06.08.2009, 08:11:46
  06.08.2009, 08:48:24
  06.08.2009, 18:00:33
  06.08.2009, 20:05:46
 barmen 06.08.2009, 22:00:23
  07.08.2009, 12:07:06
 barmen 07.08.2009, 18:26:32
  07.08.2009, 23:42:32
 xa0c 08.08.2009, 03:23:06
  08.08.2009, 11:59:54
 xa0c 08.08.2009, 12:22:05
 barmen 08.08.2009, 16:47:08
 barmen 08.08.2009, 19:03:55
  08.08.2009, 21:31:22
 Delta 09.08.2009, 14:05:36
 Delta 09.08.2009, 20:39:43
  09.08.2009, 23:10:39
 barmen 09.08.2009, 23:26:42
 roman 10.08.2009, 08:22:50
 roman 10.08.2009, 08:27:02
 Delta 10.08.2009, 15:50:00
 Romik 10.08.2009, 19:41:53
 Romik 10.08.2009, 19:44:43
  11.08.2009, 14:07:30
 roman 12.08.2009, 11:45:40
  13.08.2009, 22:01:15
 Set 14.08.2009, 18:20:13
  15.08.2009, 00:10:47
 Set 15.08.2009, 01:43:39
 igrun.com 15.08.2009, 07:04:02
 roman 16.08.2009, 10:00:41
 roman 16.08.2009, 10:32:00
 Gabriel (archangel) 21.08.2009, 00:51:19
 lunas1991 21.08.2009, 15:10:11
 Gabriel (archangel) 21.08.2009, 19:07:17
 Gabriel (archangel) 21.08.2009, 19:29:46
 Gabriel (archangel) 21.08.2009, 19:51:42
 Gabriel (archangel) 21.08.2009, 22:52:48
 Gabriel (archangel) 21.08.2009, 23:11:41
 lunas1991 22.08.2009, 00:07:25
 xa0c 22.08.2009, 04:51:52
 Gabriel (archangel) 22.08.2009, 10:46:57
 Gabriel (archangel) 22.08.2009, 11:29:02
 barmen 22.08.2009, 18:21:00
  23.08.2009, 11:34:45
 Gabriel (archangel) 23.08.2009, 18:20:39
  23.08.2009, 22:36:07
 Gabriel (archangel) 24.08.2009, 07:09:06
 Gabriel (archangel) 24.08.2009, 07:34:50
 Gabriel (archangel) 24.08.2009, 08:53:09
 Gabriel (archangel) 24.08.2009, 09:25:49
 lunas1991 24.08.2009, 09:33:24
 Gabriel (archangel) 24.08.2009, 10:54:20
 prohor 24.08.2009, 12:26:37
 Gabriel (archangel) 24.08.2009, 15:33:42
 prohor 24.08.2009, 15:46:56
 Gabriel (archangel) 24.08.2009, 17:01:35
 Gabriel (archangel) 24.08.2009, 17:20:29
 Gabriel (archangel) 25.08.2009, 03:40:19
 Gabriel (archangel) 28.08.2009, 10:41:23
 xa0c 29.08.2009, 03:25:26
 Seed 30.08.2009, 08:12:08
 z00mER 30.08.2009, 20:56:41
 Gabriel (archangel) 31.08.2009, 09:26:59
 z00mER 31.08.2009, 23:53:14
 Gabriel (archangel) 01.09.2009, 02:58:05
 Gabriel (archangel) 01.09.2009, 07:54:17
 Gabriel (archangel) 04.09.2009, 10:52:21
 xa0c 04.09.2009, 11:44:32
 Gabriel (archangel) 04.09.2009, 12:00:13
 z00mER 04.09.2009, 19:56:31
 Gabriel (archangel) 05.09.2009, 05:59:54
 Gabriel (archangel) 05.09.2009, 06:02:14
 z00mER 05.09.2009, 12:18:29
 Gabriel (archangel) 06.09.2009, 16:23:54
 z00mER 07.09.2009, 12:24:02
  09.09.2009, 07:12:59
 Ozicom 23.09.2009, 22:56:48
 Balek 24.09.2009, 05:04:19
 z00mER 24.09.2009, 18:50:28
 Ozicom 25.09.2009, 22:55:42
 Gabriel (archangel) 26.09.2009, 07:25:36
  01.10.2009, 17:02:30
 AndreyM 02.10.2009, 20:04:09
 BATON 03.10.2009, 15:40:25
 AndreyM 04.10.2009, 18:04:24
 Gabriel (archangel) 06.10.2009, 10:47:06
 Gabriel (archangel) 07.10.2009, 09:16:07
 xa0c 07.10.2009, 09:39:31
 Gabriel (archangel) 07.10.2009, 12:37:23
 Serh 07.10.2009, 19:45:18 http://www.inattack.ru/article/164.html
  08.10.2009, 23:35:05
 Gabriel (archangel) 09.10.2009, 11:25:11
 Gabriel (archangel) 09.10.2009, 16:22:21
 Gabriel (archangel) 09.10.2009, 17:52:26
  09.10.2009, 18:10:43
 Sorceres 18.10.2009, 22:00:59
 Gabriel (archangel) 24.10.2009, 17:15:14
 Gabriel (archangel) 25.10.2009, 12:26:58
 Gabriel (archangel) 26.10.2009, 15:19:03
 Gabriel (archangel) 26.10.2009, 16:49:51
 Gabriel (archangel) 26.10.2009, 17:34:31
 Lenivec 26.10.2009, 17:44:58
 Gabriel (archangel) 26.10.2009, 18:02:21
 Gabriel (archangel) 26.10.2009, 19:15:16
 Lenivec 28.10.2009, 01:19:51
  10.11.2009, 12:50:53
 shamik 10.11.2009, 21:23:36
 Gabriel (archangel) 11.11.2009, 16:25:25
 Gabriel (archangel) 12.11.2009, 02:06:35
 Gabriel (archangel) 12.11.2009, 02:09:26
  12.11.2009, 09:52:47
 Gabriel (archangel) 12.11.2009, 11:04:30
  12.11.2009, 11:35:43
  12.11.2009, 11:36:34
 Gabriel (archangel) 12.11.2009, 13:28:51
 Gabriel (archangel) 12.11.2009, 20:47:48
 Gabriel (archangel) 12.11.2009, 21:19:38
 Gabriel (archangel) 13.11.2009, 16:23:49
  13.11.2009, 19:07:23
  13.11.2009, 19:11:50
  13.11.2009, 20:05:23
 Gabriel (archangel) 14.11.2009, 14:55:05
 t1po4eg 15.11.2009, 00:56:00
 Gabriel (archangel) 15.11.2009, 19:07:09
  17.11.2009, 22:09:42
  23.11.2009, 21:57:44
  28.01.2010, 15:48:52
  28.01.2010, 16:19:15
 Dimmu 30.01.2010, 23:25:07
 xa0c 30.01.2010, 23:47:04
  11.02.2010, 20:37:12 <?php print "1"; ?>
 xa0c 13.02.2010, 05:39:41
 bolteg 27.02.2010, 19:24:06
  17.03.2010, 10:48:19
  08.05.2010, 15:53:44
 Lir 08.05.2010, 19:41:22
  24.05.2010, 00:18:32
  31.05.2010, 07:39:10
  13.02.2011, 22:29:33
  03.11.2013, 13:46:59

Оставить комментарий

Имя:
Код на картинке:

Господа. Время для небольшой рекламки. Быть может, вам будет интересен ещё один мой проект (бесплатный), который находится тут: http://notify.su. Тыкните, поглядите. :)