Adventurer #09
30 апреля 1999
  Софт  

Презентация - редактор уровней для игры Черный Ворон: Black Raven Editor v1.0

<b>Презентация</b> - редактор уровней для игры Черный Ворон: Black Raven Editor v1.0
     BLACK RAVEN EDITOR v1. 01 demo
           (редактор миссий)
     ──────────────────────────────
         (C) 1999 Compu-Studio Ltd

             Хаккер не пират,
             а чистильщик, способствующий
             естественному отбору
             в эволюционном развитии
             общества и гонимый этим же
             обществом, как гоним любой
             хищник от стада блеющих
             баранов.
                         (из наболевшего)

                        Кто первый украл,
                             тот и автор.
                          (Русское Радио)

     Привет  всем, кто читает эти строки!
Меня зовут Max . Я и вся моя команда рады
новой  встрече  с  фанами  Спектрума ! На
этот  раз мы представляем вашему вниманию
демонстрационную  версию редактора миссий
к  игре  "Чёрный Ворон-1" . Но не спешите
жать  на reset - это не обычное дэмо, ка-
кое  все  привыкли  видеть!  Мы не делаем
глючный нерабочий soft, поэтому выпустили
почти законченную версию редактора. Оста-
лось нереализованным только создание пей-
зажа. Всё остальное, как мне кажется, уже
готово.  Данная версия выходит для тести-
рования  на  предмет  глюков, а также для
определения   спроса  на  подобного  рода
программные  продукты.  После  завершения
работы  над  полноценным  редактором наша
студия  намерена выпустить второй диск  с
новыми  миссиями  к игре "Чёрный Ворон" .
Так что следите за рекламой и спешите де-
лать  заказы! Адрес и контактные телефоны
студии в конце этого текста.

     По традиции, не нами установленой, я
в  двух словах опишу возможности редакто-
ра.  Итак,  ты можешь (даже сейчас!) счи-
тать с диска отгрузку игры или ту же отг-
рузку, но в виде стандартного TR-DOS 'ов-
ского файла, установить или удалить любых
воинов  за  любую  из  противоборствующих
сторон, расставить или удалить любые зда-
ния  или  шахты,  откорректировать запасы
денег  в шахтах и на своем счету (в Швей-
царии  :),  переустановить производитель-
ность  родильных  домов,  замаскированных
под  крепости и всякие там башни, а также
произвести запись полученных изменений на
диск  в  виде файла или отгрузки. По ходу
редакции  имеются различные мелочи, о ко-
торых, если не забуду, расскажу в процес-
се повествования. Да, ребята! DIV состря-
пал крутую возможность в редакторе: рота-
ция поля по вертикальной или горизонталь-
ной оси вращения. Даже не переделывая ни-
чего  в старой отгрузке, оставшейся после
прохождения первого диска, сделай ротацию
и всё - новый уровень готов! До боли зна-
комые   проблемы  (демоны  валят  толпами
сверху) сразу преобретут другой оттенок -
валят снизу, и идти уже надо в другую не-
ведомую,  с другой точки зрения, сторону.
Воистину  круто  получается! Учитывая то,
что такой переворот занимает мизерное ко-
личество  памяти,  я  удивляюсь  - почему
Медноногов не сделал в игре такой возмож-
ности? Или подсказать было некому?

     Valex  тоже в долгу перед DIV 'ом не
остался  и  сделал ещё один полезный при-
бамбас в редакторе - распечатка всего иг-
рового поля на принтер! Пока по стандарт-
ному для Спектрума порту Lprint 'а. В де-
монстрационной  версии  нет  настроек  на
другие  порты. Также пока нет инициализа-
ции  других принтеров, отличных от нашего
- СМ6337. Что дома стоит, под то и писали
драйвер.  В  полной  версии может сделаем
своеобразный Set up.

     Я  тоже  решил  блеснуть  классом  и
предложил   сделать   файлово-отгрузочную
систему,  с  чем  все с радостью согласи-
лись,  т.  к.  держать целую пачку дисков
под  8 файлов на диск уж больно не рацио-
нально. Оконная оболочка тоже моя.

     Что  за дэма, если в ней нет недоде-
