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

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

Ответ
 
SLI
"Ня" © Happy
offline
Опыт: 8,415
Активность:
Пик Инвокера
Когда вдоте пикаешь инвокера начинает что-то подгружаться и лагать. Вроде для него код не такой сложный и 100500 абил он не использует и модели простенькие. Что же подгружается после его пика?
Старый 13.07.2012, 12:16
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
SLI, способности\дамми\эффекты
Старый 13.07.2012, 12:20
SLI
"Ня" © Happy
offline
Опыт: 8,415
Активность:
Nerevar, то есть они создаются из нечего? Или он каким то действием подгружает мпк архив?
Старый 13.07.2012, 12:37
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
SLI, какой мпк архив? ты знаешь как абилы подгружаются?дамми?эффекты?
Подгрузка дамми - создаем и тут же убиваем юнита-дамми
call KillUnit(CreateUnit(Player(0),'u000',0.,0.,0.))
Подгрузка эффекта - создаем и тут же уничтожаем эффект
call DestroyEffect(AddSpecialEffect("effect",0.,0.))
где "effect" - путь к эффекту
Подгрузка способности - создаем юнита,даем абилу,даем абиле макс уровень(в примере он=4),убиваем юнита
set u=CreateUnit(Player(0),'u000',0.,0.,0.)
call UnitAddAbility(u,'A000')
call SetUnitAbilityLevel(u,'A000',4)
call KillUnit(u)
думаю мысль ясна - в гуи можно тоже самое сделать
Старый 13.07.2012, 13:26
SLI
"Ня" © Happy
offline
Опыт: 8,415
Активность:
Nerevar, не, не знал. Я еще много чего не знаю.
Спасибо )
А при подгрузке способности ее кастовать не надо?
PS
Nerevar:
гуи можно тоже самое сделать
боже упаси )
Старый 13.07.2012, 13:35
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
SLI, не надо кастовать
Старый 13.07.2012, 13:40
SID69
DET
offline
Опыт: 19,693
Активность:
Nerevar, По моему у большинства героев в Доте есть небольшой лаг при выборе героя, особенно это заметно, когда пишут мод -ar.
Старый 13.07.2012, 14:28
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
MMIceStar, и? видимо врубаются триггеры связанные со спелами,или прелоад идет яхз
Старый 13.07.2012, 14:36
Doc

offline
Опыт: 63,163
Активность:
Nerevar, а еще есть магическая функция Preload
Старый 13.07.2012, 14:56
DualShock

offline
Опыт: 5,023
Активность:
set u=CreateUnit(Player(0),'u000',0.,0.,0.)
call UnitAddAbility(u,'A000')
call SetUnitAbilityLevel(u,'A000',4)
call KillUnit(u)
ммм устанавливать уровень способности на 4 не нужно...
Больше всего времени на подгрузку занимают способности, для этого есть даже специальные библиотеки:
» Ability preload
((код jass
library AbilityPreload initializer Init
Information:
==============

Preloading removes the noticeable delay the first time an ability is
loaded in a game. It is suggested that you preload every ability that
is not already on a unit that is placed on the map or created at init.

How to install PreloadAbility:
================================

Just copy the script into your map, no further tweaking needed.

How to use PreloadAbility:
============================

Just call PreloadAbility(abilityid) during an init function. There is no
point calling it after init, since it will do nothing, and it would not
be "pre"-loading anyway.

===========================================================================
globals
private boolean InitDone = false
private unit PreloadUnit
endglobals
function AbilityPreload takes integer abilityid returns nothing
if not InitDone then
call BJDebugMsg("AbilityPreload error: Library has not been initialized yet")
return
elseif GetUnitTypeId(PreloadUnit) == 0 then
call BJDebugMsg("AbilityPreload error: Can't preload an ability after initialization")
return
endif
call UnitAddAbility(PreloadUnit, abilityid)
endfunction
===========================================================================
private function Init takes nothing returns nothing
set PreloadUnit = CreateUnit(Player(15), 'zsmc', 0., 0., 0.)
call UnitApplyTimedLife(PreloadUnit, 0, .001)
call ShowUnit(PreloadUnit, false)
call UnitAddAbility(PreloadUnit, 'Aloc')
set InitDone = true
endfunction
endlibrary
))
Абилки обычно подгружают при инициализации карты, если этим злоупотреблять, то это существенно повлияет на скорость загрузки карты.

Отредактировано DualShock, 13.07.2012 в 15:40.
Старый 13.07.2012, 15:34
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,494
Активность:
DualShock, не надо советовать эту библиотеку, фуффло так себе, толком не подгружает то что нужно....
Вечно у меня нечего не прелоадило пока сам не написал все...
Старый 14.07.2012, 10:00
DualShock

offline
Опыт: 5,023
Активность:
quq_CCCP, эта библиотека прелоадит только во время инициализации. Во время игры не получится!
Старый 14.07.2012, 15:45
redfal

offline
Опыт: 5,163
Активность:
а зачем подгружать абилки, и вообще что за подгрузка такая? объясните на примере абилки любой.
Старый 16.07.2012, 17:17
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
Что-бы небыло лага при ее первом применении.
Старый 16.07.2012, 17:37
SLI
"Ня" © Happy
offline
Опыт: 8,415
Активность:
quq_CCCP, а чем тебе не понравилась эта библиоткеа?
я посмотрел свои неопытным глазом вроде все норм...
PS. Я не вступаю в спор мне просто интересно
Старый 19.07.2012, 14:20
NixEon
beeg kok
offline
Опыт: 8,143
Активность:
SLI, потому, что во время игры прелодить не получится, только при инициализации. А это не очень удобно.
Старый 19.07.2012, 14:27
Doc

offline
Опыт: 63,163
Активность:
DualShock, NixEon, бред, все там можно.
Старый 19.07.2012, 15:00
DualShock

offline
Опыт: 5,023
Активность:
Doc, да, но я говорил именно про ту библиотеку которую выложил.
Что бы прелоадило во время игры достаточно изменить пару строчек в той библиотеке или написать свою функцию. Думаю это не составит особого труда.
Старый 19.07.2012, 16:15
Doc

offline
Опыт: 63,163
Активность:
DualShock, я тоже говорю про нее. Юнит нигде не удаляется. В чем проблема?
Старый 19.07.2012, 16:19
DualShock

offline
Опыт: 5,023
Активность:
((код jass
call UnitApplyTimedLife(PreloadUnit, 0, .001)
))
Старый 19.07.2012, 16:20
Ответ

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

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

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

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



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