Doo/w3e To Jass (by Raichu)

Добавлен , опубликован
Программы
Предназначение:
Работа с кодом
Написал свой конвертор war3map.doo( и war3map.w3e) в JASS-код, в другую версию war3map.doo и создание пустого war3map.doo.


(В архиве exe файл, пример doo файла, результат работы, и исxoдный код )


Обновил, теперь устанавливает начальный процент "здоровья" декорациям .
Обновление 29.03.13 17:40: Удалил из кода все левое, (добавил конвертацию из w3e в JASS пока только в исходник, т.к не очень работает :)
Ну и теперь размер JASS файла будет намного меньше.
Обновление 29.03.13 18:14: Убрал лишние нули, теперь JASS-файл стал еще меньше.
!Обновление 29.03.13 18:33: Добавил поддержку старой версии war3map.doo
!!Обновление 29.03.13 21:00: теперь создается пустой и конвертированный doo файл.(если версия 7.11 то создается 8.11 и наоборот)
!!!Обновление 30.03.13 18.30: теперь можно засунуть список декораций в функцию выбрав ей имя , выглядит так:
!!!!Обновление 31.02.13: конвертирует w3e в JASS код. (текстуры, возвышенности, и криво уклоны , но все проходимо)
!!!!!Обновление 31.02.13 18:10: Можно выбрать сохранение только типа почв(текстур), и выбрать какой тип почвы сохранить.
!!!!!Обновление 31.02.13 21:45: Исправил несколько ошибок...



Инструкция: скопировать war3map.doo(и war3map.w3e) в папку с прогой, запустить, в консоли выбрать все что нужно, скопировать результат в код карты и удалить с карты декорации.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
7
11 лет назад
Отредактирован raichu
0
код не твой
  1. Не знал
  2. Ну найди это в поиске
  3. А она нужна? " Вот: Положи файл war3map.doo в папку с прогой и получи код создающий эти декорации."
  4. Код мой. Не знаю что за ануфис и где находятся его исходник, но структуру я забрал отсюда : www.thehelper.net/threads/guide-explanation-of-w3m-and-w3x-files... (1.17)
raichu:
Обновил, теперь устанавливает начальный процент жизнй декорации.
Clamp:
  1. по исходнику — код не твой, а Ануфиса.
xgm.ru/forum/showthread.php?t=30568 , то есть он почти там же где и я взял структуру этого файла. Если говорить чей иcхoдник то точно не его.
З.Ы. и ешё, где он опубликовал исходник своего doo extractor.exe??? , я что-то не нашел в архиве с файлом иcxодного кодa
1
8
11 лет назад
Отредактирован ScorpioT1000
1
есть мысль по незначительному байтодрочингу по этому способу.
если 4к декора = 4к строк = 4к полного имени нативной функции, что никак не сократить оптимизаторами. поэтому нативку можно обернуть внешней функцией типа
function O2 takes... внутри этой функции - нативка, с теми же аргументами. вызов будет дольше, это очевидно.
итого наши 4к строк кода теряют огромное количество знаков = вес в архиве теоретически меньше. теоретически потому что полная строчка нативного вызова так или иначе повторяющийся сектор, именно такие сектора очень хорошо сжимаются.
==================================
и ещё по поводу нового обновления (хп объектов)
есть смысл в том чтобы:
  1. ставить хп только если там стоит не максимум. иначе смысла просто нет для 99% декора ставить 100%. это и строчки кода и + к весу и + к времени работы если это не ставить в загрузку карты
  2. косяк в использовании GetLastCreatedDestructable. оно возвращает бж глобалку, но "возвращение" будет правильным, если в эту глобалку записать предыдущее создание, чего не делается. т.е. если это делать то надо bj_lastCreatedDestructable= создать декорацию. сейчас это работать не может. ещё лучше локальную декорацию с обнуление в конце - опять же экономия на знаках.
  3. всё ещё создаются лишние знаки в указании типа декора - то что есть в скрине. могу дать свой ду файл, если это нужно