лок?  Вот  именно!  А недоделаным остался
пейзаж.  Ну  дэмка всё же! Не реализована
также  ротация  поля  в подземной миссии,
хотя в полной версии редактора будет обя-
зательно!

     Аппаратные требования для компьютера
стандартные  -  128 Кб и ни байта меньше!
Всё   остальное  -  особого  значения  не
имеет:  до фени стабильность шины и нали-
чие/отсутствие кемпстон джойстика, аигри-
ка  и клавиатуры. А вот кемпстон мышку ты
обязан иметь!!! Но не обязательно. Просто
при её отсутствии прийдётся страдать  не-
меряно долго с перемещением курсора и ра-
ботой  в оконном интерфейсе. А именно та-
кой  дизайн  программ  мы  поддерживаем в
своих программах с самого первого запрог-
раммированного  нами байта. Закрывать те-
кущее  окно придётся нажатием fire за его
пределами. Такие вот дела.

     А  теперь, собственно, о самой прог-
рамме  поговорим.  Наконец-то сбылась моя
давняя и долговынашиваемая мечта написать
прог,  который  полностью  работал  бы на
мышке. И вот он перед вами. Управляете вы
стрелочным  курсором,  которым бегаете по
менюхам,  чтото выбираете, переустанавли-
ваете и в результате получаете новую мис-
сию  игры.  Хочу  сразу сказать, что этим
редактором можно делать только "отгрузоч-
ный"  вариант  миссии и не более. Ну не я
же,  в конце-то концов, написал саму игру
с  такими прибамбасами. Поэтому не оболь-
щайтесь - деньги заработать сможет только
тот,  кто в состоянии переделать отгрузку
в  первоначальный вид и кто разберётся со
структурой  второго диска игры. Для прод-
винутого  хаккера это не составит особого
труда ;)))

     Итак,  программа  расчитана на мышь.
На 3 кнопки. Центральная используется под
фиксацию скроллера экрана. Продублирована
на  клавиатуре  под  "М".  Огневая кнопка
мышки будет первая нажатая, отмена - про-
тивоположная.  После загрузки редактора и
вдоволь  наслушавшись музыки, нажмите лю-
бую клавишу на клавиатуре. Информационное
окно  можно  убрать  уже  только  огневой
кнопкой. После всего вышесделанного попа-
даете  непосредственно в редактор. Больше
вые?  онов  не  будет. Внешне редактор мы
постарались  сделать  максимально похожим
на игру. Но пара ньюансов всё же имеется.
Так, после долгих и бессмысленных споров,
мы  пришли к единому соглашению, что наи-
более приемлемым будет редактировать мис-
сию  не  в  стандартном виде 12х12 байт с
размером спрайтов 2х2, а 24х24 с размером
1х1.  Поэтому  не  удивляйтесь  "мелкоте"
графики,  поработав немного и побегав ту-
да-сюда  по полю, вы поймёте все прелести
этой "мелкоты".

     В  нижней части экрана находятся ос-
новные  пиктограммы  редактора. Через них
вызываются  все  окна  редакции  и  т. д.
Большие  на щите служат для информации об
объектах. Мы не делали с ними ничего, так
что  на щит ты пойдёшь только, если выбе-
решь  шахту и захочешь изменить её ресур-
сы.  В  правом верхнем углу находится ин-
формация  о твоих финансовых возможностях
и  количестве  дров.  Если нажать огонь в
этой  области, то выпадет окошко для кор-
рекции.  Самое  любимое,  если деньжат не
хватает.

     А  где же воины? Вот это вопрос! Я и
сам хотел бы это знать. Ну никак не полу-
чается   в  одном  знакоместе  изобразить
что-то  внятное,  поэтому  мы  приняли за
стандарт  одинаковые  спрайты  с тем лишь
различием,  что  у твоих воинов щит проз-
рачный,  а у неприятеля чёрный. Для пони-
мания "кто есть кто" придется ткнуть кур-
сором в интересующий объект и посмотреть,
что  выдала  программа на щит. По другому
никак.  Да,  в  режиме  "Нормальный"  нет
вообще изображений воинов и дыма пожарищ.
Связано  это  с тем, что на данный момент
у нас возникли ограничения памяти, поэто-
му  в окончательной версии при её наличии
мы  сделаем  такой вывод на экран. А если
нет,  то,  по  большому счёту, это не так
уж  и важно. Режим реальных спрайтов пей-
зажа  сделан  для контроля глюков при его
создании и не более. Так что как получит-
ся сделать, так и будет.

     Я надеюсь, что у вас проблем с общим
