[Вопрос] Спелл
|
|
Saginara00 | Дата: Воскресенье, 01 Января 2012, 20:37:59 | Сообщение # 1 |
6 уровень
Группа: Проверенные
Сообщений: 185
Награды: 0
Репутация: 67
Блокировки:
| Вот, хочу сделать так что бы герой нанес урон тем, кто находится впереди героя, ну то есть по дуге. и ничего не получилось.. вот скрин моего триггеринга.. строго не судить)
что я не правильно сделал??
если не видно то там написано вот это:
Pick every unit in (Units within 512.00 of ((Position of (Casting unit)) offset by 400.00 towards 0.00 degrees)) and do (Actions) - Cause (Target unit of ability being cast) to damage (Picked unit), dealing 40.00 damage of attack type and damage type
Сообщение отредактировал Saginara00 - Воскресенье, 01 Января 2012, 20:42:48 |
|
|
|
oleg_best_oleg | Дата: Воскресенье, 01 Января 2012, 21:55:59 | Сообщение # 2 |
Группа: Заблокированные
Сообщений: 1726
Награды: 0
Репутация: 654
Блокировки:
| Saginara00, в триггере цель способности наносит всем урон. Измени Target unit of ability на Triggering.
P.S. Вместо Casting используй Triggering.
|
|
|
|
Saginara00 | Дата: Понедельник, 02 Января 2012, 09:32:53 | Сообщение # 3 |
6 уровень
Группа: Проверенные
Сообщений: 185
Награды: 0
Репутация: 67
Блокировки:
| щас попробую) Добавлено (02 Январь 2012, 09:32:53) --------------------------------------------- вообще какаято тупость получается... Он еще и себе наносит урон
|
|
|
|
SirNikolas | Дата: Понедельник, 02 Января 2012, 09:35:22 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Поставь проверку, что (Picked unit) не является союзником (Triggering unit). Элементарно же.
|
|
|
|
[DUОS] | Дата: Понедельник, 02 Января 2012, 12:31:49 | Сообщение # 5 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Quote (Saginara00) герой нанес урон тем, кто находится впереди героя Вчитайтесь же... Нужно угол проверять для этого ещё, исходя из заранее полученного фейсинга у Triggering Unit. Помнится, я делал Драконаю такой спелл и написал функцию на Jass для этого. Code function GroupEnumUnitsInRangeOfUnitFront takes unit ofUnit, group g, real range, boolexpr filter returns nothing local real f = GetUnitFacing(ofUnit) local real minx = GetWidgetX(ofUnit) + range * .5 * Cos((f+90.)*.0174532) local real miny = GetWidgetY(ofUnit) + range * .5 * Sin((f+90.)*.0174532) local real maxx = GetWidgetX(ofUnit) + range * .5 * Cos((f-45.)*.0174532) local real maxy = GetWidgetY(ofUnit) + range * .5 * Sin((f-45.)*.0174532) local rect r = Rect(minx,miny,maxx,maxy)
call GroupEnumUnitsInRect(g,r,filter) call RemoveRect(r) set r = null endfunction
|
|
|
|
Saginara00 | Дата: Понедельник, 02 Января 2012, 12:33:33 | Сообщение # 6 |
6 уровень
Группа: Проверенные
Сообщений: 185
Награды: 0
Репутация: 67
Блокировки:
| а jass не знаю..
|
|
|
|
SirNikolas | Дата: Понедельник, 02 Января 2012, 12:45:47 | Сообщение # 7 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| [DUОS], может быть, лучше выбирать юнитов в секторе? Т. е. пикать в радиусе и проверять угол.
|
|
|
|
[DUОS] | Дата: Понедельник, 02 Января 2012, 12:48:38 | Сообщение # 8 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| SirNikolas, Можно и так, но у меня не всегда срабатывал такой метод. А этот безотказен.
|
|
|
|
Saginara00 | Дата: Вторник, 03 Января 2012, 14:17:52 | Сообщение # 9 |
6 уровень
Группа: Проверенные
Сообщений: 185
Награды: 0
Репутация: 67
Блокировки:
| Quote (|DUОS|) Code function GroupEnumUnitsInRangeOfUnitFront takes unit ofUnit, group g, real range, boolexpr filter returns nothing local real f = GetUnitFacing(ofUnit) local real minx = GetWidgetX(ofUnit) + range * .5 * Cos((f+90.)*.0174532) local real miny = GetWidgetY(ofUnit) + range * .5 * Sin((f+90.)*.0174532) local real maxx = GetWidgetX(ofUnit) + range * .5 * Cos((f-45.)*.0174532) local real maxy = GetWidgetY(ofUnit) + range * .5 * Sin((f-45.)*.0174532) local rect r = Rect(minx,miny,maxx,maxy)
call GroupEnumUnitsInRect(g,r,filter) call RemoveRect® set r = null endfunction
это только код? без собития и условия
|
|
|
|
[DUОS] | Дата: Среда, 04 Января 2012, 13:43:29 | Сообщение # 10 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Saginara00, Да, его вызывают через callGroupEnumUnitsInRangeOfUnitFront(udg_ИмяГлобалкиСЮнитом,bj_lastCreatedGroup,радиус,null)
|
|
|
|
Saginara00 | Дата: Среда, 04 Января 2012, 21:13:25 | Сообщение # 11 |
6 уровень
Группа: Проверенные
Сообщений: 185
Награды: 0
Репутация: 67
Блокировки:
| спасиб, разберусь как нить
|
|
|
|