8 заметок с тегом

игра

«Гопник» возвращается

Скомпилированный «ФриПаскалем» примитивный клон игры «Гопник», запущенный на макОСи

Три вещи наполняют душу всегда новым и все более сильным удивлением и благоговением — это звездное небо надо мной, моральный закон во мне и моя необъяснимая любовь к двум досовским играм серии «Гопник». Обе части представляют собой текстовый квест, в обеих частях центральный персонаж — пацанчик, идущий к успеху.

В общем, иногда я к ним возвращаюсь, даже не поиграть, а погуглить — не найдётся ли на ту же тему чего-то нового. Надеюсь на продолжение, третью часть.

Но с годами в выдаче «Гугла» ничего не менялось, пока сегодня в результатах не попался клон игры «Гопник», написанный в 2014 году на примитивнейшем Паскале «коллективом GalAndGames».

К сожалению уже по исходнику было видно, что это — не более, чем чья-то проба пера, к которой автор или авторы полностью потеряли интерес. Но для интереса скачал «ФриПаскаль», попробовал скомпилировать. С элементарными правками получилось — у трёх переменных надо было указать другой тип.

Сюжет явно взят из первой части оригинальной серии — пацан, отчисленный лично ректором, жаждет мести. Игра начинается с момента отчисления и заканчивается битвой с ректором. В начале игры можно выбрать собственную специализацию — «гопник», «вор» или «маньяк», но этот выбор ни на что не влияет.

Увлекательнейший процесс битвы с ректором, я победил и немудрено — в игру вставлены читы

В игре есть несколько от балды выставленных характеристик, деньги («чирики»), магазин, где можно купить оружие и пиво (аналог аптечек), а так же враги с которыми предстоит драться — «коп», «маньяк», «вор», «гопник», ну и босс — «ректор».

Конечно я не впечатлён, но жаль, что игра заброшена, будь у авторов больше терпения, возможно этот гештальт мне наконец удалось бы закрыть.

 Нет комментариев    72   2018   игра

Крестики-нолики на HTML CSS и прокрастинация

Крестики-нолики (38.95КиБ)

Есть такое понятие — прокрастинация, это про «никогда не откладывай на завтра то, что можно сделать послезавтра». В тяжёлых проектах есть соблазн отложить принятие трудных решений «на потом» или не делать что-то до последнего момента. Я человек и поэтому подвержен этой проблеме.

Я как-то рассказывал в интервью для «5 шотов», что у меня есть способ борьбы с прокрастинацией — я каждый день выделяю по полчаса на самое сложное, неприятное, то, чем заниматься совсем не хочется. Это помогает.

У меня с моими «Крестиками-ноликами» на HTML и CSS такое произошло — не хотелось заканчивать, искать ошибки и так далее. Вроде как проект-то уже сделан, проехали, кому-он-нужен-зачем-баги-править. Но какая-то неудовлетволённость осталась, хотелось доделать. В итоге я около недели по полчаса тщательно искал ошибку и вносил улучшения.

Вчера ночью меня осенило, открыл ноут перед сном и исправил последнюю ошибку (их там оказалось две — в выводе данных из программы моделирующей игру и в самом конверторе, делал-то всё впопыхах). В общем, должно работать. Ссылка осталась прежней.

Багов быть не должно, могут быть шероховатости. Я сам знаю пару неаккуратных вещей — кнопка «Restart» работает не во всех браузерах и на ничьей следующий ход уже не сделать (хотя он и не нужен вообще-то).

Epic War 4

EpicWar4 (51.74КиБ)

Подсел на флеш-игрушку Epic War 4.

Но медленно наращивать мощность очень уж скучно, сделал патч, который увеличивает количество денег до двух миллионов, применив его 2-3 раза, можно купить всё что только есть в игре.

Для того, чтобы применить патч, найдите SOL-файл игры (где такие файлы обычно лежат в разных операционных системах можно посмотреть в «Википедии») — там содержится её сохранённое состояние. И укажите программе при запуске полный путь и имя этого файла.

Программа написана сразу на трёх языках — PowerShell (для Windows) и PHP с Python (для всех), запускайте любым из этих трёх интерпретаторов:

#!/usr/bin/env python
########################################################
# Written by Evgeny Stepanischev (//bolknote.ru)  #
# Epic War 4 money patch (for PowerShell, Python, PHP)  #
#<?/*
"""*/
echo str_repeat('#', 55), chr(10);

if ($_SERVER['argc'] > 1) {
    
    $fp = @fopen($_SERVER['argv'][1], 'r+b');
    if ($fp) {
        $content = fread($fp, 655350);
        $content = preg_replace('/(?<=stat_money).{5}/s', pack('H*', '0480C584B4'), $content);

        rewind($fp);
        fwrite($fp, $content);
        echo 'Done.';
    } else {
        echo 'Invalid file.';
    } 

    fclose($fp);
} else {
    echo 'Usage: ', $_SERVER['argv'][0], '<filename>';
}

__halt_compiler();

""" + """ " | out-null

If ($args) {
    [char[]] $binary = Get-Content -encoding byte $args[0]

    $binary = [string]::join('', $binary) -replace`
              'stat_money.{5}', `
              "stat_money$([char]0x4)$([char]0x80)$([char]0xC5)$([char]0x84)$([char]0xB4)"

    Set-Content $args[0] ([byte[]][char[]] $binary) -encoding byte

    "Done."

} Else {
    "Usage: " + $MyInvocation.MyCommand.Name +" <filename>"
}

"""
from sys import argv
from os.path import basename

