Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
Орион
Интересует конкретные идеи/возможности, как декомпилить двиг игры и .dll библиотеки, с вшитыми .cpp файлами, через которые можно было бы восстановить множество отключённых фич. Например, открытие дверей в машине перед "усаживанием" за руль. Хекседикальные вьюверы - фигня. Кроме правки байтов и возможности зануливания от них проку мало, в отношении сталкера. Нашёл оч полезную утилиту и смог дизассемблить xrGame.dll нашёл в нём e"\stalker\patch_1_000*\xr_3da\xrgame\cardoors.cpp и все строки в библиотеке, но, увы, не смог сам файл вытащить из библиотеки. Полагаю, если научиться декомпилить и, собственно, компилить обратно .exe и .dll библиотеки ядра и двига игры - можно сделать прорыв в модостроении.. например вернув хотя бы возможность открывать двери/капоты/багажники в машинах smile.gif И еще много чего, без необходимости издеваться в скриптах. Так же интересует - возможно ли сделать к сталкеру некий расширитель скриптового/с++ языка, как например к Обливиону OBSE?

p.s. если кого интересует утилита для декомпила - велкам в личку.
FL!NT
Бесполезное занятие.
Цитата(Орион @ 11.04.2009, 19:42) *
e"\stalker\patch_1_000*\xr_3da\xrgame\cardoors.cpp

Это всего лишь ссылка на какой то файл не известно каким образом попавшая в ресурсы, а за оригиналом добро пожаловать к разрабам. biggrin.gif Максимум что можно сделать поглядеть какие функции в DLLях, но даже параметры передаваемые им определить хз сомнительно в лучшем случае их количество. И чего с ними делать? А полностью дезить и разбирать миллионы строк машинного кода жизни не хватит. biggrin.gif Даже имея полностью сишные исподники и то уйдут месяцы на осмысление, зачастую простче написать заново чем разбирать чужое. Если бы это было возможно все бы так и делали, а так кроме как поправить ресурсы или крякнуть ни кто еще не чего не сделал.
Орион
FL!NT,
Возможно.. но сами файлы .cpp - не просто строки, они вшиты в библиотеку .dll но декомпилить их, по ходу, крайне сложно sad.gif
FL!NT
Орион
Раз уж ты их вытащил кинь в личку ели не сложно, на досуге посмотрю. z_crazy.gif
sergy172
А как дело обстоит с изменением допустимых значений?
Например, что бы траву сделать более густой (как в старом билде игры №1935) надо у r__detail_density (от 0.200 до 0.600) увеличить допустимое значение до (от 0.060 до 0.600)
Орион
FL!NT, В том то и дело, что вытащить их наружу мне не удалось.. мне удалось дизассемблить .dll и увидеть весь машинный код в них, где и есть записи на обращение к .cpp файлам, находящиеся в самом .dll
Если смогу вытянуть .сpp файлы - скину на форум.

Кстати, при запуске игры - ядро и двиг распаковывает .cpp и .ini файлы в область рам-памяти, если я правильно понял багтрэп логи, в которых значится ошибка обработки кода одним из .cpp элементов движка/ядра. Если это так, то можно поискать утилиты, позволяющие получить доступ к секции рам-памяти, будто к харду smile.gif Тогда файлики можно будет изъять без декомпила.. но что-то уж больно "притянуто за уши" это выглядит laugh.gif

sergy172, Для этого надо разблокировать допустимые лимиты.. но где именно, я не знаю. Проверил сейчас xrRender_r1 и xrRender_r2 - там значаться эти параметры. Если параметр r__detail зашит в саму библиотеку рендера - это надо профи изучать и смотреть..
В библиотеках рендера этот параметр значится в двух местах. Но я лично ичего не понимаю в том коде, кроме инглиша z_crazy.gif
Если очень надо - в личку\аську могу скинуть программку и сам посмотришь. Может сумеешь чего-то сварганить)
centrino
Цитата(Орион @ 11.04.2009, 21:40) *
мне удалось дизассемблить .dll и увидеть весь машинный код в них, где и есть записи на обращение к .cpp файлам, находящиеся в самом .dll

