как работает ZVS Palette Traslation v.2.0 ?
У меня она мгновенно появляется и исчезает. Так и должно быть? :\
sergroj
12 Aug 2009, 18:45
Автор чаще всего тот, кто выкладывает. Пиши, по каким авторы не известны - восстановим.
ZVS Palette Traslation - это которая готовит кадры для дефов? Если да, то она консольная, так и должно быть. Вообще, лучше использовать DefTool и не мучаться.
Это самая первая страница темки программ.
Там вроде написано что изменяет палитру...
Ладно, удалю её+)
DEF Edit v.2.0
DEF Maker v.8.5
Авторы этих двух программ мне неизвестны.
Иногда кстати пишут в самой программе, в справке, а тут нет

выложил их Генадий
http://forum.df2.ru/index.php?showtopic=93...indpost&p=28726
Qwertyus
12 Aug 2009, 21:34
Открываешь свойства файла DEFmaker.exe и на закладке "Версия" просматриваешь пункты "Дополнительные сведения". В пункте "Комментарий" значится "Created by A_K_ZyZop". DEF Edit под руку не попался, но тот же принцип поиска данных, я думаю, будет полезен.
sergroj
12 Aug 2009, 23:23
оба от Александра Карпеко (Z_K_ZyZop)
DefMaker 8.5 - по-моему, не последний.
Посмотрел прогу ZVS - то, о чем я думал.
CrackedMind
12 Aug 2009, 23:39
Гм, я не понял, зачем вам программа для упаковки звуков в snd архив? Звуки прекрасно работают, если их просто в папку Data скинуть...
Qwertyus
13 Aug 2009, 01:11
А вот чтобы не захламляли место в Data. Berserker уже сделал пилотный вариант проги.
Qwertyus, спасиба)
Но я там уже смотрел и в комментарии у меня пусто и везде...
А вообще я не понимаю авторов которые не пишут в своей программе кто автор