сделал тест на "оборачивание" нативок и получил экономию 0.5 Кб через обычный архив, что будет очень похожим и на результат мпку архива.
если смотреть глобально, то предрелизная обработка с исправленными 3мя пунктами - это: небольшая экономия веса карты 3-4 Кб, 0.1-0.7 уменьшение времени загрузки. в принципе, это неплохо.
^ хз что там с форматированием :О:
0
37
11 лет назад
Отредактирован ScorpioT1000
0
Карточка:
как думаешь какой задний фон подойдёт
офк без импорта - только цвет
#1D3F38
еще могу вас удивить великим открытием - есть функция R2SW, которой можно значительно сократить нули
2
7
11 лет назад
Отредактирован raichu
2
я написал еще и конвертер из w3e в jass код :) только там есть некоторые проблемы с координатами и с уклонами, нормально только возвышенности получается конвертировать, но с потерей координат, хотя по моему координаты верные, а значит что-то не так читаю.
Карточка, все готово.
Если хп = 0 значит сразу создается в "разрушенном" виде?
Обновляю , в коде оставил свой конвертер из w3e в JASS код.
war3map.doo из доты не хочет обрабатываться, похоже там что-то сломано :)
ScorpioT1000, видно белые полосы по краям квадрата и мне кажется они выглядят не красиво на черном фоне:)
Обновляю, теперь лишние 0'ли сами убираются :)
0
37
11 лет назад
0
raichu, это не моё, я просто разместил объяву я просто ответил про цвет и нули
1
7
11 лет назад
Отредактирован raichu
1
аааа :) я просто не нашел тут этого поста, думал твоё :)
в доте war3map.doo не поломанный , просто другой версии, сейчас добавлю "поддержку" 7 версии war3map.doo файлов.
1
8
11 лет назад
1
хмм, откуда у него другая "версия" и что там другого?
из 4к строк создания декора были 2 такого вида:
call CD( 'YOks', -7040, 832, 128, 4.76837e-007, 0.956, 0 )
call CD( 'YOks', -7040, 128, 128, 4.76837e-007, 0.956, 0 )
соответственно парсер "e-007" моя не панимат. вручную убрал. мёртвые декорации создаются действительно такими как нужно. правда присутствует сей эффект - при таком создании в тумане войны видно живую декорацию, подходишь - а она мёртвая. в принципе это легко пофиксить временным микропросветом всей карты
для фикса достаточно:
FogEnable(false)
FogEnable(true)
после создания всего декора. видимо не для всех карт это будет отличным вариантом (если кто-то что-то прячет с начала игры), но для меня годится вполне.
миникарта, видимо, из-за отсутствия декора окрашивается не так как обычно. просвет тут не помог, но изменения не категоричные абсолютно.
в вжассе/сжасс надо вырубать оптимизатор синтаксиса - иначе пропадает "оборачивание" функции. быстрота создания декора от оптимизации никак не окупается (эффект незаметен), а вес заметен. сами эффекты оптимизаторов восстанавливаются тем же векс оптимизатором, так что проигрыша тут никакого не будет (оптимизатор векса "оборачивание" не убирает без доп. вмешательства в опции).
новые тесты: благодаря новому состава кода, экономия веса карты 9 Кб, это конечно не 1 Мб, но теперь это ощутимо.
экономия скорости загрузки составила 0.5 секунд. всё тестировалось вместе с виджитайзером + оптимизатором векса. 0.5 сек на их фоне это очень неплохое дополнение. строго рекомендую использовать это для релизных версий.
я бы даже сказал это лучшее что сделано за всё последнее время, которое прошло после того как был сделан видж с оптимизатором векса. если сюда ещё и создание ланда подцепить - будет очень круто.
0
37
11 лет назад
0
на чем писал ? инженерные строки фиксятся заменой %f на %g или наоборот
0
7
11 лет назад
Отредактирован raichu
0
c++ , код в архиве.
но я не заметил проблем со строками
Карточка:
создание ланда подцепить
это уже будет как защита карты, ведь war3map.w3e никуда нельзя убрать? а значит вес карты увеличится.
0
8
11 лет назад
0
где-то писалось, что не всё можно воспроизвести через джасс (склоны уровни - что-то из этого). так что я не знаю как там может получиться, пригодится ли это. довесок к защите будет не хилый, даже если не удастся оптимизировать загрузку/выиграть с весом
0
7
11 лет назад
Отредактирован raichu
0
хмм, откуда у него другая "версия" и что там другого?
старая версия, которая в w3m файлах. Там просто некоторые данные не сохраняются. Весит на 1-2 кбайт меньше.
Добавить конвертацию из 8.11 в 7.11 версию?
Карточка:
не всё можно воспроизвести через джасс (склоны уровни - что-то из этого)
кажется только возвышенности нормально будут создаваться, можно какой-нибудь генератор рельефа написать :)
Новое обновление, теперь создается пустой и конвертированный doo файл.(если версия 7.11 то создается 8.11 и наоборот)(, файл war3map.doo из доты весил бы на 40 кбайт больше если бы был 8.11 версии)
FogEnable(false)
FogEnable(true)
это тоже добавил, если не нужно будет то просто не копировать последнюю строку из скрипта.
0
8
11 лет назад
0
я пустышку брал как раз с в3м файла =)
0
7
11 лет назад
Отредактирован raichu
0
Вот думаю, нужна или нет обратная конвертация из jass кода в doo файл? :)
0
8
11 лет назад
0
с одной стороны это будет как депротект, но в принципе, когда ломают мапы, правят вовсе не декор =). поэтому при депротекте это использовать и не нужно.
но есть и положительная сторона - при пересохранении карты редактор перетыкает все декорации и собирает ду файл, 3-5 секунд. можно сделать обработку не предрелизной, а постоянной, тогда и пересохранение и тестзапуск будет быстрее. а если понадобится декор - восстановить ду файл, залить в редактор и вырубить триг на создание. в принципе, это малоюзабельно (т.е. проще просто хранить оригинальный ду файл), но если не трудно - то можно и сделать в придачу ко всему =).
0
7
11 лет назад
Отредактирован raichu
0
подключил boost для создания парсера , размер exe файла стал 30 кбайт :)
думаю в следующем обновлении сделаю восстановление doo файла, но не все данные получится сохранить.
1
8
11 лет назад
1
вес проги не так важен. не стоит за этим гоняться, как делал, например, Алексей с мдлвисом
байтодрочинг про вес карты обосновывается тем, что каждый лишний файл - нагрузка на среднероссийскийговноинтернет, пока все качают - кто-то ливает, кто-то не может быстро стартануть. байтодрочинг по весу карты имеет реальные и сильные основания.
0
7
11 лет назад
Отредактирован raichu
0
( xgm.ru/files/100/90849/DooToJass.rar ошибку исправил, поломанный war3mapCONV.doo получался. )
0
17
11 лет назад
Отредактирован xpadd91
0
raichu: Я попробовал:
Цель:
1)Моя резервная карта.
2)Вскрыть мой карта вытащить war3map.doo и запусить DooToJass.exe
  1. Все удалять декорация.
  2. Открывает блокнот war3map.doo.j весь код копировать на "Нестадратный код".