это не то, что ты подумал, это всего лишь строковые литералы. в коде предусмотрены проверки ошибок
Код
  sprintf( szErrorMessage, "Assertion failed in %s, line %s\n", _FILE_, _LINE_ );
  pD3D9 = Direct3DCreate9( D3D_SDK_VERSION );
  AssertMsg( pD3D9, szErrorMessage );

вот тут компилятор (на самом деле препроцессор, но это не важно biggrin.gif) и вставит вместо _FILE_ строку с именем исходного файла
FL!NT
Орион
Тогда ты нашел не сишник, а не удаленные хвосты отладчика и ссылки на обработки исключений. Именно они прописываются в логии. biggrin.gif
Орион
centrino, FL!NT, Значит ничего в .dll нету)) А жаль.. было бы неплохо, иметь возможность редактить фишки движка sad.gif
FL!NT
Да неплохо бы было что бы к каждой проге прикладывались исподники желательно с детальным разжевыванием всех деталей. biggrin.gif biggrin.gif biggrin.gif
Da Man
есть) скомпиленый код wink.gif
Орион
Da Man, Ну.. скажем, в нём можно отладить систему поиска артов (до уровня ЧН) и запустить считывание статистики собраных артов? smile.gif мелочь, а приятно.. было бы laugh.gif
GREMLIN
Тему в топку, бельё от ПЫСов всё равно не дождёмся..
Сахаров
Цитата(sergy172 @ 11.04.2009, 20:45) *
А как дело обстоит с изменением допустимых значений?
Например, что бы траву сделать более густой (как в старом билде игры №1935) надо у r__detail_density (от 0.200 до 0.600) увеличить допустимое значение до (от 0.060 до 0.600)

скачай артмани и играйся на здоровье
Woland
Цитата(Орион @ 11.04.2009, 21:09) *
Da Man, Ну.. скажем, в нём можно отладить систему поиска артов (до уровня ЧН) и запустить считывание статистики собраных артов? smile.gif мелочь, а приятно.. было бы laugh.gif

ИМХО это и заскриптовать можно.
7.9
А ещё, неплохо-бы "откопать" возможность для полноценного создания новых интерфейсов, в роде "торгового менеджера" и "инвентаря".
7.9
... и ситуацию с несовместимостью сохранений разрулить... хотя это наверное "из области фантастики".
sergy172
Цитата(Сахаров @ 12.04.2009, 08:11) *
скачай артмани и играйся на здоровье

Уже.
Нашел довольно легко.
r__detail_density
01F6276C динамика
01F461E8 статика
Верно для билда 3120.
Вот только как узнать из какого файла и процесса берутся данные, я пока не понял.
Jesh
как на меня, то самая главная возможность движка(как и всего Сталкера) - это держать в напряжении комьюнити, которое постоянно что то в нём исчет, вместо того что бы занятся моддингом на более простом в освоении движке(Cry Engeene с его SandBox например), но увы -) всё также X-ray затягивает не хуже(а то и лучше) Зоны...)))
Орион
Цитата(sergy172 @ 12.04.2009, 15:48) *
Вот только как узнать из какого файла и процесса берутся данные, я пока не понял.

sergy172, Данные - из файла xrRender_r1.dll и/или xrRender_r2.dll
sergy172
Цитата(Jesh @ 12.04.2009, 17:12) *
как на меня, то самая главная возможность движка(как и всего Сталкера) - это держать в напряжении комьюнити, которое постоянно что то в нём исчет, вместо того что бы занятся моддингом на более простом в освоении движке(Cry Engeene с его SandBox например), но увы -) всё также X-ray затягивает не хуже(а то и лучше) Зоны...)))

А во всём виноват его величество контент.
В Кризисе ничего кроме зарослей нет, да и те ориентированы на тропики, а кому охота всю переносить геометрию с текстурами, да ещё и адаптировать все скрипты?

