Добавлен
В коде с BJ функцией:
    local unit u
    call CreateNUnitsAtLoc( 1, 'hfoo', GetTriggerPlayer(), location, bj_UNIT_FACING )
    set u = bj_lastCreatedUnit
    call PolledWait ( 3 )
    call RemoveUnit( u )
В переменную записывается последний созданный юнит.
Если же юнита создать функцией Native:
    local unit u
    call CreateUnitAtLoc (GetTriggerPlayer(), 'hfoo', location, bj_UNIT_FACING)
    set u = bj_lastCreatedUnit
    call PolledWait ( 3 )
    call RemoveUnit( u )
В переменную нифига ничего не записывается, не могу понять почему. Не хочу использовать BJ функции, чтобы не засорять память варика и не давать ему повода для ошибок и вылета.

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

Это какие-то извращения у вас там.
Bj можно раскрыть и увидеть, что там происходит присваивание нового юнита глобалке bj_lastCreatedUnit.
Нужно сразу присваивать локалке нового юнита и не использовать эти ваши bj_lastCreatedUnit:
local unit u
u = CreateUnitAtLoc (GetTriggerPlayer(), 'hfoo', location, bj_UNIT_FACING)
0
17
7 лет назад
Отредактирован ledoed
0
unit u = CreateUnit(Player(0),'e000',x,y,facing)
Polledwait(3.00)
RemoveUnit(u)
u=null -поидеи это можно не писать так как сам редактор обычно их обнуляет(если у тя редактор от сюда скачан)
Player(0)-для какого игрока
'e000'-ид юнита
x,y - координаты де появиться
facing - куда смотреть будет
4
26
7 лет назад
4
Это какие-то извращения у вас там.
Bj можно раскрыть и увидеть, что там происходит присваивание нового юнита глобалке bj_lastCreatedUnit.
Нужно сразу присваивать локалке нового юнита и не использовать эти ваши bj_lastCreatedUnit:
local unit u
u = CreateUnitAtLoc (GetTriggerPlayer(), 'hfoo', location, bj_UNIT_FACING)
Принятый ответ
0
32
7 лет назад
0
Есть мнение что ApplyUnitTimedLife( u, 'BTLF', 3.00 ) будет смотреться изящнее PolledWait.
Темболее причем тут нативки, у вас онли BJ функции, CreateNUnitAtLoc, PolledWait это все бж функции, а еще вейты зло, в них нельзя обойтись только при синках или роликах, в остальных местах лучше без них.
Да и вовсе накой черт создавать локальную переменную если собрались сделать с юнитом все действия сразу?
	set bj_lastCreatedUnit = CreateUnit( Player, 'UNIT ID', x,y, facing )
	call UnitApplyTimedLife( bj_lastCreatedUnit, 'BTLF, 3.00 )
	// далее действия вроде вручить спелл или приказать идти куда либо.
2
28
7 лет назад
Отредактирован nvc123
2
автор пытается заметить бж на нативки не зная при этом ни бж ни нативок
могу лишь посоветовать поставить джнгп или почитать j файлы
и да
точки лучше не юзать ибо утечка
используй координаты
0
11
7 лет назад
0
Uber, спасибо большое. А то я искал, а так и не нашел. А сам бы не догадался)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.