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