Обязательно ли нужно удалять способность после добавления?
	function PreloadAbility takes integer abilityId returns nothing
        if ( didInit ) then
            if ( UnitAddAbility( unitPreloader, abilityId ) ) then
                call UnitRemoveAbility( unitPreloader, abilityId )
            debug else
                debug call BJDebugMsg( "PreloadAbility(...) :    Ability '" + RAW2S( abilityId ) + "' does not exist." )
            endif

        else
            debug call BJDebugMsg("PreloadAbility(...)    Attempt to prealod abilty before library initialization.")
            call Initialization( )

            if ( UnitAddAbility( unitPreloader, abilityId ) ) then
                call UnitRemoveAbility( unitPreloader, abilityId )
            debug else
                debug call BJDebugMsg( "PreloadAbility(...) :    Ability '" + RAW2S( abilityId ) + "' does not exist." )
            endif

        endif
    endfunction
	call SetUnitInvulnerable( ... )
//	или
	call UnitAddAbility( unit, 'Avul' )
	

Принятый ответ

Кривоватая подгрузка, удалять не обязательно. Лучше юзать preload без этаких костылей, темболее в JASS есть механизмы автоматического создания pld скриптов.

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
7 лет назад
0
Кривоватая подгрузка, удалять не обязательно. Лучше юзать preload без этаких костылей, темболее в JASS есть механизмы автоматического создания pld скриптов.
Принятый ответ
0
21
7 лет назад
Отредактирован scopterectus
0
quq_CCCP, не совсем понимаю.
	function PreloadAbility takes integer id returns boolean
		return UnitAddAbility( unitPreloader, id )
	endfunction
А что такое pld скрипты, google ничего не выдал..
а что насчёт call SetUnitInvulnerable( ... ), call UnitAddAbility( unit, 'Avul' )
2
16
7 лет назад
2
А что за прелоад способностей? Зачем это нужно?
0
15
7 лет назад
0
avuremybe:
А что за прелоад способностей? Зачем это нужно?
Чтобы при изучение способности героем не было лага
2
16
7 лет назад
2
Ethernet, и в чем же он состоит?
2
27
7 лет назад
Отредактирован MpW
2
avuremybe, предполагаю для того, чтобы не было лагов. Помню, давно были темы с многоуровневыми абилками (более 10 левел и до 100 левел). Можно было делать интересные фишки. Если юниту в первый раз дать эту абилку, то комп подвиснет на несколько секунд, а на более слабых компах и больше времени. А все потому, что абилка загружается в игру, при повторном добавлении лагов не замечается. Поэтому сделали такую фишку, что при инициализации подзагружают способности все многоуровневые способности. Замечали ли вы когда нибудь в некоторых картах подвисания при старте игры? например, в доте. и прочее.
4
32
7 лет назад
4
Я про эток:
call PreloadGenClear()
call PreloadGenStart()
call TriggerSleepActions(2.00)
call PreloadGenEnd("save//mydata.pld")
Вызываем этот код пред созданием героя, чуствуем просадку фпс, побегали, покастовали спеллы (вейт нужно подольше). Идем смотреть что в текстовик сохранилось, там будет полный список того что загружал движок.
Затем Preloader("save//mydata.pld") - это вызов этого скрипта, который загрузит в память все что указанно в этом скрипте.
Это используется в кампаниях.
0
21
7 лет назад
0
quq_CCCP, куда должен сохранится данный файл? Здесь ничего не сохранилось. Или файл не сюда сохраняется?
	...\Program Files (x86)\WarCraft 3\Save\
0
32
7 лет назад
0
В папку save внутри варкравта
Где 2 тебя папка вара? В ней будет папка save ( там данные кампаний хранятся, типо сколько игрок пошел, че есть у героя). Ну туда сохранит, а так путь можно указать любой, который вздумается, т.к прилоду пофиг, хоть в раздел с виндой...
0
28
7 лет назад
0
quq_CCCP:
Кривоватая подгрузка, удалять не обязательно. Лучше юзать preload без этаких костылей, темболее в JASS есть механизмы автоматического создания pld скриптов.
У меня в карте 100500 способностей. Можно ли их всех тупо добавить одному юниту для подгрузки (без удаления)?
0
21
7 лет назад
Отредактирован scopterectus
0
PT153, зависит от их максимального уровня. Возможно Вам понадобится подгружать не 100500, а уже 50250 способностей.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.