Двадцять років минуло відтоді, як у Санктуарії бешкетували орди нежиті під проводом могутніх демонів Діабло, Мефісто і Баала, але ті, хто боровся проти стародавнього зла, як і раніше, зберігають у пам'яті жахливі події тих днів… У пошуках знань, які допоможуть здолати Нові втілення зла, Декард Каїн повернувся на руїни Тристрамського собору. І тоді з небес, охоплений полум'ям, спустився провісник Апокаліпсису: удар припав на те саме місце, де колись у світ проник Діабло. Небесне полум'я збудило древнє Зло. Час пробив! Герої Санктуарія знову повинні піднятися на захист миру смертних від сил пекла, що розбушувалися.

УВАГА! Ви купуєте коди (не диск)! Гра скачується після активації!

Як активувати код Diablo III Standart Edition (RU):

1) Перейдіть на eu.battle.net/ua/ і зареєструйтесь (якщо є обліковий запис Battle Net, увійдіть).
2) Після входу вибирайте розділ "Прикріпити ключ гри" (eu.battle.net/account/management/claim-code.html) та введіть куплений код Diablo III Standart Edition (RU).

Як активувати код Diablo III Guest Pass (RU):

1) Перейдіть на http://www.diablo3.com/guest і зареєструйтесь (якщо є обліковий запис Battle Net, увійдіть).
2) Введіть отриманий гостьовий ключ
3) Безкоштовно завантажте гру (Гостьова версія дозволяє грати в Diablo III до моменту бою з королем-скелетом в Акті I)

Як активувати код WoW Guest Pass (RU):

1) Перейдіть на http://www.warcraft.com/guest та введіть отриманий гостьовий ключ
2) Завантажте безкоштовну пробну версію гри
3) Грайте у World of Warcraft безкоштовно аж до 20-го рівня

В наявності: Багато, регулярно, офіційно (від СофтКлаб). Ви отримуєте коди активації одразу після оплати! У комплекті основний код та гостьові на D3 та WoW (Всі передруковуються з "дискового" jewel видання).

Відгуки

2

Відгуків від покупців не надходило.

