помогите с алгоритмом jass гроуп с условиями, не могу разобраться.

вот как пример
local group g = CreateGroup()
local unit f
call GroupEnumUnitsInRange(g,x,y,400.,null)
loop
   set f = FirstOfGroup(g)
   exitwhen f == null
if IsUnitEnemy(f,GetOwningPlayer(u)) and GetWidgetLife(f)>0 and IsUnitType(f, UNIT_TYPE_STRUCTURE) == false and  IsUnitType(f , UNIT_TYPE_MAGIC_IMMUNE) == false   then
    call UnitDamageTarget(u,f,dmg,true,false,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL,null)
    call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\HumanBloodFootman.mdl", f, "chest"))
    call DestroyEffect(AddSpecialEffect("Chain Impale.mdx",GetUnitX(f),GetUnitY(f)))
    endif
    call GroupRemoveUnit(g,f)
endloop
    call DestroyGroup(g)
set g =null
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
4
quq_CCCP:
а всем именно?
В определенном диапозоне выбора при этом имея условие кем находится юнит и имея какой-нибудь бафф.
32
Ну в фильтре и описывайте кого вам нужно в группе, живые, враги там с таким то баффом.
12
вот как пример
local group g = CreateGroup()
local unit f
call GroupEnumUnitsInRange(g,x,y,400.,null)
loop
   set f = FirstOfGroup(g)
   exitwhen f == null
if IsUnitEnemy(f,GetOwningPlayer(u)) and GetWidgetLife(f)>0 and IsUnitType(f, UNIT_TYPE_STRUCTURE) == false and  IsUnitType(f , UNIT_TYPE_MAGIC_IMMUNE) == false   then
    call UnitDamageTarget(u,f,dmg,true,false,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL,null)
    call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\HumanBloodFootman.mdl", f, "chest"))
    call DestroyEffect(AddSpecialEffect("Chain Impale.mdx",GetUnitX(f),GetUnitY(f)))
    endif
    call GroupRemoveUnit(g,f)
endloop
    call DestroyGroup(g)
set g =null
Принятый ответ
21
Опиши проблему детальней != скинь свой код.
32
Daro, дурные советы, по рукам бы дал за такой кодинг.
  1. Для проверок есть болекспры
  2. ненужно писать == false или == false, функция уже сама по себе true или false.
8
quq_CCCP, прав, но болэкспры имеют слишком малый лимит, из-за чего могут возникнуть баги. По крайней мере я ловил такие, так что использование условий IF в действии вполне оправдано
28
Atesla, какой такой лимит? Использую только фильтры, никаких проблем не было.
В любой случае проверки в фильтре не могут превзойти лимит "потока".
8
PT153, возможно, во всем виноваты мои кривые руки, конечно...
Но использовал я не только в качестве фильтров. Скорее всего, дело было в этом
32
Atesla, лимит такой же у болекспров для групп, для кондижешена триггера чуть чуть поменьше чем для акшина триггера, но вы этот лимит не достигните если ниче кроме проверок в болекспрах делать не будите (переборы в цикле еще быстрее к обрыву приведут).
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.