А разными "пальмовыми" юэсэй шутерами и автоаркадами мы уже сыты по горло, нам помойки хочется. smile.gif
Жаль незаслуженно забыли Devastation, там примерно такой же помоечно-заросший дизайн как в Сталкере, да и некоторые уровни из You are Empty, хорошо бы здесь смотрелись.
Jesh
sergy172
хм... контент? вобщет пора его самому уже делать, а не использовать готовый из СДК... даже если на то пошло, то Neo][ сделал плагин импорта .object который позволяет импортировать всё тот же упомянутый контент в 3D Studio Max что уже позволит експортировать его куда угодно(тот же SandBox)
sergy172
Цитата(Jesh @ 13.04.2009, 21:06) *
sergy172
хм... контент?

А что легде, из готовых кирпичей карты лепить или заниматься камасутрой (камаринской biggrin.gif ) в извращенной форме, с утилитами переноса?
Вон на нормальной старой свалке сколько битых поликов сразу вылезло после "таких" переносов?

А теперь вопрос по делу.
В артмани легко нашелся параметр детайл дестени ( http://www.gameru.net/forum/index.php?show...st&p=745396 ) , но ни кто так и не сказал, можно ли проследить не прописана случаем эта команда в простом конфиге просто запакованном в библиотеку?
Smanxx1
Цитата(sergy172 @ 13.04.2009, 21:24) *
В артмани легко нашелся параметр детайл дестени ( http://www.gameru.net/forum/index.php?show...st&p=745396 ) , но ни кто так и не сказал, можно ли проследить не прописана случаем эта команда в простом конфиге просто запакованном в библиотеку?

r__detail_density есть в user.ltx
Орион
sergy172, http://www.gameru.net/forum/index.php?s=&a...st&p=745406

Декомпиль файлы и поиском ищи параметры. Я их находил, но в коде не разбираюсь - может там есть фиксация лимитов, может она где-то еще. В других .dll этого параметра нет.
sergy172
Теоретически, там где есть простыня со всеми допустимыми командами (которая выводится по "help" ), там логичнее всего и было бы разместить и их лимиты.
Кстати r__detail_density или её эквивалент в 2215 я так и не обнаружил.
XMK
помогите пожалуйста создать вот такой же ползунок как в опциях:




на основе опции видео написал следующее:

.script:

Код
class "opt_radio" (CUIWindow)

function opt_radio:__init() super()
end

function opt_radio:__finalize()
end

function opt_radio:InitControls(x, y, xml, handler)
    local ctl
    self:Init     (x,y, 738, 416)
    self:SetAutoDelete (true)

    self.bk    = xml:InitFrame ("frame_videoadv", self)
    self.scroll_v = xml:InitScrollView ("radio_opt:scroll_v", self)

    local _st = xml:InitStatic ("radio_opt:templ_item", self.scroll_v)
    xml:InitStatic ("radio_opt:cap_vis_dist", _st)
    xml:InitTrackBar ("radio_opt:track_vis_dist", _st)

    btn = xml:Init3tButton ("radio_opt:btn_to_simply", self)    
    handler:Register (btn, "btn_simply_graphic")    
end


.xml:

Код
<radio_opt>
<scroll_v x="0" y="10" width="457" height="313"
        right_ident="0" left_ident="0" top_indent="0" bottom_indent="0"
        vert_interval="0" always_show_scroll="0"/>
    <templ_item width="450" height="30"/>

    <cap_vis_dist x="20" y="0" width="143" height="21">
        <text font="letterica16" r="215" g="195" b="170">ui_mm_vis_distance</text>
    </cap_vis_dist>
    <track_vis_dist x="194" y="0" width="245" height="21" step="0.1">
        <options_item entry="rs_vis_distance" group="mm_opt_video_adv"/>
    </track_vis_dist>

    <btn_to_simply x="342" y="325" width="111" height="29">
        <text align="c" font="letterica16" r="227" g="199" b="178">ui_mm_simply</text>    
        <texture>ui_button_ordinary</texture>            
    </btn_to_simply>
</video_adv>

</radio_opt>



и помойму ниче работать у меня небудет unsure.gif

и как сделать чтоб выполнялась функция при движении ползунка?


вобщем помогите пожалуйста
sergy172
Как только через artmoney поставил r__detail_density 0.09 (густота травы и листьев) вместо r__detail_density 0.2 (ниже игра не позволяет), сразу заметил как живописно высажена трава на агропроме.
Скорее бы кто нибудь додумался сделать патч для этой настройки, что бы всегда было 0.09 или 0.1.
Орион
sergy172, Насчёт всегда было - это не надо. Каждому своё нравится) А вот про настройку можешь подробнее? Откуда значения артмани перехватывает? Из какого именно файла?
sergy172
Я как раз не понял как это выяснить.
Значение находится всегда по одному и тому же адресу 01EC3180 для версии 1,0004 (для статики и динамики разные адреса, я о них уже писал), но в "карте процессов" такого адреса нет.
Орион
Адрес вызывается из какого-то файла.. я проверил xr_render_r1/2.dll, xrgame.dll, xr_3da.exe и xrLUA.dll - там нигде значения нету) Откуда вызов идёт, я без понятия.. могу дизассемблить все длл-файлы сталкера и скинуть всё это в раре, если надо - покопаешься. Если найдёшь - напишешь.
sergy172
Цитата(Орион @ 22.04.2009, 21:20) *
Адрес вызывается из какого-то файла.. я проверил xr_render_r1/2.dll, xrgame.dll, xr_3da.exe и xrLUA.dll - там нигде значения нету) Откуда вызов идёт, я без понятия.. могу дизассемблить все длл-файлы сталкера и скинуть всё это в раре, если надо - покопаешься. Если найдёшь - напишешь.

