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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] Спелл
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
Блокировки:
спасиб, разберусь как нить
 

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

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