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

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

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

offline
Опыт: 4,699
Активность:
GetTrainedUnitType/GetUnitTypeId
Что лучше (быстрее):
GetTrainedUnitType()
или
GetUnitTypeId(u)
с условием что выше в коде есть u=GetTrainedUnit()
переменная u используется
Старый 05.03.2011, 23:31
Hanabishi
COOL STATUS
offline
Опыт: отключен
Elf_Stratigo, если u определяется только для этого действия, то первое всяко быстрее, т.к. одна функция заместо двух
Старый 06.03.2011, 00:05
Msey
????
offline
Опыт: 67,346
Активность:
Elf_Stratigo, В зависимости от структур триггеров.
Старый 06.03.2011, 03:06
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
Что мешает взять и проверить?
Старый 06.03.2011, 04:25
Elf_Stratigo

offline
Опыт: 4,699
Активность:
Master_chan:
Что мешает взять и проверить?
спать хотелось :)
ща проверю уж сам тогда -.-
Elf_Stratigo добавил:
хм, может я чтото делаю неправильно, но у меня "кто быстрее" зависит от того, какую функцию использую для получения времени
» тест
0,000057216 GetTrainedUnitType() быстрее
0,000202179 GetUnitTypeId(u) быстрее
0,000232704 GetTrainedUnitType() быстрее
0,000099182 GetUnitTypeId(u) быстрее
0,00014496  GetTrainedUnitType() быстрее
0,000022888 GetUnitTypeId(u) быстрее
0,00009152  GetTrainedUnitType() быстрее
код:
function Trig_____________________________________001_Actions takes nothing returns nothing
    local unit u=GetTrainedUnit()
    //IssueImmediateOrderById( null, GetTrainedUnitType() )
    //call IssueImmediateOrderById(GetTriggerUnit(),GetUnitTypeId(u))
    call SetUnitPosition(u,1.,1.)
    call SetUnitPosition(u,2.,2.)
    call SetUnitFacing(u,22.)
    call IssueImmediateOrderById(GetTriggerUnit(),GetTrainedUnitType())
    call SetUnitPosition(u,0.,0.)
    call SetUnitFacing(u,365.)
    call KillUnit(u)
    set u=null
    call PauseTimer(udg_t)
    call DisplayTimedTextToPlayer(GetLocalPlayer(),0.,0.,9999.,R2SW(TimerGetRemaining(udg_t),10,10))
endfunction
udg_t - глобальный таймер, стратует по событию EVENT_PLAYER_UNIT_TRAIN_START
если использую TimerGetRemaining то GetTrainedUnitType быстрее (больше времени осталось), а если TimerGetElapsed - то в скорости выигрывает GetUnitTypeId (меньше времени прошло)
причём, обратите внимание, порядки отставаний даже различные
где я туплю? -.-
Старый 06.03.2011, 12:07
Doc

offline
Опыт: 63,163
Активность:
Elf_Stratigo, какая вообще разница?
Старый 06.03.2011, 21:06
Elf_Stratigo

offline
Опыт: 4,699
Активность:
хочу что быстрее
Старый 06.03.2011, 21:13
Doc

offline
Опыт: 63,163
Активность:
ты вообще чтоли на милисекундах кончился, используешь эту функцию 1000 раз в секунду? в треде нет смысла, юзай то, что нужно в коде, а не то что быстрее.
Старый 06.03.2011, 21:26
Закрытая тема

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

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

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

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



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