Пятница, 17.05.2024, 12:20


Главная
Регистрация
Вход
Welcome to Home Приветствую Вас Гость | RSS  
Меню сайта

Категории раздела
Мои статьи [25]

Мини-чат

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Мои статьи

Исследование порчи (Blight)

В первую очередь нужно сказать, что наведение порчи в WE отличается от наведения порчи с помощью скриптов.

Наводить порчу на землю можно или в WE или в игре с помощью

» Blight API

» Триггерных действий

Как и в WE порча привязана к сетке. SetBlightPoint создаёт никакой не point, а регион размером 512 на 512.
Минимальный радиус региона наведённого с помощью SetBlight - 128. Значения меньшие 128 округляются до 128. Следующие радиусы кратны 128. При указании не кратного радиус округляется к ближайшему кратному, т.е. 150 к 128, 192 к 256 и т.д.

Визуально минимальный порченый регион выглядит меньше,

» чем есть на самом деле

Круговые регионы порчи - достаточно

» квадратные

Здесь любопытный момент в том, что мелкие квадратики имеют сторону 128, а не 256. Значит минимальный радиус таки 64, а не 128, об этом ниже.

В WE они ещё более квадратные:

» без маленьких скругляющих квадратиков + размер "кистей" другой

Центр порченного региона, создаваемового с помощью SetBlight или SetBlightRect привязан к сетке. Квадрат сетки размером 256 на 256. Поэтому, если указать центром, скажем, (2200, 450), то регион будет создан с центром в (2176,512)

Параметр whichPlayer определяет собственника порчи. Учитывая, что порча снимается диспелом по местности, собственник порчи свою порчу снять не сможет. (Thanks to DioD)

 Невидимая порча

После того как стало ясно, что минимальный размер квадратика с порчей 128 на 128, я решил поэкспериментировать и посмотреть что будет, если обрезать в-кавычках-минимальный регион 256/256 с помощью мелких квадратиков. Т.е. сначала создал круговую порчу радиуса 256, а затем удалил порчу тоже радиуса 256, сместив центр как

» тут:

В итоге местность перестала отображаться порченной, но по факту порча на ней частично осталась (красная на рисунке). Типа не видимая порча.

» Пруфскрин:

Наверное это можно как-то использовать.

» Также т.о. можно создать порченный регион размера 256 на 384

Удаление кругового региона порчи радиуса 384 (может и не только для него) работает бажно. Верхняя часть региона не удаляется, оставляя небольшой клочок порчи.

SetBlightPoint тоже работает и странно, и бажно. При создании порчи создаётся регион 512 на 512. Центр расположен как показано

» здесь

Как видно из рисунка "нарисованная" порча, смещена вверх и вправо на 128 от реальной (ахтунг!).

SetBlightRect также

» криво отображает порчу

При размерах региона меньше 65 не создаёт порчу. При размере больше, создаёт прямоугольный регион порчи размером равным ближайшему числу кратному 128. У меня не получилось добиться того, чтобы SetBlightRect нормально отображала наведённую порчу. Так что, наверное, её не стоит использовать.

 Заключение

Имхо самое полезное из всего этого, это то что минимальный регион, который можно "испортить" это таки 128 на 128 (для круга) он и отображается не смещённо. Порча такого размера будет видна, если будет граничить с порченным регионом 256 на 256. Если такого региона не будет, то порченным он будет, но отображаться как таковой - нет.

В целом порча работает не очевидно, а кое-где и бажно.

Тестировалось с помощью IsPointBlighted.

Категория: Мои статьи | Добавил: Enemy1PK (02.04.2017)
Просмотров: 382 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Вход на сайт

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • База знаний uCoz

  • Copyright MyCorp © 2024uCoz