EviLInside
offline
Опыт:
3,543Активность: |
Pick Units
В Jass'e я не особо силён, но тем не менее что то умею.
Сегодня решил сделать спелл, там надо пикать юнитов враждебных в опр. зоне, вобщем всё как обычно, Когда из гуи переводишь в Jass эти дела с пиком и условием , там over9000 функций. Можно ли всё одной функции сделать? Мне кажется что полюбому
Короче вот для примера код, сделайте тоже самое , только 1 функцией (ну или если уж так нельзя то обьясните и сделайте как можно по другому упростить)
[+] замечание от Nerevar: Используйте теги форматирования+это не стол заказов
Отредактировано Nerevar, 22.06.2012 в 17:12. |
22.06.2012, 17:03 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Не вижу твоих попыток что-то сделать.
Почитай правила для начала, это не стол заказов. |
22.06.2012, 17:10 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EviLInside
offline
Опыт:
3,543Активность: |
Код собственно ниочём, просто делался для проверки.
Код:
Отредактировано EviLInside, 22.06.2012 в 17:23. |
22.06.2012, 17:18 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
JugHead
offline
Опыт:
1,612Активность: |
EviLInside,
тогда уж так: выносишь фильтр, по которому набираются юниты в группу, в отдельную функцию, при пике юнитов в группу указываешь его. Дальше либо ForGroup() , либо через цикл делаешь действия для каждого юнита в группе...
И бога ради, не используй BJ.
» Фасткод
((код jass
========================================================================
function filter takes nothing returns boolean
return IsPlayerEnemy(GetOwningPlayer(gg_unit_H000_0006),GetOwningPlayer(GetFilterUnit())) and GetWidgetLife(GetFilterUnit())>=0.405 and not IsUnitIdType(GetUnitTypeId(GetFilterUnit()), UNIT_TYPE_STRUCTURE) endfunction function kill takes nothing returns nothing
call KillUnit(GetEnumUnit()) endfunction function Trig_Periodic_Actions takes nothing returns nothing
local unit u2 = gg_unit_H000_0006 local boolexpr b = Condition(function filter) local group gr = CreateGroup() call GroupEnumUnitsInRange(g, GetUnitX(u2), GetUnitY(u2), 350.00, b) call ForGroup(g, function function kill) call DestroyBoolExpr(b) call DestroyGroup(g) set b = null set g = null set u2 = null endfunction =========================================================================== function InitTrig_Periodic takes nothing returns nothing set gg_trg_Periodic = CreateTrigger( ) call TriggerRegisterTimerEventPeriodic( gg_trg_Periodic, 1.00 ) call TriggerAddAction( gg_trg_Periodic, function Trig_Periodic_Actions ) endfunction )) Отредактировано JugHead, 22.06.2012 в 17:41. |
22.06.2012, 17:33 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EviLInside
offline
Опыт:
3,543Активность: |
Ясно, просто как бы я всё это пытался для того что б внутри 1 функции что б не делать глобалки, т.к можно отделаться было бы локальными переменными, как бы всё это что б спелл был MUI
Терь буду думать как это всё сделать с JNGP, наверное придёт на помощь Struct или хеш опять юзать) а JNGP тока начал изучать, вроде кое что понятно, но из за того что Jass не очень знаю вытекают новые вопросы) |
22.06.2012, 17:42 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
EviLInside:
Читай статьи по ОБЫЧНОМУ жассу и не пытайся прыгнуть выше головы без ног |
22.06.2012, 17:48 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
|
22.06.2012, 18:24 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|