################################################# #### DOTA ALLSTARS v6.41 - ОТКРЫТАЯ ВЕРСИЯ ###### ################################################# Проект "OpenDotA" является попыткой реконструировать свободно редактируемую версию популярной карты DotA Allstars. По функциональности в игре данная версия полностью идентична исходной; восстановлена лишь возможность открытия карты в редакторе World Editor. В силу значительно большего объема, она НЕ предназначена для игры, а только для изучения в редакторе. Что именно было проделано с картой: - Восстановлен листфайл архива карты; - Восстановлены файлы, из-за повреждения/отсутствия которых карта не открывалась редактором; - Восстановлены глобальные переменные, регионы, камеры, звуки, список импорта; - Всем переменным даны понятные имена; - Скрипт карты разделен на отдельные текстовые триггеры, и обработан с целью повышения читаемости: --- Расставлены отступы в коде; --- Имена значительной части функций, их аргументов и локальных переменных заменены на читаемые; - Номерные приказы заменены на строковые - Восстановлены данные объектов (опционально; см. ниже) * Восстановлены юниты на карте; * Применено несколько новых методов, призванных улучшить вид получаемого кода и триггерной структуры: --- Подстановка 64 простых (типа { return 'A000' }) функций в коде --- Отдельно стоящие, вызывающие друг друга, функции были обьединены в функциональные цепи --- Общие, часто используемые функции были внесены в отдельную категорию Core ----- Наиболее часто используемые функции в триггер Core ----- Менее часто используемые функции в триггеры Shared --- Существуют так же триггеры без секций событий, это триггеры для отдельных функциональных ядер, используемых в одном из других триггеров --- Каждый из триггеров представляет собой функционально замкнутую систему и может использовать функции только из ОДНОЙ категории Core (включающей триггер Core и триггеры Shared) либо один из других триггеров Замечание 1: все триггеры восстановлены только в виде jass-кода, так как восстановление триггеров в обычном виде - крайне трудоемкая, да и не всегда возможная вообще процедура (так как часть кода писалась чисто на jass). Почитать про язык jass можно у нас на сайте, например, здесь: http://xgm.ru/articles.php?section=wc3&name=jass_tutorial Замечание 2: Имена по большей части были получены заново и сравнивать их с именами из версии 6.32b бессмысленно. Скачивание и использование Карта доступна в двух версиях: с преобразованными в формат редактора данными объектов (w3*), и без них (slk/txt). В первом варианте данные всех объектов (юнитов, итемов, спеллов, апгрейдов, итд) доступны для просмотра в редакторе без дополнительных усилий. Но, к сожалению, после сохранения в редакторе карта приобретает совершенно убийственное время загрузки - до 5 минут при повторном открытии в редакторе и до 50 (!!) - при запуске игры. Чтобы запустить эту версию карты после сохранения, следует обработать ее этой утилиткой: http://xgm.ru/files.php?id=723 тогда время загрузки в игре падает до обычного. Во втором варианте данные объектов просто так недоступны, тем не менее, карта корректно работает после сохранения в редакторе, и грузится ненамного дольше оригинала. (т.е. можно только изменять код, не обращая внимания на объекты - все будет работать) Чтобы все-таки получить возможность редактировать объекты, не мучаясь при этом с временем загрузки, можно проделать следующее: - вытащить файлы Units/* (с помощью менеджера импорта) из карты в папку C:\Program Files\Warcraft III\Units (если у вас другой путь к вару, создать там папку Units и поместить туда) - перезапустить редактор. После этого все объекты игры будут считаться редактором стандартными, и их можно редактировать как обычно. При работе в редакторе с другими картами распакованные файлы следует удалить!!! (на открываемость карты в игре и редакторе это не повлияет никак) Скрипт (код) карты полностью идентичен в обеих версиях. Что, возможно, будет сделано в будущем: - раскрытие новых версий исходной карты; - продолжение расшифровки имен функций; - частичное восстановление триггеров в формат редактора; Have fun :) В ролях: Версия 6.41: NETRAT aka NT: - восстановление листфайла - все новые автоматические скрипты - имена глобалок, триггеров и разбиение их на категории - восстановление данных объектов - модуль STPD_Parse, который мы использовали для облегчения рутинной работы DioD: - имена глобалок, функций, их аргументов и локалок Версия 6.32b: DimonT aka zibada: - все автоматические декодирующие скрипты NETRAT aka NT: - восстановление листфайла - списки имен функций и переменных - восстановление данных объектов hello.Blood aka TheBloodiest: - имена триггеров и разбиение их на категории Страничка проекта: http://dimon.xgm.ru/opendota/ XGM - Российский модмейкерский портал http://xgm.ru/ http://modmaking.ru/