Сейчас 13:53:48 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] Атака области
PrikolДата: Понедельник, 05 Августа 2013, 19:48:38 | Сообщение # 1
8 уровень
Группа: Проверенные
Сообщений: 699
Награды: 0
Репутация: 427
Блокировки:

Делаю способность, при которой вокруг героя взрывается земля. Ну вообщем все сделал. Но вот вопрос как сделать так, что бы УРОН наносился ТОЛЬКО Врагам. Но вот я попытался сделать с отрядом, но как то муторно, можно как то по другому?


 

[SeKtOR]Дата: Понедельник, 05 Августа 2013, 20:05:00 | Сообщение # 2
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Код
// udg_Group - группа; x,y,range,damage - real, f - пустая переменная юнита, u - кастер, p - владелец кастера(GetOwningPlayer)
call GroupEnumUnitsInRange(udg_Group, x, y, range, null)
loop
set f = FirstOfGroup(udg_Group)
exitwhen f == null
if(IsUnitEnemy(f, p) and GetWidgetLife(f) > .405) then
call UnitDamageTarget(u, f, damage, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
endif
call GroupRemoveUnit(udg_Group, f)
endloop




Сообщение отредактировал [SeKtOR] - Понедельник, 05 Августа 2013, 20:22:59
 

NightCattyДата: Понедельник, 05 Августа 2013, 20:38:19 | Сообщение # 3
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
Цитата (|SeKtOR|)
if(IsUnitEnemy(f, p) and GetWidgetLife(f) > .405) then

and GetUnitState(f, UNIT_STATE_MAGIC_IMMUNE) == false
Цитата (|SeKtOR|)
call UnitDamageTarget(u, f, damage, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)

(u, f, true, false, damage, ...)


Тщетно бытиё! :c
 

[SeKtOR]Дата: Понедельник, 05 Августа 2013, 20:57:33 | Сообщение # 4
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Цитата (NightCatty)
and GetUnitState(f, UNIT_STATE_MAGIC_IMMUNE) == false

Что-то новое :)
Цитата (NightCatty)
(u, f, true, false, damage, ...)

В карте дамаг система и привык писание без true, false извиняюсь :(


 

NightCattyДата: Понедельник, 05 Августа 2013, 21:00:33 | Сообщение # 5
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
Цитата (|SeKtOR|)
Что-то новое

что-то обязательное o_O иногда и на здания проверка нужна, надо упомянуть
кстати, всегда писал widgetlife > 0.415, с .405 - инфа 100%?


Тщетно бытиё! :c
 

Ramazan(off)Дата: Вторник, 06 Августа 2013, 01:13:18 | Сообщение # 6
11 уровень
Группа: Проверенные
Сообщений: 1670
Награды: 1
Репутация: 775
Блокировки:
Цитата (NightCatty)
инфа 100%?

с 405 инфа 100%
 

FEARKILLERДата: Вторник, 06 Августа 2013, 05:05:34 | Сообщение # 7
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
Цитата (|SeKtOR|)
Код
// udg_Group - группа; x,y,range,damage - real, f - пустая переменная юнита, u - кастер, p - владелец кастера(GetOwningPlayer)
call GroupEnumUnitsInRange(udg_Group, x, y, range, null)
loop
set f = FirstOfGroup(udg_Group)
exitwhen f == null
if(IsUnitEnemy(f, p) and GetWidgetLife(f) > .405) then
call UnitDamageTarget(u, f, damage, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
endif
call GroupRemoveUnit(udg_Group, f)
endloop

Не проще фильтр поставить? Или даже, сразу в фильтре урон наносить?


Делаю из воды вино, хожу по воде...
 

SirNikolasДата: Вторник, 06 Августа 2013, 07:25:58 | Сообщение # 8
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (NightCatty)
кстати, всегда писал widgetlife > 0.415, с .405 - инфа 100%?
Когда у юнита здоровье становится равным или меньше .405, он умирает, а здоровье ставится в ноль. Однако потом какой-нибудь быдлокодер может мертвому юниту поднять здоровье выше нуля. Это его не воскресит, но заставит заклинания считать его живым.

Добавлено (06 Августа 2013, 07:25:58)
---------------------------------------------
Цитата (FEARKILLER)
Не проще фильтр поставить? Или даже, сразу в фильтре урон наносить?
Цикл по группе - самый быстрый способ перебора.




Сообщение отредактировал SirNikolas - Среда, 07 Августа 2013, 09:47:10
 

NightCattyДата: Вторник, 06 Августа 2013, 09:27:24 | Сообщение # 9
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
Цитата (SirNikolas)
Когда у юнита здоровье становится равным .405, он умирает, а здоровье ставится в ноль. Однако потом какой-нибудь быдлокодер может мертвому юниту поднять здоровье выше нуля. Это его не воскресит, но заставит заклинания считать его живым.

tomato


Тщетно бытиё! :c
 

Ty3uKДата: Среда, 07 Августа 2013, 02:43:30 | Сообщение # 10
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, можно написать сочный макрос дабы отрубить идиотам красную кнопку. Да только я думаю и так все знают, что лучше писать самому, а не юзать чужой код. Если только твой код не велосипед с квадратными колесами.


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

NightCattyДата: Среда, 07 Августа 2013, 11:23:44 | Сообщение # 11
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
Ty3uK, ну вы и кровопийцы, раньше были добрее

Тщетно бытиё! :c
 

Ty3uKДата: Среда, 07 Августа 2013, 13:07:39 | Сообщение # 12
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Какие есть. :(

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

NightCattyДата: Среда, 07 Августа 2013, 13:23:17 | Сообщение # 13
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
Цитата (Ty3uK)
Какие есть.

buba


Тщетно бытиё! :c
 

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

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