You are not logged in.
Да, файлы целиком не грузятся, хранятся только заголовки. Если поюзать Memory Hacker, там четко видно, какие скрипты сейчас загружены, какие нет. При этом в структуре внешних скриптов CExternalScripts хранится указатель на этот скрипт (на текущий опкод).
В img файлах действительно может храниться все подряд, в том же gta3.img хранятся не только модели и текстуры, но и файлы путей.
Я пока не трогал эти скрипты, поэтому если ты что-нибудь раскопаешь, будет здорово.
Offline
Да, с этими скриптами все очень непросто. Насколько я понял, никакой разницы между scm, lod, col нет после загрузки, они все хранятся одинаково в памяти. игра при необходимости загрузить тот или иной скрипт или модель читает его ID из общего списка, затем подгружает его из нужного имга (неважно, gta3.img это будет или script.img).
Пока еще не дошел до того, где что хранится, очень уж запутанно происходит загрузка. Вот что нашел:
.HOODLUM:01565EC0 ; int __stdcall LoadScriptFromImg(int IntImgIndex,int ScriptIndex)
это процедура копирования из img нужного кол-ва байт. Эти данные читаются отсюда:
.data:008E48B8 dd ? ; offset .data:008E48BC dd ? ; blocksize: img * 2048 .data:008E48C0 dd ? ; pointer to img scm
008E48B8 - не совсем понял, что это.
008E48BC - это размер данных в IMG. Для скриптов я точно знаю, что оно всегда кратно 2048, остальное заполняется нулями. Точный размер скрипта хранится в заголовке скм и потом копируется в CExternalScripts.
008E48C0 - откуда копировать данные (сам скрипт в памяти).
LoadScriptFromImg выделяет память, записывает указатель в CExternalScripts и копирует по указателю 008E48C0 в выделенную память нужное кол-во байтов.
008E4CAC - указатель на текущую загруженную часть IMG (dff, текстура, скрипт). Это потом копируется в 008E48C0.
Offline
Все-таки решил опубликовать первый вариант патча Sanchez'а. Все желающие скачать его посмотрите ссылку в первом посте
Offline
Я так и непонял можно ли в паках использовать SCRIPT.IMG, если да то как.
Offline
Да, можно. Берешь script.img, переименовываешь в script1.img, кидаешь в папку gtasa\data\script, а сам мишнпак создаешь по инструкции. При загрузке пака игра будет читать script1.img
Для второго пака создаешь script2.img, для третьего script3.img и т.д.
Offline
Вобщем я попробовала и у меня всё работает. Сохранилась в присоединенном паке. Вышла из игры. Снова запустила ее. Загрузила сейв. Через 10 сек. игра вылетела с сообщением об ошибке.
Offline
Проверил на оригинальных файлах в качестве пака - прошел первую миссию (боже, как меня эта гонка на велосипедах уже задолбала!) - сохранился, загрузился - все ок.
Что ты используешь в качестве пака? Возможно это глюк самого мода, там просто нет ничего такого что могло бы вызвать вылет.
Если вылет стабильный - выложи скрин ошибки, возможно это поможет найти причину
Offline
Возможно это глюк самого мода
Как это ни горько, но кажется ты прав.
Offline
Уменя тоже когдато не сохранялось. Причина в том что надо выгружать модели. тока-ка я незнаю
я просто убрал скрипт Model.load(#BOMB)
Offline
я просто убрал скрипт Model.load(#BOMB)
Э-э нет ты убрал команду ЗАГРУЗКИ модели(теперь игра гарантировано будет висеть),нужно конце скрипта прописать
model.destroy(...)
и всё пучком=)
GTA VC - ЭТО НАСТОЯЩАЯ ГТА!
Offline
Я не сильно понял, почему не получилось перезагружать script.img, но по-моему тогда и mpack надо кидать в папку с игрой... (не в смысле, что надо, а что по логике...)
Last edited by ~AquaZ~ (09-01-2011 12:40)
Offline
Археолог-то, последнее сообщение датировано аж 2008-м годом. Не думаю что разработки в этом направлении ведутся =\
Offline
Я знаю, что тема старая. Только вот этот вопрос начал подниматься, я и решил спросить...
А зачем патч, если никто таким образом не вставляет новые эпизоды?
З.Ы. С fastloader'ом патч полностью теряет смысл...
Offline
@~AquaZ~ - в смысле никто? Есть например DYOM, я использую пару мишн паков, судя по gtaforums парочка интересных MP ещё в разработке есть. С fastloader'ом всё работает, правда если всё же вылетает, надо сначала загрузить сейв основной игры/начать новую, а потом запускать мишн пак.
Offline
Я имею в виду, что патч не поможет, т.к. фастлоадер начинает новую игру.
Offline
Помогите, все сделал правильно, но загрузка MP зависает в конце
Offline
Странно, но у меня MP оригинального мейна работает без этого патча, если прочистить все таблицы кроме MAIN в text.gxt, который в папке с MP
Offline