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

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

Ответ
 
Nachtschatte

offline
Опыт: 52
Активность:
Динамический ландшафт
Задумал сделать карту, в которой ландшафт генерируется рандомно в начале игры, для придания непредсказуемости. Первоначально карта представляет из себя глубокую воду. Генератор случайных островов триггерный, он делает кратер с отрицательной глубиной, и таким образом получаются холмики островов. Проблема в том, что корабли продолжают плавать прямо по поверхности этих островов, а сами изменения ландшафта не отображаются на миникарте. И ещё, если сохранить игру, а потом загрузить, то острова пропадают. Можно ли каким нибудь способом добиться решения этих проблем? Могут ли быть обновлены миникарта и карта путей ландшафта во время игры?
Старый 22.02.2013, 11:03
Fakov
Viva la Fa
offline
Опыт: 102,058
Активность:
очевидно не юзать создание островов через кратеринг с отрицательным значением.
насколько мне помнится - крутое поднятие триггерно не делается, только нищебродские клифы
Старый 22.02.2013, 11:08
Ancient
Щпаовапа
offline
Опыт: 38,370
Активность:
Можно извратиться через блокираторы пути и тип ландшафта + способ передвижения юнита (летающий и т.д.)
Старый 22.02.2013, 12:04
Nachtschatte

offline
Опыт: 52
Активность:
Да, но блокираторы не решат проблему сохранения и загрузки игры. Хотя может быть этим можно и пожертвовать.

А на счёт клифов, они бы меня устроили. Я допускаю схематичность и условность. В данном случае красоты не так важны,
Старый 22.02.2013, 12:17
Fakov
Viva la Fa
offline
Опыт: 102,058
Активность:
А на счёт клифов, они бы меня устроили. Я допускаю схематичность и условность. В данном случае красоты не так важны,
just use it. я только не могу сейчас посмотрет что за функция отвечает за это
Старый 22.02.2013, 12:20
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,467
Активность:
Nachtschatte, можно сделать шамотную доску, ибо на сильно крутой алгоритм создания природного ландшафта ваших познаний вряд ли хватит...
Просто используй блокираторы пути или области для отслеживания приказов по ним, если точка приказа находится на острове (области) то отдать приказ кораблю плыть рядом и тп...
С мини картой намного сложнее, она генерируется всякий раз при сохранение ландшафта в редакторе и лежит в архиве карты...
Старый 22.02.2013, 12:22
Nachtschatte

offline
Опыт: 52
Активность:
Fakov, никак не могу найти эту функцию поднятия клифов. Она в стандартном редакторе есть? Или в каком нибудь навороченом?

quq_CCCP, так, значит с миникартой вопрос отпал. Спасибо, идея с шахматной доской примерно понятна.
Старый 22.02.2013, 13:55
Ancient
Щпаовапа
offline
Опыт: 38,370
Активность:
Nachtschatte, с клиффами только статически можно работать, тоесть из редактора тригов ты им ничего не сделаешь, только поставил и все.
Старый 22.02.2013, 14:19
Nachtschatte

offline
Опыт: 52
Активность:
Ancient, печально. Если невозможно триггерами изменять ландшафт, то, вероятно, я откажусь от идеи генерации ландшафта.
Старый 22.02.2013, 14:28
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
возможное решение:
после генерации карты запускаешь цикл:
((код jass
real X = GetRectMinX(bj_mapInitialPlayableArea)
real Y = GetRectMinY(bj_mapInitialPlayableArea)
real MaxX = GetRectMaxX(bj_mapInitialPlayableArea)
real MaxY = GetRectMaxY(bj_mapInitialPlayableArea)
real MinY = Y
loop
{
loop
{
if (GetLocationZ(Location(X, Y) > 0.))
{
SetTerrainPathable(X, Y, PATHING_TYPE_FLOATABILITY, false)
}
Y += 32.
exitwhen Y >= MaxY
}
Y = MinY
X += 32.
exitwhen X >= MaxX
}
))
написал на коленке, насчет утечек не уверен
Старый 23.02.2013, 13:12
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,467
Активность:
Темак, цикл то уверен что не оборвётся, там 4000 шагов придел если мне память не изменяет, + Сколько же ты этими двумя циклами локейшенов наплодишь?
И изначальная высота рельефа вроде бы не 0....
Старый 23.02.2013, 15:03
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
quq_CCCP, я не знаю течёт ли функция Location(x, y), не приходилось использовать её как-то
Лимит итераций не проблема, можно сохранять прогресс покрытия карты и запускать в новом потоке (зависит от размера карты)
Ну вместо ноля он может сам ставить любое нужное значение
Старый 23.02.2013, 17:20
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
ты создаешь объект который не удаляется, очевидно же что он остается висеть
Старый 23.02.2013, 17:22
Ответ

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

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

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

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



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