Сейчас 11:51:23 Воскресенье, 1 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Иммитировать независимый от рельефа полёт снаряда
FatalBladeДата: Воскресенье, 11 Ноября 2012, 00:21:05 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Когда нам надо триггерно иммитировать полёт снаряда, например стрелы или какой то магической фигни, мы это делаем с помощью дамми юнита. Даём ему нужную модель, убираем атаку, тени, поле зрения и стоимость еды, даём ему способность 'Aloc' (Locust) и делаем тип передвижения Летающий (Fly), что бы наш дамми-снаряд не во что не врезался. И радуемся...

Но ведь такой дамми снаряд имеет одно очень большое отличие от настоящего стандартного снаряда. Ведь стандартный снаряд игнорирует высоту рельефа, и летит напрямую к цели по всем трём векторам. То есть если запускающий юнит и цель находятся по разные стороны ямы, а угол дуги равен 0, то снаряд полетит по прямой к цели, игнорируя яму. Дамми снаряд же, будет постоянно держать определённую высоту от земли. Поскольку яма - это тоже земля, то дамми-снаряд спустится на дно ямы, а при выходе из ямы вернётся в исходную высоту.

Получается ваша стрела самостоятельно поднимается на горы и спускается в ямы... Конечно же на плоском ландшафте проблема отпадает, но у меня ланд не плоский.

Так вот, как сделать так, что бы дамми-снаряд игнорировал высоту рельефа, т.е. игнорировал ямы, возвышенности и клиффы, когда его триггерно двигаешь.


 

NaturekidДата: Воскресенье, 11 Ноября 2012, 00:29:33 | Сообщение # 2
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
FatalBlade, за нас уже всё написал Lord of Sausage
Вот ссылка на его открытую мапу Sniper Arena http://www.epicwar.com/maps/36170/
Триггер называется Shoot system или что-то вроде того. Найдёшь легко. Кроме триггера полёта снаряда там и наткнуться на что-то особо полезное трудно. ;)


 

SirNikolasДата: Воскресенье, 11 Ноября 2012, 06:12:49 | Сообщение # 3
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
library GetTerrainZ
    globals
        private constant location Z = Location(.0, .0)
    endglobals

    function GetTerrainZ takes real x, real y returns real
        call MoveLocation(Z, x, y)
        return GetLocationZ(Z)
    endfunction
endlibrary


 

FatalBladeДата: Воскресенье, 11 Ноября 2012, 14:19:04 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Про это я знаю. В случае с ямой это работает если правильно настроить. Однако в варкрафте есть одна очень не приятная фишка - высоту юнита НЕВОЗМОЖНО опустить ниже уровня земли. То есть если между двумя юнитами не яма а гора, то дамми-снаряд "залезет" на гору.

 

SirNikolasДата: Воскресенье, 11 Ноября 2012, 14:49:00 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Ну так взрывай этот снаряд. Разве какой-нибудь фаербол сможет пролететь сквозь гору?

 

SlonickДата: Воскресенье, 11 Ноября 2012, 16:36:03 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1688
Награды: 0
Репутация: 247
Блокировки:
Я через ро вкапываю юнита на высоту -100, а в игре он на 0, как исправить?

 

NaturekidДата: Воскресенье, 11 Ноября 2012, 16:42:11 | Сообщение # 7
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Quote (Slonick)
Я через ро вкапываю юнита на высоту -100, а в игре он на 0, как исправить?

Летающим сделать офк.

Добавлено (11 Ноября 2012, 16:42:11)
---------------------------------------------
Временно вбить юнит в землю


 

FatalBladeДата: Воскресенье, 11 Ноября 2012, 17:38:01 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Можно впринципе использовать ShowUnit. Прятать юнита когда он "под землёй".
Это про этот метод наработка, Naturekid ? :)

Есть ещё одно очень не приятное "НО". Когда герой "запускает" дамми-снаряд, и в это время находится на СКЛОНЕ возвышенности, то есть земля под ним находится под углом, и поскольку Вар3 - это 3Д пространство, то снаряд будет запущен с позиции героя, не учитывая наклон рельефа.

Попробую обьянить что я имею ввиду. Проведём прямую линию между желаемой координатой Z и "землёй". Естественно X и Y остаются теми же. Если с помощью тригонометрии вычислить угол между этой линией и самим рельефом, то он НЕ РАВЕН 90 градусам, посколько рельеф под наклоном. Я понимаю что это абсурдно, но юнит на высоте N от прямого рельефа, и юнит на высоте N наклонного рельефа, выглядят как будто на разных высотах. Если N равен 0, то на прямом рельефе дамми-снаряд будет находится под ногами героя. На наклонном рельефе на нулевой высоте, снаряд находится над головой героя.

Посколько в ланде у меня много возвышенностей, то это часто можно увидеть. Я потратил несколько часов что бы выявить формулу, используя кучу переменных, но это явление я изменить не могу. Ниже нуля опустить снаряд я не могу. А "ноль" на наклонном рельефе - над головой героя. Причём чем сильнее наклон, тем он выше.


 

NaturekidДата: Воскресенье, 11 Ноября 2012, 17:58:47 | Сообщение # 9
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Quote (FatalBlade)
Это про этот метод наработка, Naturekid ?

не-а.


 

FatalBladeДата: Воскресенье, 11 Ноября 2012, 20:00:54 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Я решил проблему немного кардинальным способом. При использование способности когда герой должен "выстрелить снаряд", создаётся дамми на месте героя, и этот дамми кастует способность на основе Storm Bolt в цель. Снаряд дамми-способности выбирается какой мне нужен... Есть триггер отлавливающий урон. Условия триггера - что бы тип юнита который наносит урон, был тип нашего дамми. Урон дамми-способности наносится тогда когда снаряд попадает в цель. Поэтому дальнейшие действия триггера - это реакция на событие Юнит Получает Урон.

Минусы: событие Юнит Получает Урон регистрируется абсолютно на всех юнитов на карте, не считая других дамми, нейтрало-пассивных крипов и зданий.


 

SirNikolasДата: Понедельник, 12 Ноября 2012, 12:30:55 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (FatalBlade)
и этот дамми кастует способность на основе Storm Bolt в цель.
Кислотную бомбу лучше же брать.


 

FatalBladeДата: Понедельник, 12 Ноября 2012, 12:32:11 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
SirNikolas, согласен, но во многих случаях мне нужен именно Стан.

 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz