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
24
11 лет назад
0
Карточка:
боже, как можно быть таким тупым
В чем тупость заключается? Поясни
0
24
11 лет назад
0
quq_CCCP:
Пытался выложить J файл мили карты чтобы вы увидели что там нету никаких разрушаемых декораций, но вылетел какой то баг, ошибка при загрузке и страница повисла =(
Ок, допускаю что я не прав и мог использовать что-нибудь кроме cjass дефайна, но не запомнить - как было сказано - это черт знает когда было.
2
30
11 лет назад
2
Итак.
  1. боян трех лет от роду.
  2. неумение пользоваться поиском.
  3. отсутствие какой-либо документации.
  4. по исходнику — код не твой, а Ануфиса.
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 или наоборот
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.