Jump to content

Extra tools/ru: Difference between revisions

From DDraceNetwork
No edit summary
No edit summary
 
(84 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
<languages />
 
'''''Дополнительные утилиты''''' предназначены для некоторых задач, не связанных с игровым процессом, по типу оптимизации карт для мапперов, или отладки и тестирования для разработчиков. Эти утилиты должны запускаться из консольного интерфейса (вроде Командной строки в Windows или Терминала в системах на базе ядра Linux) либо путем добавления содержащего их каталога в системную переменную PATH, либо путем запуска непосредственно из содержащего каталога.
'''''Дополнительные утилиты''''' предназначены для некоторых задач, не связанных с игровым процессом, по типу оптимизации карт для мапперов, или отладки и тестирования для разработчиков. Эти утилиты должны запускаться из консольного интерфейса (вроде Командной строки в Windows или Терминала в системах на базе ядра Linux) либо путем добавления содержащего их каталога в системную переменную PATH, либо путем запуска непосредственно из содержащего каталога.


<span id="Getting_the_extra_tools"></span>
<span id="Getting_the_extra_tools"></span>
== Получение дополнительных утилит ==
== Получение дополнительных инструментов ==


Эти утилиты '''не''' поставляются в комплекте с бинарными файлами DDNet со [https://ddnet.org/downloads/ страницы загрузки]. При этом дополнительные инструменты, связанные с маппингом, можно скачать для различных платформ на странице "Загрузки" под названием "Графические инструменты".
Эти утилиты '''не''' поставляются в комплекте с бинарными файлами DDNet со [https://ddnet.org/downloads/ страницы загрузки]. При этом дополнительные инструменты, связанные с маппингом, можно скачать для различных платформ на странице "Загрузки" под названием "Графические инструменты".
Line 10: Line 11:


<span id="List_of_extra_tools"></span>
<span id="List_of_extra_tools"></span>
== Список дополнительных утилит ==
== Список дополнительных инструментов ==


Смотрите ниже список и описание инструментов.
Смотрите ниже список и описание инструментов.


<span id="config_retrieve"></span>
=== config_retrieve ===
=== config_retrieve ===


Line 22: Line 24:
''Доступно с версии: DDNet 9.0''
''Доступно с версии: DDNet 9.0''


<span id="config_store"></span>
=== config_store ===
=== config_store ===


Line 32: Line 35:
''Доступно с версии: DDNet 9.0''
''Доступно с версии: DDNet 9.0''


<span id="crapnet"></span>
=== crapnet ===
=== crapnet ===


  crapnet
  crapnet


Проверяет соединение, устанавливая локальное соединение клиент–сервер и запуская ping между ними. Сообщает об отброшенных пакетах с сообщением <code>отброшенный пакет</code> и об успехах с <code>cfg = "number"</code>, где "number" варьируется от 0 до 2.
Проверяет соединение, устанавливая локальное соединение клиент–сервер и запуская ping между ними. Сообщает об отброшенных пакетах с сообщением <code>dropped packet</code> и об успехах с <code>cfg = "number"</code>, где "number" варьируется от 0 до 2.


===demo_extract_chat===


=== dilate ===
demo_extract_chat ''демо_файл''


dilate ''Файл_изображения1'' [''Файл_изображения2'' ... ]
Экспортирует все сообщения из демо-файла, вывод осуществляется в консоль.


Это графический инструмент, в основном полезный для мапперов. Он заботится о прозрачных областях, чтобы предотвратить появление черных/белых контуров вокруг ваших изображений в игре, что позволяет избежать проблем со смешиванием и мипмапом. Более подробную информацию смотрите в [http://wiki.polycount.com/wiki/Edge_padding Edge padding].
chat: *** 'nameless tee' entered and joined the game
chat: nameless tee: Hello!
broadcast: Welcome!
teamchat: brainless tee: Hello team!
whisper: -> nameless tee: Hi!


Обратите внимание, что это работает только в файлах изображений RGBA (например, PNG). В файлах JPEG это не сработает.
''Available since: DDNet 17.4''


=== dummy_map ===
===dilate===


  dummy_map
dilate ''image_file1'' [''image_file2'' ... ]


Создает фиктивную, небольшую пустую карту, которая будет использоваться для запуска сервера. См. [https://github.com/ddnet/ddnet/blob/a66379918832e5ad93332bbe0475394b156b5c24/src/engine/shared/network_server.cpp#L371] для получения дополнительной информации.
Это графический инструмент, в основном полезный для мапперов. Он заботится о прозрачных областях, чтобы предотвратить появление черных/белых контуров вокруг ваших изображений в игре, что позволяет избежать проблем со смешиванием и mipmap. Более подробную информацию можно найти в разделе [http://wiki.polycount.com/wiki/Edge_padding Edge padding].


=== fake_server ===
Обратите внимание, что это работает только с файлами изображений RGBA (например, PNG файлы). В файлах JPEG это не будет работать.


fake_server
===dummy_map===


Создает фальшивый(фейковый) сервер для тестирования.
dummy_map


=== map_convert_07 ===
Создаёт фиктивную, небольшую пустую карту, используемую для ванильной антиспуф-функции (<code>sv_vanilla_antispoof</code>). Подробнее можно посмотреть по ссылке: [https://github.com/ddnet/ddnet/blob/a66379918832e5ad93332bbe0475394b156b5c24/src/engine/shared/network_server.cpp#L371].


map_convert_07 ''путь_к_файлу_карты'' ''место_назначение_файла_карты''
===map_convert_07===


Делает <code>''dest_map_file''</code> совместимым с Teeworlds версии 7.x, иначе он был бы совместим '''только''' с Teeworlds версии 6.x. В случае успеха создается действительная 07-совместимая карта назначения; в противном случае возвращается одно из следующих значений:
map_convert_07 ''src_map_file'' ''dest_map_file''
 
Делает файл <code>''dest_map_file''</code> совместимым с версией Teeworlds 7.x, тогда как иначе он был бы совместим только с версией 6.x. В случае успешного выполнения создаётся корректная карта, совместимая с 07-версией; в противном случае возвращается одно из следующих значений:


* Сообщение об использовании, если предоставлены неверные аргументы
* Сообщение об использовании, если предоставлены неверные аргументы
Line 74: Line 85:
''Доступно с версии: DDNet 12.9''
''Доступно с версии: DDNet 12.9''


=== map_diff ===
===map_create_pixelart===
 
map_create_pixelart <image.png> <img_pixelsize> <input_map> <layergroup_id> <layer_id> <pos_x> <pos_y> <quad_pixelsize> <output_map> [optimize=0|1] [centralize=0|1]
 
Создаёт карту с пиксель-артом на основе квадов из изображения.
 
Примечание: используйте тайлы слоя назначения для определения позиций и пиксели для размеров.
 
Примечание: установите значение img_pixelsize в 0, чтобы использовать максимально возможный размер.
 
Примечание: установите значение quad_pixelsize в 0, чтобы использовать то же значение, что и img_pixelsize.
 
Примечание: если у image.png нет идеальной пиксельной сетки, результат может быть некорректным; вручную измените img_pixelsize для улучшения.
 
Опция optimize пытается уменьшить общее количество квадов (по умолчанию: 1).
 
Опции: centralize размещает все точки поворота (пивоты) в одной позиции (значение по умолчанию: 0).
 
===map_diff===
 
map_diff ''map_file1'' ''map_file2''
 
Сравнивает два файла карт и выводит один из следующих результатов:
*нет отличий — означает, что карты идентичны
*<code>different layer numbers</code> — если в одной карте больше слоёв, чем в другой
*<code>different tile layers</code> — если количество слоёв совпадает, но хотя бы один слой отличается
*в противном случае — индексы и позиции флагов, которые различаются.
 
Если карты идентичны, возвращает 0; в противном случае возвращает 1.
 
===map_extract===
 
map_extract ''map_file'' [''directory'']
 
Извлекает содержимое файла ''map_file'' в указанную ''directory''. Если дополнительный аргумент ''directory'' не указан, извлекает в текущую директорию.
 
===map_find_env===


  map_diff ''файл_карты1'' ''файл_карты2''
  map_find_env <input_map> <env_number>


Сравнивает два файла карт, сообщая об одном из них:
Находит квады по заданной оболочке и выводит их индекс и позицию в консоль.
* нет вывода diff, что означает, что карты одинаковые
* <code>different layer numbers</code>, если одна карта имеет больше слоев, чем другая
* <code>different tile layers</code>, если количество слоев одинаково, но хотя бы один слой отличается от другого
* наконец, позиции индекса и флагов, которые отличаются.


Если между картами нет разницы, возвращается 0; в противном случае возвращается 1.
Примечание: позиции найденных квадов указаны относительно их слоёв.


=== map_extract ===
===map_optimize===


  map_extract ''файл_Карты'' [''директория'']
  map_optimize ''source_map_filepath'' [''dest_map_filepath'']


Извлекает содержимое из ''map_file'' в ''directory''. Если дополнительный аргумент ''директория'' не указан, извлечение производится в текущую директорию.
Оптимизирует файл карты в указанном <code>''source_map_filepath''</code> (см. [https://github.com/ddnet/ddnet/pull/3201 как это работает]) и сохраняет результат в заданном <code>''dest_map_filepath''</code>; если <code>''dest_map_filepath''</code> не указан, путь по умолчанию — <code>out/''source_map_filename''.map</code>, с удалением пути и расширения исходного файла.


=== map_optimize ===
Обрати внимание, что имя встроенных оптимизированных изображений изменяется с <code>''originalname''</code> на <code>''originalname''*cut*''newSHA256''</code> (где <code>''newSHA256''</code> — это новый sha256 встроенного оптимизированного изображения). Оно переименовывается, чтобы было понятно, что изображение было оптимизировано, потому что этот инструмент '''действительно''' вносит изменения в mapres, используемые файлом карты.


map_optimize ''Исходный_путь_к_файлу_карты'' [''место_назначение_файла_карты'']
При неудачном открытии исходного или целевого файла возвращает -1.


Оптимизирует файл карты в указанном <code>"source_map_file path"</code> (см. [https://github.com/ddnet/ddnet/pull/3201 как это работает]) и сохраняет выходные данные в заданном <code>"dest_map_filepath"</code>; если <code>"dest_map_filepath"</code> не задан, вывод путь по умолчанию равен <code>out/"source_map_filename".map</code>, удаляя путь и расширение исходного файла.
''Доступно с:'' DDNet 15.5.4


Обратите внимание, что название оптимизированных встроенных изображений изменено с <code>"originalname"</code> на <code>"originalname"_cut_"newSHA256"</code> (где <code>"newSHA256"</code> - это новый sha256 встроенного оптимизированного изображения). Он переименован для того, чтобы было ясно, что он был оптимизирован, потому что этот инструмент "будет" вносить изменения в карты, используемые файлом карты.
===map_replace_area===


Если не удалось открыть исходный или целевой файл, возвращается -1.
map_replace_area <from_map> <from_x> <from_y> <to_map> <to_x> <to_y> <width> <height> <output_map>


''Доступно с версии: DDNet 15.5.4''
Заменяет область одной карты на область из другой карты.


=== map_replace_image ===
Примечание: используйте тайлы игрового слоя в качестве ориентира для координат и размеров.


map_replace_image ''файл_карты1'' ''файл_карты2'' ''имя_изображения'' ''файл_изображения''
===map_replace_image===


Заменяет изображение ''imagename'', находящееся в файле карты с именем ''map_file1'', на изображение с файловым путем ''image_file'' и сохраняет в файл карты с именем ''map_file2.map''.
map_replace_image ''map_file1'' ''map_file2'' ''imagename'' ''image_file''


Обратите внимание:
Заменяет изображение ''imagename'', находящееся в карте с именем файла ''map_file1'', на изображение из файла ''image_file'' и сохраняет в карту с именем файла ''map_file2.map''.
* Имена файлов обеих карт должны быть относительно папки DDNet по умолчанию пользователя.
* Путь к файлу нового изображения может быть абсолютным или относительным к текущему каталогу.


=== map_resave ===
Обрати внимание:
*Оба имени файла карты должны быть указаны относительно папки DDNet по умолчанию пользователя
*Путь к новому изображению может быть абсолютным или относительным к текущему каталогу


map_resave ''файл_карты'' ''файл_изображения''
===map_resave===


Обновляет файл карты ''map_file.map'' с помощью предоставленного файла ''image_file''.
map_resave ''source_map.map'' ''destination_map.map''


Статус ошибки 255 возвращается, если 1) предоставлено число аргументов, отличное от 2, 2) если файл ''map_file.map'' недопустим, или 3) если файл ''image_file'' не является допустимым файлом изображения (например, это текстовый файл); в противном случае возвращается 0.
Считывает карту ''source_map.map'' и записывает её обратно в ''destination_map.map'' с использованием последнего формата карты.


=== packetgen ===
===packetgen===


  packetgen
  packetgen


Генерирует и отправляет сетевые пакеты на 127.0.0.1:8303 (localhost, порт сервера по умолчанию) для проверки связи с локальным экземпляром сервера.
Генерирует и отправляет сетевые пакеты на 127.0.0.1:8303 (localhost, в порт сервера по умолчанию) для проверки связи с локальным экземпляром сервера.
 
===stun===
 
stun ''address''
 
Отправляет запрос [[wikipedia:STUN|STUN]] на сервер и проверяет ответ.
 
===twping===
 
twping ''server''[:''port'']
 
Измеряет пинг до сервера teeworlds, запрашивая информацию о сервере. Значение ''port'' по умолчанию — 8303.


=== unicode_confusables ===
===unicode_confusables===


  unicode_confusables ''строка1'' ''строка2''
  unicode_confusables ''string1'' ''string2''


Сравнивает ''string1'' со ''string2'' и сообщает, являются ли они "путаемыми", т.е. если символы "одинаковы" и могут вызвать путаницу. Чтобы это сработало, символы с акцентами или другими элементами вокруг них считаются "перепутанными" с базовым символом. Таким образом, ''aa'' и ''aá'' можно спутать ("á" считался как "a"), а ''aa'' и ''ab'' - нет.
Сравнивает ''string1'' с ''string2'' и сообщает, являются ли они «путающимися», то есть «равными» символами, которые могут вызвать путаницу. Для этого символы с акцентами или другими элементами вокруг них считаются «путающимися» с базовым символом. Таким образом, ''aa'' и ''aá'' являются путающимися (''á'' считается как ''a''), тогда как ''aa'' и ''ab'' нет.


Если они перепутаны, возвращается <code>not_confusable=0</code>, в противном случае возвращается <code>not_confusable=1</code>.
Если они являются путающимися, возвращает <code>not_confusable=0</code>, в противном случае возвращает <code>not_confusable=1</code>.


''Доступно с версии: DDNet 10.3.5''
''Доступно с версии: DDNet 10.3.5''


'''Новое в DDNet версии 12.9:''' Поддержка Unicode 12.0 и название инструмента было переименовано из ''confusables'' в ''unicode_confusables''.
''Новое в DDNet 12.9:'' поддержка Unicode 12.0, и имя инструмента было переименовано с ''confusables'' в ''unicode_confusables''.


=== uuid ===
===uuid===


  uuid ''имя''
  uuid ''name''


Выводит uuid для указанного ''имя''.
Выводит uuid для заданного ''name''.


Система uuid была реализована таким образом, чтобы ее могли легко расширять независимые авторы без коллизий, чего не позволяла старая система - с возрастающими целыми числами. Это работает для сообщений движка и игры, предметов и событий снапшотов.
Система uuid была реализована так, чтобы её могли легко расширять независимые разработчики без коллизий, чего не позволяла старая система с возрастающими целыми числами. Это работает для сообщений движка и игры, элементов снимков и событий.


Выходит со статусом ошибки 255, если не указано ''name''.
Завершает работу с кодом ошибки 255, если ''name'' не указан.


''Доступно с версии: DDNet 10.6.1''
''Доступно с версии: DDNet 10.6.1''

Latest revision as of 14:00, 15 June 2025

Дополнительные утилиты предназначены для некоторых задач, не связанных с игровым процессом, по типу оптимизации карт для мапперов, или отладки и тестирования для разработчиков. Эти утилиты должны запускаться из консольного интерфейса (вроде Командной строки в Windows или Терминала в системах на базе ядра Linux) либо путем добавления содержащего их каталога в системную переменную PATH, либо путем запуска непосредственно из содержащего каталога.

Получение дополнительных инструментов

Эти утилиты не поставляются в комплекте с бинарными файлами DDNet со страницы загрузки. При этом дополнительные инструменты, связанные с маппингом, можно скачать для различных платформ на странице "Загрузки" под названием "Графические инструменты".

Эти и другие дополнительные инструменты (перечисленные ниже) можно найти на GitHub в каталоге src/tools.

Список дополнительных инструментов

Смотрите ниже список и описание инструментов.

config_retrieve

config_retrieve Имя_карты

Извлекает конфигурацию, встроенную в файл карты DDNet map_file и сохраняет ее в файле конфигурации карты DDNet с тем же именем (например, "Kobra 4.map" возвращает "Kobra 4.cfg").

Доступно с версии: DDNet 9.0

config_store

config_store Имя_Карты

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

Если нет разницы между конфигурацией для сохранения и конфигурацией, встроенной в карту, то операция будет отменена с сообщением configs coincide, not updating map.

Доступно с версии: DDNet 9.0

crapnet

crapnet

Проверяет соединение, устанавливая локальное соединение клиент–сервер и запуская ping между ними. Сообщает об отброшенных пакетах с сообщением dropped packet и об успехах с cfg = "number", где "number" варьируется от 0 до 2.

demo_extract_chat

demo_extract_chat демо_файл

Экспортирует все сообщения из демо-файла, вывод осуществляется в консоль.

chat: *** 'nameless tee' entered and joined the game
chat: nameless tee: Hello!
broadcast: Welcome!
teamchat: brainless tee: Hello team!
whisper: -> nameless tee: Hi!

Available since: DDNet 17.4

dilate

dilate image_file1 [image_file2 ... ]

Это графический инструмент, в основном полезный для мапперов. Он заботится о прозрачных областях, чтобы предотвратить появление черных/белых контуров вокруг ваших изображений в игре, что позволяет избежать проблем со смешиванием и mipmap. Более подробную информацию можно найти в разделе Edge padding.

Обратите внимание, что это работает только с файлами изображений RGBA (например, PNG файлы). В файлах JPEG это не будет работать.

dummy_map

dummy_map

Создаёт фиктивную, небольшую пустую карту, используемую для ванильной антиспуф-функции (sv_vanilla_antispoof). Подробнее можно посмотреть по ссылке: [1].

map_convert_07

map_convert_07 src_map_file dest_map_file

Делает файл dest_map_file совместимым с версией Teeworlds 7.x, тогда как иначе он был бы совместим только с версией 6.x. В случае успешного выполнения создаётся корректная карта, совместимая с 07-версией; в противном случае возвращается одно из следующих значений:

  • Сообщение об использовании, если предоставлены неверные аргументы
  • failed to open source map, если при открытии карты источников произошла ошибка
  • failed to open destination map если при открытии карты назначения произошла ошибка
  • error loading storage если по какой-то причине не удалось открыть хранилище
  • failed to open image file если произошла ошибка при открытии PNG-изображения
  • invalid image format при неправильном форматировании PNG.

Доступно с версии: DDNet 12.9

map_create_pixelart

map_create_pixelart <image.png> <img_pixelsize> <input_map> <layergroup_id> <layer_id> <pos_x> <pos_y> <quad_pixelsize> <output_map> [optimize=0|1] [centralize=0|1]

Создаёт карту с пиксель-артом на основе квадов из изображения.

Примечание: используйте тайлы слоя назначения для определения позиций и пиксели для размеров.

Примечание: установите значение img_pixelsize в 0, чтобы использовать максимально возможный размер.

Примечание: установите значение quad_pixelsize в 0, чтобы использовать то же значение, что и img_pixelsize.

Примечание: если у image.png нет идеальной пиксельной сетки, результат может быть некорректным; вручную измените img_pixelsize для улучшения.

Опция optimize пытается уменьшить общее количество квадов (по умолчанию: 1).

Опции: centralize размещает все точки поворота (пивоты) в одной позиции (значение по умолчанию: 0).

map_diff

map_diff map_file1 map_file2

Сравнивает два файла карт и выводит один из следующих результатов:

  • нет отличий — означает, что карты идентичны
  • different layer numbers — если в одной карте больше слоёв, чем в другой
  • different tile layers — если количество слоёв совпадает, но хотя бы один слой отличается
  • в противном случае — индексы и позиции флагов, которые различаются.

Если карты идентичны, возвращает 0; в противном случае возвращает 1.

map_extract

map_extract map_file [directory]

Извлекает содержимое файла map_file в указанную directory. Если дополнительный аргумент directory не указан, извлекает в текущую директорию.

map_find_env

map_find_env <input_map> <env_number>

Находит квады по заданной оболочке и выводит их индекс и позицию в консоль.

Примечание: позиции найденных квадов указаны относительно их слоёв.

map_optimize

map_optimize source_map_filepath [dest_map_filepath]

Оптимизирует файл карты в указанном source_map_filepath (см. как это работает) и сохраняет результат в заданном dest_map_filepath; если dest_map_filepath не указан, путь по умолчанию — out/source_map_filename.map, с удалением пути и расширения исходного файла.

Обрати внимание, что имя встроенных оптимизированных изображений изменяется с originalname на originalname*cut*newSHA256 (где newSHA256 — это новый sha256 встроенного оптимизированного изображения). Оно переименовывается, чтобы было понятно, что изображение было оптимизировано, потому что этот инструмент действительно вносит изменения в mapres, используемые файлом карты.

При неудачном открытии исходного или целевого файла возвращает -1.

Доступно с: DDNet 15.5.4

map_replace_area

map_replace_area <from_map> <from_x> <from_y> <to_map> <to_x> <to_y> <width> <height> <output_map>

Заменяет область одной карты на область из другой карты.

Примечание: используйте тайлы игрового слоя в качестве ориентира для координат и размеров.

map_replace_image

map_replace_image map_file1 map_file2 imagename image_file

Заменяет изображение imagename, находящееся в карте с именем файла map_file1, на изображение из файла image_file и сохраняет в карту с именем файла map_file2.map.

Обрати внимание:

  • Оба имени файла карты должны быть указаны относительно папки DDNet по умолчанию пользователя
  • Путь к новому изображению может быть абсолютным или относительным к текущему каталогу

map_resave

map_resave source_map.map destination_map.map

Считывает карту source_map.map и записывает её обратно в destination_map.map с использованием последнего формата карты.

packetgen

packetgen

Генерирует и отправляет сетевые пакеты на 127.0.0.1:8303 (localhost, в порт сервера по умолчанию) для проверки связи с локальным экземпляром сервера.

stun

stun address

Отправляет запрос STUN на сервер и проверяет ответ.

twping

twping server[:port]

Измеряет пинг до сервера teeworlds, запрашивая информацию о сервере. Значение port по умолчанию — 8303.

unicode_confusables

unicode_confusables string1 string2

Сравнивает string1 с string2 и сообщает, являются ли они «путающимися», то есть «равными» символами, которые могут вызвать путаницу. Для этого символы с акцентами или другими элементами вокруг них считаются «путающимися» с базовым символом. Таким образом, aa и являются путающимися (á считается как a), тогда как aa и ab — нет.

Если они являются путающимися, возвращает not_confusable=0, в противном случае возвращает not_confusable=1.

Доступно с версии: DDNet 10.3.5

Новое в DDNet 12.9: поддержка Unicode 12.0, и имя инструмента было переименовано с confusables в unicode_confusables.

uuid

uuid name

Выводит uuid для заданного name.

Система uuid была реализована так, чтобы её могли легко расширять независимые разработчики без коллизий, чего не позволяла старая система с возрастающими целыми числами. Это работает для сообщений движка и игры, элементов снимков и событий.

Завершает работу с кодом ошибки 255, если name не указан.

Доступно с версии: DDNet 10.6.1