Герои Меча и Магии 5 - Картостроительство (Редактор карт)В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.
вот есть функция EnableHeroAI( sHeroName, bEnable ). Есть ли функция, которая проверяет состояние bEnable? Что-то типа IsEnableHeroAI ?
Нет такой функции, но её не сложно сделать.
local enable_hero_ai = EnableHeroAI
local disabled = {}
function EnableHeroAI(hero, enable)
%enable_hero_ai(hero, enable)
%disabled[hero] = not enable
end
function IsHeroEnabled(hero)
return not %disabled[hero]
end
Я бы скопировал map-tag в эту карту из какой-либо другой, затем вшил бы его в карту. Потом этот файл можно открыть блокнотом, там будет примерно такой текст
Только каждая строчка ещё начинается со знака "<". Тут не сложно разобраться, что к чему. Надо лишь поменять все настройки под вашу карту. Может есть способ проще
Добавлено через 4 минуты
RedHeavenHeroНет такой функции, но её не сложно сделать.
local enable_hero_ai = EnableHeroAI
local disabled = {}
function EnableHeroAI(hero, enable)
%enable_hero_ai(hero, enable)
%disabled[hero] = not enable
end
function IsHeroEnabled(hero)
return not %disabled[hero]
end
а если герой АИ отключён, и я его ещё раз "отключаю" вызовом функции EnableHeroAI, это не приведёт к ошибке?
Не могу понять, как сделать непрозрачную воду с крутыми берегами? Делаю с помощью инструмента Water, но вода получается прозрачной и видно дно, а если добавлять воду из вкладки Rivers, то получаются пологие берега. Подскажите
Спасибо,все работает) Кстати, что это за байда при изменении карты,сохраняешь ее в редакторе с заменой оригинальной, а в игре в сценариях при включении карт мультиплеера появляется ее клон?
У меня ещё вот такой вопрос: SetObjectPosition( sObjectName, nX, nY, nFloorID = -1 )
если координаты, задаваемые в этой функции непроходимы, то, как я понимаю, объект будет перемещён на ближайший "проходимый" тайл, так? Это будет работать даже в том слуае, если вокруг тайла nX, nY даже близко нет проходимых тайлов?
Нет. Если координаты больше, чем координаты карты, то будет вылет с критической ошибкой, а иначе телепортация произойдет в любом случае. Героя я телепортировал и в гору, и в воду, и в шахту
HeroistНет. Если координаты больше, чем координаты карты, то будет вылет с критической ошибкой, а иначе телепортация произойдет в любом случае. Героя я телепортировал и в гору, и в воду, и в шахту
Я планирую это проделать с одним из существ. Если вдруг телепортирую его "случайно" в центр горы размером 40Х40, то существо окажется где-то на краю этой горы на проходимом месте, так?
Добавлено через 18 минут Ну, в общем, я совсем непонятно объяснил, извиняюсь: эта ф-ия работает, как обычное изменение координат тела, как, например, в редакторе; т.е какие координаты ты укажешь, там объект и окажется, вне зависимости от того, проходим-ли этот тайл или же нет. Вот.
А что если взять участок карты, скажем, размеров 100Х100, запустить цикл из 10000 итераций с проверкой каждого тайла с помощью IsTilePassable( nX, nY, nFloorID = GROUND ), и если тайл проходимый - добавлять его в массив. Потом для телепортации существа использовать элемент массива? Я правда сам ещё не знаю, как именно это сделать и сильно ли такое ударит по игровому процессу
Я бы отталкивался от некого радиуса от нужной клетки. Сначала проверить саму клетку, потом все клетки в радиусе=1, потом 2 и так далее, пока проходимый тайл не найдётся.