Перейти к содержимому


Фотография

GTA IV Placement Tool


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 65

#1 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 25 February 2009 - 17:58

Placement Tool v2.2.

Программа для работы с Windows и XENON Placement файлами GTA IV.

Автор: Dageron
ICQ:713-790

Выражаю благодарность (в алфавитном порядке): Chipsman, GooD-NTS, Seemann.


Основные возможности:
Просмотр/изменение данных любых секций .WPL/.XPL файлов*.
Добавление/Дублирование/Удаление данных всех секций.
Создание новых .WPL/.XPL файлов.


Дополнительно:
Сохранение в .WPL/.XPL.
Экспортирование данных в текстовый файл для последующего анализа и редактирования.
Импорт данных из текстовых файлов.
Быстрое копирование нужных данных.
Удобный поиск по всем секциям.
Представление данных в виде таблицы.**
Возможность быстрого смещения/поворота моделей основной секции (группами).
Возможность работы с хешами/названиями моделей (по выбору)***.
Возможность вычисления названия модели по хешу**** и хеша по названию.
Быстрое создание резервных копий.

* Большинство данных до сих пор не известно, просто типизированно. Экспериментируйте! Если вы нашли назначение того или иного параметра, обязательно известите меня об этом.
** Для непосредственной работы с ячейками таблицы включите соответсвующий пункт в настройках (.
*** Для того чтобы изменение параметра пришло в действите надо перезагрузить файл. Использование названий может незначительно увеличить скорость считывания.
**** Хеши берутся их файла hashes.ini, лежащего в корневой директории программы. Добавляя в игру свой объект, не забудьте прописать его в этом файле, предварительно вычислив хеш. Если необходимо, используйте Hash Calculator в меню Options.


Вы можете ассоциировать *.WPL файлы с этой программой (используйте "Открыть с помощью"->"Placement Tool.exe"), так же можно использовать ее в качестве подключаемого модуля в OpenIV (см. http://www.openiv.com/ )

Скачать


Изображение Изображение
ИзображениеИзображение
Изображение Изображение
Изображение Изображение
Изображение Изображение

Сообщение отредактировал Dageron: 03 May 2009 - 15:35

в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#2 Seemann

Seemann

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Россия, Иркутск/СПб

Отправлено 25 February 2009 - 18:33

Показывать пользователю хэш вообще бессмысленно. Работа должна вестись со строкой. Поле Unknown3 - float Опечатка в слове Platform

#3 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 26 February 2009 - 09:32

Мелкие глюки исправил, но все-таки след.версия должна включать работу с большим числом секций. Хеш есть число, которое определяет собой идентификатор модели. Конечно, я могу вывести в список дополнительный столбец с именами, но вот вопрос - откуда вообще взялись хеши имен? Всмысле, в каких файлах объявляется название модели и соответствующий ей хеш?
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#4 Seemann

Seemann

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Россия, Иркутск/СПб

Отправлено 26 February 2009 - 09:51

Хэш берется из самого имени модели, путем конвертирования его при помощи специальной функции. Более подробно здесь

Ты можешь получить хэш из строки, но не можешь получить строку из хэша (кроме как перебором возможных вариантов)

#5 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 02 March 2009 - 18:43

парочка замечаний: - когда юзер запускает программу и еще не открыл ниодного файла, то по идее, контекстное меню не должно появлятся.. - было бы логичнее, что когда вызываешь контекстное меню, то выделялась бы строка, которая в момент клика находится под курсором мыши...

#6 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 03 March 2009 - 12:37

Исправлено).

Добавил между делом функцию полноценного просмотра и редактирования секции 8, а так же начальный просмотр секции 9. Надо сказать вид она имеет ужасающий:
http://www.picamatic...8_PlacementTool

Данные есть, они типизированы и теперь до кучи еще и будут всем доступны к редактированию (весь вопрос в их назначении).
P.S. Chipsman, а у тебя как успехи?
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#7 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 03 March 2009 - 13:29

нормально, постепенно делаю, сделал все вспомагательные функции, которые мне нужны.. сделал редактирование секции инст, скоро будут все остальные, и потом только функцию экспорта доделать и все) на счет 9й секции.. думаю в каком виде представлять информацию, ато в таблице как-то оно не то скролить постоянно влево-вправо, у меня в первом релизе пока будет тупо выводится инфа, а дальше подумаю как лучше переделать..

#8 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 03 March 2009 - 13:33

Мне кажется, тут лучше чтобы хеш автоматически вычислялся по названию (т.е. человек меняет название и хеш меняется автоматически), но вот как с ним в Delphi работать пока не знаю. У тебя просмотр уже всех секций реализован? (особенно насчет пятнядцатой интересно конечно же)
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#9 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 03 March 2009 - 13:43

