04-12-2024Хорошо, так мы хотим еще случайности в нашей карте. Ну, есть способ сделать свой местности формироваться несколько наугад по каждому экземпляру игры. Идея проста: выполнить несколько случайных постоянной деформации местности. Нам понадобится регионе, чтобы изменения в силе и что будет довольно много всего, если оно будет один выстрел карте. Переменные: TheRegion <gen> - региона, которые будут деформированы TerrainGenerationSimple События Карта инициализации Условия Действия Для каждого из них (Integer) от 0 до 459, делать (Действия) Loop - Действия Окружающая среда - Создать 0,01 второй деформации кратер на постоянных (Random точки TheRegion <gen>) с радиусом (Random действительное число между 500,00 и 1100,00) и глубины (Random действительное число между -40,00 и 40,00) Примечание 1: Радий и глубины также случаен. Obviosly вы можете использовать различные диапазоны для них. Мне советовать не преувеличивать их, как это может привести к неестественным выглядит генерируемого местности ('шипами, острыми краями, слишком глубокие впадины и т.д.). Возможно, вы захотите иметь глубокие долины (это выглядит здорово, если пользовательский ударов в туман, и вы можете реально ощутить расстояние), помимо общих местности. В этом случае просто скопировать на курок, и дать несколько попыток, с другими параметрами (например, только отрицательные глубинах при высоких значениях). Примечание 2: количество деформации полностью зависит от размера региона и степень случайности мы хотим достичь (я бы советовал 300 + в общем случае). Примечание 3: триггер выполняется на карте инициализации, так что это скажется на времени загрузки (в некоторых случаях даже очень). На мой нескольких карт я сделал это огонь во время игры время периодически в течение определенного количества итераций и со случайными время деформации (а не 0,01 сек ^ ^). Игроки получили возможность увидеть, как на самом деле местности формируется с течением времени (наряду с деревьев медленно растущих из земли, участки травы выкатились, а также мусора, цветы, ракушки и другие вещи ). Так что учтите это как вариант. Примечание 4: Внешняя часть области (около среднего радиуса длина от края) будет меньшей степени, чем другие части региона. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Итак, теперь у нас есть хороший местности. К сожалению, когда мы сохранить игру и загрузить ее в дальнейшем, все деформации 'забыли'. Если мы хотим быть более профессиональными, мы должны решить эту проблему. Еще раз, концепция проста: мы будем сохранять все параметры в переменных (массивов из них). Мы должны изменить местности генератора: Переменные: NumberOfDeformations - (целое) пояснений TheRegion <gen> - региона, которые будут деформированы RandomPoint - (точка) - положение в настоящее время применяется деформации RandomRadius - (реальный) - радиус деформации текущего RandomDepth - (реальный) - глубина текущего деформации Очки - (массив точек) - сохранение всех позиций здесь Радий - (массив чисел) - сохранение всех радиусов здесь Глубина - (массив чисел) - сохранение всех глубинах здесь TerrainGeneration События Карта инициализации Условия Действия Установить NumberOfDeformations = 460 Для каждого (целое число) от 0 до (NumberOfDeformations - 1) не (Действия) Loop - Действия Установить RandomPoint = (Random точки TheRegion <gen>) Установить RandomRadius = (Random действительное число между 500,00 и 1100,00) Установить RandomDepth = (Random действительное число между -40,00 и 40,00) Установить Points [(целое число)] = RandomPoint Установить Радий [(Integer)] = RandomRadius Установить Глубина [(Integer)] = RandomDepth Окружающая среда - Создать 0,01 второй деформации кратера Постоянного на RandomPoint с радиусом RandomRadius и глубина RandomDepth Пользовательский сценарий: вызвать RemoveLocation (udg_RandomPoint) Примечание 5: Вы не можете предсказать размер массивов, они могли бы размер 4, и даже если вам нужен доступ к 4735th позиции, Warcraft будет справиться с этим. Тем не менее, массивы имеют предел возможностей 8192, так что не установить NumberOfDeformations более 8192 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Теперь, вызвать регенерацию природный ландшафт после загрузки сохраненной игры: TerrainReGeneration События Игра - сохранить игру загружается Условия Действия Для каждого из них (Integer) от 0 до (NumberOfDeformations - 1), делать (Действия) Loop - Действия Окружающая среда - Создать 0,01 второй деформации кратера постоянных в точках [(Integer)] с радиусом Радий [(Integer)] и глубины глубин [(Integer)] Если работать только штрафом. Вот и все. Получайте удовольствие с Вашей карты рандомизированных.
|