Сообщение отредактировал XEPOMAHT007: 28 October 2012 - 01:09
Моддинг LCS и VCS (PSP/PS2)
#402
Отправлено 13 August 2011 - 06:43
И тем не менее, это подобие маппинга интересно будет "портировать" на ps2... А возможно ли будет координаты спавненых объектов внутри псп с чит девайсом вписывать в "блокноты" которую прочитает версия пс2?То же самое что в читдевайсе - отредактировать или расставить дополнительный генерик. Если прокатит фишка со снижением количества WRLD в архиве, то можно "восстановить" CHK и MDL для карты города, что позволит дополнять игру новыми моделями и текстурами.
Сообщение отредактировал SILENT_Pavel: 18 September 2012 - 05:32
#403
Отправлено 13 August 2011 - 11:32
Мои структуры с твоими не совпадают, возможно, потому, что я разбирал данные из VCS, а ты из LCS.
Представить в виде текста можно как угодно, только в чем смысл, если не идентифицировано назначение определенного ряда полей.
Мне гораздо удобнее сделать отображение таблицей, что-то вроде вот этого:

В принципе, для редактирования базовых параметров всего этого уже достаточно, а экспорт (и импорт) в случае необходимости можно наладить в любом виде.
#405
Отправлено 13 August 2011 - 13:25
хешируются имена игровых моделей, текстур и т.д.
имя файла (или его хеш) типа "weapons.dat" там по своей идее не должно содержаться - в этом нет никакого смысла. файл уже отпарсен и, усоловно говоря, преобразован в массив структур.
> [ELF] Weapon name:
а можно поподробнее про ELF или ссылку какую-нибудь?
и да, XEPOMAHT007, процедура самого разбора или то, как можно представить данные не особо важно, как сама структура данных, в которой всё хранится.
имхо, лучше всего представлять информацию не в шаблонах 010 эдитор или XML-файлах, а по типу этого.
#406
Отправлено 13 August 2011 - 15:44
LCS: (ak47 нету почему-то)
Unarmed Knife Hammer Cleaver Machete Katana Grenade TearGas Molotov Rocket Colt45 Python Shotgun Tec9 Uzi Mp5 m4 Ruger M60 Minigun Camera BrassKnuckle ScrewDriver GolfClub NightStick BaseballBat Chainsaw DetonateGrenade Spas12Shotgun StubbyShotgun SilencedIngram SniperRifle LaserScope RocketLauncher FlameThrower Detonator HeliCannon
VCS: (ak47 тоже нет)
Unarmed BrassKnuckle ScrewDriver GolfClub NightStick Knife BaseballBat Hammer Cleaver Machete Katana Chainsaw Grenade DetonateGrenade LandMine SeaMine TearGas Molotov Rocket Colt45 Python Shotgun Spas12Shotgun StubbyShotgun Tec9 Uzi SilencedIngram Mp5 m4 Ruger SniperRifle LaserScope RocketLauncher FlameThrower M60 Minigun Detonator HeliCannon Camera Binoculars
Fire type также имеются:
LCS:
MELEE CAMERA INSTANT_HIT PROJECTILE AREA_EFFECT
VCS:
MELEE INSTANT_HIT PROJECTILE AREA_EFFECT CAMERA BINOCULARS //похоже, не используется
Сообщение отредактировал Sergeanur: 13 August 2011 - 16:27
GTA Stories ships in...
#408
Отправлено 13 August 2011 - 19:20
Сообщение отредактировал Lego: 13 August 2011 - 19:21
#410
Отправлено 13 August 2011 - 20:13
Сообщение отредактировал Lego: 13 August 2011 - 20:14
#413
Отправлено 13 August 2011 - 22:31
я говорю про простое описание структуры, типа того что кидал Dageron, только не в виде структуры на Си, а что-то типа:
DWORD - 4 bytes - dwType (описание) WORD - 2 bytes - iFireType (описание) ...которое потом можно заюзать где угодно и на базе его создать хоть XML,
#415
Отправлено 14 August 2011 - 01:24
Сообщение отредактировал Lego: 14 August 2011 - 01:29
#418
Отправлено 14 August 2011 - 11:54
#419
Отправлено 14 August 2011 - 13:09
Можно сначала посмотреть, например, вот этот классический мод.
XEPOMAHT007
Ну так и кто же их туда написал? Сильно удивлюсь, если материал был взят не с ваших ресурсов LCS Team. Смотрим историю правок. И Lego верно дописал - "аналоги следующих файлов"...Тем более в статье про dtz (http://gtamodding.ru/wiki/DTZ) описание формата вообще не сделано, вместо этого зачем то приведён список выдуманных dat-файлов, которых в сториесах нету и не может быть. По сути оно является тупиковым, т.к. его авторы не понимают, как загружается и функционирует структура GTAGAME.
Как загружается game.dtz я представляю в достаточной степени хорошо, другое дело, реализовывать все сходным образом на мой взгляд попросту нерационально. Все равно расписывать все структуры в виде C++ templates и делать загрузчик на C++, ориентируясь на то, "как это было у R*", совершенно малополезно. Сверхзадача - отыскать нужные параметры характеристик, понять их назначение, и, если надо, то отредактировать или извлечь в каком-либо виде (любом удобном для конкретной задачи).
Интересно, каким же образом? В твоих "описаниях" есть некое поле "END" (в игре принимающее значение $AAAAAAAA - у меня это dwPadding), после которого почему-то вдруг следуют три вектора подряд, Этого не может быть, там float-ы расположены совсем по-другому, проверь сам по значениям параметров. В приведенном коде на Delphi тоже что-то несуразное, интресно, как же ты читаешь следующие векторы ("ну и так далее"), если вслед за первым идет несколько DWORD-ов?Структура Дагерона не совпадает с моей, он это сам написал несколькими постами выше. Точнее, он просто не разобрал её до начала.
Вот моя преобразованная структура:
typedef struct vFireOffset{
float f1;
float f2;
float f3;
};
typedef struct weapondata{
DWORD dwType;
int iFireType;
float fRange;
int iFiringRate;
int iReload;
int iAmountOfAmmunition;
int iDamage;
float fSpeed;
float fRadius;
float fLifeSpan;
float fSpread;
DWORD dwPadding; //padding (0xAA)
//до этого момента все совпадает, далее - расхождения
vFireOffset m_vFireOffset; //вектор
DWORD _f3C; //всегда нуль
DWORD _f40; //целочисленное значение
DWORD _f44; //DWORD ? unknown
vFireOffset m_vFireOffset; //вектор
vFireOffset m_vFireOffset; //вектор
DWORD _f60;
DWORD _f64;
DWORD _f68; //предположительно, слот оружия
DWORD _f6C; //padding (0xAA)
};Последние четыре поля - никак не float, а DWORD.Это не "описания программистов", это обычные структуры. Вроде все лежит на поверхности, если что-то не понятно, то лучше спрашивай... И раз ты начал говорить про то, "как загружается и функционирует структура", то как раз целесообразнее бы все оформить в видe struct, которые можно удобно использовать как в 010, так и потом, при желании, перетащить в C++ классы (CWeaponModelInfo, верно? из *.elf, да "как у R*").Очень не удобно пользоваться описаниями программистов - без комментариев тяжело разбираться. Тем более самому такое описание точно не сделать - для этого нужно иметь специальные знания, программу по чтению данных dtz можно написать и без них на формальном языке, который можно потом перевести в delphi. По weapon.xml это можно сделать в любой момент - там всё очень просто.
И, кстати, Lego прав, попробуй лучше в Delphi оформить описание в виде структуры, так ведь гораздо удобнее, не надо читать все по одному параметру, когда можно представить все в виде полей одной record-записи.
#420
Отправлено 14 August 2011 - 13:32
вообщем-то, соответствие типов такое (WinDef.h), думаю, логично бы его придерживаться:
typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef float FLOAT;
> так ведь гораздо удобнее,
к тому же так получается быстрее: как я помню с моего институтского опыта, 1000 раз считать 1 байт дольше, чем 1 раз считать 1000 байт.
Ответить

Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных














