Насколько я понял, вот эта колбаса создает юнита через группу, потом ее не до конца удаляет и куча всего ненужного?
Как создать через Нативку и Джасс просто одного юнита на точке без всего этого?
function CreateNUnitsAtLoc takes integer count, integer unitId, player whichPlayer, location loc, real face returns group
call GroupClear(bj_lastCreatedGroup)
loop
set count = count - 1
exitwhen count < 0
call CreateUnitAtLocSaveLast(whichPlayer, unitId, loc, face)
call GroupAddUnit(bj_lastCreatedGroup, bj_lastCreatedUnit)
endloop
return bj_lastCreatedGroup
endfunction

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

rsfghd:
как правильно написать, чтобы в указанной точке появился юнит?
На примере с позицией юнита
local unit u = GetTriggerUnit()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
set bj_lastCreatedUnit = CreateUnit(GetOwningPlayer(u),'u000',x,y,GetUnitFacing(u))
Создаст какого-то там юнита в позиции юнита триггера
А для чего икс и игрик, если я могу просто указать точку, а потом ее обнулить, какой смысл мне в них?
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
19
3 года назад
0
rsfghd:
CreateUnit
как правильно написать, чтобы в указанной точке появился юнит?
1
27
3 года назад
1
Если тебе под зарез нужно через точку создать юнита, то используй
native CreateUnitAtLoc takes player id, integer unitid, location whichLocation, real face returns unit
но пора бы и на координаты перейти)
0
19
3 года назад
0
Зачем мне группа? Мне нужен просто один юнит а не паровоз из создания группы из одного юнита?
1
27
3 года назад
Отредактирован rsfghd
1
как правильно написать, чтобы в указанной точке появился юнит?
На примере с позицией юнита
local unit u = GetTriggerUnit()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
set bj_lastCreatedUnit = CreateUnit(GetOwningPlayer(u),'u000',x,y,GetUnitFacing(u))
Создаст какого-то там юнита в позиции юнита триггера
0
19
3 года назад
0
rsfghd:
как правильно написать, чтобы в указанной точке появился юнит?
На примере с позицией юнита
local unit u = GetTriggerUnit()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
set bj_lastCreatedUnit = CreateUnit(GetOwningPlayer(u),'u000',x,y,GetUnitFacing(u))
Создаст какого-то там юнита в позиции юнита триггера
А для чего икс и игрик, если я могу просто указать точку, а потом ее обнулить, какой смысл мне в них?
Принятый ответ
2
13
3 года назад
Отредактирован Borodach
2
SсRealm, CreateUnitAtLoc(), вместо х,у задаешь точку

Просто сама точка - это и есть х,у. Одной переменной и действием обнуления больше
0
19
3 года назад
0
А почему трггер сам запускается без спроса и даже если выключен?
local unit u = GetTriggerUnit()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
set bj_lastCreatedUnit = CreateUnit(GetOwningPlayer(u),'u000',x,y,GetUnitFacing(u))

А все исправил
0
27
3 года назад
0
Координаты не утечны в отличии от точек и предположительно быстрее
0
19
3 года назад
0
rsfghd:
Координаты не утечны в отличии от точек и предположительно быстрее
Работает и ладно. Спасибо)
0
9
3 года назад
0
и предположительно быстрее
А есть основания так считать?
2
28
3 года назад
2
map_maiker, ну многие функции из бж берут локацию, а потом берут её x и y.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.