Насколько я понял, вот эта колбаса создает юнита через группу, потом ее не до конца удаляет и куча всего ненужного?
Как создать через Нативку и Джасс просто одного юнита на точке без всего этого?
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

Answer

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))
Создаст какого-то там юнита в позиции юнита триггера
А для чего икс и игрик, если я могу просто указать точку, а потом ее обнулить, какой смысл мне в них?

Shown only a small set of comments around the pointed one. Go to actual.
0
Голосов: 0
SсRealm - 2 years ago
0
Голосов: 0
rsfghd:
CreateUnit
как правильно написать, чтобы в указанной точке появился юнит?
1
Голосов: 1
rsfghd - 2 years ago
1
Голосов: 1
Если тебе под зарез нужно через точку создать юнита, то используй
native CreateUnitAtLoc takes player id, integer unitid, location whichLocation, real face returns unit
но пора бы и на координаты перейти)
0
Голосов: 0
SсRealm - 2 years ago
0
Голосов: 0
Зачем мне группа? Мне нужен просто один юнит а не паровоз из создания группы из одного юнита?
1
Голосов: 1
rsfghd - 2 years ago
Edited by
1
Голосов: 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
Голосов: 0
SсRealm - 2 years ago
0
Голосов: 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
Голосов: 2
Borodach - 2 years ago
Edited by
2
Голосов: 2
SсRealm, CreateUnitAtLoc(), вместо х,у задаешь точку

Просто сама точка - это и есть х,у. Одной переменной и действием обнуления больше
0
Голосов: 0
SсRealm - 2 years ago
0
Голосов: 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
Голосов: 0
rsfghd - 2 years ago
0
Голосов: 0
Координаты не утечны в отличии от точек и предположительно быстрее
0
Голосов: 0
SсRealm - 2 years ago
0
Голосов: 0
rsfghd:
Координаты не утечны в отличии от точек и предположительно быстрее
Работает и ладно. Спасибо)
0
Голосов: 0
map_maiker - 2 years ago
0
Голосов: 0
и предположительно быстрее
А есть основания так считать?
2
Голосов: 2
PT153 - 2 years ago
2
Голосов: 2
map_maiker, ну многие функции из бж берут локацию, а потом берут её x и y.
Shown only a small set of comments around the pointed one. Go to actual.
To leave a comment please sign in to the site.