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

Презентация - редактор уровней для игры Черный Ворон: 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




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

Похожие статьи:
Инструментарий - редактор уровней к игре Last Battle.
Презентация - "Bard's Tale Merger Programm" - программа для работы с отгрузками из игры Bard's Tale.
Игрушки - описание редактора Адевентюр - PAW (часть 5).

В этот день...   23 сентября