восприятием  не будет, поэтому перехожу к
описанию  возможностей  вызываемых  окон,
пока не забыл, для чего я вообще загрузил
текстовый  редактор и чего это я тут всем
загружаю;)  С  выбором  воинов  и  зданий
проблем  быть не должно. Сделано все мак-
симально  просто и доходчиво, поэтому для
танкистов  help  писать  не  буду - сними
шлем и всё сам поймёшь. Скажу только, что
ДЛЯ  КАЖДОГО  КЛАССА  ОБЪЕКТА  СУЩЕСТВУЕТ
СВОЯ  ЗАТИРАЧКА,  КОТОРАЯ НАХОДИТСЯ В ТОМ
ЖЕ САМОМ ОКНЕ, ГДЕ И УДАЛЯЕМЫЙ ЕЮ ОБЪЕКТ!
Просьба это помнить и не пытаться удалить
здание затирачкой из окна воинов и наобо-
рот.

     В нашем редакторе нельзя делать маз-
ню  на  поле,  поэтому здания и воинов не
поставишь друг на друга или в реке. Коро-
че, всё приближено к игре по-максимально-
му.  Приоритетом идёт пейзаж. Если хочешь
влепить  где-то  домик, а не получается -
тогда сначала расчисть местность, а затем
уже занимайся строительством. В демо-вер-
сии  пока  прийдётся ставить там, где это
возможно.

     Дисковые операции чтения/записи воз-
можны  двух  видов:  как  отгрузка игры и
стандартный файл TR-DOS . При записи отг-
рузкой  сделана проверка на чистоту диска
от  каких-либо  файлов по значению в сис-
темном секторе. В случае наличия на диске
файлов  будет предложено лишний раз подт-
вердить правильность выбора диска для за-
писи отгрузки во избежание случайной пор-
чи информации.

     При  чтении  миссии в виде файла де-
лается отбор по следующим параметрам: ад-
рес  загрузки должен быть #7700, а размер
#4900.  Тип файла "C". Имя может быть как
на  русском  языке,  так и на NATO'вском.
Для  ассемблерного задания требования та-
кие  же: адрес загрузки #7A6B, размер 256
байт.  При  наличии  таких  файлов  будет
представлен  весь  список. После загрузки
делается проверка файла, и если что-то не
то попало под установленные нами условия,
тогда  будет выдано соответствующее сооб-
щение.  В случае с чтением миссии при пе-
репутывании  файлов  убивается  системный
костяк  уровня,  поэтому будет предложено
его восстановить через очистку миссии.  В
случае  с ассемблерным заданием автомати-
чески подставится "убей всех".

     Для  тех,  кто хотя бы немного знает
ассемблер, расскажу о методе набора зада-
ния.  Это самое интересное занятие, скажу
я вам. В оригинале почти все задания сво-
дились  к тому, чтобы убить всех и выжечь
всё.  Мы изменили жизнь к лучшему! Но для
начала  я  расскажу о структуре отгрузки,
необходимых системных переменных, исполь-
зуемых   для  такого  рода  деятельности.
Итак, поехали:

     В   игре  доступно  по-максимуму:  8
шахт, по 32 здания за игрока и компьютер,
по  48  воинов  за тех и других и всего 6
твоих  пленников.  У  компьютера  пленных
быть  не может, а жаль. Информация о всех
объектах  размещена в специальных буферах
по следующим адресам:

     #7BC0 - ДАННЫЕ ШАХТ.
     #7C00 - ДОМА USER.
     #7D00 - ДОМА КОМПЬЮТЕРА.
     #B800 - ВОИНЫ USER.
     #BB00 - ВОИНЫ КОМПЬЮТЕРА.
     #BE00 - ПЛЕННИКИ.

     Описатели  для  "недвижимости" имеют
