спавнится что это значит
Спаун
Спа́ун (англ. Spawn) — это появление игроков и мобов в определённой точке игрового мира.
Содержание
Спаун игроков [ ]
В каждом, вновь созданном мире есть точка спауна, обозначенная парой координат (z, x) в пределах нескольких сотен блоков от начальных координат (x=0, z=0). По умолчанию игрок спаунится на первой подходящей позиции выше уровня моря. Если такой позиции нет (подходящее место занято блоками, водой или лавой), то координаты z и x будут смещаться небольшими значениями до тех пор, пока подходящая точка для спауна не будет найдена. В верхнем мире, поспав на кровати, игрок переносит свою точку спауна к координатам месторасположения кровати. В этом случае игрок после смерти всегда будет респауниться на новой позиции. Хотя есть два исключения, когда игрок оказывается на месте первоначального спауна:
В Нижнем мире с версии 1.16 игрок может переносить свою точку спауна с помощью якоря возрождения, предварительно кликнув по нему светокамнем, а затем ещё раз кликнув пустой рукой.
Спаун мобов [ ]
Чанк спаун [ ]
Корова заспаунена при генерации карты, именно по этой причине она появилась и застряла в листве, так как листва считается прозрачным блоком
Первоначально, непосредственно при генерации карты, могут спауниться следующие мобы:
Один из десяти чанков содержит пассивных мобов. Они всегда спаунятся на самом высоком доступном блоке, с которого можно видеть небо. Для спауна животного необходимо, чтобы этот блок был непрозрачным, а 2 блока над ним — прозрачными. Этот блок необязательно должен быть дёрном или освещен (это работает только в последующих циклах спауна). Практически все пассивные мобы не спаунятся в водных, пустынных и грибных биомах. Исключения:
Рандомность спауна пассивных мобов зависит от зерна. Это означает, что в мирах с одинаковым зерном будут генерироваться чанки с одинаковыми пассивными мобами в тех же местах.
Количество спаунящихся мобов:
Пассивный спаун [ ]
В последующих циклах спауна принимают участие все мобы, за исключением гиганта, снежного голема и иссушителя, которые в естественном виде не встречаются, а также дракона Края, который спаунится единожды при генерации карты (или после повторного призывания, с помощью кристаллов Края). По виду мобы делятся на 5 категорий: враждебные, дружелюбные (пассивные), нейтральные, природные существа и водные. У враждебных мобов цикл спауна происходит 1 раз каждый игровой такт ( 1 ⁄20 секунды). У дружелюбных мобов и спрутов цикл спауна происходит 1 раз в 400 тактов. Следует заметить, что большинство дружелюбных мобов спаунится непосредственно при генерации карты. Условия спауна враждебных мобов — уровень освещения 7 и ниже на твёрдых блоках. Над твёрдым блоком должны быть блоки воздуха больше высоты моба. Блоки, на которых спаун невозможен: все виды рельс, стекло, сундук, воронка, трубы, провода и механизмы из модификаций, все виды заборов, калиток и дверей, плиты (если плита установлена как настил), все виды блоков из красного камня, напольные кнопки, нажимные пластины. Блоки, не препятствующие спауну: переключатели (рычаги, настенные кнопки). Мобы спаунятся вокруг игрока в области размером 15×15 чанков. (240×240 блоков). В SMP мобы могут спаунится в пределах этой дистанции от любого из игроков. Циклы спауна мобов прекращаются, если игрок отойдет на 128 блоков от места спауна мобов. При этом все враждебные мобы и спруты деспаунятся. Таким образом эффективная область для спауна мобов ограничивается окружностью с радиусом 128 блоков с центром в виде игрока. Количество мобов на поверхности примерно пропорционально общему числу чанков, подходящих для спауна. Чтобы вычислить точное значение, область спауна увеличивается на один чанк в каждом направлении (таким образом, составляя площадь 17×17 чанков), а затем суммарное количество чанков приводится к следующей формуле:
Каждая категория мобов имеет свою индивидуальную константу:
В одиночном режиме константы имеют несколько другие значения.
В многопользовательской игре чанки, которые находятся в зоне действия игроков, учитываются только один раз. Таким образом, чем больше расходятся игроки, тем больше чанков будет открыто и тем больше мобов будет на карте. Количество мобов может быть подсчитано в начале каждого цикла спауна. Если мобы в категории присутствуют на карте в большем количестве, чем положено, то целый цикл спауна пропускается.
Наглядный пример группового спауна. Область спауна 41×1×41 показана синим цветом. Жёлтый цвет — это возможные позиции появления мобов. Красный куб — блок воздуха, центральная точка зоны спауна.
Во время каждого цикла есть одна попытка спауна группы мобов в каждом подходящем чанке. В чанке выбирается случайная локация и становится центром спауна группы. Чтобы спаун группы мобов прошел успешно, центральный блок зоны спауна должен быть либо водой (для спрута), либо воздухом. (В последнем случае, это должен быть, буквально, блок воздуха). Любой другой блок предотвратит попытку спауна группы. Если все условия выполнены, то 12 попыток спауна создают группу в пределах 1-4 мобов (Исключения: волки — до 8 мобов в группе, гасты — 1 моб на группу). Группа создается внутри области 41×1×41 блоков (квадрат размером 41×41 и высотой в один блок). Для каждой последующей попытки спауна группы локация центрального блока выбирается случайно. Хотя радиус зоны для спауна и составляет 21 блок, случайное место для спауна моба смещается ближе к центру. Таким образом в 85 % случаев спаун будет происходить в пределах 5 блоков от центра, и 99 % случаев в пределах 10 блоков от центра. Все мобы внутри группы одного вида.
Вид группы для спауна определяется сначала биомами и специальными условиями:
Другие виды спауна [ ]
Деспаун [ ]
Различные ступени поведения мобов в зависимости от удаления игрока от них.
Враждебные мобы (включая враждебных волков), спруты и оцелоты удаляются из игры при отдалении игроков от них, так как впустую тратятся процессорные ресурсы на их обсчёт:
Достижения [ ]
Значок | Достижение | Описание | Предок | Задача (если отличается) | Идентификатор |
---|---|---|---|---|---|
| Спи, моя радость, усни | Измените свою точку возрождения | Приключения | Поспите в кровати до рассвета. | minecraft:adventure/sleep_in_bed |
Проблемы [ ]
Отчёты об ошибках, связанных с «Спаун», поддерживаются в системе отслеживания ошибок Mojira. Сообщайте о найденных ошибках там (на английском языке).
Интересные факты [ ]
Игрок заспаунился в каньоне.
Спаун
Спа́ун (англ. Spawn) — это появление игроков и мобов в определённой точке игрового мира.
Содержание
Спаун игроков
В каждом, вновь созданном мире есть точка спауна, обозначенная парой координат (z, x) в пределах нескольких сотен блоков от начальных координат (x=0, z=0). По умолчанию игрок спаунится на первой подходящей позиции выше уровня моря. Если такой позиции нет (подходящее место занято блоками, водой или лавой), то координаты z и x будут смещаться небольшими значениями до тех пор, пока подходящая точка для спауна не будет найдена. В верхнем мире, поспав на кровати, игрок переносит свою точку спауна к координатам месторасположения кровати. В этом случае игрок после смерти всегда будет респауниться на новой позиции. Хотя есть два исключения, когда игрок оказывается на месте первоначального спауна:
В Нижнем мире с версии 1.16 игрок может переносить свою точку спауна с помощью якоря возрождения, предварительно кликнув по нему светокамнем, а затем ещё раз кликнув пустой рукой.
Спаун мобов
Чанк спаун
Корова заспаунена при генерации карты, именно по этой причине она появилась и застряла в листве, так как листва считается прозрачным блоком
Первоначально, непосредственно при генерации карты, могут спауниться следующие мобы:
Один из десяти чанков содержит пассивных мобов. Они всегда спаунятся на самом высоком доступном блоке, с которого можно видеть небо. Для спауна животного необходимо, чтобы этот блок был непрозрачным, а 2 блока над ним — прозрачными. Этот блок необязательно должен быть дёрном или освещен (это работает только в последующих циклах спауна). Практически все пассивные мобы не спаунятся в водных, пустынных и грибных биомах. Исключения:
Рандомность спауна пассивных мобов зависит от зерна. Это означает, что в мирах с одинаковым зерном будут генерироваться чанки с одинаковыми пассивными мобами в тех же местах.
Количество спаунящихся мобов:
Пассивный спаун
В последующих циклах спауна принимают участие все мобы, за исключением гиганта, снежного голема и иссушителя, которые в естественном виде не встречаются, а также дракона Края, который спаунится единожды при генерации карты (или после повторного призывания, с помощью кристаллов Края). По виду мобы делятся на 5 категорий: враждебные, дружелюбные (пассивные), нейтральные, природные существа и водные. У враждебных мобов цикл спауна происходит 1 раз каждый игровой такт ( 1 ⁄20 секунды). У дружелюбных мобов и спрутов цикл спауна происходит 1 раз в 400 тактов. Следует заметить, что большинство дружелюбных мобов спаунится непосредственно при генерации карты. Условия спауна враждебных мобов — уровень освещения 7 и ниже на твёрдых блоках. Над твёрдым блоком должны быть блоки воздуха больше высоты моба. Блоки, на которых спаун невозможен: все виды рельс, стекло, сундук, воронка, трубы, провода и механизмы из модификаций, все виды заборов, калиток и дверей, плиты (если плита установлена как настил), все виды блоков из красного камня, напольные кнопки, нажимные пластины. Блоки, не препятствующие спауну: переключатели (рычаги, настенные кнопки). Мобы спаунятся вокруг игрока в области размером 15×15 чанков. (240×240 блоков). В SMP мобы могут спаунится в пределах этой дистанции от любого из игроков. Циклы спауна мобов прекращаются, если игрок отойдет на 128 блоков от места спауна мобов. При этом все враждебные мобы и спруты деспаунятся. Таким образом эффективная область для спауна мобов ограничивается окружностью с радиусом 128 блоков с центром в виде игрока. Количество мобов на поверхности примерно пропорционально общему числу чанков, подходящих для спауна. Чтобы вычислить точное значение, область спауна увеличивается на один чанк в каждом направлении (таким образом, составляя площадь 17×17 чанков), а затем суммарное количество чанков приводится к следующей формуле:
Каждая категория мобов имеет свою индивидуальную константу:
В одиночном режиме константы имеют несколько другие значения.
В многопользовательской игре чанки, которые находятся в зоне действия игроков, учитываются только один раз. Таким образом, чем больше расходятся игроки, тем больше чанков будет открыто и тем больше мобов будет на карте. Количество мобов может быть подсчитано в начале каждого цикла спауна. Если мобы в категории присутствуют на карте в большем количестве, чем положено, то целый цикл спауна пропускается.
Наглядный пример группового спауна. Область спауна 41×1×41 показана синим цветом. Жёлтый цвет — это возможные позиции появления мобов. Красный куб — блок воздуха, центральная точка зоны спауна.
Во время каждого цикла есть одна попытка спауна группы мобов в каждом подходящем чанке. В чанке выбирается случайная локация и становится центром спауна группы. Чтобы спаун группы мобов прошел успешно, центральный блок зоны спауна должен быть либо водой (для спрута), либо воздухом. (В последнем случае, это должен быть, буквально, блок воздуха). Любой другой блок предотвратит попытку спауна группы. Если все условия выполнены, то 12 попыток спауна создают группу в пределах 1-4 мобов (Исключения: волки — до 8 мобов в группе, гасты — 1 моб на группу). Группа создается внутри области 41×1×41 блоков (квадрат размером 41×41 и высотой в один блок). Для каждой последующей попытки спауна группы локация центрального блока выбирается случайно. Хотя радиус зоны для спауна и составляет 21 блок, случайное место для спауна моба смещается ближе к центру. Таким образом в 85 % случаев спаун будет происходить в пределах 5 блоков от центра, и 99 % случаев в пределах 10 блоков от центра. Все мобы внутри группы одного вида.
Вид группы для спауна определяется сначала биомами и специальными условиями:
Другие виды спауна
Деспаун
Различные ступени поведения мобов в зависимости от удаления игрока от них.
Враждебные мобы (включая враждебных волков), спруты и оцелоты удаляются из игры при отдалении игроков от них, так как впустую тратятся процессорные ресурсы на их обсчёт:
[Это интересно] Мобоспаунология.
Я слышал множество легенд и слухов о правилах респауна мобов и способах нажиться на этом. Поэтому и решил провести собственное исследование. Часть информации получена путем тестирования на карте CleanRoom (автор: codewarrior), огромном пространстве, состоящем из одного слоя админиума и одного слоя шерсти над ним.
Остальное получено непосредственно из кода игры. Я все еще не до конца разобрался с нюансами, но это некритично. Отдельное спасибо пользователю wabbiteh за помощь в выделении алгоритма из кода.
Раздел 1: Всемогучие Правила Спауна Мобов™:
1) Сложность не влияет на частоту спауна.
Нет, правда. Это подтверждено кодом. Алгоритм спауна не проверяет сложность игры. Даже Peaceful имеет такую же частоту спауна, что и все остальные, несмотря на то что враждебные мобы сразу же удаляются с карты.
2) Мобы могут спауниться на рукотворных кубах.
Булыжник, куб из каменных ступенек и шерсть работают точно так же, как камень и земля. Но они не могут заспауниться на стекле и одиночной каменной ступени. Ничто из этого также на частоту спауна не влияет.
3) Спаун активен только в квадрате 144×144 вокруг вас, и не ближе чем в 24 метрах.
Говоря проще, мобы спавнятся не дальше 81ой клетки от игрока. Но также они не могут появиться в сфере радиусом 24 метра, центром которой является игрок.
Выглядит это вот так:
Также мобы не могут появляться в радиусе менее 24 метров от точки возрождения игрока.
4) Большие слизни встречаются на сложности Peaceful.
Несмотря на то, что на Peaceful слизни не могут спауниться, они спаунятся на всех прочих сложностях. Но в отличии от прочих враждебных мобов, слизни, даже самые большие, не исчезают при переключении на Peaceful во время игры. Если вы убьете слизня на Peaceful, он не распадется на маленьких, а сразу исчезнет. Также стоит отметить, что освещенность пещеры не влияет на спаун слизней, но только на больших глубинах (до 15 клеток от «дна» карты).
5) Враждебные мобы спаунятся только при освещенности уровня 7 или меньше. Нейтральные мобы спаунятся при освещенности 9 и выше, и только на траве.
Уровень освещенности клетки вычисляется очень странным образом. Ее базовая освещенность сравнивается с 4 соседними клетками и кубом воздуха над ней. Самый освещенный блок из этой группы передает свое значение центральной клетке. Это значит, что если даже освещенность центральной клетки равна 7, то при наличии соседнего блока с освещенностью 8 враждебный моб не спаунится.
6) Вероятность спауна враждебного моба на определенной клетке зависит от ее освещенности (и свойств окружающей ее области).
7) В любой момент времени максимум мобов на карте равен 200 для враждебных и 15 для нейтральных.
Если лимит достингут, новые мобы не могут появляться, пока один из уже существующих не умрет, не исчезнет, или не выгрузится из кеша вместе с областью, на которой стоит.
8) Факелы в одной комнате не влияют на спаун мобов в соседней.
9)Спаун слизней работает с ошибкой.
Во всех его частях. Алгоритм определения региона использует координаты по X,Y вместо координат по X,Z, и это в довесок к случайному спауну. Но не бойтесь. В этой теме выложен патч. (Слизни не станут встречаться чаще, но будут более разумно спауниться на площади региона).
[Это интересно] Мобоспаунология.
Я слышал множество легенд и слухов о правилах респауна мобов и способах нажиться на этом. Поэтому и решил провести собственное исследование. Часть информации получена путем тестирования на карте CleanRoom (автор: codewarrior), огромном пространстве, состоящем из одного слоя админиума и одного слоя шерсти над ним.
Остальное получено непосредственно из кода игры. Я все еще не до конца разобрался с нюансами, но это некритично. Отдельное спасибо пользователю wabbiteh за помощь в выделении алгоритма из кода.
Раздел 1: Всемогучие Правила Спауна Мобов™:
1) Сложность не влияет на частоту спауна.
Нет, правда. Это подтверждено кодом. Алгоритм спауна не проверяет сложность игры. Даже Peaceful имеет такую же частоту спауна, что и все остальные, несмотря на то что враждебные мобы сразу же удаляются с карты.
2) Мобы могут спауниться на рукотворных кубах.
Булыжник, куб из каменных ступенек и шерсть работают точно так же, как камень и земля. Но они не могут заспауниться на стекле и одиночной каменной ступени. Ничто из этого также на частоту спауна не влияет.
3) Спаун активен только в квадрате 144×144 вокруг вас, и не ближе чем в 24 метрах.
Говоря проще, мобы спавнятся не дальше 81ой клетки от игрока. Но также они не могут появиться в сфере радиусом 24 метра, центром которой является игрок.
Выглядит это вот так:
Также мобы не могут появляться в радиусе менее 24 метров от точки возрождения игрока.
4) Большие слизни встречаются на сложности Peaceful.
Несмотря на то, что на Peaceful слизни не могут спауниться, они спаунятся на всех прочих сложностях. Но в отличии от прочих враждебных мобов, слизни, даже самые большие, не исчезают при переключении на Peaceful во время игры. Если вы убьете слизня на Peaceful, он не распадется на маленьких, а сразу исчезнет. Также стоит отметить, что освещенность пещеры не влияет на спаун слизней, но только на больших глубинах (до 15 клеток от «дна» карты).
5) Враждебные мобы спаунятся только при освещенности уровня 7 или меньше. Нейтральные мобы спаунятся при освещенности 9 и выше, и только на траве.
Уровень освещенности клетки вычисляется очень странным образом. Ее базовая освещенность сравнивается с 4 соседними клетками и кубом воздуха над ней. Самый освещенный блок из этой группы передает свое значение центральной клетке. Это значит, что если даже освещенность центральной клетки равна 7, то при наличии соседнего блока с освещенностью 8 враждебный моб не спаунится.
6) Вероятность спауна враждебного моба на определенной клетке зависит от ее освещенности (и свойств окружающей ее области).
7) В любой момент времени максимум мобов на карте равен 200 для враждебных и 15 для нейтральных.
Если лимит достингут, новые мобы не могут появляться, пока один из уже существующих не умрет, не исчезнет, или не выгрузится из кеша вместе с областью, на которой стоит.
8) Факелы в одной комнате не влияют на спаун мобов в соседней.
9)Спаун слизней работает с ошибкой.
Во всех его частях. Алгоритм определения региона использует координаты по X,Y вместо координат по X,Z, и это в довесок к случайному спауну. Но не бойтесь. В этой теме выложен патч. (Слизни не станут встречаться чаще, но будут более разумно спауниться на площади региона).
Спавн через скрипт
В скриптах есть одна единственная функция, отвечающая за спавн объектов:
alife():create(section,position,levelvertex,gamevertex)
Строго говоря, их две: create create_ammo но различия между ними не существенны. Imp 22:45, 23 июля 2007 (EEST)
Дальше сложнее, так как сам толком сформулировать не могу.
Начнем от простого к сложному. На каждом уровне много объектов, все объекты состоят из полигонов, у каждого полигона есть вершины – вертексы.
Соответственно, чтобы заспавнить что-нибудь на другой карте, достаточно указать game_vertex в четвертом параметре Например:
db.actor:game_vertex()
Итак, чтобы, например, заспавнить болт под ногами актора, пишем:
alife():create(«bolt»,db.actor():position(),1,db.actor:game_vertex())
Пример (спавним артефакт Медуза в инвентаре у актора):
alife():create(«af_medusa», db.actor():position(), 1, db.actor:game_vertex(), db.actor:id())
Функция спавна возвращает серверный объект, то есть ни NPC, ни монстра ни что-либо еще.
Что мы делаем? Сверяем ID онлайн объекта с сохраненным ID!
Итак, мы поймали нашего киллера по ID.
Зачем такие сложности? Просто в оффлайне NPC как бы не существует, есть только косвенное упоминание о нем, и, плюс, все эти функции работают именно с объектом типа «NPC», а не с серверными объектами.
Практика (часть 1)
1. Чтобы не повторяться в описании создания нового квеста, просто изучите статью по созданию квестов от Fr3nzy – лучшей статьи на эту тему я просто не видел 🙂 Мы просто свяжем все воедино и научимся спавнить объекты из скрипта.
Почему предпочтительнее делать спавн скриптом, а не через тот же xrSpawner? Программа xrSpawner, при всех своих достоинствах, обладает одним недостатком, а именно – она делает спавн через файл all.spawn, что приводит к:
Невозможности совместить два мода, такой спавн использующих
Необходимости каждый раз начинать новую игру
При спавне через скрипт ситуация иная: в подавляющем большинстве случаев, ранее сохраненные игры будут работать, что не может не радовать 🙂
Итак, определимся с квестом.
Задача: после разговора с Сидоровичем спавним зомби на территории фабрики в первой локации. Для того, чтобы не повредить оригинальный сюжет игры, задание будет выдаваться после прохождения квеста с флешкой Шустрого, так как появись там зомби одновременно с бандитами и Шустрым. я думаю, исход боя предрешен 🙂
Реализация: Постараюсь описать все действия максимально подробно, буквально по шагам. Первым делом запустите игру 🙂
В консоли введите команду:
rs_stats on или rs_stats 1
Тем самым мы включаем вывод информации на экран. Далее вводим еще одну команду:
demo_record 1
Для выхода из режима demo_record нажимаем Esc, в консоли пишем rs_stats off или rs_stats 0 (убираем вывод информации).
Добавим пятую модель.
Для этого в конце файла создадим секцию:
[zombie_ghost]:zombie_strong
Это означает, что наш пятый зомби наследует все параметры zombie_strong, мы добавим лишь визуальное представление.
Пишем дальше:
$spawn = «monsters\zombies\zombie_ghost»
visual = monsters\zombi\zombi_1_ghost
Все. Сохраняем изменения и закрываем файл.
2. Пишем скрипт спавна. В папке gamedata создаем новую папку scripts, в ней создаем новый текстовый документ и называем его esc_zombie.script.
При написании статьи использовался оригинальный скрипт zombie_story.script из horror-mod’а. Концепция спавна перенесена практически без изменений, поэтому на авторство этого способа спавна я никоим образом не претендую 🙂
Итак, открываем наш пустой файл на редактирование, первой строкой объявляем переменную, в которой хранятся наши зомби:
local zombie_types =
Все. Сохраняем и закрываем файл.
Для того, чтобы игра не вылетала после того, как мы добавили новый тип монстров, их нужно добавить в файл xr_statistic.script. Итак, скопируем этот файл из папки игры scripts в нашу папку к файлу esc_zombie.script и откроем на редактирование.
Добавим в local killCountProps к монстрам строчку:
zombie_weak = 1, zombie_normal = 2, zombie_str 3
В local sect_alias строчку:
zombie_weak = «zombie_weak», zombie_normal = «zombie_normal», zombie_str «zombie_strong»
А ниже в monster_classes строчку:
[clsid.zombie_s ] = «zombie»
В функцию getNpcType(npc) добавляем конструкцию:
elseif npc:character_community() == «zombie» then
community = «zombie»
Сохраняем изменения и закрываем файл.
Все будет работать на ура, пока мы не попробуем обыскать убитого зомби. Как только мы это сделаем, игра вылетит с примерно такой ошибкой.
Expression : fatal error
Function : CInifile::r_string
File : D:\xray-svn\xrCore\Xr_ini.cpp
Line : 351
Description :
Arguments : Can’t find variable icon in [zombie_weak]
Все верно – игра не знает какую иконку нам показывать для зомби. Иконки монстров хранятся в файле ui_npc_monster.dds. Здесь есть два варианта:
Если дружите с Фотошопом, отредактировать этот файл (нарисовать, добавить иконки);
Взять готовый из любого мода, естественно, с разрешения авторов мода. Сейчас мы пропустим данный аспект и присвоим нашим зомби иконки контролера 🙂
Вернемся к файлу m_zombie.ltx и в секцию [m_zombie_e]:monster_base впишем параметр
icon = ui_npc_monster_kontroler
Все. Вылетов не будет.
3. Тема данной статьи не предусматривает подробного описания того, как сделать новый диалог. В начале статьи я упомянул источник, где можно найти исчерпывающую информацию по созданию диалогов, могу также привести в пример статью по созданию диалогов от BAC9-FLCL.
Нам нужно просто проверить работоспособность скриптового спавна, поэтому я приведу просто собственно сам измененный диалог из файла dialogs_escape.xml:
escape_trader_talk_info_999
7770
9991
9992
9993
9994
9995
9996
escape_trader_talk_info_99922
9996
9995
escape_trader_talk_info_3121
9996
9995
escape_trader_talk_info_3131
9996
9995
escape_trader_talk_info_41
9996
9995
escape_trader_talk_info_7771
7772
7773
escape_trader_talk_info_7779
9996
9995
escape_trader_talk_info_7777
esc_zombie.zombie_story_1
9996
9995
escape_trader_talk_info_51
9996
9995
И также связанный с ним файл stable_dialogs_escape.xml. В самом начале файла пишем следующее:
Происшествий никаких не было?
Да я как-то не собирался в ту сторону.
Ну, смотри сам, все равно будь осторожен.
Ага. Сходи, проветрись. Потом зайдешь, расскажешь, что там и как.
Здесь проход воспрещён, сталкер.
Все. Можно запускать игру, идти на Кордон, после разговора с Сидоровичем, в зависимости от выбранного Меченным решения, бежим на фабрику и … смотрим сами 🙂
Готовые файлы примера
Spawn Lib
Продолжение следует…
Практика (часть 2)
Файл модели до редактирования
Файл модели после редактирования
На скринах видно, что мы просто изменили для этой модели путь к текстуре. Все. Без использования 3D-редакторов и затраты кучи времени на обработку модели в них, мы получили абсолютно новую (на внешний вид) модель. 🙂
5. Теперь пропишем нашего нового зомби во все файлы, которые мы создали ранее. В файл m_zombie.ltx в самый конец добавляем секцию:
[zombie_old]:zombie_normal
$spawn = «monsters\zombies\zombie_old»
visual = monsters\zombi\zombi_3
в файле esc_zombie.script изменяем массив в первой строке:
local zombie_types = <"zombie_weak", "zombie_normal", "zombie_strong", "zombie_immortal",
«zombie_old», «zombie_ghost»>
В функции spawn_zombies изменяем строку спавна:
alife():create(zombie_types[math.random(6)],new_pos,
db.actor:level_vertex_id(),db.actor:game_vertex_id())
в функции zombie_story_1 меняем число объектов на кратное 6-ти (необязательно):
spawn_zombies( spawn_point, 12 )
Всё. Сохраняем и закрываем.
6. Копируем в папку gamedata\config\gameplay\ файл encyclopedia_mutants.xml, добавляем описание зомби в энциклопедию:
И в связанный с ним файл string_table_enc_mutants.xml в папке gamedata\config\text\rus\ добавляем:
Зомби-привидение отличается от обычного зомби лишь тем, что
воздействие Выжигателя мозгов полностью разрушило не только структуру личности, но и
тело, поэтому зомби-призрак несколько более живуч по сравнению с обычным зомби.
Воздействие Выжигателя мозгов полностью разрушает структуру личности,
оставляя только телесную оболочку.\n\n Побродив немного по Зоне, лишённые разума тела
начинают превращаться в настоящих зомби. Из рефлексов у них остаются лишь самые примитивные,
оружие и экипировка скоро приходят в негодность. В результате зомби становятся собой ни чем
иным, как медлительными полутрупами, которых наличествуют лишь два эффективных раздражителя:
еда и сон. Зомби совершенно неразборчивы в выборе пищи и питья, поэтому их тела буквально
пропитаны радиацией и токсинами. Как правило, эти существа бесцельно бродят по Зоне или,
словно трупы, валяются внутри заброшенных построек. Однако, лишь только зомби почует близкое
присутствие живого человека, он сразу же пытается атаковать. Умудрённые опытом сталкеры
стараются обходить эти неуклюжие опустошённые оболочки.
Копируем сюда же файл stable_statistic_caption.xml и изменяем в нем 3 строчки:
Сохраняем и закрываем.
Вкратце, что описывает файл ui_npc_monster.xml: в нем задаются координаты иконок, расположенных в файле ui_npc_monster.dds, применительно к каждому типу монстров в игре.
Заключительный штрих. Откройте файл m_zombie.ltx и в первой секции замените строку
icon = ui_npc_monster_kontroler
В секцию [zombie_ghost] добавьте строку:
icon = ui_npc_monster_zombieg
Сохраняйте изменения. Всё.
Вот готовые файлы примера. Удачи и спасибо за внимание 🙂
Спавн NPC
Эта часть статьи написана Arhet и создана на примере того, как в SRP Mod были созданы NPC группировки «Грех».
Начнем с character_desc_escape.xml. Описание что значит каждая строка писать не буду, так как все до меня уже сделано.
Тут создадим нового персонажа:
[spawn] \n
wpn_dark_colt1911 \n
ammo_11.43x23_hydro \n
#include «gameplay\character_items.xml» \n
#include «gameplay\character_drugs.xml» \n
#include «gameplay\character_food.xml»
Впишем наш код после какого-нибудь
Теперь идем в npc_profile.xml и туда вгоняем:
Теперь надо заняться spawn_sections.ltx. Скрипт будет «брать NPC» как раз из этого файла. Пишем туда:
[esc_dark_stalker_1]:stalker – имя секции для скрипта..
$spawn = «respawn\esc_dark_stalker_1»
character_profile = esc_dark_stalker_1 – ссылка на описание нашего NPC
spec_rank = regular – спец ранг
community = dark_stalker – группировка.
Теперь берем любой скрипт спавна NPC, вгоняем туда имя секции из spawn_sections.ltx и ву-а-ля.