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

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

Закрытая тема
 
LordSerga

offline
Опыт: 3,809
Активность:
Помогите с кодом (переливающиеся здания)
Код:
scope ModificSTRUCTURE initializer Init //by LordSerga

globals
private integer i
private group g
private trigger trig
endglobals

private function UnitColor takes unit whichUnit, integer int returns nothing
    set int=int/100
    call SetUnitVertexColor(whichUnit, int , int, int, 1)
endfunction

private function GF takes nothing returns boolean
    return IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == true
endfunction

private function GA takes nothing returns nothing
    local unit u=GetEnumUnit()
    call UnitColor(u,i)
    set u=null
endfunction

private function AllUnitSTRUCTURE takes nothing returns group
    local group gr = CreateGroup()
    local boolexpr filter = Condition(function GF)
    call GroupEnumUnitsInRect(gr, bj_mapInitialPlayableArea , filter)
    call DestroyBoolExpr(filter)
    return gr
endfunction

private function Action takes nothing returns nothing

        if i==100 then
            set i=0
        else
            set i=i+1
        endif
        
    set g=AllUnitSTRUCTURE()
    call ForGroup(g,function GA)
    call DestroyGroup(g)
    set g=null
endfunction

private function Init takes nothing returns nothing
    set trig=CreateTrigger()
    call TriggerRegisterTimerEvent(trig,.17,true)
    call TriggerAddAction(trig,function Action)
endfunction

endscope


Беда - Не работает, а точнее здания не мигают. Щас просто работы много (в JNPG) у меня.

В общем - помогите, найдите проблему, из-за которой функция UnitColor не запускается.
Старый 27.06.2009, 16:53
J
expert
offline
Опыт: 48,447
Активность:
когда же люди наконец научатся писать оптимальный код?
назови 3 причины по которым для мигания зданий нужно каждые 0,17 сек шарить циклом всех юнитов на карте
Старый 27.06.2009, 17:16
LordSerga

offline
Опыт: 3,809
Активность:
Цитата:
Сообщение от J
когда же люди наконец научатся писать оптимальный код?
назови 3 причины по которым для мигания зданий нужно каждые 0,17 сек шарить циклом всех юнитов на карте


А как ты предлагаешь? =) Я только вариант пика группы пока-что знаю.
Старый 27.06.2009, 17:40
J
expert
offline
Опыт: 48,447
Активность:
при инициализации карты шарить всех юнитов в карте и занести в глобальную группу только здания
сделать событие юнит выходит в регион "вся карта" если это здание занести и его в группу
а когда нужны мигать уже делаешь фор по группе, тогда не будет кучи бессмысленных действий как в первом посте
Старый 27.06.2009, 17:45
LordSerga

offline
Опыт: 3,809
Активность:
Ааа, понял =). Я так в наработке DamageSystem своей делал.
щас проверю, скажу результат.

LordSerga добавил:
Оу, работает. Тему можно и закрыть =)
Старый 27.06.2009, 18:04
Закрытая тема

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

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

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

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



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