Результат ошибка JassHelp, что неправильно код CD
ps.Если без JASSHelper, нажал тест, карта полностью не работает!
Загруженные файлы
0
37
11 лет назад
0
xpadd91, покажи war3map.doo.j
скинь в теге кода
Этот комментарий удален
0
7
11 лет назад
0
Ну функция такая существует уже в карте значит. А вставлял просто в код, или создавал функцию туда вставлял а потом вызывал ее? :)
0
17
11 лет назад
Отредактирован xpadd91
0
raichu:
Ну функция такая существует уже в карте значит. А вставлял просто в код, или создавал функцию туда вставлял а потом вызывал ее? :)
Сейчас попробовал новая пустая карта, и вставлять "Нестадратный код" и неработает карта (JassHelp жалоба).
Извините, я сделал все правильно тег-коды, но там неработает обработка ( значит сайт баг!
ps.Если надо видеозапись что я сделал...?
raichu
DooToJass.exe
File: W3do
Version: 8.11
number: 4550
0
7
11 лет назад
0
Обновление xgm.ru/files/temp/9d1c30a883/DooToJass.rar
Теперь можно поместить список декораций в функцию введя ей имя
0
7
11 лет назад
0
А че с декором? даешь с текстурами земли. В идеале имеются все выбранные виды текстуры, 16 базовых и остальные, которые будут описываться в war3map.j. А зачем нужно это с декором, не представляю.
0
7
11 лет назад
0
что значит с текстурами? в файле декораций не сохраняются их текстуры земли.
Или ты про w3e файл?(где хранится ланд/текстуры..)
ОБНОВЛЕНИЕ xgm.ru/files/temp/136ee89915/DooToJass.rar
НАУЧИЛ war3map.w3e ФАЙЛЫ в JASS код конвертировать. [типы текстур, возвышенности, и уклоны(острые :) ]
Чтобы оставить комментарий, пожалуйста, войдите на сайт.