biggrin.gif Нет спасибо.
Kolmogor
Цитата(sergy172 @ 22.04.2009, 11:04) *
Скорее бы кто нибудь додумался сделать патч для этой настройки, что бы всегда было 0.09 или 0.1.

попробуй эту дллку. минимальное значение у r__detail_density в ней равно 0
http://webfile.ru/3436297
Torm Ozz
Спасибо, а для динамики есть?
sergy172
Цитата(Kolmogor @ 23.04.2009, 10:57) *
Цитата(sergy172 @ 22.04.2009, 11:04) *
Скорее бы кто нибудь додумался сделать патч для этой настройки, что бы всегда было 0.09 или 0.1.

попробуй эту дллку. минимальное значение у r__detail_density в ней равно 0
http://webfile.ru/3436297

Ух ты! Спасибо.
Только 0 не надо ставить, а то игра просто останавливается. Вообще всё что меньше r__detail_density 0.05 вызывает тормоза и глюки, и чем цифра меньше тем их больше.

п.с. Запустил сохранёнку, но с этой дллкой детали вообще не пашут. Кстати, ты же не мог этого не знать? Хоть предупредил бы. smile.gif
Kolmogor
Цитата(sergy172 @ 25.04.2009, 00:02) *
п.с. Запустил сохранёнку, но с этой дллкой детали вообще не пашут. Кстати, ты же не мог этого не знать? Хоть предупредил бы. smile.gif

Сорри. Исправил минимальное значение на 0.02. Проверил на ТЧ 1.0004 - работает
А предыдущий файл исправил, но не проверил smile.gif
вот новая длл - http://webfile.ru/3442235
sergy172
Вот это кайф!!! z_w00t.gif
Тепеть можно и мип биас восстановить, что б от -3х до 3х стало как в билде 2215.

2 Kolmogor
Ух ты шаман! blink.gif Как сделал?
sergy172


http://webfile.ru/3442235
Для установки достаточно сделать копию xrRender_R1.dll и скопировать файл из архива в папку "bin" находящуюся в директории игры.
Как следует из названия, густая трава у вас будет на статическом освещении, для динамического надо править соответственно xrRender_R2.dll.
_end_
даа... впечитляет biggrin.gif
Kolmogor
Цитата(sergy172 @ 25.04.2009, 13:49) *
Ух ты шаман! blink.gif Как сделал?

