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

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

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

offline
Опыт: 6,530
Активность:
Тугой триггер
Ребята, как можно ускорить данный триггер?(может стоить что-нибудь вынести в отдельную функцию(например, само появление юнита с тейком ид игрока)
function getstart takes nothing returns nothing
    local integer i = 0
    local real f = 45.00
    local unit u
    local real y
    local real x
    local integer l = 0
    loop
        exitwhen i > 11
        if i == 6 then
            set l = 6
            set f = 225.00
        endif
        if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
            set y = GetLocationX(udg_ArcherPoint[l])
            set x = GetLocationY(udg_ArcherPoint[l])
            set u = CreateUnit(Player(i),'H003',y,x,f)
            call UnitAddAbility(u, 'beta')
            set l = l + 1
            call UnitAddItemById(u,'I001')
            call UnitAddAbility(u,'A010')
            call SetUnitAbilityLevel(u,'Ax0J', 1)
            call SetPlayerAbilityAvailable(Player(i), 'AxOJ', false)
            call SetPlayerAbilityAvailable(Player(i), 'A010', false)
            set udg_archer[i] = u
            if GetLocalPlayer() == Player(i) then
                call SelectUnit(u, true)
            endif
        endif
        set i = i + 1
    endloop
    set u = null
    call DestroyTrigger(GetTriggeringTrigger())
endfunction
function InitTrig_getstart takes nothing returns nothing
    set gg_trg_getstart = CreateTrigger()
    call TriggerRegisterTimerEvent(gg_trg_getstart, 1.10, false)
    call TriggerAddAction(gg_trg_getstart, function getstart)
endfunction 
При срабатывании триггера происходит лаг
Немного о триггере, триггер срабатывает после начала игры на 1.1 секунде. Он размещает юнитов на позициях(точках), если игрок(integer_loop) в игре, интежер l позволяет размещать красного и оранжевого игрока на точках udg_ArcherPoint[0] и udg_ArcherPoint[1] соответственно - это выглядит красиво, некрасиво одно, секундный лаг при срабатывании функции getstart.
Спасибо

Отредактировано MyRtZ, 01.12.2010 в 22:22.
Старый 01.12.2010, 22:09
FKoFF
Venomancer 89lvl. Europe
offline
Опыт: 5,975
Активность:
Подгружай Ability в ините карты.
Старый 01.12.2010, 22:46
MyRtZ

offline
Опыт: 6,530
Активность:
FKoFF:
Подгружай Ability в ините карты.
Я не совсем тебя понял, т.е в InitTrig_getstart(или в переменных стартовое значение) функцию вносить абилити в глобалку, потом в экшнах через переменную давать способность и возращать в null?

Отредактировано MyRtZ, 01.12.2010 в 23:02.
Старый 01.12.2010, 22:52
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
MyRtZ, создавай воина, давай ему способности, удаляй его. Лаги уйдут, при следующих операциях с ними.
Старый 02.12.2010, 07:23
JassMan
свободен
offline
Опыт: 4,193
Активность:
не обязательно создавать война, достаточно любому юниту триггерно дать и забрать эту способность
Старый 02.12.2010, 07:37
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
JassMan, кэп чтоле
Старый 02.12.2010, 15:52
MyRtZ

offline
Опыт: 6,530
Активность:
JassMan:
не обязательно создавать война, достаточно любому юниту триггерно дать и забрать эту способность
Удалять способность думаю не обязательно(поправь меня, если я не прав), у меня есть юнит дамми типа на карте который стоит на месте где появляются руны(это типа "регулируемая точка"), думаю стоит ему всунуть абилити при старте мапы
У меня есть триггер инициализации который в начале устанавливает значение array глобалок, все действия у него в InitTrig_, т.е кастуется сразу после старта. Туда я и всуну эти действия.
JassMan, Спасибо
Тему пока не закрывайте
add:
Я в шоке, начал тестить там лаг 0.1 сек, еще раз спасибо, сижу радуюсь как дитя :)
FKoFF, в следующий раз объясняй чуть по точнее
И для "усвоения" хотел бы услышать что еще кроме абилити можно подгружать в карте

Отредактировано MyRtZ, 02.12.2010 в 22:01.
Старый 02.12.2010, 21:39
JassMan
свободен
offline
Опыт: 4,193
Активность:
Любой спец эффект или импорт
call Preload(адрес файла)
Старый 02.12.2010, 22:53
Закрытая тема

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

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

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

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



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