размер  8 байт, а для воинов и рабочих по
16 байт.

     Для зданий описатель выглядит так:

     +0 +1 +2 +3 +4 +5 +6 +7
     XX YY NN ЗД FF 00 TT TT

     Значения для вас имеют только XX, YY
и  NN.  Все остальные не важны. По XX, YY
лежит информация о местонахождении здания
в  игровом  поле, выраженная в "строка" и
"колонка".  Если там нули - здание разру-
шено!  Если  по  +3 (здоровье) тоже ноль,
объект мёртв. По NN - номер здания, т. е.
его имя:

     ВАРИАНТ ИМЁН ПРИ ИГРЕ ЗА ЛЮДЕЙ
     #7C00                    #7D00

     0 - ГОРОДИЩЕ     ФОЛЬВАРК - 0A
     1 - КРЕПОСТЬ              - 0B
     2 - ЛЕСОПИЛКА             - 0C
     3 - ЦЕРЬКОВЬ    СВЯТИЛИЩЕ - 0D
     4 - КУЗНИЦА               - 0E
     5 - КОНЮШНЯ        СТОЙЛО - 0F
     6 - БАШНЯ      БАШНЯ ТЬМЫ - 10
     7 - ХРАМ            ВОРОН - 11
     8 - ИЗБА           ХИБАРА - 12

     Значения  не  меняются от принадлеж-
ности  миссии, т. е. до фени, за кого иг-
раешь.  Самое  главное - код имени. А там
игра  сама разберётся, что надо писать на
щите.  При игре за кунгов номера левого и
правого столбика размениваются.

     Теперь  имена воинов при игре за лю-
дей.  Играя за кунгов имей ввиду, что со-
держания столбиков размениваются, но коды
имён остаются прежними!

#B800               #BB00

0-КРЕСТЬЯНИН        9-ПЕОН
1-КРЕСТ. С ЛЕСОМ    10-ПЕОН С ЛЕСОМ
2-КРЕСТ. С ЗОЛОТОМ  11-ПЕОН С ЗОЛОТОМ
3-ЛУЧНИК            12-ЛАНГОЛЬЕР
4-ПЕХОТИНЕЦ         13-КУНГ
5-СВЯЩЕННИК         14-НЕКРОМАНТ
6-ВОЛШЕБНИК         15-ВАРЛОК/ТАЛАБРУК
7-КАТАПУЛЬТА        16-КАТАПУЛЬТА
8-ВСАДНИК           17-ГРЮНВЕР

─────
20-СКОРПИОН         18-ПАУК
21-ПОЛОЗ            19-СКЕЛЕТОН
22-КНЯЗЬ            23-ГРИЗОЛЬДА
26-СТЕНОГРЫЗ        25-ДЕМОН
24-КОСТОЛОМ


Последние  воины  могут быть как на одной
стороне,  так  и на другой. Эти персонажи
не  имеют  стратегической ценности, т. к.
или  не  могут  сражаться,  или  плодятся
кем-либо на определённое время. Ну да что
я тут распинаюсь - поиграй и вспомни.

     Описатель для воинов и рабочих:

     +0 +1 +2 +3 +4 +5 +6 +7
     X1 Y1 00 00 NN ЗД МГ 00

     +8 +9 +10 +11 +12 +13 +14 +15
     00 00 X2 Y2 00 00 X3 Y3

     Значения для вас интересны только +0
и  +1,  а также +4. Первые два обозначают
позицию  персонажа на поле, а по +4 лежит
его имя.

     А  теперь  приведу примеры заданий и
особенности  их набора. Для этого загрузи
самый  любимый  свой  теневой ассемблер и
понабирай следующие алгоритмики:

;пример задания "развали Ворона"

        ORG     #7A6B   ;стандарт!!!
        JR      MM      ;всегда делай
        RET             ;начало таким!
MM      PUSH    IX      ;на всякий случай
        LD      IX,#7D00;дома компа
        LD      DE,8    ;шаг по данным
        LD      B,32    ;кол-во домов max
