| Разработка и ромхакинг > Ромхакинг и программирование |
| [SMD] хакинг Dune: The Battle for Arrakis |
| << < (58/447) > >> |
| Segaman:
Хорошо, когда есть поддержка из хакинга пк-шной дюны. Да и не много пошаманил с вап-сайтом, так что теперь по нему можно ходить. |
| Petrosyan:
Сорри за баг, это я немного с цветами перепутал.(цвет от темы там зависит) |
| BArt___1995:
Парни, извините, я в ромхакинге не крут, в общем мне нужны спрайты(желательно все) с сеговской дюны... нашёл только с какой-то dune 2 (маленькие) если есть уже дайте ссыль) |
| Titanishu:
А что нибудь есть по поводу игры вдвоем? :) |
| lupus:
нет |
| Petrosyan:
Небольшой гайд по созданию новых юнитов(все изменения производятся на оригинальной роме U-версии,выложил патч) 1.Ищем список адресов на юниты( в роме $6C5BC-$6C624). 2.Переносим этот список в конец рома(в роме $FF0A0) 3.Меняем все значения в роме с $6C5BC на $FF0A0. 4.Берем данные любого юнита и копируем(!) в конец рома(в роме $FF2A4) 5.Добавляем адрес этого юнита в конец списка. 6.Всего у нас 26 юнитов,а этот 27-ой.Поэтому в объект-файле можем писать тип юнита $1B(на земле или десант).(в роме в 1ой миссии за Ордосов вместо райдер трайков) Все! НО! юниты не понимают ни одного приказа >:( (в роме я походил поганкой, теперь почему-то вражеская пехота не атакует,а захватывает здания) |
| -DeN-:
такой вопрос, возможно ли в этой дюне сделать выделение армии так же как это к примеру сделанно в Dune 2000 Long Live the Fighters ??? |
| Roket:
-DeN-, для сеги это уж слишком круто и как следствие практически невыполнимо, очень много кода нужно переписать тогда. Если хочешь толпой воевать, просто прикажи юниту следовать за другим, то есть "паровозик" создать ;). |
| Petrosyan:
вне конфига ёще задается подрыв девастатора.А если поменять карриол на пехотинца(я так пробовал),то на карриол начнут нападать враги.также вне конфига задаются аватары юнитов на заводе(те якобы WSA-файлы) я посмотрел юнит редактор для комповской дюны ,и был удивлен,все данные практически одинаковы.правда кроме приказов,и того,что указал Ti_ |
| -DeN-:
--- Цитата: Roket от 07 Август 2010, 11:30:24 ---"паровозик" создать ;). --- Конец цитаты --- Понятно, значит неосуществимо. Да я так раньше и делал, эту игру знаю вдоль и поперёк, но играть паравозиком не очень удобно, один тогда реагирует, а другие нет, да и толку щас нет уже не интересно всё проходить заново (легко). Ti_, Всё таки "мясо" облегчает процесс. А играть можно и одним юнитом и при этом даже разнести базу, там в этой дюне непродуманностей много. |
| Segaman:
Я так думаю, что в коде емк можно приписать отряды для юнитов. Чтоб во время приказа при отношении юнита к отряду, юнит направлялся к указанной цели. И все юниты отряда шли бы туда. Был я на гражданке, попробовал бы провернуть |
| MrFlibble:
Всем дружеский привет (еще раз) от моддеров PC-версии "Дюны 2"! :) Очень рад был увидеть, что исследование и моддинг сеговской версии идет полным ходом :thumbup: WSA-файлы в PC-версии - это большие анимированные картинки юнитов и зданий, которые показываются на экране справки Ментата, а также в полноэкранном меню производства зданий. Кстати, я и не думал, что EMC-файлы используются и в сеговской версии. Видимо, исходный код, действительно, не был сильно модифицирован при портировании. --- Цитата: Ti_ от 31 Июль 2010, 01:08:13 ---dune2 unit editor от ПК-версии, тут побитово разобраны некоторые флаги + те, что я не определил. только надо сверять с моим списком, т.к. в нём параметры не указывают тип , а нет , всё же есть - просо надо нажать F11. , требует dune2.exe от пк-версии. (т.к. конфиги находятся внутри экзе) --- Конец цитаты --- Я сказал автору редактора, Nyerguds'у, что его творение используется для благого дела, он очень рад и тоже шлет вам привет :) Правда, его немного огорчило, что редактор был назван всего лишь "dune 2 unit editor" (вместо "Dune 2 Editor"), ведь потенциально это универсальный редактор, который уже сейчас позволяет изменять параметры не только юнитов и зданий, но и Домов, а также файлов, используемых игрой (хотя для целей изучения сеговской версии последнее может и не пригодиться). |
| Segaman:
Сможешь выдать как можно больше инфы о работе писишной дюны? Про юниты, строения, дома, команды(team). Ещё хотелось бы про карту на экране брифинга узнать, как она построена, чтоб цвета участков земли можно было менять. И хотелось бы узнать про состав WSA анимаций. И если есть там сжатие данных, то и про них тоже хочется знать. Надеюсь тебе не составит труда? |
| Titanishu:
Мучался мучался с редактором сегамэновским, так и не доперло. Создаю миссию, ландшафт, ставлю чтобы она была вместо 9ой... А вот куда и под каким именем что сохранять чтобы в это поиграть можно было? Сохранить миссию, выбираю ром дюны(u), сохранить... при запуске только черный экран. Объясните что и как тут надо сделать,а? ::) |
| MrFlibble:
--- Цитата: Segaman от 08 Август 2010, 11:00:11 ---Сможешь выдать как можно больше инфы о работе писишной дюны? Про юниты, строения, дома, команды(team). --- Конец цитаты --- Постараюсь :) Что конкретно интересует? Команды - это, по сути, очень простые скрипты, прписанные для каждой миссии, которые определяют, какие группы юнитов компьютер должен слать на врага. Например: --- Код: ---1=Harkonnen,Normal,Wheeled,2,3 --- Конец кода --- Это означает, что ИИ-Харконнены должны строить группы их двух-трех колесных юнитов (квадов) и слать их на базу игрока. Использовалось два типа групп - Normal и Kamikaze, первые будут по пути отстреливаться, если их атакуют, вторые - игнорировать вражеский огонь и переть прямо к выбранной цели (наиболее приоритетному зданию игрока). К сожалению, большинство этих скриптов в PC-версии все равно не работали, т.к. по ошибке везде вместо Wheeled и Tracked (т.е. колесной и гученично техники соответственно) было прописано неправильное Wheel и Track, так что ИИ использовал только атакующие группы пехоты, а технику строил по одному юниту и сразу бросал их на базу игрока (группы, в общем, действуют более организованно. чем индивидуальные юниты, например, моугт отступать и т.п.). Я сделал небольшой патч, исправляющий, среди прочих, эту ошибку (сорри за саморекламу :)). --- Цитата: Segaman от 08 Август 2010, 11:00:11 ---Ещё хотелось бы про карту на экране брифинга узнать, как она построена, чтоб цвета участков земли можно было менять. --- Конец цитаты --- В PC-версии карта показывается не во время брифинга, а до него, т.к. там еще можно выбирать из нескольких вариантов каждой миссии (как в играх серии Command & Conquer). "Раскраска" карты прописана в файлах REGION#.INI (где # - первая буква названия Дома, т.е. A, H или O), они, по-моему, валяются и в РОМе. Там же есть и текст, сопровождающий изменения на карте (после каждой миссии завоеванные регионы закрашиваются цветом Дома игрока, другие Дома тоже что-то отвоевывают друг у друга и т.п.) Пример: --- Код: ---[GROUP1] HAR = 6, 5, 4, 10, 3, 9 ATR = 13, 7, 20, 14, 21, 22 ORD = 19, 27, 26, 25, 24, 23 REG1 = 1, 7, 40, 16 REG2 = 2, 8, 106, 34 REG3 = 8, 7, 136, 72 ENGTXT6 = Harkonnen arrived first. ENGTXT13 = The weak Atreides will be easy. ENGTXT19 = The Ordos are getting closer. --- Конец кода --- Цифры напротив названий Домов обозначают, какие регионы (их всего 27) надо закрасить цветом данного Дома, строки "REG# =" - это те регионы, которые игрок может выбрать для следующего завоевания (по порядку идут: номер региона, номер спрайта стрелки, которая будет указывать направление захвата, x-координата левого верхнего угла спрайта стрелки на экране, y-координата левого верхнего угла спрайта стрелки на экране) --- Цитата: Segaman от 08 Август 2010, 11:00:11 ---И хотелось бы узнать про состав WSA анимаций. И если есть там сжатие данных, то и про них тоже хочется знать. Надеюсь тебе не составит труда? --- Конец цитаты --- Существует набор утилит, поддерживающий конверсию WSA->PNG и обратно под названием Red Horizon Utilities (изначально предназначенный для игры Red Alert, там тоже используется формат WSA, правда, немного другой. В пакете с утилитами есть и исходники, по которым, я так думаю, можно узнать о самом формате больше. К сожалению, сам я не очень компетентен в программировании, так что описать формат не смогу. Точно знаю, что алгоритм компрессии там присутствует, и, наверное, он там такой же или похожий на то, что используется другими графическими форматами, например, SHP (Red Horizon Utilities формат SHP также поддерживают). --- Цитата: Ti_ от 08 Август 2010, 12:38:44 ---Привет. :) В редакторе есть такой параметр: 'Threat levev for AI' , также перед ним идет unknown23, по сути они являются часть одного целого, это видно по коду сеги. Правда я еще не понял как это влияет на ИИ. --- Код: ---ROM:0006BFCE dc.w $82 ; ?? $235C4 $235C8 $472E8 ROM:0006BFD0 dc.w $96 ; ?? $472E4 --- Конец кода --- Участок $472E4 --- Код: ---ROM:000472DE bne.s threat ROM:000472E0 moveq #0,d0 ROM:000472E2 bra.s loc_4730E ROM:000472E4 ; --------------------------------------------------------------------------- ROM:000472E4 ROM:000472E4 threat: ; CODE XREF: sub_4716E+170j ROM:000472E4 move.w $30(a4),d3 ROM:000472E8 add.w $2E(a4),d3 ROM:000472EC tst.w d4 ROM:000472EE beq.s loc_472FE ROM:000472F0 move.w d3,d1 ROM:000472F2 move.w d4,d0 ROM:000472F4 jsr sub_49BE0 ROM:000472FA move.w d1,d3 ROM:000472FC addq.w #1,d3 ROM:000472FE ROM:000472FE loc_472FE: ; CODE XREF: sub_4716E+180j ROM:000472FE cmpi.w #32000,d3 ROM:00047302 bls.s loc_4730A ROM:00047304 move.w #32000,d0 ROM:00047308 bra.s loc_4730E OM:0004730A ; --------------------------------------------------------------------------- ROM:0004730A ROM:0004730A loc_4730A: ; CODE XREF: sub_4716E+194j ROM:0004730A moveq #0,d0 ROM:0004730C move.w d3,d0 ROM:0004730E ROM:0004730E loc_4730E: ; CODE XREF: sub_4716E+16j ROM:0004730E ; sub_4716E+28j ... ROM:0004730E movem.l (sp)+,d3-d4/a2-a5 ROM:00047312 rts --- Конец кода --- --- Код: ---ROM:00049BE0 sub_49BE0: ; CODE XREF: sub_1068C+86p ROM:00049BE0 ; sub_2E684+72p ... ROM:00049BE0 swap d1 ROM:00049BE2 clr.w d1 ROM:00049BE4 swap d1 ROM:00049BE6 divu.w d0,d1 ROM:00049BE8 swap d1 ROM:00049BEA clr.w d1 ROM:00049BEC swap d1 ROM:00049BEE rts --- Конец кода --- $30(a4)=threat , $2E(a4)=unknown23. что они там курили? и так складываем оба значения, далее если d4 не 0 , то делим сумму на d4, добавляем 1, сравниваем с 32000, и пишем в d0, если больше получилось пишем 32000. Но как видно unknown23, еще используется и в другом месте: --- Код: --- OM:000235A4 jsr (randomisation).l ROM:000235AA andi.b #3,d0 ROM:000235AE bne.s loc_235B4 ROM:000235B0 move.w d5,d3 ROM:000235B2 bra.s loc_235DA ROM:000235B4 ; --------------------------------------------------------------------------- ROM:000235B4 ROM:000235B4 loc_235B4: ; CODE XREF: sub_23500+AEj ROM:000235B4 cmpi.w #$FFFF,d3 ROM:000235B8 beq.s loc_235CE ROM:000235BA movea.l (a2),a1 ROM:000235BC move.w d3,d0 ROM:000235BE lsl.w #2,d0 ROM:000235C0 movea.l (a3,d0.w),a0 ROM:000235C4 move.w $2E(a1),d0 ROM:000235C8 cmp.w $2E(a0),d0 ROM:000235CC ble.s loc_235D0 ROM:000235CE ROM:000235CE loc_235CE: ; CODE XREF: sub_23500+B8j ROM:000235CE move.w d5,d3 ROM:000235D0 ROM:000235D0 loc_235D0: ; CODE XREF: sub_23500+A2j ROM:000235D0 ; sub_23500+CCj ROM:000235D0 addq.l #4,a2 ROM:000235D2 addq.w #1,d5 ROM:000235D4 cmpi.w #$20,d5 ROM:000235D8 blt.s loc_2359C ROM:000235DA ROM:000235DA loc_235DA: ; CODE XREF: sub_23500+Cj ROM:000235DA ; sub_23500+B2j ROM:000235DA move.w d3,d0 ROM:000235DC ROM:000235DC loc_235DC: ; CODE XREF: sub_23500+84j ROM:000235DC ; sub_23500+90j ROM:000235DC movem.l (sp)+,d3-d5/a2-a3 ROM:000235E0 rts --- Конец кода --- а тут идет сравнение 'unknown23' от двух разных юнитов, и если меньше или равно, то что-то там происходит, а если больше то что-то другое. --- Конец цитаты --- Да, я помню, параметр Unknown 023 у нас обсуждался. Вот что пишет тов. TrueBrain (из проекта OpenDUNE, это воссоздание движка PC-версии Dune II на основе инженерного анализа программы, рекомендую ознакомиться, там тоже много полезной инфы - и на сайте, и на форуме): этот параметр используется при выборе наиболее приоритетной цели, а также при выборе того, какие юниты ИИ собирается строить. При этом происходит проверка, есть ли у ИИ грузолет и харвестер (если есть, больше строить не надо), а среди прочих юнитов для строительства обычно отбираются те, у кого этот параметр выше. --- Цитата: Ti_ от 08 Август 2010, 17:25:19 ---А вот немного инфы о Lemonfactor'e домов: --- Код: ---ROM:000469C6 jsr (randomisation).l ROM:000469CC move.w d0,d2 ROM:000469CE move.w d3,d0 ROM:000469D0 lea (Houses).l,a1 ROM:000469D6 add.w d0,d0 ROM:000469D8 move.w d0,d1 ROM:000469DA lsl.w #4,d0 ROM:000469DC sub.w d1,d0 ROM:000469DE adda.w d0,a1 ROM:000469E0 ext.l d2 ROM:000469E2 moveq #0,d0 ROM:000469E4 move.w 6(a1),d0 ; lemonfactor ROM:000469E8 cmp.l d0,d2 ROM:000469EA bge.s loc_469F2 ROM:000469EC bset #2,4(a2) ROM:000469F2 ROM:000469F2 loc_469F2: ; CODE XREF: UNIT_CREATING+10Aj ROM:000469F2 ; UNIT_CREATING+130j ROM:000469F2 moveq #1,d5 --- Конец кода --- берется рандом число кидается в d2 (jsr (randomisation).l ROM:000469CC move.w d0,d2), грузится lemon по id дома (move.w 6(a1),d0), сравнивается его 'лимонфактор' с этим числом. (cmp.l d0,d2) если что-то там больше получилось то переход дальше, а если меньше , то записывается '1'-ка в третий бит строки юнита+4 , (set #2,4(a2) ) , [в a2 лежит адрес строки текущего юнита]. Ну и как видно это всё происходит при создании юнита. (unit creating я назвал ROM:000468BA UNIT_CREATING: ) А вот за что этот бит отвечает, да фиг его знает, я не смотрел. ^_^ Т.е. надо проверить чтение скажем с адреса $FFE138+4, где $FFE138 - адрес строки 2-ого наземного юнита. --- Конец цитаты --- Да, TrueBrain об этом тоже говорил, но мы так и не догадались, зачем это нужно. Кто-то предположил, что это влияет на агрессивность юнитов, но неизвестно, верно это или нет. |
| Segaman:
--- Цитата: Titanishu от 08 Август 2010, 15:00:57 ---Мучался мучался с редактором сегамэновским, так и не доперло. Создаю миссию, ландшафт, ставлю чтобы она была вместо 9ой... А вот куда и под каким именем что сохранять чтобы в это поиграть можно было? Сохранить миссию, выбираю ром дюны(u), сохранить... при запуске только черный экран. Объясните что и как тут надо сделать,а? ::) --- Конец цитаты --- Дядь, сохраняя карту в дюну, ты тупо замещаеш игру миссией, а миссия - это не игра, это миссия. Сохраняй миссию в файл миссии, затем сохраняй ландшафт, собирай ром и тесть наздоровье. Мануал гляди на сайте моём. dune-hacking.wen.ru в разделе редактора Добавлено позже: Скачай Dune2Builder, извлекай, в корневую кидай dune2.bin версии u, запускай split.bat, в разделе src/obj сохраняй миссию(палата обозначается буквой после scen, напр.: scena008.ini), в src/map карту под номером указанной в миссии(смотри на экране палат слева под брифингом в редакторе). Т.Е. map_025.bin если в миссии 25, теперь в корневой запускай build.bat и довольствуйся dune2build.bin Добавлено позже: вот прямая ссылка на мануал. |
| MrFlibble:
--- Цитата: Ti_ от 08 Август 2010, 21:42:15 ---У меня как раз была идея чтобы убить приоритеты эти, и рассчитывать по тупой формуле - атакуй того, кто ближе!. Вот тогда и посыпется атака и оборона игроков, когда AI на юнитов попрет и на пушки. Ну и с харвестером лажа - бот их не строит , на последнем левеле ему 3дается - 2прибить, и он до конца игры и останется с одним. --- Конец цитаты --- В принципе, юниты в группах типа Normal и так отвечают на огонь юнитов игрока. А вот на огонь оборонительных сооружений не отвечают, по-моему, никогда. Мне удалось заставить ИИ атаковать пушки только тогда, когда я через редактор установил им максимальный приоритет. --- Цитата: Ti_ от 08 Август 2010, 21:42:15 ---ДА ещё бота мочить сониками просто ,он на них не реагирует...баг,фича?? --- Конец цитаты --- Вот насчет этого, увы, сейчас не помню, есть такое в PC-версии или нет. --- Цитата: Ti_ от 08 Август 2010, 21:42:15 ---Ещё вспомнил самый злостный баг- бот не умеет отстраивать тяжелый машинный завод (один раз снёс и всё!) - только не понмю на ПК также или там нормально? --- Конец цитаты --- В PC-версии у ИИ с этим проблем нет. (Правда, в непропатченной версии 1.0 он вообще редко отстраивает разрушенные здания.) Возможно, все дело в том, что в сеговской версии легкий и тяжелый заводы объединили в один. Еще стоит отметить, что ИИ "помнит" только пять последних разрушенных зданий, которые надо отстроить. Поэтому если быстро разрушить много строений, часть из них ИИ больше никогда уже не отстроит заново. Еще ИИ никогда не отстраивает здания, которые были захвачены игроком. --- Цитата: Ti_ от 09 Август 2010, 01:13:44 ---Вот кажется нашел проверки этого бита (лимонфактора) в коде, в 2местах: --- Код: ---ROM:00046712 watch4: ; lemonfactor2 ? ROM:00046712 move.w 4(a2),d0 ROM:00046716 btst #$A,d0 ROM:0004671A beq.s loc_4673A ROM:0004671C jsr (randomisation).l ROM:00046722 andi.b #3,d0 ROM:00046726 bne.s loc_4673A ROM:00046728 move.w #0,(sp) ROM:0004672C move.w #1,-(sp) ROM:00046730 move.l a2,-(sp) ROM:00046732 jsr sub_46BAE ROM:00046738 addq.l #6,sp ROM:0004673A ROM:0004673A loc_4673A: ; CODE XREF: sub_46084+696j ROM:0004673A ; sub_46084+6A2j ROM:0004673A cmpi.b #6,2(a2) ROM:00046740 bne.w loc_467CA --- Конец кода --- --- Код: ---ROM:0000BE76 moveq #0,d0 ROM:0000BE78 move.w 4(a2),d0 ; lemonfactor ? ROM:0000BE7C btst #$A,d0 ROM:0000BE80 beq.s loc_BEC4 ROM:0000BE82 move.w $10(a4),d0 ROM:0000BE86 asr.w #1,d0 ROM:0000BE88 cmp.w $12(a2),d0 ROM:0000BE8C bge.s loc_BEC4 ROM:0000BE8E move.b 8(a2),d0 ROM:0000BE92 ext.w d0 ROM:0000BE94 lea (decay).l,a1 ROM:0000BE9A add.w d0,d0 ROM:0000BE9C move.w d0,d2 ROM:0000BE9E lsl.w #4,d0 ROM:0000BEA0 sub.w d2,d0 ROM:0000BEA2 move.w (a1,d0.w),d3 ROM:0000BEA6 moveq #0,d0 ROM:0000BEA8 move.w 4(a2),d0 ; lemon ROM:0000BEAC btst #$A,d0 ROM:0000BEB0 beq.s loc_BEB4 ROM:0000BEB2 addq.w #1,d3 ROM:0000BEB4 ROM:0000BEB4 loc_BEB4: ; CODE XREF: Buildings_work+1D4j ROM:0000BEB4 move.w #0,(sp) ROM:0000BEB8 move.w d3,-(sp) ROM:0000BEBA move.l a2,-(sp) ROM:0000BEBC jsr sub_F8DA ROM:0000BEC2 addq.l #6,sp ROM:0000BEC4 ROM:0000BEC4 loc_BEC4: ; CODE XREF: Buildings_work+198j ROM:0000BEC4 ; Buildings_work+1A4j ... ROM:0000BEC4 tst.w d6 ROM:0000BEC6 beq.w loc_C55A --- Конец кода --- Добавлено позже: вообщем я прописал NOP'ы по beq.s loc_4673A и ROM:00046726 bne.s loc_4673A, чтобы всегда выполнялся код по джампу jsr sub_46BAE, независимо от бита A. в итоге при тесте заметил самоповреждения юнитов при езде (вприцнипе уже догадывался.. так, как во втором участке присутстовал decay), да и такие штуки я еще на сеге помню. далее убрал нопы - и перезапустил миссию - повреждений нет. вот скриншоты: поврежденный и не поврежденный джип и танк: Так что думаю лимонфактор есть вероятность саморазрушений юнита(выпуск бракованных юнитов - ведь бит ставится только при создании :lol: ) , ну а рандом там еще добавлен видимо, чтобы такие юниты не cлишком быстро и не плавно ломались ( andi.b #3,d0 ). Попробуйте поставить lemonfactor = FFFF. p.s. у меня не повлияло, ну не бред? неясно.. бит то вроде тот. --- Конец цитаты --- Ого, как интересно! Никогда бы не подумал! 0_0 Я еще вот что хотел спросить. В сеговской версии фримены представляют собой отдельный тип юнитов со своими иконками и характеристиками (насколько мне известно, у них ровно в два раза больше хитпойнтов, чем у обычной тяжелой пехоты). В PC-версии, однако, дворец Атрейдесов вызывает группу обычной тяжелой пехоты, только принадлежащей фрименам. При этом в файлах игры есть иконки для одиночного фримена и группы фрименов, но используется только "групповая" иконка, да и то не у вызванных юнитов (у них обычные иконки тяжелых пехотинцев), а на кнопке вызова во дворце. Хотел спросить, а в сеговской версии фрименская пехота - это отдельные юниты (в коде), или же есть какой-то дополнительный модификатор, который делает тяжелым пехотинцам фрименов другие иконки и больше здоровья? |
| Segaman:
Адредисовские фремены - обычные юниты с тупо заменёнными иконками и завышенным хп. Так это обычные юниты |
| MrFlibble:
--- Цитата: Ti_ от 09 Август 2010, 13:34:40 ---вот ещё раз код чтобы не искать: --- Код: ---ROM:00022EA2 lea (fremens_quanit).l,a1 ROM:00022EA8 move.b (a1,d3.w),d6 ROM:00022EAC ext.w d6 ROM:00022EAE moveq #0,d5 ROM:00022EB0 lea (fremens_utype).l,a4 ROM:00022EB6 bra.w loc_22FFC ROM:00022EBA ; --------------------------------------------------------------------------- ROM:00022EBA ROM:00022EBA loc_22EBA: ; CODE XREF: SUPERWEAPON+336j ROM:00022EBA addq.w #1,(word_FFC148).l ROM:00022EC0 jsr (randomisation).l ; angle position randomisations ROM:00022EC6 move.w d0,(sp) ROM:00022EC8 move.w #1,-(sp) ; accurate positions ROM:00022ECC move.w #$1E,-(sp) ; range between fremens ROM:00022ED0 move.l d4,-(sp) ROM:00022ED2 jsr sub_1168C ROM:00022ED8 addq.l #8,sp ROM:00022EDA move.l d0,-(sp) ROM:00022EDC moveq #3,d0 ; fremen house ROM:00022EDE move.w d0,-(sp) ROM:00022EE0 move.w d0,-(sp) ROM:00022EE2 move.w #0,-(sp) ROM:00022EE6 jsr (random_for_xz).l ; fremen signle trooper ROM:00022EEC addq.l #4,sp ROM:00022EEE add.w d0,d0 ROM:00022EF0 move.w (a4,d0.w),-(sp) ROM:00022EF4 move.w #$FFFF,-(sp) ROM:00022EF8 jsr UNIT_CREATING ROM:00022EFE lea $A(sp),sp ROM:00022F02 movea.l a0,a2 ROM:00022F04 subq.w #1,(word_FFC148).l ROM:00022F0A move.l a2,d0 ROM:00022F0C beq.w loc_22FFA ROM:00022F10 lea $12(a2),a1 ROM:00022F14 move.w (a1),d0 ROM:00022F16 add.w d0,d0 ROM:00022F18 move.w d0,(a1) --- Конец кода --- Заменил moveq #3, на moveq #1 (id дома) - вызвались уже атредские фремены(которыми управляет игрок) - моды на жизни остались, а вот иконки уже обычных труперов. И вроде как моды на дамаг пропали. Т.е. иконки и дамаг зависят от дома (можно глянуть код опроса иконок), а мод на жизни задается при вызове. Да , если $12(ram_unit) - жизни (не проверял), то тут же видно удвоение их: ROM:00022F10 lea $12(a2),a1 ROM:00022F14 move.w (a1),d0 ROM:00022F16 add.w d0,d0 ROM:00022F18 move.w d0,(a1) загрузка их в d0, прибавить d0+d0 (умножение на 2) , и запись обратно в (a1). ; a1=$12(a2). --- Конец цитаты --- Здорово, спасибо! :) Может быть, аналогичный код есть и в PC-версии (если уж иконки фрименов есть) и удастся его активировать :D --- Цитата: Ti_ от 09 Август 2010, 13:34:40 ---Да их объединили, но не совсем - физически их 2разных осталось. Просто тяжелый на легкий для игрока заменяется с 4-ого левела, а вот в миссиях ботам поставлены оба вида заводов, только внешне одинаково выглядят. Но раз на ПК этого бага не было, то как вариант где-то просчитались. --- Конец цитаты --- Интересно. Получается, исходный код был действительно модифицирован по минимуму. Кстати, в связи с этим вот еще какой вопрос: в PC-версии у каждого производственного здания есть 8 слотов для типов юнитов, доступных для строительства (это не касается списка зданий в сбордворе и списка юнитов в космопорту). Поскольку в сеговской версии легкий и тяжелый заводы объединены, список юнитов больше восьми (на PC все 8 слотов тяжелого завода заняты, т.к. это общий список, где прописаны спецтанки все трех Домов). Как с этим обстоит дело на Сеге? Количество слотов было увеличено или разработчики поступили как-то иначе? --- Цитата: Ti_ от 10 Август 2010, 16:30:14 ---взломал немало кода (перебирал всё подряд от балды), нужно ли выкладывать? --- Конец цитаты --- Конечно! Будет интересно посмотреть :) Добавлено позже: Еще тут вспомнил, что в руководстве к PC-версии упоминалось, что некоторые Дома могут минировать свои сооружения, и если игрок такие здание захватит, то через некоторое время оно взорвется. Однако в игре это не наблюдается. Интересно, а код для этого не остался в сеговской версии? Например, в PC-версии удалось найти код для упомянутых в том же руководстве холмов на карте - не тех, которые создают новые поля спайса после того, как по ним выстрелить или в такой холм забредет юнит, а таких холмов, которые по функции сопоставимы с ящиками из других стратегий от Westwood, т.е. они либо дают деньги, либо появляются юниты. Хотя такие холмы нигде в игре не используются, код остался, и их можно размещать на карте. Стрельба по ним ничего не дает, но если юнит их переезжает, он не пропадает, а эффекты могут быть такие: 1) игрок получает произвольную сумму кредитов, 2) появляется пехота Ордосов (почему-то всегда Ордосов, независимо от того, за какой Дом играть), 3) появляется трайк Ордосов (обычный трайк, не рейдер), 4) появляется грузолет Ордосов, 5) появляется нейтральный грузолет, 6) появляется нейтральный орнитоптер. Нейтральные юниты черного цвета, они просто летают по карте и ничего не делают. Скриншот: Вот еще потенциально полезная вещь: http://nyerguds.arsaneus-design.com/dune/segra/Dune2_db_segra_v002.rar Это база данных IDA по DUNE2.EXE для PC-версии, составлення человеком по имени Segra. В свое время он очень подробно проанализировал код Dune 2, там наверняка найдется полезная информация. |
| MrFlibble:
Может, еще пригодится вот эта ссылка: OpenDUNE Developer's Blog Здесь описаны разные интересности из работы PC-версии игры, может, это поможет опознать какие-нибудь куски сеговского кода? |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |