Гипат.org

MODный форум - Перенос текстур мода в оригинальные ресурсы

Kalessin - 15 января 2012, 20:10
Вопрос для знающих людей :) Всем известно что пз вылетают при заходе на серверы с модами, содержащими нестандартные текстуры лиц персонажей (либо при заходе такого "нестандартного" персонажа на сервер без сответствующего мода) Отсюда вытекает очевидное решение проблемы - перенести эти текстуры в оригинальную игру. Собственно вопрос: как добавить текстуры нестандартных лиц в ресурсы оригинальной игры, чтобы они отображались корректно? Какие файлы, из каких контейнеров нужно перенести; как задействовать их в оригинале? (Допустим, организовать перенос из хг-мода, т.к. там больше всего новых лиц)
Файтер - 15 января 2012, 22:55
Вылетает не из за текстур. Вылетает из за изменения дбазы. В без мода, нет данных об новой текстуре из за этого и вылетает.
Вот пример:
facef04 если создать мод и перекрасить/поменять что-то в этой текстуре сохранить мод и зайти с модом, в котором изменений в дбазе не было (тронута только текстура) на сервер с без мода, то вылета не произойдет т.к. Текстура изменилась только внешне, и такое названия текстуры в без мод есть(раскрашенная текстура, не будет раскрашенной, на без моде и в модах в которых этой раскрашенной текстуры нет, текстура будет стандартной).
Другое дело если игрок, зашел на сервер с без модов, с новым лицом и т.п
прописанными в дбазе(не измененными на числа, а совершено новыми данными), Без модовская дбаза просто не имеет этого лица/юнита, в своих архивах, тут тебе и вылет!(
Надо просто вставить эти данные, в без мод и в остальные моды, тогда с этими данными вылетов не произойдет, но и будут некоторые неудобства, например. Текстур новых персонажей не будет т.к текстуры не хранятся в дбазе. Но это можно исправить просто убрать этих персонажей, оружие и все остальное, что приводит к вылетам в из игры, заблокировав их в дбазе как не игровые.
Valter - 15 января 2012, 22:57
Попробуем разобрать ситуацию.. Текстуры лиц привязаны к персонажу, имя которого содержится в датабазе.

Пример: Текстура Зака - "unhumaskin_00.mmp" Она запакована в архиве redress.res. В датабазе databaselmp.res в разделе: MapObjects/MotstersPrototypes/ под графой Graphics Data Skin Index у персонажа Human Hero прописано значение 0 Если вместо 0 выставить другое значение (к примеру 10) то этот персонажа в игру будет отображаться с текстурой "unhumaskin_10.mmp" и т.д.

Теперь вернемся к проблеме. Игра вылетает, когда у клиента или сервера на игровой зоне появляется персонаж, с "незарегистрированным именем". А сами текстуры у сервера или клиента могут отличаться. В таком случае вылета не произойдет, а просто каждый увидит свою картинку. Главное, чтобы имя персонажа было и в датабазе сервера, и в датабазе клиента. В модах с нестандартными текстурами лиц как раз и созданы новые персонажи с новыми именами, под которые и прописаны значения "нестандартных текстур".

Теперь решение. Попробуем перенести нестандартную текстуру из хг-мода в оригинал. Скажем возьмем имя чернокожего Зака( из новых людей на гипате) - "Lmp Necro Gipath Fighter 1" и добавим запись в датабазу оригинала. Создадим в разделе: MapObjects/MotstersPrototypes/ нового персонажа, скопировав любого старого и изменив графу Name на Lmp Necro Gipath Fighter 1 и в графе Graphics Data Skin Index прописать значение 37 ( так как у него текстура "unhumaskin_37.mmp") Теперь в оригинале должен появиться новый персонаж.. Уже на этом моменте игра не должна вылетать при заходе персонажа с таким-же именем из мода в оригинал. При отсутствии текстуре персонаж будет просто белым, но для игры это уже не будет фатально.. В теории.. Сам не проверял, если не так поправьте меня. Саму текстуру же надо будет распаковать из редреса хг-мода и запокавать в редрес оригинала. Вот и все. Принцип действий такой. Еще потом и отдельно все текстуры "Лиц и Выражений на них" тоже перенести но уже в textures.res. (В redress.res находятся только текстуры самого тела персонажа)

Другой вопрос ради чего все это? Добавить в оригинал новые текстуры лиц? Или избавится от межмодовых вылетов? Если первое то горазда легче заменить саму текстуру у существующего персонажа, чем создавать нового редактируя датабазу. Если второе... зачем вообще допускать связь между разными модами?


Пока писал уже ответили :)
Kalessin - 16 января 2012, 15:55
Да... я подозревал что датабаза не останется в стороне... Цель, конечно, избавится от вылетов :) Здесь, естественно, не идет речь о полноценной игре с выходом на карту персонажей из модов, нет. Просто слишком часто происходит падение сервера при заходе несознательных игроков... вроде все давно уже знают о несоместимостимости модов и все равно :mad:
Итак, для лечения вылетов, нужно распаковать redress.res хг-мода и вытащить оттуда текстуры с форматом имен "unhumaskin_**.mmp", затем распаковать датабазу хг и просмотреть раздел MonsterPrototypes на предмет соответствия имен персонажей номерам новых текстур. Далее все найденные имена добавить в целевую датабазу и прописать соответствующие номера текстур. После чего добавить новые текстуры в целевой redress.res, а текстуры лиц в textures.res (Кстати, собствено текстуры лиц, привязаны ли к каждой "unhumaskin_**.mmp"? Не надо ли отдельным образом их привязывать? И не задействован ли еще здесь figures.res?) Насколько правильно я все понял? :roll: И еще: получается, необходимо модифицировать датабазу (и другие ресурсы) для каждого мода, если так то это... :ass: слишком много работы :( Впрочем я сделаю датабазу хотя бы для одного мода.
Valter - 16 января 2012, 16:50
Всё так... Текстуры лиц вытаскиваешь, а затем пакуешь в textures.res ( facem**.mmp для мужских персонажей и facef**.mmp для женских; + face***a.mmp; face***b.mmp и face***c.mmp для соответствующих выражений). Но это если хочешь видить текстуры несознательных игроков.
В итоге легче сделать как предлагает Файтер: просто добавить их имена в датабазу, не замарачиваясь с текстурой.

Удачи тебе во всем этом... и..Так и просится на язык фраза : "Итак, для лечения вылетов, .... ... Уф, вроде ничего не забыл. Осталась сущая ерунда - все это выполнить!" :D
Файтер - 16 января 2012, 17:17
Здесь разместил заплатку:D для без мода.
http://www.gipat.ru/forum/index.php?showtopic=3514
Kalessin - 16 января 2012, 21:12
Что же, спасибо за поддержку :) Признатся, не ожидал столь подробных ответов и так быстро. Вижу, еще не перевелись на форумах поклонники пз :D Теперь действительно осталась всего ничего - сделать задуманное :) :) :) Хотя работа не оставляет много свободного времени, я все равно буду делать базы, пусть они и будут готовы не скоро...
Файтер - 16 января 2012, 22:38
Сейчас буду делать заплатку на базу, которую мне дал Калессин, из Evil-modа. Заплатку выложу на том же сайте...
MorgenS - 24 января 2012, 09:27
Файтер, а как насчет новых врагов?
Ведь если в моде дописали новые прототипы, то даже с такой заплаткой клиента в теории будет выкидывать на соответствующих локах, ибо у него в базе эти прототипы не прописаны.
Влесам - 24 января 2012, 12:52
Это заплатка для серверов как раз, а не для клиентов как я понял. Тут главное чтобы человек со скином скелета не порушил БезМод едва войдя на сервер. И можно было попросить перезайти с оригинала.
Или я что-то не правильно понимаю :(
MorgenS - 24 января 2012, 22:29
Ну, такие вещи надо тестить. Так сходу можно только предположить
Файтер - 24 января 2012, 23:42
Цитата (MorgenS):
Файтер, а как насчет новых врагов?

Внедрил. Хотя не на добыло...
Цитата (MorgenS):
Ведь если в моде дописали новые прототипы, то даже с такой заплаткой клиента в теории будет выкидывать на соответствующих локах, ибо у него в базе эти прототипы не прописаны.

Было бы правильно ели бы создатели модов, вместе со своим модом выкладывали подобную "заплатку", со всеми нововведениями, но чтоб у этих новых плюшак, все достоинства были на нуле, и чтобы они были запрятаны по глубже.
Цитата (Файтер):
Как такое возможно? Ведь мод не один, и у каждого свои изменения? Получается что каждый новый мод, будет выкладывать свою заплатку, это ведь будет полная неразбериха?

Возможно! Если создатели модов будут сотрудничать, и наполнять свои базы, всеми нововведениями этих модов, тогда и не трудно будет объединить все плюшки в одной заплатке.
Цитата (Влесам):
Это заплатка для серверов как раз, а не для клиентов как я понял.

Для сервера.
Часовой пояс: GMT +4:00
Форумы Поселка созданы на базе phpBB2 2.0.4 © phpBB Group