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

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

Ответ
 
Kenshi245

offline
Опыт: 2,252
Активность:
Preload не помогает...
Есть нестандартный герой, Шаманчег, если его купить в магазине в первый раз появляется 0.5-1 секундный лаг, прелоад делал - не помогает.(
function PreloadFiles takes nothing returns nothing
call Preload( "war3mapImported\\Hero_Shaman_Portrait.mdx" )
call Preload( "war3mapImported\\Hero_Shaman.mdl" )
call PreloadEnd( 6.0 )
endfunction
Старый 22.04.2008, 14:28
Лось

offline
Опыт: 7,223
Активность:
Создаи его и сразу удали.
Код:
local unit u=CreateUnit(Player(12),'unitID',0,0,0)
call RemoveUnit(u)
Старый 22.04.2008, 14:56
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
^прав имхо )
Старый 22.04.2008, 15:08
WaRadius

offline
Опыт: 226
Активность:
Цитата:
Сообщение от Лось
Создаи его и сразу удали.
Код:
local unit u=CreateUnit(Player(12),'unitID',0,0,0)
call RemoveUnit(u)

А ещё лучше:
Код:
call RemoveUnit(CreateUnit(Player(12),'unitID',0,0,0))
Старый 22.04.2008, 15:28
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
WaRadius, ненадежная конструкция, крайне ненадежная
Известны случаи крашей, например, таких конструкций
Код:
call DestroyEffect(AddSpecialEffectTarget(...))
т.е. это не всегда надежно - мб просто вар долго загружает в игру первый раз юнита и ждет, когда как создание юнита в кач-ве параметра функции Remove может и не дожидаться... Хз кароче, как это происходит, но лучше имхо вообще вот так)
Код:
local unit u=CreateUnit(Player(12),'unitID',0,0,0)
if u!=null then
  call RemoveUnit(u)
endif
Старый 22.04.2008, 16:10
Kenshi245

offline
Опыт: 2,252
Активность:
Вот если так сделать не будет крашей?

Код:
function RemovePreloadUnits takes unit unitA returns nothing
if unitA != null then
  call RemoveUnit( unitA )
endif
endfunction

function AddPreloadUnits takes nothing returns nothing
local unit unitA
set unitA = CreateUnit(Player(12),'O000',0,0,0)               
call RemovePreloadUnits( unitA )
set unitA = CreateUnit(Player(12),'N004',0,0,0)               
call RemovePreloadUnits( unitA )
set unitA = null
endfunction

Отредактировано Kenshi245, 22.04.2008 в 16:42.
Старый 22.04.2008, 16:33
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Kenshi245, зачем через функцию, какая необходимость? Лишний вызов, лишнее время.
Код:
function AddPreloadUnits takes nothing returns nothing
local unit unitA
set unitA = CreateUnit(Player(12),'O000',0,0,0)               
if unitA != null then
  call RemoveUnit( unitA )
endif
set unitA = CreateUnit(Player(12),'N004',0,0,0)               
if unitA != null then
  call RemoveUnit( unitA )
endif
set unitA = null
endfunction
Старый 22.04.2008, 16:45
Kenshi245

offline
Опыт: 2,252
Активность:
Ну если у меня порядка 10-20 юнитов, то длинновато получится..
Старый 22.04.2008, 17:03
BoogieMan

offline
Опыт: 562
Активность:
Цитата:
Сообщение от Kenshi245
Ну если у меня порядка 10-20 юнитов, то длинновато получится..

Цикл в помощь)
Старый 23.04.2008, 15:39
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
т.е. это не всегда надежно - мб просто вар долго загружает в игру первый раз юнита и ждет, когда как создание юнита в кач-ве параметра функции Remove может и не дожидаться
O_O
хз, невидел ничего подобного, сделайте мне плиз примерчик где под ифом если он равен нулу выводился месаг и в самом деле выводился бы...
Старый 23.04.2008, 19:09
Ответ

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

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

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

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



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