З метою протидії порушенню авторських прав та права власності, а також виключення необґрунтованих звинувачень на адресу адміністрації сайту про допомогу у такому порушенні, адміністрація торгового майданчика Plati (http://www.сайт) звертається до Вас з проханням - у разі виявлення порушень на торговому майданчику Plati, негайно інформувати нас за адресою факту такого порушення і надати нам достовірну інформацію, що підтверджує Ваші авторські права або права власності. У листі обов'язково вкажіть ваші контактні реквізити (П.І.Б., телефон).

З метою виключення необґрунтованих та свідомо неправдивих повідомлень про факти порушення зазначених прав адміністрація відмовлятиме у наданні послуг на торговому майданчику Plati, тільки після отримання від Вас письмових заяв про порушення з додатком копій документів, що підтверджують ваші авторські права чи права власності, за адресою: 123007, м. Москва, Малий Калузький пров. д.4, стор.3, Адвокатський кабінет «Акар №380».

З метою оперативного реагування на порушення Ваших прав та необхідності блокування дій недобросовісних продавців, Plati просить Вас направити завірену телеграму, яка буде підставою для блокування дій продавця, зазначена телеграма повинна містити вказівку: виду порушених прав, підтвердження ваших прав та ваші контактні дані (організаційно -правову форму особи, П.І.Б.). Блокування буде знято через 15 днів, у разі непредставлення Вами до Адвокатського кабінету письмових документів, що підтверджують ваші авторські права або права власності.

Незважаючи на те, що використання чит кодів в комп'ютерних іграх здебільшого знижує інтерес від гри, ця тема завжди залишається популярною. На жаль, але і у випадку популярної рольової гри Diablo 3 гравці шукають можливості для нечесного отримання ігрових переваг.

Застосування різних кодів у діабло 3, а точніше спеціальних читерських програм має дуже важливу особливість, яку рідко пояснюють розповсюджувачі (іноді за плату) цих читерських програм. Я на сайт закликаю Вас все-таки добре обміркувати бажання отримати перевагу в грі нечесним шляхом, тому що цей захід цілком може закінчитися плачевно для вашого облікового запису на battle.net, але почнемо по порядку.

Мережеве розміщення героїв

Локальної гри в діабло 3 немає, всі герої зберігаються на сервері, так що як такої локальної гри та локальних героїв тут немає. Тож і банальною правкою збережень, що практикувалося нерідко в diablo 2, тут уже нічим не допоможеш, адже і доступу до них у нас немає. Зате не потрібно переживати за збереження своїх персонажів, ми можемо за них пограти як з роботи, так і з дому чи інтернет-кафе.

Всі персонажі можуть грати як у своєму світі, так і з іншими гравцями, так що і застосовувати безпосередньо чит коди у грі не можна, їх просто немає. Тобто вони не існують у природі завдяки особливому формату рольової гри Diablo 3, де все підпорядковане колективній грі, спільному проходженню. Отже, розробники просто не могли залишити коди, здатні посилити Вашого персонажа.

Кодів у грі немає!

Кодів у Diablo 3 немає. На цьому б цей розділ на сайт і закінчити, але це виглядатиме не дуже красиво, так що розбавлю абзац парою інших пропозицій. Офіційних і безпечних читів для Діабло три немає, і не буде в майбутньому, так що будь-яке їх застосування порушує користувальницьку угоду, з якою Ви, до речі, погодилися беззастережно. Але що ж роблять чітери у новому світі Санктуару?

Мапхакі, боти та інші програми

У Diablo 3 використовують спеціальні читерські програми, які так чи інакше дадуть неігрову перевагу Вашим персонажам. До речі, загін ботів на фарм золота або предметів також відносимо до читання та шахрайства. Саме таким чином гравці зламують гру та отримують додаткові можливості для своїх героїв.

Багато інтернет ресурсів активно поширюють різні мапхаки, ботів для діабло 3, не тільки не попереджаючи про можливу небезпеку їх використання, а й часто підсовуючи віруси в архівах. Тому популярність гри, бажання використовувати різні чити використовуються повною мірою нечесними на руку власниками різних ігрових сайтів.

Так що обережним потрібно бути ще на етапі пошуку та закачування різних хаків до третього діабла, адже можна зловити вірус, а не шукану програму. В принципі, краще чити взагалі не качати до цієї гри і їх не використовувати.

Не використовуйте чити

Нехай перша причина, яку я позначу, та викличе усмішку у багатьох любителів комп'ютерних ігор, не сказати про неї я не можу. Використання різних читерських програм Ви помітно знижуєте задоволення від гри, порушуєте принципи чесної гри. Хоча діабло 3 для багатьох – це вічна гонитва за голдом та потужними артефактами. У такому варіанті гра замість розслаблення та задоволення приносить здебільшого негативні емоції.

Друга причина-застереження більш насущна і стосується Ваших особистих фінансів. Справа в тому, що за використання читів та ботів Вас просто можуть забанити у грі. Blizzard досить чуйно стежить за читерами, і десять мільйонів гравців бажають чесних умов гри за свої гроші. Зрештою, гроші втратять, швидше за все, чітери. І Вам доведеться повторно купувати Diablo 3 за власний кошт.

У результаті, пошук та використання різних хаків та читів, ботів у діабло 3 може обернутися для Вас не тільки зараженням комп'ютера, але й баном Вашого облікового запису на battle.net, так що Ви взагалі втратите можливість дослідити Санктуар. Нехай ця стаття на арбсі не здається Вам надто банальною, але ризик використання читів у Diablo 3 досить великий, оскільки гра коштує досить дорого.

Тим часом отримати перевагу в грі можна безпечнішим методом, а саме, покупкою голду, тобто ігрової валюти. У результаті, Ви витратите менше грошей, результат буде більш надійний, а Ви ще й заощадите свій час на налаштування хаків і читів. Ще безпечніше використовувати офіційний аукціон на реальні гроші. Найкраще рішення - грати в Diablo 3 на своє задоволення.

29 березня 2012 о 01:17

Тому що я отримав ключ до Diablo III Beta

  • Розробка веб-сайтів,
  • Програмування

У YouTube роликах ThisIsHoroshoз недавніх пір стали з'являтися ключі до Diablo III Beta. У 7-хвилинному ролику на секунду показується ключ, хто його перший активує, то й виграє. Ось так на стоп кадрі виглядає ключ:

Ви подумали про те саме, про що і я?


Усього 10 ключів.

Ключ 1
Про перший ключ я не знав і, мабуть, ніхто не знав. Комусь пощастило.

Ключ 2
До другого відео був готовий найпростіший бот, який раз на 10 секунд оновлює сторінку з доданим відео і, якщо з'явилося нове відео, то модне вікно у вигляді алерту повідомляє про це. З'ясувалося, що через 4 години youtube виявляє бота і просить його ввести recaptcha, а потім ще щогодини просить її вводити. Дуже не зручно, але я не особливо хотів витрачати час і писати по-нормальному, тому що очікував, що другий ключ з'явиться якось інакше, ну наприклад, хоча б зеленими літерами. Другий ключ я проморгав, але коли я побачив ті ж сірі цифри та літери, тим же шрифтом, того ж розміру, на тому ж білому тлі і навіть розміром у ті ж три рядки, я вирішив зробити нормального бота.

Ключ 3
До третього відео бот використовував youtube api, квота на кількість запитів до якого дозволяла сканування раз на 5 секунд протягом 12 годин.

Алгоритм був простий:

Отже, вискочив алерт, що повідомляє про вихід нового відео, я залогінився до battle.net, через 10 секунд завантажилося відео, ще через 10 з'явився скріншот із серійним номером:


Я його запровадив і… він виявився вже використаним. Аналіз помилок показав, що дані через youtube api оновлюються із затримкою до 5 хвилин! Коли бот виявив нове відео, вже було надто пізно. Комусь з інших ботів або користувачів F5 пощастило.

Ключ 4
До четвертого відео, бот був доопрацьований: зараз він використовує близько 100 проксі серверів (по 1 потоку на кожен проксі сервер), які сканують кожні 5 секунд gdata. Тести показали, що близько 20 проксі просто миттєво повідомляють про вихід нового відео, решта підтягується протягом хвилини, це було чудово. На відміну від gdata прямі посилання з'являються відразу для будь-якого IP, тому тут без проксі-бот просто качає відео в 20 потоків (працювало навіть в 1000 потоків, youtube виявляється дозволяє). Швидкість закачування зросла. Алгоритм сканування був доопрацьований: бот спочатку в 4 потоки сканує другу частину ролика (у всіх попередніх відео серійний ключ з'являвся в кінці ролика), а потім у 4 потоки першу частину. Для надійності крок сканування був зменшений до 500 мс, інші параметри були трохи ослаблені.

