FAQ по World Editor'y
|
|
| Дата: Воскресенье, 22.04.2012, 18:40 | Сообщение # 1 |
Генералиссимус
Сообщений: 2259
|
FAQ, полезная информация о World Editor
FAQ - ответы на часто задаваемые вопросы по World Editor'у.
Данная тема содержит ответы на самые часто задаваемые вопросы начинающих картостроителей и не только. Настоятельно рекомендуется ознакомиться с ней, перед тем как задавать свой вопрос. Для удобства FAQ был разделен на тематические разделы:
- 1. Первое знакомство с WE (самые первые вопросы, возникающие при открытие редактора) - 2. Триггеры и Редактор объектов (скрещивание нескольких предметов в один; респаун крипов; мультиборд и т.д.) - * JASS (ссылки на всю теоретическую информацию по языку JASS) - * Способности Warcraft III: проводник (особенности создания заклинаний средствами РО, понадобится знание JASS) - * Ландшафт (теоретический минимум по созданию рельефа к картам, а также много всего полезного для профессионального дизайнера) - 3. Разное (множество полезной информации по работе с MPQ, защите/взломе карт и т.д.) - 4. Формулы WE (расчет получаемого героем опыта, расчет брони, урон юнита) - 5. Авторы-составители, а также благодарности.
Также тут принимаются идеи по развитию FAQ'а и добавлению новых вопросов. Итак...
1. Первое знакомство с WE.
1.1 После установки патча WorldEditor просит вставить CD - как от этого избавиться? Или найти NoCD, или скачать Daemon Tools. Это программа эмулятор является универсальным NoCD для всех версий Warcraft'a и WorldEdit'a. Установите саму программу эмулятор. Далее правый клик на появившуюся иконку в правом нижнем углу, пункт меню Virtual CD\DvD-Rom => Set Number Of Devices => 1 Drive, далее пункт меню Virtual CD\DvD-Rom => Device 0 => Mount Image. В открывшемся диалоге ищем файл warcraft.mds (есть в архиве с утилитой).
1.2 Как сделать героя, который будет прокачиваться дальше 10 уровня? Необходимо зайти в Дополнительно=> Игровые константы=> Максимальный уровень героя и поставить нужный уровень. Теперь при прокачке герой будет качаться до уровня, указанного вами.
1.3 Как сделать чтобы герой не получал опыт находясь вдали от битвы? Убрать галочку в игровых константах из параметра Опыт героя – Общее распределение (Global Experience) и поставить галочку напротив "Использовать нестандартные игровые константы".
1.4 Как запретить игрокам менять исходные параметры в списке при создании игры? Заходим в Сценарий=> Свойства игрока\клана и ставим галочку напротив "Фиксировать параметры игроков".
1.5 Как мне сделать, чтобы игроки начинали только на своих стартовых позициях и с заданной расой? Зайдите в "Свойства игрока" (Главное меню=> Сценарий=> Свойства игрока) поставьте галочку "Фикс исх. позиция". Затем перейдите на закладку "Кланы" и поставьте две галочки :"Нестандартные кланы" и "Фикс. параметры клана".
1.6 Камень Включён\Выключен - Что это? Функция включает проигрывание голосов и анимации у войск. Они с вами говорят и умирают со звуком, когда вы их удаляете на карте в WE.
1.7 Как увеличить лимит еды? "Игровые Константы" (Главное Меню=> Дополнительно=> Игровые Константы), поставить галочку напротив "Использовать нестандартные игровые константы" и изменить значение поля "Ограничение пищи" на нужное значение.
1.8 Как сделать, чтобы герой прокачивался на крипах больше пятого уровня? Для этого зайдите в игровые константы и найдите поле Hero XP Gained – Creep Reduction Table (или HeroFactorXP в альтернативном виде). Номер строки соответствует уровню героя (т.е. первая строка - первый уровень, вторая - второй и тд.). Число это процент опыта, получаемого на каждом уровне. Если чисел меньше чем уровней, то игра будет использовать последнее указанное в списке значение для всех остальных уровней.
1.9 Как сделать из не-героя героя? Стандартными средствами это невозможно, да и по сути в этом нет необходимости - достаточно создать героя на основе стандартного и уже потом добавить ему необходимые свойства.
На самом деле это вполне возможно, если вы владеете навыками редактирования файлов в HEX-редакторе, для этого нужно всего лишь изменить первую букву идентификатора юнита на заглавную, например заменить идентификатор 'hfoo' на 'Hfoo' - тогда обычный футмен станет футменом-героем, но для большинства эти манипуляции недоступны, поэтому ответ на вопрос является простым и, вообще говоря, неправильным. Подробнее об этом можно прочитать в этой статье.
Тот кто владеет информацией, тот владеет миром.
|
|
|
|
| Дата: Воскресенье, 22.04.2012, 18:44 | Сообщение # 2 |
Генералиссимус
Сообщений: 2259
|
2. Триггеры и Редактор объектов.
2.0 Меня интересует, что такое гуи, где его можно достать? GUI (Graphic User Interface) - это триггеры с графическим интерфейсом т.е обычные триггеры в редакторе триггеров.
2.1 Как сделать так, чтобы в начале игры на стартовой локации не появлялся городской центр и рабочие? Откройте окно Trigger Editor и и триггере Melee Initialization удалите действие Melee Game - Create starting units (for all players) Если Вы делаете не Melee карту, то есть не на "расстройку", тогда рекомендуется удалить весь триггер.
2.2 Как сделать скрещивание предметов? Как сделать складывание зарядов в предметах? Самый простой вариант: создаем в редакторе объекта все части предмета и скрещенный предмет и создаем триггер:
Код: Скрещивание:
Code Событие: Боевая единица - A unit Acquires an item Условие: ((Hero manipulating item) has (Часть 1)) Equal to True* ((Hero manipulating item) has (Часть 2)) Equal to True* Действие: Предмет - Remove (Item carried by (Hero manipulating item) of type Часть 1) Предмет - Remove (Item carried by (Hero manipulating item) of type Часть 2) Hero - Create Скрещенный предмет and give it to (Hero manipulating item)
Складывание зарядов:
Code Событие: Боевая единица - A unit Acquires an item Условие: Or - any (Condition) are true Условия: (Item type of(Item begin manipulated)) равно <тип предмета1>* (Item type of(Item begin manipulated)) равно <тип предмета2>* (Item type of(Item begin manipulated)) равно <тип предмета3>* Действия: Set it**=(Item type of(item begin manipulated)) For each (Integer A) from 1 to 6 do (Actions) Цикл - Действия If (All Conditions are True) then do (Then Actions) else do (Else Actions) Если - Условия (Item type of(Item carried by (Triggering unit) in slot (Integer A))) равно it (Item carried by (Triggering unit) in slot (Integer A)) не равно (Item begin manipulated) То - действия Предмет - Set charges remaining in (Item carried by (Triggering unit) in slot (Integer A)) to ((Charges remaining in (Item carried by (Triggering unit) in slot (Integer A)) + (Charges remaining in (Item begin manipulated))) Предмет - Remove (Item begin manipulated) Иначе - действия
*Тип предмета, данный триггер универсален, и может складывать заряды всех типов предметов, указанных в условии **Переменная типа "Тип предмета"
2.3 Как сделать так, чтобы при взятии определенного предмета, например меча, он появлялся у юнита в руке? Необходимо взять способность (Ability) Сфера Молний и поменять ей модель на нужную, при этом указав в параметре «Графика: особый объект воздействия» нужную точку приложения эффекта.
Цитата: overhead - над головой, не прикрепляется к анимации head - голова, прикрепляется к анимации chest - туловище origin - обычно у ног юнита hand - рука (может быть left и right) foot - ноги weapon (Для героев) - оружие sprite, medium, large - для зданий
Однако помните, что далеко не у всех моделей есть все эти точки, они описываются именно в моделях.
2.4 Как сделать юнита неуязвимым или невыбираемым? Дать юниту способность «Неуязвимый (нейтральный»), либо использовать действие: Боевая единица – Make Invulnerable/Vulnerable. Для невозможности выбора юнита - дать ему способность "Москиты" (Locust), но не геройскую, а именно способность самих москитов. Также эта способность сделает юнита неуязвимым.
2.5 Почему лидерборды\мультиборды\диалоги не хотят создаваться при запуске карты? Некоторые функции не могут выполняться сразу после запуска карты. Поставьте перед ними действие Wait 0.01 seconds или перенесите действие в триггер с событием Timer - Elapsed time is 0.01 seconds. Второе предпочтительнее.
2.6 Как создать в карте свои квесты? Нужно использовать действие: Quest - Create Quest – используется для создания новых квестов, также могут понадобиться эти действия:
Код: Code Задание - Mark Quest as Completed – Квест выполнен Задание - Mark Quest as Failed – Квест провален
И уже в зависимости от произошедших событий вызывать их.
2.7 Как триггерами проиграть звук? Для того что бы триггером проиграть звук нужно сначала добавить его в список. Чтобы это сделать откройте Редактор Звука, в списке слева найдите нужный звук и нажав кнопку Use As Sound добавьте его в список.
2.8 Я сделал декорацию с моделью башни, но она почему то все время меняет анимацию. В левой стороне, в окне предпросмотра файла модели найдите вашу башню и посмотрите там название нужной анимации. Потом создайте триггер:
Код: Code Событие: Map initialization Действие: Декорация - Play (ваша башня)'s (нужная анимация) animation
2.9 Можно ли сделать так, чтобы при покупке в магазине предмета или юнита, он исчезал совсем? Т.е. не перезаряжался и со временем снова появлялся, а совсем исчезал: купил - и всё, он твой, и ни у кого другого его не будет. Да, есть целый набор триггеров для этих целей: Код: Code Нейтральное здание - remove item-type (*) убирает предмет Нейтральное здание - add item-type (*) добавляет предмет Нейтральное здание - remove unit-type (*) убирает юнита Нейтральное здание - add unit-type (*) добавляет юнита *в скобках там написано: (from marketplace) из одного магазина (from all marketplace) из всех магазинов. Есть некоторые особенности устройства механизма продажи - чтобы свободно манипулировать юнитами/предметами - добавлять или убирать их по желанию во время игры, необходимо выполнить ряд действий-требований: Магазину, в котором будут размещаться предметы, необходимо добавить способность "Продажа предметов" (она находится в редакторе способностей, в папке Особые\Войска\... ; её равкод - 'Asid' а иконка похожа на шахматную доску с зелеными клетками вместо белых) Все предметы, которые вы будете убирать во время игры, должны быть добавлены в магазин триггерно, действием описанным выше. Таким образом, изначально в редакторе объектов имеет смысл оставлять только те предметы, которые будут все время неизменно присутствовать в магазине на протяжении всей игры. Аналогично нужно поступить и с продаваемыми войсками, с той лишь разницей, что добавлять нужно способность "Продажа войск", она расположена рядом со способностью "Продажа предметов".
2.10 Как сделать декорацию с моделькой "мертвого" юнита? Создаём разрушаемый объект (например на базе бочонка) и даём ему модель юнита, труп которого требуется поставить. Далее ставим эту декорацию на карту, выбираем и нажимаем Enter. В появившемся окне указываем количество жизней 0.
Тот кто владеет информацией, тот владеет миром.
|
|
|
|
| Дата: Воскресенье, 22.04.2012, 18:44 | Сообщение # 3 |
Генералиссимус
Сообщений: 2259
|
2.11 Что такое триггерная магия? Это нестандартные способности, часть действий которых выполняется с помощью триггеров. Как правило, триггер запускается с событие A unit начинает применять способность (для активных спелов) и A unit приобретает способность (для пассивных магий). Далее уже в условиях стоит отловить то, с какой именно способность было произведено действие (условия из разделов Abilty comparison и Hero Skill comparison). Также в триггерной магии часто используется даммикаст. Рекомендуется ознакомиться со следующими статьями:
Триггерные Заклинания Создание простого stomp спела
Помните, что создание триггерной магии на JASS куда более качественное.
2.12 Что такое "даммикаст"? Дамми каст это по сути говоря триггерное наложение заклинания. Юнит-кастер имеет способность москиты (что делает его не уязвимым и невыбираемым), не имеет атаки и файл модели заданный под шифром ".mdl" (что делает его невидимым). Далее данному юниту дается приказ кастовать способность. Вот простой пример даммикаста:
Код: Код Боевая единица - Create 1 DummyCaster for Игрок 1 (красный) at (Position of (Triggering unit)) facing Стандартная ориентация зданий degrees Боевая единица - Add Молот бурь* to (Last created unit) Боевая единица - Add a x.xx** second Общий Expiration timer to (Last created unit) Боевая еденица - Order (Last created unit) to Горный Король (Альянс) - Молот бурь TargetUnit
*или другая любая способность. помните, что приказ должен соответствовать способности, на которой была создана нестандартная способность, например если мы хотим сделать даммикаст нестандартной способности на базе ледяной звезды - то мы должны приказывать дамми-кастеру кастовать звезду. **через х.хх секунд дамми-кастер исчезнет
2.13 Что такое JASS? Внутренний язык программирования, используемый в WarCraft. Возможности написания скриптов на JASS куда более полноценны, чем на редакторе триггеров. По сути триггеры являются надстройкой для JASS.
Статьи по данной теме:
Текстовые скрипты Осваиваем JASS Создание магии на JASS
2.14 У меня проблема: Я сделал триггер, в котором каждые 5 секунд генерируются случайное число, но каждый раз, когда я запускаю карту, последовательность этих чисел всегда одинаковая. Например: 78,62,29,6... Как сделать, чтобы каждый раз генерировались разные числа? Файл=> Параметры=> Проверка карты=> Фиксировать случайный разброс - уберите галочку напротив данного параметра.
2.15 Если я копирую много триггеров из другой карты мне нужно создавать все переменные вручную? Нет. Они создаются автоматически если поставить галочку в пункте меню Файл=> Параметры=> Общие=> напротив "Автом. Создавать неизв. переменные во время вставки триггеров". После этого просто копируем триггеры - переменные создадутся автоматически.
2.16 Как делать ролики? Основной инструмент - это действие Спецэффекты - Cinematic mode. По сути лишает игрока возможности делать что либо. Дальше уже идет работа с камерой и т.д.
В этой статье достаточно подробно рассматривается этот вопрос. 2.17 Я видел, как в роликах у юнитов поворачивалась голова, как это сделать? Нужно использовать действие: Анимация - Lock body-part facing, также может понадобиться действие: Анимация - Reset body-part facing чтобы отменить поворот головы.
2.18 Возможно ли в варе проиграть анимацию задом наперед Да! Достаточно указать скорость анимации меньше 0. Вот статья.
2.19 Как отменить ролик по нажатию Esc? Создать переменную типа Boolean и дать ей значение нет (False), в триггере самого ролика перед действием поставить Wait, и если наша переменная равна True - пропустить все действия. Потом вызвать триггер, который сделает все пост роликовые действия. Затем создать триггер:
Код: Код Событие: Player skips cinematic Действие: set (наша переменная) = Да (true) Триггер - Turn off (This Trigger) Триггер - Run (Построликовый триггер) (Ignoring Conditions)
2.20 Как в редакторе объектов ставить отрицательные значения? Файл=> Параметры=> Общие=> поставить галочку напротив "Разрешить использование в редакторе объектов отрицательных значений". Выбрать необходимое поле, зажать Shift и нажать Enter (или двойной клик мышкой). Теперь можно вводить отрицательное значение. На основе этого возможно сделать ауру, отнимающую броню, отрицательную регенерацию здоровья и многое другое=)
2.21 Что такое custom script (custom code) карты? Чтобы увидеть Custom script карты нужно щелкнуть по самой верхней строке в списке триггеров, на месте где находятся обычно отображается сам триггер, в большинстве случаев будет пустое поле - это и есть поле "своего кода", весь JASS код в нем выполняется до инициализации триггеров и после объявления глобальных переменных. Часто именно в него требуется вписать код многих наработок.
2.22 Как реализован выбор каких-то параметров игры, через выводящиеся на экран кнопки (как при нажатии F10)? Чтобы это сделать нужно создать переменную типа Диалог, после чего заполнить диалог кнопками, действием: Диалог - Create Dialog Button и обязательно поместить наши кнопки в переменные - без этого они будут бесполезными. После использовать действие: Диалог - Show/Hide. Также следует создать триггер с событием Dialog Button Click в условие которого с помощью Dialog Button Comparison отлавливать какая именно кнопка была нажата и запускать соответствующие действия.
2.23 Как из обычного здания сделать Таверну или Магазин, чтоб на карте обозначалось "домиком"? Характеристики=> Нейтральное здание: пиктограмма показана на миникарте - поставить Да (True).
2.24 Я сделал герою способность, чтобы он проглатывал врагов, но когда я загружаю карту, и выбираю эту способность, то игра вылетает и появляется ошибка. Почему? Необходимо так же давать способности "пассажир" и "еда". Рекомендую посмотреть к примеру как это сделано у кодоя.
2.25 Как изменить по ходу игры дистанцию атаки? Два вариант: добавить юниту улучшение "Длинноствольные мушкеты" или поставить в Редакторе объектов юниту большую дистанцию атаки, и ограничить ее дистанцией получения приказа (дистанция атаки не может быть больше последней). Тригерно устанавливать дистанцию получения приказа: Боевая единица - Set Asquisition Range.
2.26 Как вывести текст не в левом нижнем углу экрана? Это возможно только с использованием JASS.
Код: Код function DisplayTimedTextToPlayer takes takes player toPlayer, real x, real y, real duration, string message returns nothing где x и y координаты текста относительно экрана
2.27 Я не понимаю, где менять физический размер декораций? Размера у них нет, есть только "текстура пути". pathing texture - определяет где по этой модели можно ходить, а где нет, где можно летать над ней, а где нет, где можно плавать, а где нет. Pathing Texture представляет собой изображение, в котором каждый пиксель отвечает за игровую клетку. Однако при использование нового формата карт место tga файла в архив помещается txt файл, содержащий информацию про проходимость - war3map.wpm Тем не менее в редакторе сохранилось обозначение цветов для наглядности работы с путями. Текстуры могут закрашиваться следующими цветами:
Cтатья о редактирование карты путей: ACPL Method.
2.28 Мне нужно поместить в инвентарь к герою больше 6 предметов. Как? Стандартными средствами это не возможно. Можно использовать наработки DimonT'a вот и вот, Sergey'я - вот, NETRAT'a - вот.
2.29 Как сделать чтобы юнит завис в воздухе? Как сделать эффект матрицы? Либо действием Pause Unit (или Pause All Units), либо действием Set Unit Animation Speed to 0.0% По этому вопросу есть пара отличных роликов, наглядно иллюстрирующих спецэффект во всей красе:
2.30 Как сделать респаун (respawn) крипов (creeps) т.е. как сделать чтобы крипы возрождались после смерти через некоторое время? Построить систему триггеров, которые бы отлавливали убийство юнита, а потом через некоторое время проводить необходимые действия.
2.31 Как отключить коды в одиночной игре? Это невозможно так как при вводе строки - чита тригер с событием, отлавливающем ввод строки просто не срабатывает. Однако существует возможность отловить следствие кода, к примеру проверяя не стала ли какая либо местность видна игроку, проверяя ресурсы игрока и т.д.
2.32 Что такое равкод (ID объекта) ? Уникальный идентификатор типа объекта (не порядковый, а именно типа, например: тип-пехотинец представлен в виде 'hfoo', глобальные переменные, сгенерированные редактором тоже включают в себя равкод объекта, и его порядковый номер на карте, например gg_unit_hfoo_0013), представлен 4-мя символами. В триггерах и JASS может быть передан как целочисленное значение, обозначающее тип объекта, например local integer BuffId = 'B000' Что бы узнать его нужно нажать Ctrl+D в редакторе объектов или в меню "Вид" поставить галочку напротив пункта "Показать названия переменных".
Тот кто владеет информацией, тот владеет миром.
|
|
|
|
| Дата: Воскресенье, 22.04.2012, 18:44 | Сообщение # 4 |
Генералиссимус
Сообщений: 2259
|
3. Разное.
3.1 Есть ли какое-нибудь ограничение на размер карты в многопользовательской игре? Да - это 4.1-4.2 мб. в версиях ниже 1.24, а в остальных до 8 мб. В одиночной игре ограничение на размер карты отсутствует. 3.2 Карты из кампании - где их можно найти? ROC: в war3.mpq \ Maps \ Campaign TFT: в war3xlocal.mpq \ Maps \ FrozenThrone \ Campaign
3.3 Как ускорить процесс загрузки и работы World Editor'a? Зайдите в меню Файл=> Параметры => Общие и уберите галочку рядом с надписью "При запуске создавать новую карту" Цитата: А также: - не открывайте несколько карт одновременно и не запускайте какие либо сторонние программы;
- зайдите в меню окно и отключите не нужные вам панели, особое торможение вызывает список кистей. Повторите эти действия для окна редактора объектов и редактора триггеров;
- также можно зайти в "Диспетчер задач" и поставить процессу worldedit.exe приоритет повыше. Не рекомендуется ставить приоритет реального времени - это может привести к огромным лагам, так как на этом уровне работает ОС и Антивирусы;
- настроить меню вид, отключив ненужные параметры, зажать Ctrl и колесиком мышки приблизить дальнюю границу камеры;
- если у вас слабая видеокарта будет иметь смысл уменьшение качества анимации и текстур;
- Gem (Камень) может вызывать торможение, так как дополнительно нагружает память и процессор.
3.4 Как сделать, чтобы созданный мною герой, при вызове его игроком строился только один раз? Необходимо: открыть игровые константы, найти строки "Технологии зависимости(эквиваленты) - герои" - где вы должны прописать своих героев, если они не стандартные, "Технологии зависимости(эквиваленты) - алтарь" - здесь вы указываете ваш алтарь если он не стандартный, далее в строках "центр поселения" указываете ваши ратуши, если они не стандартные. Затем заходим в свойства героя в редакторе объектов и проставляем необходимые требования... В итоге - всё работает. Также предлагаю вам прочитать эту статью по игровым константам:
Gameplay Constants
Хотя, можно обойтись и без констант: запустить дефолтный (melee) триггер Режим сражения - Limit Heroes to 1 per Hero-type (for all players)
3.5 Как импортировать свою картинку вместо миникарты? Сохраните картинку в формате 32 бита с расширением .tga, импортируйте изображение с помощью Import Manager'a, два раза кликните на файл в окне импорта и сотрите весь путь до названия файла. Далее само название поменяйте на war3mapPreview.tga Для замены игровой миникарты необходимо заменить файл war3mapMap.blp, причем возможны 2 варианта.
- импортируется blp-текстура размером 2х2 пикселя, в таком случае игра не может ее открыть и полностью перекрывает обзор миникарты (если не задан war3mapPreview, то вместо миникарты на стандартном загрузочном экране будет знак вопроса на синем фоне, а в игре окно миникарты будет пусто и мертво, на нем даже ping-и не будут отображаться)
- импортируется blp-текстура размером 256х256 пикселей, в таком случае просто фоновая картинка ландшафта будет замещена нашей текстурой, оставаясь фоновой (поверх видны иконки и ping-и)
3.6 Как сделать загрузочный экран со своим импортированным изображением? Ставим в Сценарий=> Экран загрузки карты загрузочный экран "Титры". далее импортировать текстуры...
3.7 Как сделать что бы импортированная пиктограмка не становилась иногда "зеленым квадратом"? Кроме обычной (BTN) иконки нужно закачивать и её "нерабочую" версию (DisBTN). А помогут вам разобраться в этом безобразии следующая статья:
Импорт файлов Совсем неправильный импорт
3.8 Философский вопрос - что такое карта? Карта - это MPQ архив, который содержит файлы определенного формата, отвечающие за рельеф, скрипты, нестандартные объекты и т.д.
Программы, работающие с MPQ архивами:
WinMPQ MPQ Master
3.9 Как сделать подключение к игре своего MPQ архива, как в некоторых модах? Для этого вам, скорее всего, понадобятся знания какого-нибудь компилируемого языка программирования. Для того чтобы подключить свой архив, вам придется изменить имя стандартного архива war3patch.mpq, затем изменить имя у архива вашего мода на war3patch.mpq. Для отключения мода - вернуть назад имя своего архива и восстановить имя для стандартного архива war3patch.mpq. Таким образом, для полноценного мода вам понадобится внешняя программа, которая на время игры будет делать описанные изменения с именами файлов, а после завершения игры, возвращать все на место.
3.10 Как защитить/взломать карту и что это вообще за процессы? Защита карты - это удаление/изменение файлов в архиве карты, которые не нужны для самой игры, но необходимы для редактора. Цель - что бы карту нельзя было открыть/изменить. Самые простые методы - удаление файла war3map.wtg и файла (listfile) в MPQ архиве карты. Впрочем, на данный момент существует утилита, способная почти полностью восстановить файл (listfile), так же есть некоторая неподтвержденная информация о скрипте, способном восстанавливать файл wtg. С файлом триггеров wtg предлагается сделать хитрее - заменить его файлом триггеров из другой карты, в таком случае карта будет открываться, однако при попытке ее сохранить, редактор перепишет заново файл скрипта, а оригинальный будет утерян. Так же, многие программы-оптимизаторы делают карту не открываемой в редакторе.
Для взлома карт используем данные утилиты:
X-deprotect Deprotecter
Также опытные картостроители могут легко взломать карту через WinMPQ или MPQ Master.
3.11 Моя карта долго грузится, что делать? Оптимизировать. При оптимизации в отличие от депротекта целью является снизить вес карты и скорость ее загрузки, при этом неоткрываемость карты в редакторе является лишь следствием. Также стоит удалить ненужный импорт. Вот программы, которые оптимизируют карты:
TOT Vexorians Map Optimizer Warcraft III Widgetizer
3.12 Что такое slk? Это так называемый формат экспорта данных MS Excel. В Warcraft III slk таблицы используются для хранения данных о войсках, заклинаниях, декорациях, разрушаемых объектах, улучшениях. Там хранятся данные о всех характеристиках, кроме текстовых данных. По возможностям редактирования SLK намного эффективнее простого Редактора Объектов.
Slk оптимизация - это вид оптимизации, при котором данные ваших из ваших файлов w3u, w3o, w3d, w3a еtc. записываю в Slk таблицы, из которых удаляются данные о всех неиспользуемых объектах. Данный slk помещается в карту, незначительно увеличивая её размер, но при этом повышая скорость загрузки карты многократно. SLK оптимизация реализована в Warcraft III Widgetizer'е. 3.13 После перехода на обновление 1.24, а также импорта звука/музыки при проверке карты выскакивают ошибки, что делать? Редактор вместо точек в Jass-код добавляет запятые (в дробных числах) и на это же ругается. Решение: Заходим в Пуск -> Панель управления -> Языки и региональные стандарты -> Региональные параметры -> Настройка -> Разделитель целой и дробной части -> выбираем "." (т.е. точку вместо запятой). После проделанных манипуляций подобных ошибок быть не должно.
4. Формулы WE.
4.1 Снижение полученного урона за единицу брони: Damage Reduction = Multiplier * Armor / (1 + Multiplier * Armor); где Multiplier - это значение из Gameplay Constants - Combat - Armor Damage Reduction Multiplier, по умолчанию равное 0.06
4.2 Минимальное и максимальное повреждение юнита: Min = Damage Base + Number of Dice (количество костей) Max = Damage Base + Number of Dice * Sides per Die (кол-во костей*урона с каждой кости)
4.3 Формулы для подсчета требований опыта для следующего уровня, наград опыта за убийство героя и наград опыта за убийство крипа:
В таблице констант относительно требований опыта для получения уровня встречаются следующие константы: Герою требуется опыта: таблица (NeedHeroXP) - обозначим за BASE Герою требуется опыта: предыдущее значение фактора (NeedHeroXPFormulaA) - обозначим за A Герою требуется опыта: фактор уровня (NeedHeroXPFormulaB) - обозначим за B Герою требуется опыта: фактор константы (NeedHeroXPFormulaC) - обозначим за C
Следует отметить, что в поле NeedHeroXP может содержаться массив чисел, в этом случае в качестве требований опыта берутся эти числа, в том порядке в котором они записаны. Если этих чисел не хватает, то последнее из них берется в качестве числа BASE и дальнейшие требования высчитываются по описанной ниже формуле. Если поле пустое, то используется одно стандартное значение 200.
Не указанные в таблице NeedHeroXP требования находятся по рекурсивной формуле, то есть требование опыта для текущего уровня находится исходя из требований предыдущего: Требования(для уровня N) = Требования(для уровня N-1) * A + B * N + С
В этой формуле L - это уровень, для которого мы считаем требования опыта(то есть не текущий уровень юнита, а следующий), а S - это последний уровень, для которого задано табличное значение, а BASE - это как раз это последнее заданное табличное значение. Хотя она не так проста для понимания как рекурсивная она работает не хуже =)
Пример: Пусть заданы значения BASE = 100 A = 2 B = 50 C = 9 Тогда таблица требований опыта будет выстраиваться следующим образом: 2 уровень 100 3 уровень 359 = 100 * 2 + 50 * 3 + 9 4 уровень 927 = 359 * 2 + 50 * 4 + 9 5 уровень 2113 = 927 * 2 + 50 * 5 + 9 6 уровень 4535 = 2113 * 2 + 50 * 6 + 9 ... Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 2, а в качестве параметра BASE использовать последнее заданное в таблице значение 100.
Стандартная таблица опыта имеет параметры: BASE = 200 A = 1 B = 100 C = 0 и выглядит следующим образом: 2 уровень 200 3 уровень 500 = 200 * 1 + 100 * 3 4 уровень 900 = 500 * 1 + 100 * 4 5 уровень 1400 = 900 * 1 + 100 * 5 6 уровень 2000 = 1400 * 1 + 100 * 6 7 уровень 2700 = 2000 * 1 + 100 * 7 8 уровень 3500 = 2700 * 1 + 100 * 8 9 уровень 4400 = 3500 * 1 + 100 * 9 10 уровень 5400 = 4400 * 1 + 100 * 10 Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 2, а в качестве параметра BASE использовать последнее заданное в таблице значение 200.
Почему я так много внимания уделил этой формуле? Потому что она широко используется в этой игре.
Таблица наград опыта за убийство героев рассчитывается по той же формуле, по умолчанию имеет параметры: BASE(GrantHeroXP) = 100,120,160,220,300 A(GrantHeroXPFormulaA) = 1 B(GrantHeroXPFormulaB) = 0 C(GrantHeroXPFormulaC) = 100 Тогда стандартная таблица наград опыта имеет вид: 1 уровень 100 2 уровень 120 3 уровень 160 4 уровень 220 5 уровень 300 6 уровень 400 = 300 * 1 + 100 7 уровень 500 = 400 * 1 + 100 8 уровень 600 = 500 * 1 + 100 9 уровень 700 = 600 * 1 + 100 10 уровень 800 = 700 * 1 + 100 Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 5, а в качестве параметра BASE использовать последнее заданное в таблице значение 300.
Таблица наград опыта за убийство крипа рассчитывается по той же формуле, по умолчанию имеет параметры: BASE(GrantHeroXP) = 25 A(GrantHeroXPFormulaA) = 1 B(GrantHeroXPFormulaB) = 5 C(GrantHeroXPFormulaC) = 5 Тогда стандартная таблица наград опыта имеет вид: 1 уровень 25 2 уровень 40 = 25 * 1 + 5 * 2 + 5 3 уровень 60 = 40 * 1 + 5 * 3 + 5 4 уровень 85 = 60 * 1 + 5 * 4 + 5 5 уровень 115 = 85 * 1 + 5 * 5 + 5 6 уровень 150 = 115 * 1 + 5 * 6 + 5 7 уровень 190 = 150 * 1 + 5 * 7 + 5 8 уровень 235 = 190 * 1 + 5 * 8 + 5 9 уровень 285 = 235 * 1 + 5 * 9 + 5 10 уровень 340 = 285 * 1 + 5 * 10 + 5 ... Если мы хотим посчитать эти значение не-рекурсивно, а формулой общего вида, то в качестве параметра S в формуле следует использовать число 1, а в качестве параметра BASE использовать последнее заданное в таблице значение 25.
Автор: XGM.RU Статью изменил - .:^GREAT^MAN^:.
Тот кто владеет информацией, тот владеет миром.
Сообщение отредактировал ^GREAT^MAN^ - Воскресенье, 22.04.2012, 18:45 |
|
|
|
| Дата: Воскресенье, 22.04.2012, 18:49 | Сообщение # 5 |
Генералиссимус
Сообщений: 2259
|
Прошу добавить это в Шапку этого раздела
Тот кто владеет информацией, тот владеет миром.
|
|
|
|
| Дата: Воскресенье, 22.04.2012, 23:23 | Сообщение # 6 |
Генералиссимус
Сообщений: 3625
|
Ты писал?
|
|
|
|
| Дата: Воскресенье, 22.04.2012, 23:25 | Сообщение # 7 |
Генералиссимус
Сообщений: 2259
|
Quote (diestator) Ты писал? Филосовский вопрос!) Quote (^GREAT^MAN^) Автор: XGM.RU Изменял я добавлял BB коды я)
Тот кто владеет информацией, тот владеет миром.
|
|
|
|
| Дата: Воскресенье, 22.04.2012, 23:31 | Сообщение # 8 |
Генералиссимус
Сообщений: 3625
|
лан, пошел я спать, а то пол 2
|
|
|
|
| Дата: Воскресенье, 22.04.2012, 23:32 | Сообщение # 9 |
Генералиссимус
Сообщений: 2259
|
У меня 1.30 давай!)
Тот кто владеет информацией, тот владеет миром.
Сообщение отредактировал ^GREAT^MAN^ - Воскресенье, 22.04.2012, 23:32 |
|
|
|
| Дата: Понедельник, 23.04.2012, 03:56 | Сообщение # 10 |
Генералиссимус
Сообщений: 2584
|
Quote (^GREAT^MAN^) У меня 1.30 Где разница
|
|
|
|