sergroj, спасиба) скоро будет ещё)
Heroes PCX Converter v.1.02 (там же где и предыдущие)
В графе автор стоит Heores III эт что значит?
hippocamus
13 Aug 2009, 21:24
Ну подписали так.
Вопрос разработчикам КореВог:
нет ли возможности чтобы файлы из лодов просто находились в распакованном виде в разных каталогах? Например
Heroes3\Data\Units
Heroes3\Data\Buildings
Это было бы удобно для содержания многих модов в одной папке и для тестирования.
Qwertyus
13 Aug 2009, 22:05
Цитата(packa @ 13 Aug 2009, 21:09)
Heroes PCX Converter v.1.02 (там же где и предыдущие)
В графе автор стоит Heores III эт что значит?
Кнопка Info -> внизу надпись Eugene. Или опять нет такой кнопки в программе?
Phoenix - Mod
13 Aug 2009, 22:29
Цитата
Это было бы удобно для содержания многих модов в одной папке и для тестирования.
Скорость работы падает катастрофически, когда в папке больше 1000-и файлов. Всё потому, что винда писалась на СИ с его нуль-терминированными строками и идиотской системой вычисления размера строки, проходясь по ней.
CrackedMind
13 Aug 2009, 22:44
Цитата
Скорость работы падает катастрофически, когда в папке больше 1000-и файлов. Всё потому, что винда писалась на СИ с его нуль-терминированными строками и идиотской системой вычисления размера строки, проходясь по ней
бред. нуль-терминированные строки и винда тут не причем.
Phoenix - Mod
14 Aug 2009, 00:32
Цитата
Масса кода, который вы используете каждый день, содержит эту проблему. Файловые системы часто сделаны так, что класть много файлов в один каталог не стоит, потому что производительность начинает быстро падать при нескольких тысячах файлов. Попробуйте открыть переполненную корзину Windows - это займёт часы, причём зависимость времени открытия корзины от количества файлов в ней явно нелинейная. Там точно где-то есть алгоритм Шлемиэля. Каждый раз, когда что-то, что должно быть линейным по производительности, вдруг оказывается степеннЫм, ищите спрятавшихся Шлемиэлей. Они часто встречаются в библиотеках. Столбик вызовов strcat или strcat в цикле не кричит "n в квадрате", но происходит именно это.
Полная статья:
http://russian.joelonsoftware.com/Articles/BacktoBasics.htmlЧеловек - атворитет в мире ПО, могу поискать глубже. Не спешите бросаться словами.
Добавлено ([mergetime]1250199126[/mergetime]):
Цитата
Когда программа отправляет запрос к операционной системе с требованием предоставить ей содержимое какого-то файла ОС просматривает запись каталога для него, чтобы найти первый кластер этого файла. Затем она обращается к элементу FAT для данного кластера, чтобы найти следующий кластер в цепочке. Повторяя этот процесс, пока не обнаружит последний кластер файла, ОС точно определяет, какие кластеры принадлежат данному файлу и в какой последования. Таким путем система может предоставить программе любую часть запрашиваемого ею файла. Такой способ организации файла носит название цепочки FAT.
А теперь скажите, проще найти строку, сравнивая её с десятком или 10000 файлов? Не забывайте, что имена не сортированы и чтение идёт с hdd. В таких каталогах даже удаление файла (просто стирание информации в загоовках его кластеров) занимает значительное время.
Вы скажите, что всё это имеет такое отношение и не к нуль-терминированным именам файлам. Затрудняюсь ответить, почему Джоэл утверждает обратное, но в паскаль-строках (старых) первый байт содержит размер строки и поэтому
значительную часть файлов можно смело пропускать при несовпадении длины имени, а проверять только нужные.
CrackedMind
14 Aug 2009, 02:14
Цитата
А теперь скажите, проще найти строку, сравнивая её с десятком или 10000 файлов? Не забывайте, что имена не сортированы и чтение идёт с hdd. В таких каталогах даже удаление файла (просто стирание информации в загоовках его кластеров) занимает значительное время.
Проще найти строку сравнивая хэши. Да и зачем в риалтайме постоянно считывать и сравнивать 10К строк? Загрузка происходит один раз при старте программы. И не корретно сравнивать чтение с записью, запись всегда была медленнее.
Да и пример Спольски с корзиной, мимо кассы. Если там и используется функция подсчета длины строки, то время выполнянения оной для всех файлов врядли составит больше 1-2% от общего времени выполнения открытия корзины. Тут большую часть времени сожрет аллокации памяти, загрузка иконок для файлов, а также получение доп. информации.
И опять же, касаясь вопроса Гиппо. Что вы собрались постоянно сравнивать/читать/что-то еще, что боитесь за производительность? ИМХО упаковка в архивы оправданна 2 случаями: 1) скрыть ресурсы от неискушенного взгляда, хотя кому надо тот и формат расковыряет, 2) уменьшить потери на кластерах, да и фрагментация одного файла может быть ниже, чем кучи мелких.
Вообщем не вижу никаких проблем, для добавления нужного функционала

