|
|
|
|
[Вопрос] Атака области
|
|
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, он умирает, а здоровье ставится в ноль. Однако потом какой-нибудь быдлокодер может мертвому юниту поднять здоровье выше нуля. Это его не воскресит, но заставит заклинания считать его живым.
Тщетно бытиё! :c
|
|
|
|
Ty3uK | Дата: Среда, 07 Августа 2013, 02:43:30 | Сообщение # 10 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| SirNikolas, можно написать сочный макрос дабы отрубить идиотам красную кнопку. Да только я думаю и так все знают, что лучше писать самому, а не юзать чужой код. Если только твой код не велосипед с квадратными колесами.
|
|
|
|
NightCatty | Дата: Среда, 07 Августа 2013, 11:23:44 | Сообщение # 11 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Ty3uK, ну вы и кровопийцы, раньше были добрее
Тщетно бытиё! :c
|
|
|
|
Ty3uK | Дата: Среда, 07 Августа 2013, 13:07:39 | Сообщение # 12 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Какие есть.
|
|
|
|
NightCatty | Дата: Среда, 07 Августа 2013, 13:23:17 | Сообщение # 13 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Цитата (Ty3uK) Какие есть.
Тщетно бытиё! :c
|
|
|
|
|
|
|
|
|
|
|