if len(argv) > 1:
    name = 'stat_money'

    f = open(argv[1], 'r+b')
    binary = bytearray(f.read())

    try:
        index = binary.index(name) + 1 + len(name)
        binary[index:index+4] = '\x80\xc5\x84\xb4'

        f.seek(0)
        f.write(binary)
        f.close()
        print('Done.')
    except:
        print('Invalid file.')
else:
    print('Usage: %s <filename>' % basename(argv[0]))

# " | out-null

python patch.ps1 DEF4_SAVE.sol или powershell -Command .\patch.ps1 DEF4_SAVE.sol или php patch.ps1 DEF4_SAVE.sol

Жаль расцветить три языка в одном файле можно только вручную.

DEFENDER в favicon

DEFENDER (2.86КиБ)

Трюк с подменой favicon используется в вебе довольно редко, впрочем, этому есть причина: он не работает в Internet Explorer (даже в 9-й версии). Я его использовал в первый раз года четыре назад — в таск-менеджере, который мы писали для внутренних целей в фирме L., он использовался для того, чтобы сигнализировать, что на вкладке таск-менеджера есть срочная задача.

Но есть способы использовать его более впечатляющим (хотя и более бесполезным) способом — дать возможность играть внутри favicon в игры. Существуют несколько таких игр, одна из них, например — DEFENDER.

Работает в «Опере» 9.2+ и Firefox 2.x (в FF 3 проблемы). Под WebKit работает выборочно, новые версии (где реализован метод CANVAS API «toDataURL()») игру поддерживают, правда, в шестом «Хромиуме» тормозит безбожно.

Управление простое: «N» — новая игра и стрелять, «WASD» (или клавиши курсора) — управление корабликом, «Enter» — чтобы выбрать куда вывести игру (на страницу или favicon).

P.S. На сайте с этой игрой есть ещё несколько таких игр.

 11 комментариев    13   2010   игра

«Гопник» и «Гопник-2»

На «PyCamp Kyiv», на тех немногочисленных докладах, которые мне были не интересны, играл в текстовые игры «Гопник» и «Гопник-2». Наверное многим они известны. Если нет,то поиграйте, забавно. Так как в интернетах я с огромным трудом нашёл вторую часть, то попробую наводнить эту заметку ключевыми словами.

Действие первого «Гопника» (автор — V.P, июнь 2003-го, язык — Turbo Pascal) происходит в Новосибирске, сюжет — вы вылетаете из университета и попадаете на улицу, у есть вас выбор какую «специальность» освоить — пацан, отморозок, гопник или вор. У каждой «профессии» свои плюсы (хотя, кажется, проходить проще всего вором): у «пацана» есть девушка и его сразу пускают в клуб, на «отморозке» всё заживает, как на собаке, «гопник» свой в притоне, а «вор» на короткой ноге с барыгами и, как следует из названия, хорошо умеет воровать.

Вам придётся (в текстовом режиме) шататься по окрестностям, воровать, покупать и продавать, ходит в качалку и клуб и так далее, а в конце — разобраться с ректором.

Доступны несколько «локаций» (некоторые открываются не сразу, а после каких-то действий): «базар» (тут можно купить шмотки и еду, а так же воровать кошельки), «больница» (тут поправляют здоровье и лечат переломы), «подруга» (поправляет здоровье), «притон» (тут тусуются пацаны, которые смогут за тебя врубится, если что), «клуб» (можно играть на деньги), «качалка» (улучшение бойцовских навыков) и «барыги» (это «чёрный рынок», им можно продать свой хлам или купить полезного).

В течение игры нужно не забывать прокачивать характеристики: силу (увеличивает урон, даёт больше здоровья), ловкость (увеличивает шансы попасть по противнику), живучесть (так же увеличивает здоровье) и удачу (чем больше удача, тем успешнее воруешь и реже влипаешь в различные неприятности).

Шмотки дают различные бонусы, например, броня уменьшает силу вражеского удара, а тюремная наколка помогает реже влипать.

Гопник (30.01КиБ)

Сюжет второй части «Гопника», «Гопник-2 „Покорение культурной столицы“» (автор другой — d-maxx, из Сургута, ≈2005-й год, использован Turbo C++ 3.00): вы из Новосибирска отправляетесь в Санкт-Петербург поступать в университет, вам это с трудом удаётся, но через какое-то время вас выгоняют из общаги на улицу за постоянные пьянки и нарушение общественного порядки.