P.S. ОС кэширует чтение списка файлов. Второй раз это чтение будет почти мгновенным.
P.P.S. Никто не запрещает написать свой враппер над строкой, хранящий длину отдельно, или воспользоватся готовым решением (напримре, std::string).
Сравнение таких строк, будет такое же быстрое как и для pascal-строк.
Phoenix - Mod
14 Aug 2009, 02:37
Не знаю насчёт проводника, но Total Commander подгружает иконки файлов динамически, и первоначально видно около 20-и в списке, что не мешает ему тормозить, а при попытке подсчитать кол-во занимаемого файлами места, вообще вводит в долгую кому. Интересно другое. При удалении 100000 файлов из папки, скорость падает до нескольких десятков файлов в секунду с уменьшением до 1-2х. Может быть это проблема Тотала. У проводника спишем ещё на что-нибудь, но может где-то есть именно проблема реализации ФС на уровне ядра. Чтобы реально о чём-то судить, нужны тесты и код ОС.
Цитата
P.P.S. Никто не запрещает написать свой враппер над строкой, хранящий длину отдельно, или воспользоватся готовым решением (например, std::string).
СИ++ - это уже не СИ.
P.S А за примерами программ далеко ходить не нужно. Сперва считывают список имён файлов в объект вроде TList, а потом пофайлово обрабатывают. При
каждом обращении к CreateFileW с очередным именем файла ОС нужно пройтись по 10к имён, сравнивая строки.
Насчёт кэша утверждать не буду, но что в реале тормоза появляются 100%-но, это факт. И разработчики хранят ресурсы в архивах, имхо, не только из-за экономии места.
CrackedMind
14 Aug 2009, 02:47
Цитата
СИ++ - это уже не СИ.
Во-первых, я написал "например". Во-вторых, кто мешает на С враппер написать?
Все таки прошу ответить на мой вопрос. Почему то, о чем просил Гиппо, должно дико тормозить?
Phoenix - Mod
14 Aug 2009, 02:55
В синтетическом тесте при создании 100000 строк в памяти размером 1-100 со случайным набором символов и далее поиску среди них СИ-методом (lstrcmp?) и паскалевским, выбирая только с нужным размером через сравнение одного байта, думаю результаты будут отличаться в разы.
Сомневаюсь, что в Windows используются хэши строк, но утверждать не буду. Хотя почему тогда не ввели хэши строк в таблице импорта? GetProcAddress работал бы значительно быстрее, например.
По поводу вопроса. Распакованный архив Героев тормозит. Если очень принципиален результат, я напишу тулзу для теста скорости доступа к файлам из такой папки. Как вы понимаете, никакими иконками (подгрузкой оных) здесь уже не оправдаться.
Добавлено ([mergetime]1250207705[/mergetime]):
Я уже опускаю потери в месте и огромную дефрагментацию при работе с такой папкой. Вполне логично, что отдельным куском (архивом) хранить данные гораздо целесообразнее.
CrackedMind
14 Aug 2009, 02:56
Цитата
P.S А за примерами программ далеко ходить не нужно. Сперва считывают список имён файлов в объект вроде TList, а потом пофайлово обрабатывают. При каждом обращении к CreateFileW с очередным именем файла ОС нужно пройтись по 10к имён, сравнивая строки. Насчёт кэша утверждать не буду, но что в реале тормоза появляются 100%-но, это факт. И разработчики хранят ресурсы в архивах, имхо, не только из-за экономии места.
Вы собрались открывать и читать 10К файлов каждый кадр игры? Инициализация и загрузка происходит один раз. И потерпеть пару лишних секунд, за счет подросшего кол-ва вызовов функций октрытия/закрытия файлов.
Возьмем игрушку Battle for Wesnoth. Там как раз 10К файлов не упакованных. Тормозов - нет
Phoenix - Mod
14 Aug 2009, 03:01
В Героях 3 ресурсы загружаются по мере надобности. Входите вы в экран города и 50 дефов достаются из архива. Хорошо, что в архиве имена сортированы и это один файл, а если винт будет шуршать постоянно, кому это понравится?
Добавлено ([mergetime]1250208087[/mergetime]):
Герои 3 шли у меня на Пентиуме 133, видеокарте в 8 МБ и если я не ошибаюсь, 32 МБ памяти. Даже при текущей кофигурации окно города грузится с заметным черновым эффектом (когда экран чёрный и ресурсы загружаются), впрочем, как и окно битвы. И несколько секунд здесь крайне неприятны.
CrackedMind
14 Aug 2009, 03:13
Цитата
В Героях 3 ресурсы загружаются по мере надобности. Входите вы в экран города и 50 дефов достаются из архива. Хорошо, что в архиве имена сортированы и это один файл, а если винт будет шуршать постоянно, кому это понравится?
И? 50 != 10К. И если будет в одном файле, то шуршать не будет чтоли?

Цитата
По поводу вопроса. Распакованный архив Героев тормозит.
И непонятно как распакованный архив может тормозить...
Код
struct MyString
{
char *data;
int length;
}
int MyStrCmp(const MyString * s1, const MyString *s2)
{
if ( s1->length > s2->length )
return 1;
else if ( s1->length < s2->length )
return -1;
else
{
// делаем проверку если строки равны
// ...
return 0;
}
}
Сильно это будет отличаться от сравнения Pascal строк?
Phoenix - Mod
14 Aug 2009, 03:18
Речь шла о pchar-ах, а не более высокоуровневых объектах. Тем не менее, спорим мы зря. Если у вас хард не трещит по швам при работе с папками, где множество файлов, это отлично.
CrackedMind
14 Aug 2009, 03:27
Конечно зря

Ваш первый аргумент был - тормоза при нуль-терминированных, что на самом деле капля в море

