Добавлен , опубликован
Программы
Предназначение:
Работа с картами

Warcraft 3 Custom Object Converter

This program converts Warcraft's .w3u, .w3t, .w3b, .w3d, .w3a, .w3h, .w3q files to JSON/Lua for editing and back. This allows you to edit all custom (modified) game objects like units, abilities, upgrades etc. as a text file, without WorldEdit. It's similar to w3x2lni, but more low-level.
This is a CLI (command-line interface) tool. The output is printed to STDOUT and must be redirected to be saved to file.
The output is not roundtrip-able. The order of elements is not guaranteed.

How to run:

Run from console (cmd.exe or Shell on Linux).
Requirements: Lua 5.3+ (included for Windows)

Options:

--from-json <json data file> - converts to a war3 file
--from-lua <lua data file> - converts to a war3 file
--to-json <war3 data file> - converts to a JSON data file
--to-lua <war3 data file> - converts to a Lua data file

Usage example:

lua w3u-run.lua --to-lua war3map.w3u > unit-data.lua
lua w3u-run.lua --from-lua unit-data.lua > war3map-modified.w3u
lua w3u-run.lua --help
Powershell (Lua not installed system-wide): .\lua w3u-run.lua --help

How to launch on Windows?

  • Option A: Press Win+R, enter cmd.exe and run it. Use cd <folder> to navigate to a folder where you'll work.
  • Option B: In Explorer, Shift+Right Click the folder where you have a .w3u file, select "Open command window here" or in Windows 10 "Open PowerShell window here".

Please report any bugs

I haven't tested this much, please contact me to report bugs if you find anything.

Output example: --to-lua

	utip = {
	  rawcode_unused = "edob",
	  type = 3,
	  type_explanation = "string",
	  value = "Башня бабла 4 (|cffffcc00S|r)"
	} --[[table: 000000000063ee10]],
	utub = {
	  rawcode_unused = "edob",
	  type = 3,
	  type_explanation = "string",
	  value = "Эта башня добывает по |c00FFFF0010 ед|r  золота каждые 10 сек.\13\n\13\n\13\n|cffc3dbffВремя Строительства|r:  2 cекунды"
	} --[[table: 000000000063e590]],
	uubs = {
	  rawcode_unused = "\0\0\0\0",
	  type = 3,
	  type_explanation = "string",
	  value = "OSMA"
	} --[[table: 0000000000614010]],
	uupt = {
	  rawcode_unused = "\0\0\0\0",
	  type = 3,
	  type_explanation = "string",
	  value = "e006"
	} --[[table: 0000000000614a10]]
  } --[[table: 000000000063df50]],
  fields_modified_count = 38,
  rawcode_custom = "e003",
  rawcode_default = "edob"

Output example: --to-json

	"utip": {
	  "rawcode_unused": "edob",
	  "type": 3,
	  "type_explanation": "string",
	  "value": "Башня бабла 4 (|cffffcc00S|r)"
	},
	"utub": {
	  "rawcode_unused": "edob",
	  "type": 3,
	  "type_explanation": "string",
	  "value": "Эта башня добывает по |c00FFFF0010 ед|r  золота каждые 10 сек.\r\n\r\n\r\n|cffc3dbffВремя Строительства|r:  2 cекунды"
	},
	"uubs": {
	  "rawcode_unused": "\u0000\u0000\u0000\u0000",
	  "type": 3,
	  "type_explanation": "string",
	  "value": "OSMA"
	},
	"uupt": {
	  "rawcode_unused": "\u0000\u0000\u0000\u0000",
	  "type": 3,
	  "type_explanation": "string",
	  "value": "e006"
	}
  },
  "fields_modified_count": 38,
  "rawcode_custom": "e003",
  "rawcode_default": "edob"
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
8
1 год назад
0
А разве на XGM еще много лет назад не было правила про ресурсы на русском только?
0
35
1 год назад
0
build, можно писать на двух языках. Причем писать на английском эффективнее
1
6
1 год назад
1
Maxlaid совсем переборщил с центрированием...
0
22
1 год назад
0
1
22
1 год назад
1
Для Windows при запуске через PowerShell нужно прописывать ".\lua", а не "lua"
0
22
1 год назад
0
Не получилось скормить свои данные на примере данных о способностей. В итоговом json'е очень много полей пропущено. В полях не отображается по большей части правильный равкод (rawcode_unused = "\0\0\0\0"). Обратный перевод из json или lua не производится из полученных файлов. И ещё кириллицу преобразовал в аброкадабру, но это мелочь. Аналогично если кириллицу убрать, то тоже самое.
Скидываю примеры.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.