На улице надо выбирать, кем вы будете: «потсан» (есть девушка), «отморозок» (пускают качалку на Петроградской), «гопник» (разводит лохов на деньги) и «нефор» (бесплатно проходит в клуб на Сенной).

Игра несколько отличается от первой части, но самые большие отличия — есть метро, на котором можно ездить в другие районы города, а так же возможность сохраняться и загружаться. Кстати, сохраняться можно только 60 раз, небольшой намёк — счётчик расположен в 68-м (считая с нуля) байте файла сохранённой игры.

Впрочем, вот вам небольшая строка, которая работает в Windows NT/2000/XP/Vista, которая установит счётчик в значение 255:

CMD /C "(ECHO e144 ff && ECHO w && ECHO q) | DEBUG GOP2_1.SAV > nul"

Для Windows 7, из которой, оказывается, удалили утилиту DEBUG, я команды написал на PowerShell (в каталоге, где расположен файл сохранения нужно запустить powershell и выполнить следующие команды):

$var=Get-Content -Encoding Byte gop2_1.sav
[byte[]]($var[0..67] + 255 + $var[69..134]) | Set-Content gop2_1.sav -Encoding Byte

Как всегда, в случае с PowerShell, расскажу что здесь происходит в этой небольшой програмке.

Файл читается в переменную $var, читается побайтово как массив чисел. Далее я формирую массив из элеметов с нуля до 67, значения 255 и элементов с 69 до 134-го.

Получившийся массив разношерстных элементов (добавленное мною число «255» имеет тип Int32, остальные — byte) преобразуется к типу «массив байт» и записывается в тот же файл. Set-Content преобразует эти данные в бинарный вид, он знает как их трактовать, так как я явно задал это в параметре.

Так как мне хотелось продемонстрировать как происходит добавление элемента к массиву, преобразование типа массива и передача его по конвееру, я не стал заменять значение одного элемента, что было бы проще и нагляднее.

 31 комментарий    765   2010   powershell   игра

Verbatim Game

Verbatim Moster (32.04КиБ)

У Экслера подсмотрел игрушку «全日本バーベイタム選手権» («Японский чемпионат Verbatim») — из флешек составляется монстр, которым потом можно драться с другими монстрами. От каждого боя достаётся немного гигабайт, увеличивается рост и улучшаются различные характеристики: мощность, оборона, скорость и живучесть. Скорость после 35 у меня больше так и не выросла. Если вам удаётся победить большую часть своих соперников, можно попробовать победить боссов — The IQ, The Captain, The Tank, The Queen и The Verbatim.

Характеристики прокачитаются довольно быстро, так что и на монстров можно идти где-то уже через полчаса. На скриншоте я как раз победил самого сильного босса — The Verbatim (справа).

Обратите внимание, что ваш монстр, конечно, дерётся сам, но есть три кнопки, которые вы можете, по одному разу, нажать в любой момент боя — «кулак» (удар гигантской флешкой), «плюс с ключом» (добавить себе немного энергии) и «ракета» (выпустить в соперника флешку-ракету). Очевидно, что есть удачные моменты, когда кнопки можно нажать и неудачные. Например, если противник подпрыгнул и приземляется, лучше ударить его гигантской флешкой, а когда он пытается вас достать своей флешкой — выпустить ракету, ну и так далее.

P.S. Моего монстра зовут HIW.

 5 комментариев    10   2010   игра

The Sims2

The Sims 2 Mobile (38.97КиБ)

Sims2, похоже, уже всюду запускается. Для PSP тоже есть какая-то версия, я даже пытался в неё играть. Теперь вот есть «The Sims2 Mobile», написана в виде мидлета, т. е. будет запускаться на любом телефоне, где поддерживается Java. Мне кажется, что так играть — удовольствие сомнительное, для маньяков, впрочем, я на Siemens S55 книжки читал, а экранчик у него, по нынешним временам, смешной.

Управление простое: 4 и 6 — выбор объекта, 2 и 8 — перемещение по меню, правая функциональная клавиша — выбор или использование объекта, левая — открыть виртуальный мобильник. Так же работает джойстик (на тех моделях, где он есть).

 Нет комментариев    11   2007   mobile   sims2   игра

.kkrieger

Для тех, кто следит за игровой индустрией, это, понятно, анекдот с бородой, но многие все ещё не видели — бета версия игры .kkrieger. Эта трёхмерная бродилка с разнообразным оружием и монстрами, с относительно большой и сложной местностью занимает... 96 килобайт. Ещё раз — килобайт, т. е. где-то 98000 байт.

За столь скромный размер приходится платить — игра требует Pentium III (или Athlon) 1.5GHz или быстрее, 512 мегабайт памяти (которую занимает целиком), GeForce4Ti (или лучше) или Radeon8500 (или лучше).

Вся графика, использованная в игре генерируется в процессе загрузки, которая даже на Athlon 64 3GHz занимает весьма существенное время — несколько минут.

kkrieger (48.46КиБ)
 Нет комментариев    6   2005   игра