И таки да, не разрывается
Qwertyus
14 Aug 2009, 04:20
Я, конечно, не программист, но не пойму, почему речь идёт о тысяче файлов в ОДНОЙ папке. Гиппокамус как раз и предложил рассортировать файлы в отдельные папки, что более чем удобно и логично, в зависимости от их функционала. А если речь идёт о переделке геройского движка, то я уже излагал своё мнение по этому поводу в теме "Ремейк" - вообще отказаться от всех старых геройских форматов и перейти к более удобным, что так же не исключает принципа, предлагаемого Гиппокамусом - чтобы всё было логично рассортировано (и упаковано, если надо).
Цитата(Qwertyus @ 14 Aug 2009, 05:20)
Я, конечно, не программист, но не пойму, почему речь идёт о тысяче файлов в ОДНОЙ папке. Гиппокамус как раз и предложил рассортировать файлы в отдельные папки, что более чем удобно и логично, в зависимости от их функционала. А если речь идёт о переделке геройского движка, то я уже излагал своё мнение по этому поводу в теме "Ремейк" - вообще отказаться от всех старых геройских форматов и перейти к более удобным, что так же не исключает принципа, предлагаемого Гиппокамусом - чтобы всё было логично рассортировано (и упаковано, если надо).
Меня радовал движок Fallout tactics: BoS. Все ресурсы хранятся в зип-архиве, при этом работает даже и с распакованными архивами, даже быстрее получалось.
Если не ошибаюсь, подобное было и в Battlefield 2 - работа из zip.
sergroj
16 Aug 2009, 02:43
И в KB.
А с Карзиной дело темное. Сравнение файлов для сортировки там требует раз в 100 больше времени, чем простое сравнение строк.
Цитата(Qwertyus @ 27 Jul 2009, 07:19)
Тем, кто установил новый патч для редактора карт (неважно, от автора или мою адаптацию), предлагаю апдейт - командиры и эмиссары для размещения на карте.
А что они на карте делают? Ну, подбегает к ним герой - и что? Забирает любого приглянувшегося?))
MasterOfPuppets
18 Aug 2009, 18:05
Командиры, если их не включить - обычные монстры. Кто-то играет и так.
Light Fantasy Knight
19 Aug 2009, 14:14
RAD Video Tools (Bink and Smacker)
Что-то не пойму,как это работает.
MasterOfPuppets
19 Aug 2009, 14:17
По-моему, там интуитивно всё понятно. И хэлп инетный есть.
Light Fantasy Knight
19 Aug 2009, 14:24
Какой файл-то надо выбирать? Может я не понял смысл программы. С её помощью можно смотреть видео из Георев?
Qwertyus
19 Aug 2009, 14:38
Есть тема "Обсуждение программ" для вопросов о них. А видео, прежде чем смотреть, надо извлечь из файла Video.vid (папка Data на CD или в каталоге Героев). Программа открывает *.smk-файлы.
MasterOfPuppets
19 Aug 2009, 18:56
Я понял одну великую вещь в DefTool: чтобы деф интерфейса собрался без косяков и тому подобных зелёных пятен, даже при различной индексации кадров - нужно выставить ему тип "Заклинание".
Ни разу не подвело.
Уже писал. Повторю ещё.
Def Tool. Версия 3,2. Не работает опция создания .msk и .msg файлов. Пишет, что ошибка строки ********* в GUI32.dll. Необходимо срочно исправить!
sergroj
23 Aug 2009, 06:50
Кинь мне DefList и ErrorLog.txt.
sergroj
24 Aug 2009, 09:12
а, все, у меня тоже Def List с такой ошибкой есть, просто еще не смотрел
sergroj
24 Aug 2009, 09:33
Ошибку исправил. Теперь еще кое-что полезное сделаю и выложу.
Цитата(Master Of Puppets @ 19 Aug 2009, 21:56)
Я понял одну великую вещь в DefTool: чтобы деф интерфейса собрался без косяков и тому подобных зелёных пятен, даже при различной индексации кадров - нужно выставить ему тип "Заклинание".
Ни разу не подвело.