MM1     LD      A,(IX+2);имя здания
        CP      #11     ;код Ворона
        JR      NZ,MM2  ;не тот
        LD      A,(IX+0);позиция здания
        OR      A       ;разгромил?
        LD      A,#01   ;маркёр победы
        JR      Z,MM3   ;победа!!!
MM2     ADD     IX,DE   ;следующий
        DJNZ    MM1
        LD      A,(#7A62)
MM3     LD      (#7A64),A
        POP     IX
        RET

;пример универсального задания по уничто-
;жению церкви или святилища противника.

        ORG     #7A6B
        JR      KK
        RET
KK      PUSH    IX
        LD      IX,#7D00
        LD      DE,8
        LD      B,32
KK1     LD      A,(IX+2)
        CP      #03     ;церковь
        JR      Z,KK4
        CP      #0D     ;святилище
        JR      Z,KK4
KK2     ADD     IX,DE
        DJNZ    KK1
        LD      A,(#7A62)
KK3     LD      (#7A64),A
        POP     IX
        RET
KK3     LD      A,(IX+3);здоровье здания
        OR      A
        JR      NZ,KK2  ;ещё живое
        INC     A       ;победа!
        JR      KK3

;пример вывода воина к выходу

        ORG     #7A6B
        JR      LL
        RET
LL      PUSH    IX
        LD      IX,#B800;твои воины
        LD      B,48    ;кол-во воинов max
LL1     LD      A,(IX+4);имя воина
        CP      22      ;код князя
        JR      Z,LL4
        CP      23      ;код Гризольды
        JR      Z,LL4
LL2     LD      DE,16   ;шаг по данным
        ADD     IX,DE
        DJNZ    LL1
        LD      A,(#7A62)
LL3     LD      (#7A64),A
        POP     IX
        RET
LL4     LD      L,(IX+0);позиция воина
        LD      H,(IX+1)
        LD      DE,#0703;позиция перед
        SBC     HL,DE   ;выходом (ПРИМЕР)
        JR      NZ,LL2  ;не стоит на нуж-
        LD      A,#01   ;ной позиции.
        JR      LL3     ;уже стоит

;пример задания "убей Талабрука" или Князя

        ORG     #7A6B
        JR      ZZ
        RET
ZZ      PUSH    IX
        LD      IX,#BB00;воины компа
        LD      DE,16   ;step
        LD      B,48
ZZ1     LD      A,(IX+4);имя воина
        CP      22      ;код князя
        JR      Z,ZZ4
        CP      #0F     ;код Талабрука или
        JR      Z,ZZ4   ;варлока!
ZZ2     ADD     IX,DE        DJNZ    ZZ1
        LD      A,(#7A62)
ZZ3     LD      (#7A64),A
        POP     IX
        RET
ZZ4     LD      A,(IX+0)
        OR      (IX+1)
        JR      NZ,ZZ2  ;ещё жив
        INC     A       ;труп
        JR      ZZ3

;пример задания "убей всех".

        ORG     #7A6B
        JR      WW
        RET
WW      LD      A,(#7A62)
        LD      (#7A64),A
        RET


     Полученый  кодовый блок надо при по-
мощи  STS 'а  записать  на  диск  с адрес
#7A6B,  размер  #0100.  Имейте ввиду, что
редактор  делает отсеивание файлов по ад-
ресу загрузки и его длине! Так что если я
сказал  #0100,  то так и делай и не зани-
майся самодеятельностью.

     Теперь  следует  особо  отметить тот
факт, что адреса переменных и таблиц опи-
сателей  приведены  для  той версии игры,
которая мне досталась и которую я взломал
и  адаптировал под 512 Кб. А именно Black
Raven  1. 01 .  В  ZX-Format#8 Медноногов
упоминал о модификациях игры, а это может
привести  к  несовпадению адресов, хотя и
маловероятно. Но тем не менее следует об-
ратить  внимание, если вдруг что-то у вас
не  пойдёт так, как надо. Я желаю знать о
всех проблемах, с которыми вы столкнётесь
по ходу работы в редакторе или с получен-
ной в нём отгрузкой. Полную версию редак-
тора, а также диск с новыми миссиями мож-
но  заказать  непосредственно  у авторов.
Диск  с  миссиями будет иметь полноценный
вид  игры,  т. е. продолжение "Чёрный Во-
рон-1" .

     АДРЕС СТУДИИ И КОНТАКТНЫЙ ТЕЛЕФОН:
                  343116
            Михаил Максименко
            дом 79 квартира 12
              м-н "Западный"
               г. Димитров
             Донецкая область
                 Украина

     (06239) 6-21-26 после 18.00 msk



Другие статьи номера:

От авторов - авторы журнала.

От авторов - Adventurer - в разделе журналов всенародного достояния.

Презентация - новая программа для коллекционирования мелодий: UniPlayer v1.0

Презентация - новый графический редактор 3Color Studio.

Презентация - необычный boot: Program Box version 2.0

Презентация - новый квест: Full Shit.

Презентация - редактор уровней для игры Черный Ворон: Black Raven Editor v1.0

Презентация - новый редактор для цифровой музыки: EARACHE v1.0

Интерфейс - Письма читателей: Dawid Willis, Иван Рощин, Cav Inc. (конкурс на лучшее название для звуковой карточки, глюки в HRUST v1.0 и XAS v9.06+)

Интерфейс - Как мы (CPU) были на FunTop'е.

Интерфейс - Мнение: о знакомстве с PC.

Интерфейс - фирменные читы к играм: Midnight Resistance, Chase H.Q.2, Havoc, Turbo Girl, Fast Bredd, Turbo Boat.

Система - Обзор новых системок: Sprite Maker v4.0, Turbo Copier v2.0, Sample Studio, Art Works 1, Burst Eyes v1.2, Excess Sample Editor v1.4.25, Excess Deluxe Paint v1.1, Graphic Station, BA v1.0, Global Commander v1.31, Quick Commander v2.3, Stall Spriter v0.1, AGA v1.0, Ultra Sonic v0.1, Universal Sprite Studio v1.0, HRUST v1.1, STORM v1.3.

Обзор - Обзор игровых новинок: Leprekon, Fuck Communistov, Sherwood, КОЗЕЛ, Kill PC 2, Chainick: Horror in the flat.

Обзор - Обзор демо-версий: Черный Ворон 2 v0.000, Crime Santa Clause Deja VU, Awaken, Japan Crossword, Pussy: Love story from Titanic.

Гости - Интервью с Nicodim'ом из Ярославля (автор Prince of Persia и Пиратов).

Гости - Интервью с Рыбинской группой Expirience (авторы квеcта Full Shit).

Гости - CPU о жизни и творческих планах.

Раскрутка - Стратегическа игра: Sword OF Bane.

Раскрутка - разбор игры о Рок звездах: Rock Star ate my Hamster.

Обмен опытом - Быстрая процедура нахождения корня числа и Тестирование Kempston-порта от SerzhSoft'a.

Обмен опытом - Процедура генерации синуса.

Обмен опытом - Вращалка - извращалка (Zoom Rotator).

Обмен опытом - отчет SerzhSoft'a о региональной олимпиаде 98 года по информатике.

Обмен опытом - TR-DOS: Работа с диском при включенных прерываниях.

Оттяг - 23 вещи, которые можно делать при зависании программ. Символы - гримассы в программных комментариях. 20 вещей, которые можно сделать,если очеьнь хочется выпить, но у вас нет денег. Стих про монаха.

Оттяг - конкурс тестов: Тест: Какой вам нужен компьютер? Тест для коммунистов. Тест: Можно ли на вас положиться? Тест: Кто ты Спектрумист? (user или ламер).

Оттяг - Терминатор-3 санный день (или истина опять где-то там).

Железо - Звуковая карта с прямым доступом: DMA Sound Card (описание схемы и программирования).

Новости - новости от местных групп: Volume 4, Groboclone, Surdakar, Di-Tech Labs, Auryn, Rainbow Dreams, Experience.

Реклама - реклама и обьявления от спектрумистов.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Энциклопедия - архитектура ZX Spectrum, языки программирования.
BBS NEWS - Графика работы станций.
Книга - Тайники ZX-Spectrum: Редактор.
Credits - авторы газеты.
События - Кубок Марьяжа - 97.

В этот день...   20 апреля