FAQ по World Editor Добавлено (05-01-2009, 13:12)
---------------------------------------------
FAQ по World Editor
Общее Есть ли какое-нибудь ограничение на размер карты в мультиплеере?
Да это 4.1-4.2 мб. В сингплеере ограничение на размер карты отсутствует.
Карты из кампании. Где их можно найти?
ROC: в war3.mpq в папке Maps\Campaign
TFT: в war3xlocal.mpq в папке Maps\FrozenThrone\Campaign
Как ускорить процесс загрузки World Editor'a?
Откройте редактор и зайдите в меню Files => Preferenses и уберите галочку рядом с надписью "Create a new map on start - up"
Как ускорить работу в редакторе? В частности такие операции, как создание нестандартного юнита?
Зайдите в меню окно и отключите не нужные вам панели, особое торможение вызывает список кистей. Повторите эти действия для окна редактора объектов и редактора триггеров.
Так же можно зайти в Диспетчер задач и поставить процессу worldedit.exe приоритет повыше. Не рекомендуется ставить приоритет реального времени - это может привести к огромным лагам, так как на этом уровне работает ОС и Антивирусы.
После установки патча 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 (есть в архиве с утилитой). Всё наслаждаемся.
Как сделать героя, уровень которого больше 10?
Ответ: необходимо зайти в Дополнительно=>Игровые константы=>Максимальный уровень героя и поставить нужный уровень. Теперь при прокачке герой будет качаться больше 10-го.
У некоторых юнитов я видел отрицательные значения (регенерация маны сфинкса, к примеру), но у меня они не ставятся. Это что очередное ограничение World Editor'a?
Зайдите: Файл --> Параметры --> Вкладка "Общие" -Разрешить использование в редакторе объектов отрицательных значений. Выскочит окно "имейте ввиду". Теперь зайдя в редактор объектов, вы сможете выставлять отрицательные значения.
Как мне сделать, чтобы игроки начинали только на своих стартовых позициях и с заданной расой?
Зайдите в "Свойства игрока" (Главное меню=>сценарий=>Свойства игрока) поставьте галочку "Фикс исх. позиция". Затем перейдите на закладку "Кланы" и поставьте две галочки: "Нестандартные кланы" и "Фикс. параметры клана"
Камень Включён/Выключен Что это?
Это кривой перевод... Кнопочка включает проигрывание голосов и анимаций у войск, они с вами говорят и умирают со звуком, если вы их удаляете.
Мне нужно поместить в инвентарь к герою больше 6 предметов. Как?
Стандартными средствами это не возможно. Можно использовать наработки DimonT'a вот и вот , Сергея - вот , NETRAT'a - вот
Как увеличить лимит еды?
"Игровые Константы" (Главное Меню -> Дополнительно -> Игровые Константы), поставить галочку "Использовать нестандартные игровые константы" и изменить значение поля "Ограничение пищи" на нужное значение.
Как сделать, чтобы созданный мной герой, при вызове его игроком строился только один раз?
Необходимо: открыть игровые константы, найти строки "Технологии зависимости (эквиваленты) - герои" (где вы должны прописать своих героев, если они не стандартные), "Технологии зависимости (эквиваленты) - алтарь" (здесь вы указываете ваш алтарь, если он не стандартный, далее в строках "центр поселения" указываете ваши ратуши, если они не стандартные.
Затем заходим в свойства героя в редакторе объектов и проставляем необходимые требования... В итоге - всё работает. Также предлагаю вам прочитать эту статью по игровым константам.
Как сделать, чтобы герой прокачивался на крипах больше пятого уровня?
Для этого зайдите в игровые константы и найдите поле Hero XP Gained – Creep Reduction Table. Номер строки соответствует уровню героя (то есть первая строка - первый уровень, вторая - второй и т. д.). Число это процент опыта, получаемого на каждом уровне.
Как защитить свою карту, как сделать ее неоткрываемой в редакторе?
Самые простые методы - удаление файла war3map.wtg и файла (listfile) в MPQ архиве карты. Впрочем, на данный момент существует утилита, способная почти полностью восстановить файл (listfile), так же есть некоторая неподтвержденная информация о скрипте, способном восстанавливать файл wtg. С файлом триггеров wtg предлагается сделать хитрее - заменить его файлом триггеров из другой карты, в таком случае карта будет открываться, однако при попытке ее сохранить, редактор перепишет заново файл скрипта, а оригинальный будет утерян. Так же, многие программы-оптимизаторы делают карту не открываемой в редакторе.
Моя карта очень долго загружается, есть ли способы увеличить скорость её загрузки?
Есть, первое удалить лишние иконки, модели и музыку, которые вы загрузили в свою карту.
Также хочу порекомендовать следующие утилиты для оптимизации скорости загрузки карты:
TOT
Vexorians Map Optimizer
Warcraft III Widgetizer
Как триггерно наложить на цель заклинание?
Это не возможно, так как мы это понимаем. Мы можем лишь отдать юниту приказ бастовать заклинание.
Действие вида Unit - Unit issue order of...
Что такое slk?
Это так называемый формат экспорта данных MS Excel. В Warcraft III slk таблицы используются для хранения данных о войсках, заклинаниях, декорациях, разрушаемых объектах, улучшениях. Там хранятся данные обо всех характеристиках, кроме текстовых данных. По возможностям редактирования SLK намного эффективнее простого Редактора Объектов.
Slk-оптимизация - это вид оптимизации, при котором данные ваших из ваших файлов w3u, w3o, w3d, w3a и т. д. записываются в Slk таблицы, из которых удаляются данные обо всех неиспользуемых объектах. Данный Slk помещается в карту, незначительно увеличивая её размер, но при этом повышая скорость загрузки карты многократно. SLK оптимизация реализована в Warcraft III Widgetizer'е.
Как сделать подключение к игре своего MPQ архива, как в некоторых модах?
Для этого вам, скорее всего, понадобятся знания какого-нибудь компилируемого языка программирования. Для того чтобы подключить свой архив, вам придется изменить имя стандартного архива war3patch.mpq, затем изменить имя у архива вашего мода на war3patch.mpq. Для отключения мода - вернуть назад имя своего архива и восстановить имя для стандартного архива war3patch.mpq. Таким образом, для полноценного мода вам понадобится внешняя программа, которая на время игры будет делать описанные изменения с именами файлов, а после завершения игры, возвращать все на место.
Что такое custom script (custom code) карты?
Чтобы увидеть Custom script карты нужно щелкнуть по самой верхней строке в списке триггеров, на месте где обычно отображается сам триггер, в большинстве случаев будет пустое поле - это и есть поле кастом кода, весь Jass-код в нем выполняется в первую очередь. Часто именно в него требуется вписать код многих наработок.
Ландшафт
Как поставить юнита на декорацию?
Для этого необходимо указать ему высоту перемещения, в строках "движение", теперь смело можно ставить. Для того чтобы юнит ходил по замкнутому пространству (например, крепостная стена) и необходимо добавить вокруг замкнутого пространства блокираторы пути (Декорации такие).
Когда я создаю мост, он ставится выше земли. Как это исправить?
Поставьте мост и отрегулируйте его высоту с помощью Ctrl + PgUp или Ctrl + PgDown.
Как сделать, чтобы юнит смог взобраться на любую декорацию?
Для этого нужно:
1. Декорацию переместить в "Типы декораций - Мосты".
2. Дать декорации галочку "можно ставить на склонах".
3. Дать декорации параметр максимальный угол крена = 90 градусов.
4. Убрать pathline декорации.
Кстати как можно сделать, чтобы, например, стоял стрелок на башне?
Как вариант - поставить юниту тип перемещения "летающий", задать высоту полета, равную высоте башни, а по периметру башни поставить блокираторы пути для летающих войск. Подробнее этот вопрос обсуждался в теме
Как ставить декорации вплотную друг к другу?
При размещении декораций зажмите Shift - тогда их физический размер не будет учитываться.
Триггеры
Что такое JASS ?
Рекомендую прочитать следующие статьи:
Текстовые триггеры
Осваиваем JASS
У меня проблема: Я сделал триггер, в котором каждые 5 секунд генерируются случайное число. Но каждый раз, когда я запускаю карту последовательность этих чисел всегда одинаковая. Например, 78,62,29,6...
Как сделать, чтоб каждый раз генерировались разные числа?
File->Prefernces->Test Map->Uncheck "Use fixed random seed"
Почему лидерборды\мультиборды\диалоги не хотят создаваться при запуске карты?
Некоторые функции не могут выполняться прямо после запуска карты. Поставьте перед ними действие 'Wait 0.01 seconds' или перенесите действие в триггер с событием Timer - Elapsed time is 0.01 seconds.
Как сделать так, чтобы в начале игры на стартовой локации не появлялся городской центр и рабочие?
Откройте окно Trigger Editor и в триггере Melee Initialization удалите действие Melee Game - Create starting units (for all players)
Как делать ролики?
Для этого используйте функции в разделе Camera и Cinematic. Более подробно читайте тут
Как триггерами проиграть звук?
Для того чтобы триггером проиграть звук нужно сначала добавить его в список. Чтобы это сделать откройте Редактор Звука, в списке слева найдите нужный звук и, нажав кнопку Use As Sound, добавьте его в список.
Я сделал декорацию с моделью башни, но оно почему-то всегда меняет модели.
В левой стороне, в окне анимации найдите ту башню, которую вам надо и создайте триггер:
Event - Map initialization
Animation - Play (ваша башня)'s (нужная анимация) animation
Можно ли сделать так, чтобы, если в магазине вещь была куплена, то она исчезла совсем? Т.е. не перезаряжалась и со временем снова появлялась, а совсем исчезла: купил - и все она твоя и ни у кого другого ее не будет.
можно.
там есть целый набор триггеров для этих целей
Нейтральное здание - remove item-type (---) убирает предмет
Нейтральное здание - add item-type (---) добавляет предмет
в скобках там написано:
(from marketplace) из одного магазина
(from all marketplace) изо всех
тоже самое можно делать с нанимаемыми войсками.
Как отменить кинематику по Esc обычными триггерами, без всяких там Jass' овских if >then?
Создать переменную Boolean и дать ей значение False
В триггере самого кинематика перед действием Wait поставить, что если переменная равна True - пропустить все действия.
Затем создать триггер.
- Event - player skips cinematic
- Action - Поставить переменной значение True, сделать все, что должно быть после кинематика (расставить юнитов по местам и так далее.) и выключить триггер.
Как сделать, чтобы тела юнитов не исчезали, А как положил, так и лежали всю игру?
Создаём разрушаемый объект (например, на базе бочонка) и даём ему модель юнита, труп которого требуется поставить...
Далее ставим дудад и количество жизней приравниваем к 0.
Как сделать, чтобы юнит завис в воздухе?
Как сделать эффект матрицы?
Либо действием Pause Unit (или Pause All Units), либо действием Set Unit Animation Speed to 0.0%
По этому вопросу есть пара отличных роликов, наглядно иллюстрирующих спецэффект во всей красе:
The Vision
Rox Battle
Более детально вопрос обсуждался в этой теме.
Как сделать респаун(respawn) крипов(creeps)?
Как сделать, чтобы крипы возрождались?
По этому вопросу рекомендуется посмотреть темы:
Простой триггерный способ
С использованием Jass'а
Object Editor
Как сделать так, чтобы юнита нельзя было выделить?
Дайте ему способность Locust (ALoc в версиях ниже 1.13). Так же юнит с этой способностью станет неуязвимым.(москиты)
Как сделать, чтоб при взятии предмета (например, меч), на модели юнита это тоже отображалось?
Необходимо взять способность(Ability) сфера Молний, поменять ей модель на нужную и указать в параметре Графика особый объект воздействия нужную точку приложения эффекта.
overhead - над головой, не прилепляется к анимации
head - голова, прикрепляется к анимации
chest - туловище
origin - обычно у ног юнита
hand - рука (может быть left и right)
foot - ноги
weapon (Для героев) - оружие
sprite, medium, large - для зданий
Однако помните, что далеко не у всех моделей есть все эти точки, они описываются именно в моделях.
Что-то я не догоняю, как сделать из не-героя героя?
Это невозможно по причине того, что герой и не-герой являются разными типами объектов. Если заглянуть в триггеры, то мы увидим, что существуют триггеры отдельно для юнитов и отдельно для героев. Единственный выход из сложившейся ситуации создать героя на базе другого героя.
Что-то я не догоняю, где менять физический размер дудадов(doodads)?
Размера у них нет, есть только "текстура пути". pathing texture - определяет, где по этой модели можно ходить, а где нет, где можно летать над ней, а где нет, где можно сквозь эту модель проходить, а где нет.
Также можно создать свою Pathing Textures. Для примера можно извлечь из mpq-архива из папки PathTextures/ одну такую текстуру (формат TGA 8-бит) и посмотреть. Pathing Texture представляет собой изображение, в котором каждый пиксель отвечает за игровую клетку.
Как из обычного здания сделать Таверну или Магазин, чтоб на карте обозначалось "домиком"?
"Характеристики - Нейтральное здание: пиктограмма показана на миникарте" поставить. Да (True)
Сделал герою способность, чтобы он проглатывал врагов, но когда я загружаю карту, и выбираю эту способность, то игра вылетает и появляется ошибка. Почему?
Необходимо так же давать способности "пассажир" и "еда". Рекомендую посмотреть, к примеру, как это сделано у кодоя.
Импортирование Файлов
Как импортировать свою картинку вместо минимапы?
Сохраните картинку в формате 32 бита с расширением .tga, импортируйте изображение с помощью Import Manager'a, два раза кликни на файл в окне импорта и сотрите весь путь до названия файла. Далее само название поменяйте на war3mapPreview.tga
Для замены игровой миникарты необходимо заменить файл war3map.blp.
Как импортировать изображение на загрузочный экран?
Откройте карту Maps/FrozenThrone/Scenario/(4)Monolith.w3x и почитайте комментарии к триггеру Custom Loading Screen
Делаю магию и импортирую свое изображение для нее... Меняю стандартную картинку на свою, и она у меня есть в игре, но когда прокачал 1 уровень этой магии, а второй нельзя (докачаться надо) у меня изображение заменяется на зеленое! ПОМОГИТЕ, ПОЖАЛУЙСТА, кто знает, как это исправить!!!
Кроме обычной (BTN) иконки нужно закачивать и её задисабленную версию (DisBTN). А помогут вам разобраться в этом безобразии следующие статьи:
Импорт файлов.
Совсем неправильный импорт
Формулы WE
Снижение полученного урона за единицу брони:
Damage Reduction = Multiplier * Armor / (1 + Multiplier * Armor);
где Multiplier - это значение из Gameplay Constants - Combat - Armor Damage Reduction Multiplier, по умолчанию равное 0.06
Минимальное и максимальное повреждение юнита:
Min = Damage Base + Number of Dice
Max = Damage Base + (Number of Dice * Sides per Die)
Формулы для подсчета требований опыта для следующего уровня, наград опыта за убийство героя и наград опыта за убийство крипа
В таблице констант относительно требований опыта для получения уровня встречаются следующие константы:
Герою требуется опыта: таблица (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
Добавлено (05-01-2009, 13:13)
---------------------------------------------
большее количество информации позаимствовано с сайта ~спам~