пришли мне дефлист вместе с кадрами, который генерится неверно.
MasterOfPuppets
26 Aug 2009, 13:33
Вообще, этот деф-лист - h3l, а не hdl, ибо, как я некогда упоминал, ДефТул (любая версия) у меня запоминает ограниченную последовательность кадров. ~ 150. Тогда в случае длинных дефов я сохраняю лучше лист для дефмейкера (h3l), ибо он ограничений не имеет, и ДефТул его открывает полностью.
А проблемы с зелёными пятнами постоянны, когда собираешь деф интерфейса из кадров разной (и даже одинаковой) индексации с использованием h3l. Тогда меняю тип дефа на "Заклинание" - и всё становится ОК.
Итого: не знаю, что именно нужно, и посылаю в личку и здоровый h3l, и "больной" hdl, который вообще перестал открываться, несмотря на наличие кадров.
Добавлено ([mergetime]1251282812[/mergetime]):
А, кадры не прислал. Ну да они - стандартные портреты монстров из TWCRPORT.def.
sergroj
26 Aug 2009, 14:07
У меня нет зеленых пятен.
MasterOfPuppets
26 Aug 2009, 14:15
ХЗ. От системы зависеть не может? А через какой деф-лист собирался деф?
Меня больше интересует ограниченность цепочки кадров в hdl. Не знаю, что глючит - DefPreview или DefTool. Если бы я собирал деф на основе hdl, может, и не было бы пятен.
Небольшой вопрос специалистом по def-файлам: Как определить эээ... "нулевую точку" для юнита?
Я про координаты относительно левого верхнего угла той точки, что является базовой для постановки юнита на поле. Грубо говоря, о точке, в которой юнит ногами касается земли (у) и вокруг которой рисунок "флипается" при обработке поворота (х).
Вертикальную координату можно определить вручную по картинке поворота (может быть правильнее то картике "трупа"?), а горизонтальная всегда в районе: для однохексовых юнитов - 195, для двуххексовых - 220.
Но должна же быть где точная информация. Ведь в игре юниты позиционируются точно и красиво.
Qwertyus
26 Aug 2009, 18:08
Ну, насчёт постоянной точности позиционирования - это ты преувеличиваешь. Некоторые юниты WoG не так уж идеально расположены. А в работа Ехх'а вообще сильные смещения бывают. Официальных координат, как таковых, нет, ведь и у отдельно взятого юнита центральная линия не всегда очевидна.
sergroj
27 Aug 2009, 08:29
По горизонтали - 195 и 217 (см. Grid.pcx из DefTool). А по вертикали я взял за базу 260, но она может врьироваться.
Цитата(Master Of Puppets @ 26 Aug 2009, 17:15)
ХЗ. От системы зависеть не может? А через какой деф-лист собирался деф?
Меня больше интересует ограниченность цепочки кадров в hdl. Не знаю, что глючит - DefPreview или DefTool. Если бы я собирал деф на основе hdl, может, и не было бы пятен.
От системы не должно зависить. Через оба пробовал. Глюк с .hdl я уже поправил - у Дельфи чтение строки из ini было ограничено 2048 символами.
Тогда отправь еще и сами кадры. И как выглядят эти пятна?
Цитата(sergroj @ 27 Aug 2009, 12:29)
По горизонтали - 195 и 217 (см. Grid.pcx из DefTool). А по вертикали я взял за базу 260, но она может врьироваться.
Спасибо. От этого и буду отталкиваться.
Теперь назрел вопрос по формату карты :о)
Фрагмент описания географии карты:
Код
Первый байт - коды поверхности:
00 - Dirt (коричневый) (0F 3F 50) (RGB цвета на карте)
01 - Sand (светло-желтый) (8F CF DF)
02 - Grass (темно-зеленый) (00 40 00)
03 - Snow (белый) (C0 C0 B0)
04 - Swamp (светло-зеленый) (6F 80 4F)
05 - Rough (темно-желтый) (30 70 80)
06 - Subterranean (красный) (30 80 00)
07 - Lava (темно-серый) (4F 4F 4F)
08 - Water (синий) (90 50 0F)
09 - Rock (черный) (00 00 00)
Второй байт - тип рисунка поверхности (их очень много)
...
Вопрос: как сопоставить значение этого второго байта, описывающего тип рисунка, с именем файла соответствующей текстуры из .def для указанного в первом байте типа поверхности?
Вижу, например, группу: "03 16 00 00 00 00 43". Здесь:
03 - тип поверхности snow.
43 - два флипа по обеим осям
А вот 16 - это - ...? Рисунок в Snowtl.def называется tsns002.pcx
CrackedMind
31 Aug 2009, 21:52
Эм, какие ж тут трудности?

Там же все написано

16 - это номер кадра в блоке.
Цитата(CrackedMind @ 01 Sep 2009, 01:52)
Эм, какие ж тут трудности?

Там же все написано

16 - это номер кадра в блоке.
Спасибо.
Когда проверял эту гипотезу - совсем забыл про "из хекса - в дец" :о)
4 sergroj
по справке к редактору карт (MapEditHelp):
читаю: "Урочная застава
.. чтобы прости .."
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.