просмотр реализован, только не уверен что вывожу все что там есть, я ее оставил на потом у меня сейчас считаестся что строка имеет аж 92 байта, но возможно действительно она меньше и после нее идут еще значения, какие я пока пропускаю

Прикрепленные файлы

  • Прикрепленный файл  wpl006.jpg   123.78К   20 загрузок


#10 GooD-NTS

GooD-NTS

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 494 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород


Отправлено 03 March 2009 - 14:25

Dageron, тебе нужна стандартная хеш функция от IV, для делфи?

Сообщение отредактировал GooD-NTS: 03 March 2009 - 14:26

Изображение

RAGE research project, public side: OpenIV (Журнал изменений План развития) | openFormats


#11 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 03 March 2009 - 14:42

дак в теме GXT она же ж есть на с++, ее легко переделать на делфи..
и походу она ему не подойтет, так как он использует для хеша не лонгворд а обычный интегер, хотя хз

#12 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 03 March 2009 - 14:49

GooD-NTS
Конечно пригодилась бы).
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#13 GooD-NTS

GooD-NTS

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 494 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород


Отправлено 03 March 2009 - 18:49

вот та которой пользуюсь везде я:
function Hash(strKey: String): Cardinal;
var
 TempHash: Cardinal;
 i: integer;
 key_len: integer;
begin
 strKey:= LowerCase(strKey);
 key_len:= Length(strKey);
 TempHash := 0;
 for i:= 1 to key_len do
  begin
   inc(TempHash, ord(strKey[i]));
   inc(TempHash, (TempHash shl 10));
   TempHash := TempHash xor (TempHash shr 6);
  end;
 inc(TempHash, (TempHash shl 3));
 TempHash := TempHash xor (TempHash shr 11);
 inc(TempHash, (TempHash shl 15));
 Result:= TempHash;
end;

Если уж очень надо чтобы хеши были с "-" (минусами) то можно вроде ничего не переделывать в просто вызывать так:

XX:= integer(Hash("HELLO"));


Изображение

RAGE research project, public side: OpenIV (Журнал изменений План развития) | openFormats


#14 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 04 March 2009 - 11:22

Замечательно, спасибо). Теперь в опциях есть модуль для вычисления хеша.

Прикрепленные файлы


в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#15 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 05 March 2009 - 18:36

Версия обновлена (см. первое сообщение). P.S. Можно удалить старый архив и лишние картинки из БД вики?
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#16 Seemann

Seemann

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Россия, Иркутск/СПб

Отправлено 05 March 2009 - 19:17

Можно удалить старый архив и лишние картинки из БД вики?

удалил

Для единообразия нули тоже следовало бы отображать с точкой (0.0)

Когда появится вывод имени модели вместо хэша? Лазить каждый раз для этого в меню неудобно :rolleyes:

Вы можете асоциировать *.WPL файлы с этой программой (используйте "Открыть с помощью"->"Placement Tool.exe")

лучше чтобы программа сама умела себя ассоциировать

P.S.

Thanks to Seemann

;)

#17 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 06 March 2009 - 10:46

Ну ни версии без грамматических ошибок...

Конечно отображение нормальных названий будет, как только додумаю что делать если пользователь впишет названия тех объектов, которых нет в оригинальной игре (а значит, их значений "название-хеш" нет в hashes.ini).

Сейчас важнее всего сделать к следующей версии следующее:
  • Добавление/удаление/дублирование объектов в секциях.
  • Открытие, просмотр и редактирование *.xpl.
  • Возможность импорта из экспортированных файлов.
  • Возможность более расширенной работы с недокументированными секциями.

в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#18 Seemann

Seemann

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Россия, Иркутск/СПб

Отправлено 06 March 2009 - 11:10

что делать если пользователь впишет названия тех объектов которых нет в оригинальной игре

пользовательские названия можно сохранять в отдельный файл (например, CustomNames.ini). А может быть их даже можно сохранять в конец файла WPL и читать потом оттуда. Я так делал при сохранении имен глобальных переменных из скрипта в файл main.scm

#19 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 06 March 2009 - 11:16

Сделаю с дополнительным *.ini, т.к. не уверен будет ли игра читать файлы где в конец что-то записано (хотя если прочтет, можно и вообще собственную "секцию" сделать).
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#20 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 07 March 2009 - 18:02

Все готово, теперь можно работать с моделями в первой секции совершенно по-новому.
http://www.picamatic...9_PlacementTool

Функцию работы с названиями надо будет включать в опциях т.к. если выводить в таблицу названия то весь процесс загрузки одного *.wpl файла может затянуться на пару секунд (а где по 500 объектов и вообще секунд на пять-шесть).
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012




Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных