Читатель, мы вплотную подошли к системе SCV. Эта система, которая позволяет сопоставлять ЛЮБОМУ игровому объекту - либо другой объект, либо какое-то значение (или даже массив). Наподобие custom value, но значительно более универсальная. Значение этой системы трудно переоценить. Фактически, она позволяет упростить решение огромного множества задач, избавиться от глобальных переменных и создавать так называемые кешь-переменные прямо во время игры.
[/c]Прежде всего, нужно рассказать немного о том, что собой представляет компьютерная память. Читатель, может быть ты и так это знаешь, но на всякий обрисую картину. Все без исключения игровые объекты - юниты, строки, числа - все это находится в компьютерной памяти. Память представляет собой просто последовательность идущих подряд ячеек, в каждую из которых записано определенное число. При помощи чисел можно закодировать все - и юниты и строки. Разные объекты занимают разное количество ячеек. Ведь чтобы записать объект юнит, нужно записать целую кучу информации о всех его параметрах. Это гораздо больше информации, чем то, которое несет какое-то значение типа integer. Вообще говоря разработчики war3 вряд ли хотели, чтобы картостроители могли работать с памятью, но они допустили при разработке один важный баг, которым научились пользоваться спецы по jass. Баг не позволяет менять содержимое ячейки памяти - но зато он дает возможность для любого игрового объекта найти номер ячейки памяти, в которую он записан, а также по номеру ячейки найти ссылку на объект.
10. Оптимизация: утечки памяти Читатель, некоторое представления на эту тему ты уже имеешь. Например, известный факт, что если не удалять созданные спецэффекты, то игра через некоторое время начнет сильно тормозить. Поэтому, даже если спецэффект мгновенного действия и через некоторое время уже не виден, его все равно нужно удалять. Почему так происходит? Потому что каждый спецэффект - это игровой объект. Когда мы создаем новый спецэффект, он попадает в память. Если его не удалять, то он останется в памяти до конца игры.
Все достаточно просто. Если у вас есть две точки A и B, координаты которых нам известны. Как вычислить координаты третьей точки C, находящейся на заданном расстоянии R от точки A в направлении к точке B? Чтобы было понятнее, нарисуйте себе на бумаге точки A, B, выберите какой-то отрезок R длинна которого меньше AB. Точка C – находится на пересечении отрезка AB и окружности, проведенной из точки A радиуса R. Теперь должно быть понятнее.
Термин объект используется программистами. По сути объект – это какой-то предмет, обладающий определенным набором свойств и может выполнять определенную группу действий (и над ним может выполняться определенная группа действий). Вам необходимо научиться находить объекты в игре.
Многие люди, закачав модель или какой-нибудь другой файл, cталкиваются с проблемой: Как сделать так чтобы этот файл корректно отображался в игре. Все достаточно просто, но для человека, делающего это первый раз это будет огромной сложностью. Начинав картостроение, я не знал такой закладки "Менеджер Импорта" и делал все через MPQ архив. Так что эта статья будет посвящена импортированию файлов в карту и их корректного отображения. Как правилно импортировать модель?
Супер карты для Warcraft 3 // call SetSSTInt(I2S('AHmt')+"Icon",'B00B') //*** - Id треккебла который будет отображатся как иконка спелла // call SetSSTStr(I2S('AHmt')+"Name","Mass teleport") // - Система по стандарту берёт для скилла имя абилы, но если в этом параметре вы укажете своё имя то будет использоватся оно. // call SetSSTInt(I2S('AHmt')+"NLevel",6) // - Требуемый уровень героя для изучения скилла // call SetSSTInt(I2S('AHmt')+"NLevConst",3) // - Так как и в стандартных варовских спеллах т.е. каждый уровень скилла требования уровня будут увеличиватся на это количество. // !! - Если скилл используются НЕ ГЕРОЕМ и у скилла есть требования уровня то уровнем юнита можно манипулировать с помощью "GetSSTUnitLevel" и "SetSSTUnitLevel", о этих функциях написано вверху страници.
Есть ли какое-нибудь ограничение на размер карты в мультиплеере? Да это 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"
Неплохие карты для Warcraft 3 Программой Warcraft 3 Viever откройте архив War3.mpq В древовидной структуре переключитесь на blp и зайдите в папку TerrainArt. Тут мы видим папки с названием типов местности. В них лежат текстуры рельефа. Откройте нужную вам папку, и выберите тот рельеф, который вам будет удобно изменять. Выбрали?! Хорошо. Теперь кликайте по нему левой кн. мыши, и конвертируйте в BMP... Сохраните в любую папку. Откройте сохраненный файл любым графическим редактором, и измените как хотите.