Отже, вискочив алерт, який повідомляє про вихід нового відео. Не встиг я зайти в battle.net як вже скачало відео (10 секунд) і з'явився скріншот із серійним номером:

Я порадів, що врахував можливість його появи у два рядки. Тремтячими руками я його абияк написав і активував! На все пішло 20 секунд. Дуже пощастило зі скануванням, алгоритм практично відразу показав серійний номер при тому, що повне сканування тривало 30 секунд. У цьому ролику, як виявилося, було два ключі, які здалися послідовно, я ввів другий. Вітаю, хто активував перший!

Залишилось ще 5 ключів
Можна доопрацювати алгоритм: запускати сканування разом із початком старту скачування, алгоритм ускладниться, але виграш буде секунд 10. Можна ще зробити розпізнавання серійного номера та його автоматичне введення в battle.net. Тоді ключик можна буде ввести за 5 секунд.

Все писалося на Java, використовуючи HttpComponents (http-протокол) та VLCj (обробка відео)

P.S. Diablo III кльова

UPDATE
Цікаво було писати самого бота, тому витрачені 20 годин я розцінюю як час, витрачений на розвагу, а не як 20 годин, за які можна було б заробити набагато більше грошей, ніж стоїть сам ключ. У вільний час відпочиваю чи вивчаю щось нове, а не працюю, а тут приємне з корисним. Гру ще не пройшов.

