Добавлен
Хочу вытащить параметры объектов из w3o и засунуть их в Excel. В Excel отредактировать всё нужное - и обратно запихнуть в w3o. Но для этого мне нужно знать как правильно читать данный формат - где бы покурить эту тему?
на случай если уже есть утилиты, позволяющие перегонять данные из w3o в Excel и обратно - также буду благодарен за ссылки.

Принятый ответ

Widgitizer в помощь, он сам преобразует данные редактора в слк таблицы.
Ну или в пустую карту киньте файл, и редактируйте...
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
13
6 лет назад
0
Steal nerves, ну да, я видел в папке аутпут сгенерированную карту, но где находятся слк файлы? и как слк преобразовать обратно в w3o? Извиняюсь если я туплю, но что-то не понимаю
0
27
6 лет назад
Отредактирован MpW
0
Cancel, в генерированной карте, открываешь mpq-архиватором карту, и смотришь slk и тексты. Юниты и абилки например в папке Units находятся и др. Обратно в w3o преобразует программа w3map Restorer (но не всегда работает, в сложных картах типа доты пишет: "не удалось извлечь файлы", и дальше не может, все. Хотя нет, также и простые не работают тоже пишет: "не удалось извлечь файлы" )
1
29
6 лет назад
1
w3map Restorer мего криво восстанавливает объекты из slk
И да не забываем что в слк хранится 3 или 4 уровня абилок, всё остальное всё ровно в объектах
0
13
6 лет назад
0
16GB, значит - остаётся только писать свою утилиту для двухсторонних преобразований w3o?
0
29
6 лет назад
0
Cancel,
Да, но там огромное количество подводных камней и исключений, это сложная очень задача на мой взгляд. Не на одну сотню часов. Чтобы сделать полностью рабочую без багов. Ну зато был бы инструмент который бы позволял восстановить объекты нормально. Сейчас его нет.
Вообще ещё был какой-то депротектор восстанавливающий объекты, на php и вроде с xgm, но он был у узкого круга лиц и точно чел с ником Атилла *(в скайпе по крайней мере) я его не знаю, но у него был. Вряд ли найдём его конечно.
0
13
6 лет назад
Отредактирован Cancel
0
16GB, я в английском слабоват, так что в англоязычных статьсях не всё понимаю. Я, вроде, нашёл инфу как распарсить файл world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=427...
там почти для всего указывается сколько байт весит та или иная информация.
но дошёл до момента
*Unit definition structure:
char[4]: original unit ID (get the IDs from "Units\UnitData.slk" of war3.mpq)
char[4]: new unit ID. If it is on original table, this is 0, since it isn't used.
int: number m of modifications for this unit
m times a modification structure*
*Modification structure:
char[4] modification ID code (get the IDs from "Units\UnitMetaData.slk" of war3.mpq)
int: variable type* t (0=int, 1=real, 2=unreal, 3=String,...)
t type: value (length depends on the type t specified before)
int: end of unit definition (usually 0)
где указано, что значение поля имеет размер, зависимый от типа значения. Но я ни где не нашёл информации о том, какой тип сколько весит (помимо стандартный int, real, string)
мб кто-то подскажет. В идеале нужна таблица с типами значений и описанием того, сколько эти значения весят и как их читать
0
29
6 лет назад
0
Cancel,
Ну садись отлаживай значит, ты на чём писать будешь?
0
13
6 лет назад
Отредактирован Cancel
0
VBA - для взаимодействия с Excel
Всё ещё ни где не нахожу информацию о типах значений и как их читать
2
6
6 лет назад
Отредактирован BaHeK
2
Но я ни где не нашёл информации о том, какой тип сколько весит (помимо стандартный int, real, string)
мб кто-то подскажет. В идеале нужна таблица с типами значений и описанием того, сколько эти значения весят и как их читать
Если по-простому, то всё (кроме строк) по 4 байта, а если по-сложному, то в начале статьи все типы описываются.
0
13
6 лет назад
0
BaHeK, где? world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=427...
в процессе игры я могу поверить что всё по 4 байта (если это ссылки на объекты), но в файле сохранения это не прокатит, там ссылаться не на что, кроме самого себя
2
6
6 лет назад
Отредактирован BaHeK
2
Cancel:
BaHeK, где? world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=427...
в процессе игры я могу поверить что всё по 4 байта (если это ссылки на объекты), но в файле сохранения это не прокатит, там ссылаться не на что, кроме самого себя
Вот же все используемые типы описаны.
1.03 Warcraft III Data Format
Warcraft III Data Format has 8 differants format type.
  • Integers
Integers are 4 bytes in Little Endian Order
Example : 1234 Not Equal [00 00 04 D2]h
1234 Equal [D2 04 00 00]h
  • Small Integers
Small integers are from -16384 to 16383. They take 2 bytes and are in Little Endian Order.
  • Reals
Reals are Floats. They take 4 bytes and are in Little Endian Order.
Example : 7654.32 ~ [8F 32 EF 45]h ~ 7654.319824
The last number is the closest number to 7654.32
  • Arrays
1 Array take 1 byte
  • UnitIds
UnitId Integers takes 32 bytes. (46656 possibilities, they are like normal Integers)
  • Flags
Boolean, or "Flags", take 4 bytes. In those 4 bytes, there are 32 bit, which can contains 32 flags. Each Flag can contain only the value 0 (False) or 1 (True).
  • Water
Water Level (In the terrain) takes 4 bytes every cell, it handles 2 bytes for a total of 16 flags, and the 2 lasts for the closest number to the Water Level.
  • Custom Handles
An integer or a flag may share themselves some bytes. A byte may handle two or more differant data.
  • Structured Handles
Unknown. They have various size.
  • Strings / Trigger Strings
Strings are just like arrays of chars finished with a null char (From C++ : "\0").
But, Blizzard uses a special coloring code to change the color of the text shown, these starts with "|c00", and finishes with "|r", most of the times. An example is "|c00BBGGRR|r", in which you replace by the percentage value "BB", "GG", "RR", by the percentage value you want. They are hexadecimal values (0123456789ABCDEF), using 2 digits each, BB = Blue, GG = Green, RR = Red.
In Trigger Strings, if it starts with "TRIGSTR_", with a sensitive case, it is a Trigger String. Trigger Strings are ever keep in the virtual memory when you play a map, which is loaded at the map initalization, as a name of "TRIGSTR_***". Instead of writing the TRIGSTR_<WHATEVER> thing, Warcraft III get a look in the string table, and displays the correct trigger string. They work only for files inside a .w3m or .w3x map, but not with the exception of WTS files, which is used for Trigger Strings files itself. If the following number after "TRIGSTR_" is negative, it will be considered as the first one, called "TRIGSTR_000". And when there are letters, they will be considered as 0, or if an example of "5aa", as 5.
At all, they takes :
  • Strings : (String Length + 1) bytes (Because of the finishing char)
  • Trigger Strings : 12 bytes (Note Trigger Strings handles Strings, so the total is Trigger Strings + Strings)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.