Почти как ты сказал так и сделал smile.gif
Это ты шаман smile.gif Как такие скриншоты получил? У тебя разве трава не растет кружком с ГГ в центре?
вот кстати для динамического http://webfile.ru/3442487. не проверял smile.gif
Lekzd
Цитата(Kolmogor @ 25.04.2009, 14:29) *
Цитата(sergy172 @ 25.04.2009, 13:49) *
Ух ты шаман! blink.gif Как сделал?

Почти как ты сказал так и сделал smile.gif
Это ты шаман smile.gif Как такие скриншоты получил? У тебя разве трава не растет кружком с ГГ в центре?


Дальность прорисовки установи по-больше!
sergy172
Только надо бы попробовать ограничить r__detail_density 0,05, а то на 0,02 уже сильные тормоза на одной из текстур травы и к тому же, ползунок в меню не даёт поставить 0,09, проскакивает, между 0,1 (что принципе нормально) и 0,08.
Жаль некому попросить ПЫС выпустить патчик для ТЧ (например на основе 3120, там луна нормально появляется и исчезает, а в ЧН опять скачет) в котором сняты ограничения, которых не было в билдах.
На детали на биас или на тот же радиус динамических светильников, что б не так резко уходили в темноту, на качество и дальность отрисовки теней на "статике" и на другие подобные параметры.
Torm Ozz
Цитата(Kolmogor @ 25.04.2009, 14:29) *
вот кстати для динамического

