Никогда не думали о рисовании спецэффектами в World Editor? Если да, то статья для вас. Вообще это "рисование" без переменных естественно не обойдётся. Первое, что мы нарисуем - это линия между двумя пехотинцами; Спецэффект - Цепь молний.
Что из себя представляет этот триггер ? Подумайте,подумайте над каждым действием. Если думать не хотите, то вот объяснение: Set PointUnits[0] = Пехотинец 0000 - устанавливаем позицию пехотинца 1 Set PointUnits[1] = Пехотинец 0001- устанавливаем позицию пехотинца 2 Set DistanceBetweenPoints = (Distance Between PointUnits[0] and PointUnits[1]) - устанавливаем расстояние между пехотинцами For each (Integer Loop) from 1 to 10, do (Actions) - делаем цикл от 1 до 10 (с переменной Loop) -Set PointSpecialEffect[0] - (PointUnits[1]) offset by ((DistanceBetweenPoints/10.00)*Real(Loop)) towards (Angle Between PointUnits[0] and PointUnits[1]) degrees -Создаём эффект в позиции PointSpecialEffect[0] "Цепь молний"
Это мы устанавливаем точку с полярным смещением
Можете протестить...Всё понятно, но как же вычислить предпоследнее действие? (в цикле) Итак, объясняю:
Итак, мы указали непонятное действие после "offset by", но вычисляется оно простейшим образом... DistanceBetweenPoints мы делим на то число, которое указано вторым в цикле (в нашем случае - это 10), то есть мы находим точку в расстояние между пехотинцами...Далее мы должны умножить на Real(Loop) Теперь смысл всего этого: Мы каждый раз (цикл) находим точку с полярным смещением... каждый раз она умножается на Loop, а к Loop в своё время после завершения каждого действия в цикле прибавляется единица.. так и получается, что сначала Начальную точку мы умножаем на 1, далее на 2, далее на 3, далее на 4, так и получается, что мы ставим точки для спецэффекта....
Так-с с линией разобрались.. Теперь сделаем окружность из того же спецэффекта...
Здесь ещё всё проще:
Set PointUnits[2] = Чародей Крови 0002 - устанавливаем позицию Чародея крови (Кель) For each (Integer Loop) from 1 to 30,do (Actions) - уже объяснял, только здесь уже значение не 10, а 30 -Set PointSpecialEffect[1] = (PointUnits[2]) offset by 300 towards (12.00*Real(Loop) degrees -И создаём эффект в позиции PointSpecialEffect[1] "Цепь молнии"
Повторюсь: здесь ещё всё проще... Мы создаём от героя в радиусе 300 спецэффект.. Теперь нам надо вычислить каждую точку на окружности... 12.00 = это и есть результат вычисления. Просто надо поделить 360 на второе число в цикле, то есть на 30 в нашем случае. И потом результат выисления, то есть 12 в нашем случае мы должны в действиях УМНОЖИТЬ на Loop, а он как мы знаем уже, увеличивается каждый раз на единицу..
Впринципе все... Здесь я разъяснил некоторым, не как создать в World Editor'е спецэффекты, а как делать из них линии.. круги.. и т.д. Вот как бы Д/З: Сделать букву "Ш" из спецэффектов. Подсказка: Используйте действие Move ЮНИТ instantly to ОБЛАСТЬ. Кто выполнит Д/З правильно и вообще кто его выполнит, тому ОДОБРЕНИЕ,УВАЖЕНИЕ и РЕПУТАЦИЯ. Сроки: Сдать Д/З до 5 февраля 19:20
Сообщение отредактировал romaN-1998 - Пятница, 04 Февраля 2011, 03:54:33
и для кого эта статья? в принципе она бесполезна, объясню почему: нубы каковыми являются пользователи не владеющие гуи, даже на таком уровне, все равно ничего не поймут. А остальные, думаю, смогут прикрепить молнию к юниту
romaN-1998, Добавь в статью строки про устранение утечек. А то у тебя и точки, и спецэффекты текут. Раз 5 так нарисуешь и карта станет лагать по жуткому.
Vova5009, лбьясни нафиг в этой теме устронение утечек??? добавив то что ты указал ты окончательно запутеаш тех людей каторые тока учатся "рисовать" в ВЕ
Вот как бы Д/З: Сделать букву "Ш" из спецэффектов. Подсказка: Используйте действие Move ЮНИТ instantly to ОБЛАСТЬ. Кто выполнит Д/З правильно и вообще кто его выполнит, тому ОДОБРЕНИЕ,УВАЖЕНИЕ и РЕПУТАЦИЯ. Сроки: Сдать Д/З до 5 февраля 19:20
чо за фигня? учителем стал? все функции приведённые в "статье" жутко утечные и карта залагает после пары десятков(а мб и меньше) таких финтов ушами у Дуоса нормально описано