Алгоритм
Алгоритм визначення серійника спеціально відразу не став вказувати з двох причин. Дізнавшись абсолютно точний алгоритм, автори ThisIsHorosho швидко зроблять ключ нерозпізнаним, і я надаю ведмежу послугу тим, хто теж пише бота. Хоча припускаю, що таких людей немає, але як те ж, судячи з коментарів, за 3 хвилини вводять серійники, невже тиснуть F5 під час очікування.

Ну раз багато питань щодо алгоритму… Головне, алгоритм має бути дуже швидким. За скріншотом із серійним номером відразу видно основну ідею.

  1. Беремо картинку з кадру та зберігаємо її з розміром 640x320, VLCj дозволяє зберігати картинки з будь-якою роздільною здатністю, навіть якщо відео має інше. Всі точки, близькі до кольору тексту робимо чорними, решта всіх біле. У результаті отримуємо чорно-білі картинки. Пару таких картинок вставлено до цієї статті.
  2. Для кожного знімка екрана вважаємо статистику білих і чорних крапок. Фоном оголошуємо ті, де кількість білих точок більша за 92%, у тестах вистачало і 94%, але це із запасом. Кадри з фоном шукає серійник.
  3. З кадру з країв відступаємо по 30 пікселів, тому що серійник з'являється ближче до центру, а з краю ніколи. Поле, що залишилося, розбиваємо на квадрати 20x20, у кожному з яких рахуємо кількість чорних крапок.
  4. Квадрати з кількістю чорних крапок від 10% до 60% оголошуємо квадратами з літерами – це вже з урахуванням того, що літера може лише на половину потрапити у квадрат та з деяким запасом.
  5. Кадри, на яких є безперервна послідовність з як мінімум 6 квадратів з літерами по горизонталі та 3 квадрати по вертикалі, оголошуємо кадрами із серійним номером. Зберігаємо їх у папку.

У результаті з'являються тільки картинки з текстом схожим на серійний номер:

Насправді їх небагато з'являється, отже знайти їх потрібний легко.

Робота з VLCj
Робота з VLCj дуже проста. Спочатку я прочитав документацію www.capricasoftware.co.uk/vlcj/tutorial1.php , потім трохи погрався з класом MediaPlayer, але він якось глючив, загалом я зупинився на виклику прямих функцій з бібліотеки LibVlc - воно і швидше і безглючне.

Спочатку створюємо бібліотеку
LibVlc libvlc = LibVlcFactory.factory().create();

Потім створюємо масив з 8 штук. Тобто. спочатку скануватиметься друга частина відео, а потім перша. У кожному AnalyzerThread такий код:

System.out.println("Run section" + num); libvlc_media_player_t p_mi = null; libvlc_media_t media = null; try ( // prepare //libvlc_instance_t instance = libvlc.libvlc_new(0, new String); instance);libvlc.libvlc_audio_toggle_mute(p_mi);media=libvlc.libvlc_media_new_path(instance, fileName); );libvlc.libvlc_media_player_pause(p_mi) // start snapshoting int block = blockFrom; for (long msTime = msFrom; msTime<= msTo; msTime += msInBlock, block++) { String path = snapshotPath + File.separator + "snap-" + String.format("%03d.png", block); libvlc.libvlc_media_player_set_time(p_mi, msTime); int r = libvlc.libvlc_video_take_snapshot(p_mi, 0, path, picWidth, picHeight); if (r != 0) System.out.println("SNAPSHOT FAILED: block=" + block + ", returnCode=" + r); else analyzeImage(path); } } finally { if (p_mi != null) libvlc.libvlc_media_player_stop(p_mi); if (media != null) libvlc.libvlc_media_release(media); if (p_mi != null) libvlc.libvlc_media_player_release(p_mi); System.out.println("Close section " + num); }

Функція analyzeImage якраз визначає, знаходиться на скріншоті ключик чи ні, якщо знаходиться, то зберігає його в спеціальну папку.