XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
Глухой фильтр
function Jackpot_bullets_filter takes nothing returns boolean
call DisplayTextToForce( bj_FORCE_ALL_PLAYERS, GetUnitName(GetFilterUnit())+" filter" )
return GetUnitTypeId(GetFilterUnit()) == 'h007' or GetUnitTypeId(GetFilterUnit()) == 'h008'
endfunction

...

local group g = CreateGroup()
    call GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, Filter(function Jackpot_bullets_filter))
...
не работает. Почему?
Старый 27.05.2012, 19:14
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Потому что ты не объяснил в чем заключается его неработоспособность=/
Не выводит мессаги?
Не берутся юниты?
???
Старый 27.05.2012, 19:28
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
не берутся юниты. вообще.
Hatsume_Hate добавил:
в сообщениях он берет кого угодно, но не этих юнитов
Старый 27.05.2012, 19:33
adic3x

offline
Опыт: 108,439
Активность:
call DisplayTextToForce( bj_FORCE_ALL_PLAYERS, I2S(GetUnitTypeId(GetFilterUnit())) )
Старый 27.05.2012, 20:26
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
ADOLF:
call DisplayTextToForce( bj_FORCE_ALL_PLAYERS, I2S(GetUnitTypeId(GetFilterUnit())) )
нужных юнитов нету.
Старый 27.05.2012, 21:59
Klop
Папа римский
offline
Опыт: 13,006
Активность:
Hatsume_Hate:
Filter(function Jackpot_bullets_filter)
Condition(function Jackpot_bullets_filter)
так поставь и будет работать
Старый 27.05.2012, 22:06
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
не работает
Старый 28.05.2012, 00:44
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Hatsume_Hate, а если убрать call DisplayTextToForce( bj_FORCE_ALL_PLAYERS, GetUnitName(GetFilterUnit())+" filter" )
Мб из за этого?
Старый 28.05.2012, 03:55
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
не работало и без этого
Старый 28.05.2012, 04:23
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Hatsume_Hate, в фильтр должны попадать юниты определённого типа? 'h007' и 'h009'?
Ид правильно указал, иначе тут в фильтре то нету ошибки... (пробуй добавить условия, если жив)
quq_CCCP добавил:
И весь код скинь, им у тебя где то не тут ошибка....
Старый 28.05.2012, 04:48
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
ставить условия что жив пробовал. не помогло.
function Jackpot_bullets_filter takes nothing returns boolean
call DisplayTextToForce( bj_FORCE_ALL_PLAYERS, GetUnitName(GetFilterUnit())+" filter" )
return GetUnitTypeId(GetFilterUnit()) == 'h007' or GetUnitTypeId(GetFilterUnit()) == 'h008'
endfunction

function Trig_Jackpot_bullets_moving_Actions takes nothing returns nothing
    local group g = CreateGroup()
    call GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, Condition (function Jackpot_bullets_filter))
    call ForGroup( g, function jBullets_Actions)
        if CountUnitsInGroup(g) == 0  then
            call DestroyGroup(g)
            set g = null
            call DisplayTextToForce( bj_FORCE_ALL_PLAYERS,"disable" )
            call DisableTrigger( GetTriggeringTrigger() )
        elseif CountUnitsInGroup(g) > 0 then
            call DisplayTextToForce( bj_FORCE_ALL_PLAYERS,"enable" )
            call DestroyGroup(g)
            set g = null
        endif
endfunction
Старый 28.05.2012, 05:24
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Hatsume_Hate, зачем CountUnitsInGroup(g) == 0??? а можно FirstOfGroup(grp)==null а так же FirstOfGroup(g) != null вот и всё, пробуй так...
quq_CCCP добавил:
Хотя 2 условия не к чему... достаточно одного if FirstOfGroup(g) != null then *** else *** endif
Старый 28.05.2012, 06:45
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
quq_CCCP:
Hatsume_Hate, зачем CountUnitsInGroup(g) == 0??? а можно FirstOfGroup(grp)==null а так же FirstOfGroup(g) != null вот и всё, пробуй так...
блин, а действительно логичней же так писать ._.
quq_CCCP добавил:
Хотя 2 условия не к чему... достаточно одного if FirstOfGroup(g) != null then *** else *** endif
перестраховка в данном случае
Hatsume_Hate добавил:
всеравно не работает
Старый 28.05.2012, 06:56
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Hatsume_Hate, в фильтр поставь "return true" и посмотри берёт юнитов в группу или нет (хз чё тут у тебя не так), Id проверь как следует... Попробуй с другими юнитами...
Старый 28.05.2012, 08:22
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
local unit u
call GroupEnumUnitsInRange(g,x,y,9999999.,null)
loop
set u = FirstOfGroup(g)
if GetUnitTypeId(u) == 'h007' or GetUnitTypeId(u) == 'h008' then
//действия
endif
call GroupRemoveUnit(g,u)
exitwhen u == null
endloop
так попробуй
ты кста те уверен что равкоды те если такого юнита нет поток обрываться будет
Старый 28.05.2012, 08:24
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
16GB, а X и Y мб заменить нолями?...
Старый 28.05.2012, 08:29
adic3x

offline
Опыт: 108,439
Активность:
Перед call GroupEnumUnitsInRect напишите:
    call BJDebugMsg ("Xmin " + R2S(GetRectMinX(bj_mapInitialPlayableArea)))
    call BJDebugMsg ("Xmax " + R2S(GetRectMaxX(bj_mapInitialPlayableArea)))
    call BJDebugMsg ("Ymin " + R2S(GetRectMinY(bj_mapInitialPlayableArea)))
    call BJDebugMsg ("Ymax " + R2S(GetRectMaxY(bj_mapInitialPlayableArea)))
Старый 28.05.2012, 08:54
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
от
Hatsume_Hate добавил:
~16GB:
local unit u
call GroupEnumUnitsInRange(g,x,y,9999999.,null)
loop
set u = FirstOfGroup(g)
if GetUnitTypeId(u) == 'h007' or GetUnitTypeId(u) == 'h008' then
//действия
endif
call GroupRemoveUnit(g,u)
exitwhen u == null
endloop
так попробуй
ты кста те уверен что равкоды те если такого юнита нет поток обрываться будет
не подходит. Равкоды на 2000% верные.
Миниатюры
Кликните на картинку для увеличения
Название:  jgg.JPG
Просмотров: 15
Размер:  112.3 Кбайт  
Старый 28.05.2012, 09:01
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
попробуй сделать на отдельной карте, ну перенеси этот триггер туда вместе с юнитами и проверь
Старый 28.05.2012, 09:10
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
в другой работает. Но работает как то такая конструкция странно. событие у меня тут каждые 0.03 секунды, однако он срабатывает лишь при запуске, и сразу глохнет, как одноразовая хлопушка.
Старый 28.05.2012, 09:41
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:23.