XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Желтая пресса: обучающие статьи
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Харгард
Epic
offline
Опыт: 7,829
Активность:
Динамическая смена типа брони

Вступление



Думаю все знают улучшение "Фортификация" у Орков, меняющее тип брони башен и логовов с тяжелой на укрепленную. Каждый желавший воспользоваться им сталкивался с несколькими "граблями", а именно:

1. Улучшение работает некорректно.(Например: начальный тип брони Орочьих башен - тяжелый, в Фортификации указан средний, а в итоге получается укреплёный)
2. Изучается только один уровень
3. Его нельзя "откатить" назад.

После этого создатель или менял тип защиты через превращение\ "Темного" или вообще забивал на смену брони.
А теперь, расставлю последние точки в этом вопросе по порядку

1. Некорректная работа улучшения



Именно отталкиваясь от первого пункта, я и выяснил принцип работы этого улучшения.
У нас есть боевая единица, и её тип брони defenseType (по ходу тот же integer), который равен:
Код:
0 - Лёгкой
1 - Средней
2  - Тяжелой
3 - Укрепленной
4 - Обычной (Нормальной)
5 - Геройской
6 - Божественной
7 - Беззащитной


Непосредственно к этому числу прибавляется другое, указанное в поле "Данные - Эффект - Новый тип защиты". Изначально там строка типа "Средняя" или "Тяжелая", но включив показ названий переменных, это решаемо.
Именно здесь решение неразберихи со стандартным улучшением орков:
Тяжелая(2) + Средняя (1) = Укрепленая(3)

2. Нельзя прокачивать больше одного уровня.



На этом этапе я потратил уйму времени, но проблема оказалась надуманной.
Смысл ее в том, что многоуровневую фортификацию можно делать на основе далеко не каждого усовершенствования. В подробности не вникал, в двух словах, отлично подойдут улучшения вроде Железных Мечей и Лунный щит (+ к урону или защите).
Если стандартное базовое улучшение только 1-го уровня, то фортификация и будет работать только 1-го уроня.
Короче говоря, используйте "Железные мечи"...

3. Не откатывается.



Итак, зная что улучшение прибавляет к текущему типу брони число из колонки "Данные - Новый тип брони" нам остается только подсунуть ему отрицательное число.

Открываетм MPQ-редактором архив war3patch.mpq (или другом), в нём файл "UI\UnitEditorData.txt"

1. Находим следующие строки:
Код:
[defenseTypeInt]
00=4,WESTRING_UE_DEFENSETYPE_NORMAL
01=0,WESTRING_UE_DEFENSETYPE_SMALL
02=1,WESTRING_UE_DEFENSETYPE_MEDIUM
03=2,WESTRING_UE_DEFENSETYPE_LARGE
04=3,WESTRING_UE_DEFENSETYPE_FORT
05=5,WESTRING_UE_DEFENSETYPE_HERO
06=6,WESTRING_UE_DEFENSETYPE_DIVINE
07=7,WESTRING_UE_DEFENSETYPE_NONE
NumValues=8


2. Меняем любое из чисел справа от "=" на отрицательное без скобок и пробелов после минуса.
3. Сохраняем в папке с игрой по тому же пути, и пере запускаем редактор.

После этого включив "Имена переменных" мы видим, что в нужной нам колонке выбирается "-N",
В игре при изучении улучшения, значение типа брони уменьшается, но, только на первом уровне улучшения! При последующих уровнях тип брони снова прибавляется.

Это и есть единственные "грабли", но, уже не такие страшные как вначале, и обойти их можно, создав кроме одного многоуровневого "наращивателя" со значением "1", еще нескольких одноуровневых улучшений со значением "-7" или меньше, "сбрасывающих" тип брони до легкой (0)

Да, и еще, файл UnitEditorData.txt нужен только на машине создателя для того чтобы "вбить" отрицательное число в нужное поле улучшения. Внутри карты и пользователям он не нужен, так как минусовое значение уже записано в свойствах улучшений, используемых в нашей карте.

Карта пример, приложена. Без единого триггера.
Прикрепленные файлы
Тип файла: w3x Тип брони.w3x (16.8 Кбайт, 71 просмотров )

Отредактировано dk, 24.12.2008 в 10:58.
Старый 23.12.2008, 20:06
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Эээ... тоесть я понял что твое изобретение позволяет сколько угодно раз менять тип брони у юнитов ?
Старый 23.12.2008, 20:19
Харгард
Epic
offline
Опыт: 7,829
Активность:
Цитата:
Эээ... тоесть я понял что твое изобретение позволяет сколько угодно раз менять тип брони у юнитов ?

Угу, при чем без создания копий юнитов в редакторе и заменой их в игре.
Старый 23.12.2008, 22:16
Scorched

offline
Опыт: 7,912
Активность:
Цитата:
Итак, зная что апгрейд прибавляет к текущему типу брони число из колонки "Данные - Новый тип брони" нам остается только подсунуть ему отрицательное число

опять то же самое. ну выучишь ты 500 улучшений с плюсом и 500 с минусом, и они у тебя закончатся все равно. и 100500 закончатся
Старый 24.12.2008, 00:51
Харгард
Epic
offline
Опыт: 7,829
Активность:
Цитата:
и они у тебя закончатся все равно

А ты чуток подумай, как сделать так, чтобы 500 улучшений хватало ;)
Старый 24.12.2008, 00:57
Scorched

offline
Опыт: 7,912
Активность:
никак не сделать. померяешь 50 доспехов по 10 раз каждый и все =)
Старый 24.12.2008, 01:05
Gres
Кораэлестраз
offline
Опыт: 18,575
Активность:
"Открытие" интересное! Но на мой взгляд безполезное! Действительно кроме ка для того чтобы доспехи добавляли броньку невижу смысла! А там нужно много раз добавлять и уменьшать!

Автор а ты не знаешь как можно узнать текущее кол-во брони у юнита(без нанесения урона и дальнейшего расчета?) Ответь в ПМ.
Старый 24.12.2008, 09:24

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 02:20.