Double-спасибо!!!
SID
Народ! Подскажите прогу для редактирования xrGame.dll. Хочу добавить слот для ножа и т.д, а добавить можно только редактируя этот файл=( Зараннее спасибо
BAC9-FLCL
Цитата(SID @ 02.05.2009, 19:38) *
Народ! Подскажите прогу для редактирования xrGame.dll. Хочу добавить слот для ножа и т.д, а добавить можно только редактируя этот файл=( Зараннее спасибо

Отвечу просто: программы не существует, "добавить слот для ножа и тд" невозможно smile.gif
Сталкероненавистник
Норма норма....В .exe и вяских разных файлах куча таких багов и хз откуда взявшейся инфы...даже в SDK!!
откройте файл level.ini в сдк и смотрите чё там есть..остатки данных с компов ПЫСОв
Орион
Недавно с другом сидели в дебаггерах - разбирали по кусочкам xrGame.dll сразу от финалки (он) и от билдов 2215/1935 (я). Он наткнулся на такой лок в движке:
Код
7C9034C8   F0:E4 00         LOCK IN AL,0                        ; LOCK prefix is not allowed

Что именно он лочит, увы, понять было сложно в 27 тысячах страниц кода smile.gif

А вот что до разбора "машинной" состовляющей, я нашёл весьма стояющий кусок. Вот сравнение (из финалки Сталкера, 4й патч):
CODE
SSZ10469018_E__stalker_patch_1_0004_xr_3da_x:
db 'E:\stalker\patch_1_0004\xr_3da\xrGame\CarDoors.cpp',0
db 00h;
db 00h;
db 00h;
db 00h;
db 00h;
SSZ10469050_Wrong_door_joint____Only_simple_:
db 'Wrong door joint!!! Only simple joint valid for a door and only one axis can be active, check other axes are zerro limited !!!',0
Align 4


И из xrGame.dll от билда 2215:
CODE
SSZ1047B798_Wrong_door_joint____Only_simple_:
db 'Wrong door joint!!! Only simple joint valid for a door and only one axis can be active, check other axes are zerro limited !!!',0
Align 4
SSZ1047B818_P__xr_3da_xrGame_CarDoors_cpp:
db 'P:\xr_3da\xrGame\CarDoors.cpp',0
db 00h;
db 00h;
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
L1047B864:
dd 3A83126Fh
db DBh; '›'
db 0Fh;
db C9h; '‰'
db 40h; '@'
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
db DBh; '›'
db 0Fh;
db 49h; 'I'
db 40h; '@'
SSZ1047B888_cone_angle:
db 'cone_angle',0
Align 4
SSZ1047B894_headlights:
db 'headlights',0
Align 4
SSZ1047B8A0_lights:
db 'lights',0
db 00h;
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
db DBh; '›'
db 0Fh;
db C9h; '‰'
db 40h; '@'
SSZ1047B8C4_CCar:
db 'CCar',0
db 00h;
db 00h;
db 00h;
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
SSZ1047B8E4___Car_doesn_t_contain_sound_para:
db '! Car doesn',27h,'t contain sound params',0
Align 4
SSZ1047B908_transmission_switch:
db 'transmission_switch',0
SSZ1047B91C_relative_pos:
db 'relative_pos',0
Align 4
SSZ1047B92C_snd_name:
db 'snd_name',0
Align 4
SSZ1047B938_snd_volume:
db 'snd_volume',0
Align 4
SSZ1047B944_car_sound:
db 'car_sound',0
db 00h;
db 00h;
db 00h;
db 00h;
db F0h; 'а'
db 41h; 'A'
db 00h;
db FEh; 'о'
db FFh; 'п'
db 46h; 'F'
db 00h;
db 00h;
db C0h; 'Ђ'
db 3Fh; '?'
db 95h;
db BFh; 'х'
db D6h; '–'
db 33h; '3'
db ACh; 'ї'
db C5h; '…'
db 27h; '''
db 37h; '7'
db 6Fh; 'o'
db 12h;
db 83h; '?'
db 3Ah; ':'
L1047B968:
dd 47C35000h


Думаю и не программист заметит, что в 2215 (как и в 1935) часть кода, отвечающая за машину в игре, куда больше, чем в финалке. В коде от 2215 есть и работающие двери и трансмиссия и т.п. чего нету, по понятным причинам, в финалке. Что по поводу финалки - тут у нас было три варианта: 1) Кусок кода просто вырезан и помогло бы его копирование из 2215 файла. 2) Двери машины вырезаны из cardoors.cpp и без исходников ничего сделать уже нельзя. 3) Поскольку код дверей в xrGame.dll от финалки НЕ залочен, то была высказана идея, что вырезан код анимации дверей машины и, опять таки, без исходников - пустая трата времени.

Программистов, которые разбираются в машинном коде и понимают библиотеки очень прошу высказать вердикт - можно ли что-то сделать с дверями машины (которые открывались в 1935) или всё-таки гиблое дело? smile.gif
Sonni
Цитата(Kolmogor @ 25.04.2009, 14:29) *
Как такие скриншоты получил? У тебя разве трава не растет кружком с ГГ в центре?

Kolmogor, demo_record в консоли прописал и полетел, и все норм тут же happy.gif
FL!NT
Цитата(Орион @ 06.05.2009, 12:55) *
Что именно он лочит, увы, понять было сложно в 27 тысячах страниц кода

А хз выдранный из общего контекста не о чем не говорит.
Что касается других примеров то приведены в формате данных а не ASM но даже так видно что по величине они очень короткие и не могут реализовывать данные функции, а FAR вызовов не содержат. И даже если ты найдешь реальные куски кода отвечающие за двери… надо что бы кто то дергал эти функции.
Kolmogor
Орион
Про куски:
Просто для финалки ты почему то не все скопировал. Например, строка transmission_switch есть и в финалке, также как и остальные. В тех кусках что ты привел кода нет. там хранятся только строчки.

Код
7C9034C8   F0:E4 00         LOCK IN AL,0                ; LOCK prefix is not allowed

Вообще LOCK это команда процесора. Лочит скорее всего шину данных, чтобы можно было читать/ модифицировать значения в памяти при работе на нескольких процессорах. К сталкеру имеет весьма отдаленное отношение. Здесь употреблен вообще не к месту, о чем и добавлен комментарий(LOCK prefix is not allowed). Скорее всего неправильно дизассемблировали

Думаю в движке с дверями ничего не делали. Проще модель сделать без дверей или кнопку для открывания не биндить smile.gif

Ну и кстати, кто-нибудь пробовал открыть дверь у машины скриптом - может и откроется. Сделать по аналогии с обычными дверями
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.